author | Michael Krelin <hacker@klever.net> | 2007-01-12 00:28:16 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2007-01-12 00:28:16 (UTC) |
commit | 4cc2e58186e8cd9b96a3573c92f6664064cf11fe (patch) (unidiff) | |
tree | 762943dfd3db8b6c48d5b31418310962376746d3 /include/opkele | |
parent | f5eb33d7a9c296e3fa7bde9b678f0e1027a9bf88 (diff) | |
download | libopkele-4cc2e58186e8cd9b96a3573c92f6664064cf11fe.zip libopkele-4cc2e58186e8cd9b96a3573c92f6664064cf11fe.tar.gz libopkele-4cc2e58186e8cd9b96a3573c92f6664064cf11fe.tar.bz2 |
extended server and consumer classes
-rw-r--r-- | include/opkele/consumer.h | 8 | ||||
-rw-r--r-- | include/opkele/server.h | 6 | ||||
-rw-r--r-- | include/opkele/xconsumer.h | 41 | ||||
-rw-r--r-- | include/opkele/xserver.h | 37 |
4 files changed, 85 insertions, 7 deletions
diff --git a/include/opkele/consumer.h b/include/opkele/consumer.h index f9939cf..f32509e 100644 --- a/include/opkele/consumer.h +++ b/include/opkele/consumer.h | |||
@@ -42,104 +42,104 @@ namespace opkele { | |||
42 | virtual assoc_t retrieve_assoc(const string& server,const string& handle) = 0; | 42 | virtual assoc_t retrieve_assoc(const string& server,const string& handle) = 0; |
43 | /** | 43 | /** |
44 | * invalidate stored association. The function should be overridden | 44 | * invalidate stored association. The function should be overridden |
45 | * in the real implementation of the consumer. | 45 | * in the real implementation of the consumer. |
46 | * @param server the OpenID server | 46 | * @param server the OpenID server |
47 | * @param handle association handle | 47 | * @param handle association handle |
48 | */ | 48 | */ |
49 | virtual void invalidate_assoc(const string& server,const string& handle) = 0; | 49 | virtual void invalidate_assoc(const string& server,const string& handle) = 0; |
50 | /** | 50 | /** |
51 | * retrieve any unexpired association for the server. If the | 51 | * retrieve any unexpired association for the server. If the |
52 | * function is not overridden in the real implementation, the new | 52 | * function is not overridden in the real implementation, the new |
53 | * association will be established for each request. | 53 | * association will be established for each request. |
54 | * @param server the OpenID server | 54 | * @param server the OpenID server |
55 | * @return the auto_ptr<> for the newly allocated association_t object | 55 | * @return the auto_ptr<> for the newly allocated association_t object |
56 | * @throw failed_lookup in case of absence of the handle | 56 | * @throw failed_lookup in case of absence of the handle |
57 | */ | 57 | */ |
58 | virtual assoc_t find_assoc(const string& server); | 58 | virtual assoc_t find_assoc(const string& server); |
59 | 59 | ||
60 | /** | 60 | /** |
61 | * retrieve the metainformation contained in link tags from the | 61 | * retrieve the metainformation contained in link tags from the |
62 | * page pointed by url. the function may implement caching of the | 62 | * page pointed by url. the function may implement caching of the |
63 | * information. | 63 | * information. |
64 | * @param url url to harvest for link tags | 64 | * @param url url to harvest for link tags |
65 | * @param server reference to the string object where to put | 65 | * @param server reference to the string object where to put |
66 | * openid.server value | 66 | * openid.server value |
67 | * @param delegate reference to the string object where to put the | 67 | * @param delegate reference to the string object where to put the |
68 | * openid.delegate value (if any) | 68 | * openid.delegate value (if any) |
69 | */ | 69 | */ |
70 | virtual void retrieve_links(const string& url,string& server,string& delegate); | 70 | virtual void retrieve_links(const string& url,string& server,string& delegate); |
71 | 71 | ||
72 | /** | 72 | /** |
73 | * perform the associate request to OpenID server. | 73 | * perform the associate request to OpenID server. |
74 | * @param server the OpenID server | 74 | * @param server the OpenID server |
75 | * @return the auto_ptr<> for the newly allocated association_t | 75 | * @return the auto_ptr<> for the newly allocated association_t |
76 | * object, representing established association | 76 | * object, representing established association |
77 | * @throw exception in case of error | 77 | * @throw exception in case of error |
78 | */ | 78 | */ |
79 | assoc_t associate(const string& server); | 79 | assoc_t associate(const string& server); |
80 | /** | 80 | /** |
81 | * prepare the parameters for the checkid_immediate | 81 | * prepare the parameters for the checkid_immediate |
82 | * request. | 82 | * request. |
83 | * @param identity the identity to verify | 83 | * @param identity the identity to verify |
84 | * @param return_to the return_to url to pass with the request | 84 | * @param return_to the return_to url to pass with the request |
85 | * @param trust_root the trust root to advertise with the request | 85 | * @param trust_root the trust root to advertise with the request |
86 | * @param ext pointer to an extension(s) hooks object | 86 | * @param ext pointer to an extension(s) hooks object |
87 | * @return the location string | 87 | * @return the location string |
88 | * @throw exception in case of error | 88 | * @throw exception in case of error |
89 | */ | 89 | */ |
90 | string checkid_immediate(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); | 90 | virtual string checkid_immediate(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); |
91 | /** | 91 | /** |
92 | * prepare the parameters for the checkid_setup | 92 | * prepare the parameters for the checkid_setup |
93 | * request. | 93 | * request. |
94 | * @param identity the identity to verify | 94 | * @param identity the identity to verify |
95 | * @param return_to the return_to url to pass with the request | 95 | * @param return_to the return_to url to pass with the request |
96 | * @param trust_root the trust root to advertise with the request | 96 | * @param trust_root the trust root to advertise with the request |
97 | * @param ext pointer to an extension(s) hooks object | 97 | * @param ext pointer to an extension(s) hooks object |
98 | * @return the location string | 98 | * @return the location string |
99 | * @throw exception in case of error | 99 | * @throw exception in case of error |
100 | */ | 100 | */ |
101 | string checkid_setup(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); | 101 | virtual string checkid_setup(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); |
102 | /** | 102 | /** |
103 | * the actual implementation behind checkid_immediate() and | 103 | * the actual implementation behind checkid_immediate() and |
104 | * checkid_setup() functions. | 104 | * checkid_setup() functions. |
105 | * @param mode checkid_* mode - either mode_checkid_immediate or mode_checkid_setup | 105 | * @param mode checkid_* mode - either mode_checkid_immediate or mode_checkid_setup |
106 | * @param identity the identity to verify | 106 | * @param identity the identity to verify |
107 | * @param return_to the return_to url to pass with the request | 107 | * @param return_to the return_to url to pass with the request |
108 | * @param trust_root the trust root to advertise with the request | 108 | * @param trust_root the trust root to advertise with the request |
109 | * @param ext pointer to an extension(s) hooks object | 109 | * @param ext pointer to an extension(s) hooks object |
110 | * @return the location string | 110 | * @return the location string |
111 | * @throw exception in case of error | 111 | * @throw exception in case of error |
112 | */ | 112 | */ |
113 | string checkid_(mode_t mode,const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); | 113 | virtual string checkid_(mode_t mode,const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); |
114 | /** | 114 | /** |
115 | * verify the id_res response | 115 | * verify the id_res response |
116 | * @param pin the response parameters | 116 | * @param pin the response parameters |
117 | * @param identity the identity being checked (if not specified, | 117 | * @param identity the identity being checked (if not specified, |
118 | * @param ext pointer to an extension(s) hooks object | 118 | * @param ext pointer to an extension(s) hooks object |
119 | * extracted from the openid.identity parameter | 119 | * extracted from the openid.identity parameter |
120 | * @throw id_res_mismatch in case of signature mismatch | 120 | * @throw id_res_mismatch in case of signature mismatch |
121 | * @throw id_res_setup in case of openid.user_setup_url failure | 121 | * @throw id_res_setup in case of openid.user_setup_url failure |
122 | * (supposedly checkid_immediate only) | 122 | * (supposedly checkid_immediate only) |
123 | * @throw id_res_failed in case of failure | 123 | * @throw id_res_failed in case of failure |
124 | * @throw exception in case of other failures | 124 | * @throw exception in case of other failures |
125 | */ | 125 | */ |
126 | void id_res(const params_t& pin,const string& identity="",extension_t *ext=0); | 126 | virtual void id_res(const params_t& pin,const string& identity="",extension_t *ext=0); |
127 | /** | 127 | /** |
128 | * perform a check_authentication request. | 128 | * perform a check_authentication request. |
129 | * @param server the OpenID server | 129 | * @param server the OpenID server |
130 | * @param p request parameters | 130 | * @param p request parameters |
131 | */ | 131 | */ |
132 | void check_authentication(const string& server,const params_t& p); | 132 | void check_authentication(const string& server,const params_t& p); |
133 | 133 | ||
134 | /** | 134 | /** |
135 | * make URL canonical, by adding http:// and trailing slash, if needed. | 135 | * make URL canonical, by adding http:// and trailing slash, if needed. |
136 | * @param url | 136 | * @param url |
137 | * @return canonicalized url | 137 | * @return canonicalized url |
138 | */ | 138 | */ |
139 | static string canonicalize(const string& url); | 139 | static string canonicalize(const string& url); |
140 | 140 | ||
141 | }; | 141 | }; |
142 | 142 | ||
143 | } | 143 | } |
144 | 144 | ||
145 | #endif /* __OPKELE_CONSUMER_H */ | 145 | #endif /* __OPKELE_CONSUMER_H */ |
diff --git a/include/opkele/server.h b/include/opkele/server.h index bf131d8..598eb47 100644 --- a/include/opkele/server.h +++ b/include/opkele/server.h | |||
@@ -19,81 +19,81 @@ namespace opkele { | |||
19 | */ | 19 | */ |
20 | class server_t { | 20 | class server_t { |
21 | public: | 21 | public: |
22 | 22 | ||
23 | /** | 23 | /** |
24 | * allocate the new association. The function should be overridden | 24 | * allocate the new association. The function should be overridden |
25 | * in the real implementation to provide persistent assocations | 25 | * in the real implementation to provide persistent assocations |
26 | * store. | 26 | * store. |
27 | * @param mode the mode of request being processed to base the | 27 | * @param mode the mode of request being processed to base the |
28 | * statelessness of the association upon | 28 | * statelessness of the association upon |
29 | * @return the auto_ptr<> for the newly allocated association_t object | 29 | * @return the auto_ptr<> for the newly allocated association_t object |
30 | */ | 30 | */ |
31 | virtual assoc_t alloc_assoc(mode_t mode) = 0; | 31 | virtual assoc_t alloc_assoc(mode_t mode) = 0; |
32 | /** | 32 | /** |
33 | * retrieve the association. The function should be overridden in | 33 | * retrieve the association. The function should be overridden in |
34 | * the reqal implementation to provide persistent assocations | 34 | * the reqal implementation to provide persistent assocations |
35 | * store. | 35 | * store. |
36 | * @param h association handle | 36 | * @param h association handle |
37 | * @return the auto_ptr<> for the newly allocated association_t object | 37 | * @return the auto_ptr<> for the newly allocated association_t object |
38 | * @throw failed_lookup in case of failure | 38 | * @throw failed_lookup in case of failure |
39 | */ | 39 | */ |
40 | virtual assoc_t retrieve_assoc(const string& h) = 0; | 40 | virtual assoc_t retrieve_assoc(const string& h) = 0; |
41 | 41 | ||
42 | /** | 42 | /** |
43 | * validate the identity. | 43 | * validate the identity. |
44 | * @param assoc association object | 44 | * @param assoc association object |
45 | * @param pin incoming request parameters | 45 | * @param pin incoming request parameters |
46 | * @param identity being verified | 46 | * @param identity being verified |
47 | * @param trust_root presented in the request | 47 | * @param trust_root presented in the request |
48 | * @throw exception if identity can not be confirmed | 48 | * @throw exception if identity can not be confirmed |
49 | */ | 49 | */ |
50 | virtual void validate(const association_t& assoc,const params_t& pin,const string& identity,const string& trust_root) = 0; | 50 | virtual void validate(const association_t& assoc,const params_t& pin,const string& identity,const string& trust_root) = 0; |
51 | 51 | ||
52 | 52 | ||
53 | /** | 53 | /** |
54 | * process the associate request. | 54 | * process the associate request. |
55 | * @param pin the incoming request parameters | 55 | * @param pin the incoming request parameters |
56 | * @param pout the store for the response parameters | 56 | * @param pout the store for the response parameters |
57 | */ | 57 | */ |
58 | void associate(const params_t& pin,params_t& pout); | 58 | void associate(const params_t& pin,params_t& pout); |
59 | /** | 59 | /** |
60 | * process the checkid_immediate request. | 60 | * process the checkid_immediate request. |
61 | * @param pin the incoming request parameters | 61 | * @param pin the incoming request parameters |
62 | * @param return_to reference to the object to store return_to url to | 62 | * @param return_to reference to the object to store return_to url to |
63 | * @param pout the response parameters | 63 | * @param pout the response parameters |
64 | * @param ext pointer to the extension hooks object | 64 | * @param ext pointer to the extension hooks object |
65 | * @throw exception in case of errors or negative reply | 65 | * @throw exception in case of errors or negative reply |
66 | */ | 66 | */ |
67 | void checkid_immediate(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); | 67 | virtual void checkid_immediate(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); |
68 | /** | 68 | /** |
69 | * process the checkid_setup request. | 69 | * process the checkid_setup request. |
70 | * @param pin the incoming request parameters | 70 | * @param pin the incoming request parameters |
71 | * @param return_to reference to the object to store return_to url to | 71 | * @param return_to reference to the object to store return_to url to |
72 | * @param pout the response parameters | 72 | * @param pout the response parameters |
73 | * @param ext pointer to the extension hooks object | 73 | * @param ext pointer to the extension hooks object |
74 | * @throw exception in case of errors or negative reply | 74 | * @throw exception in case of errors or negative reply |
75 | */ | 75 | */ |
76 | void checkid_setup(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); | 76 | virtual void checkid_setup(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); |
77 | /** | 77 | /** |
78 | * the actual functionality behind checkid_immediate() and | 78 | * the actual functionality behind checkid_immediate() and |
79 | * checkid_setup() | 79 | * checkid_setup() |
80 | * @param mode the request being processed (either | 80 | * @param mode the request being processed (either |
81 | * mode_checkid_immediate or mode_checkid_setup) | 81 | * mode_checkid_immediate or mode_checkid_setup) |
82 | * @param pin the incoming request parameters | 82 | * @param pin the incoming request parameters |
83 | * @param return_to reference to the object to store return_to url to | 83 | * @param return_to reference to the object to store return_to url to |
84 | * @param pout the response parameters | 84 | * @param pout the response parameters |
85 | * @param ext pointer to the extension hooks object | 85 | * @param ext pointer to the extension hooks object |
86 | * @throw exception in case of errors or negative reply | 86 | * @throw exception in case of errors or negative reply |
87 | */ | 87 | */ |
88 | void checkid_(mode_t mode,const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); | 88 | virtual void checkid_(mode_t mode,const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); |
89 | /** | 89 | /** |
90 | * process the check_authentication request. | 90 | * process the check_authentication request. |
91 | * @param pin incoming request parameters | 91 | * @param pin incoming request parameters |
92 | * @param pout response parameters | 92 | * @param pout response parameters |
93 | */ | 93 | */ |
94 | void check_authentication(const params_t& pin,params_t& pout); | 94 | void check_authentication(const params_t& pin,params_t& pout); |
95 | }; | 95 | }; |
96 | 96 | ||
97 | } | 97 | } |
98 | 98 | ||
99 | #endif /* __OPKELE_SERVER_H */ | 99 | #endif /* __OPKELE_SERVER_H */ |
diff --git a/include/opkele/xconsumer.h b/include/opkele/xconsumer.h new file mode 100644 index 0000000..14a8aaa --- a/dev/null +++ b/include/opkele/xconsumer.h | |||
@@ -0,0 +1,41 @@ | |||
1 | #ifndef __OPKELE_XCONSUMER_H | ||
2 | #define __OPKELE_XCONSUMER_H | ||
3 | |||
4 | /** | ||
5 | * @file | ||
6 | * @brief OpenID consumer with built-in extension chain | ||
7 | */ | ||
8 | |||
9 | #include <opkele/extension_chain.h> | ||
10 | #include <opkele/consumer.h> | ||
11 | |||
12 | /** | ||
13 | * @brief the main opkele namespace | ||
14 | */ | ||
15 | namespace opkele { | ||
16 | |||
17 | /** | ||
18 | * Extended OpenID consumer implementation with built in | ||
19 | * extensions chain. | ||
20 | */ | ||
21 | class xconsumer_t : public consumer_t, public extension_chain_t { | ||
22 | public: | ||
23 | |||
24 | string checkid_immediate(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0) { | ||
25 | return consumer_t::checkid_immediate(identity,return_to,trust_root,this); | ||
26 | } | ||
27 | string chekid_setup(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0) { | ||
28 | return consumer_t::checkid_setup(identity,return_to,trust_root,this); | ||
29 | } | ||
30 | string checkid_(mode_t mode,const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0) { | ||
31 | return consumer_t::checkid_(mode,identity,return_to,trust_root,this); | ||
32 | } | ||
33 | void id_res(const params_t& pin,const string& identity="",extension_t *ext=0) { | ||
34 | consumer_t::id_res(pin,identity,this); | ||
35 | } | ||
36 | |||
37 | }; | ||
38 | |||
39 | } | ||
40 | |||
41 | #endif /* __OPKELE_XCONSUMER_H */ | ||
diff --git a/include/opkele/xserver.h b/include/opkele/xserver.h new file mode 100644 index 0000000..e29bfe6 --- a/dev/null +++ b/include/opkele/xserver.h | |||
@@ -0,0 +1,37 @@ | |||
1 | #ifndef __OPKELE_XSERVER_H | ||
2 | #define __OPKELE_XSERVER_H | ||
3 | |||
4 | /** | ||
5 | * @file | ||
6 | * @brief OpenID server with built-in extension chain | ||
7 | */ | ||
8 | |||
9 | #include <opkele/extension_chain.h> | ||
10 | #include <opkele/server.h> | ||
11 | |||
12 | /** | ||
13 | * @brief the main opkele namespace | ||
14 | */ | ||
15 | namespace opkele { | ||
16 | |||
17 | /** | ||
18 | * Extended OpenID server implementationwith built in | ||
19 | * extensions chain. | ||
20 | */ | ||
21 | class xserver_t : public server_t, public extension_chain_t { | ||
22 | public: | ||
23 | |||
24 | void checkid_immediate(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0) { | ||
25 | server_t::checkid_immediate(pin,return_to,pout,this); | ||
26 | } | ||
27 | void checkid_setup(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0) { | ||
28 | server_t::checkid_setup(pin,return_to,pout,this); | ||
29 | } | ||
30 | void checkid_(mode_t mode,const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0) { | ||
31 | server_t::checkid_(mode,pin,return_to,pout,this); | ||
32 | } | ||
33 | }; | ||
34 | |||
35 | } | ||
36 | |||
37 | #endif /* __OPKELE_XSERVER_H */ | ||