summaryrefslogtreecommitdiffabout
path: root/include/opkele/server.h
Unidiff
Diffstat (limited to 'include/opkele/server.h') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/server.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/include/opkele/server.h b/include/opkele/server.h
new file mode 100644
index 0000000..fe07448
--- a/dev/null
+++ b/include/opkele/server.h
@@ -0,0 +1,95 @@
1#ifndef __OPKELE_SERVER_H
2#define __OPKELE_SERVER_H
3
4/**
5 * @file
6 * @brief OpenID server-side functionality
7 */
8
9#include <opkele/types.h>
10
11/**
12 * @brief the main opkele namespace
13 */
14namespace opkele {
15
16 /**
17 * implementation of basic server functionality
18 */
19 class server_t {
20 public:
21
22 /**
23 * allocate the new association. The function should be overridden
24 * in the real implementation to provide persistent assocations
25 * store.
26 * @param mode the mode of request being processed to base the
27 * statelessness of the association upon
28 * @return the auto_ptr<> for the newly allocated association_t object
29 */
30 virtual assoc_t alloc_assoc(mode_t mode) = 0;
31 /**
32 * retrieve the association. The function should be overridden in
33 * the reqal implementation to provide persistent assocations
34 * store.
35 * @param h association handle
36 * @return the auto_ptr<> for the newly allocated association_t object
37 * @throw failed_lookup in case of failure
38 */
39 virtual assoc_t retrieve_assoc(const string& h) = 0;
40
41 /**
42 * validate the identity.
43 * @param assoc association object
44 * @param pin incoming request parameters
45 * @param identity being verified
46 * @param trust_root presented in the request
47 * @throw exception if identity can not be confirmed
48 */
49 virtual void validate(const association_t& assoc,const params_t& pin,const string& identity,const string& trust_root) = 0;
50
51
52 /**
53 * process the associate request.
54 * @param pin the incoming request parameters
55 * @param pout the store for the response parameters
56 */
57 void associate(const params_t& pin,params_t& pout);
58 /**
59 * process the checkid_immediate request.
60 * @param pin the incoming request parameters
61 * @param return_to reference to the object to store return_to url to
62 * @param pout the response parameters
63 * @throw exception in case of errors or negative reply
64 */
65 void checkid_immediate(const params_t& pin,string& return_to,params_t& pout);
66 /**
67 * process the checkid_setup request.
68 * @param pin the incoming request parameters
69 * @param return_to reference to the object to store return_to url to
70 * @param pout the response parameters
71 * @throw exception in case of errors or negative reply
72 */
73 void checkid_setup(const params_t& pin,string& return_to,params_t& pout);
74 /**
75 * the actual functionality behind checkid_immediate() and
76 * checkid_setup()
77 * @param mode the request being processed (either
78 * mode_checkid_immediate or mode_checkid_setup)
79 * @param pin the incoming request parameters
80 * @param return_to reference to the object to store return_to url to
81 * @param pout the response parameters
82 * @throw exception in case of errors or negative reply
83 */
84 void checkid_(mode_t mode,const params_t& pin,string& return_to,params_t& pout);
85 /**
86 * process the check_authentication request.
87 * @param pin incoming request parameters
88 * @param pout response parameters
89 */
90 void check_authentication(const params_t& pin,params_t& pout);
91 };
92
93}
94
95#endif /* __OPKELE_SERVER_H */