-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 @@ -84,49 +84,49 @@ namespace opkele { * @param return_to the return_to url to pass with the request * @param trust_root the trust root to advertise with the request * @param ext pointer to an extension(s) hooks object * @return the location string * @throw exception in case of error */ - string checkid_immediate(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); + virtual string checkid_immediate(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); /** * prepare the parameters for the checkid_setup * request. * @param identity the identity to verify * @param return_to the return_to url to pass with the request * @param trust_root the trust root to advertise with the request * @param ext pointer to an extension(s) hooks object * @return the location string * @throw exception in case of error */ - string checkid_setup(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); + virtual string checkid_setup(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); /** * the actual implementation behind checkid_immediate() and * checkid_setup() functions. * @param mode checkid_* mode - either mode_checkid_immediate or mode_checkid_setup * @param identity the identity to verify * @param return_to the return_to url to pass with the request * @param trust_root the trust root to advertise with the request * @param ext pointer to an extension(s) hooks object * @return the location string * @throw exception in case of error */ - string checkid_(mode_t mode,const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); + virtual string checkid_(mode_t mode,const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0); /** * verify the id_res response * @param pin the response parameters * @param identity the identity being checked (if not specified, * @param ext pointer to an extension(s) hooks object * extracted from the openid.identity parameter * @throw id_res_mismatch in case of signature mismatch * @throw id_res_setup in case of openid.user_setup_url failure * (supposedly checkid_immediate only) * @throw id_res_failed in case of failure * @throw exception in case of other failures */ - void id_res(const params_t& pin,const string& identity="",extension_t *ext=0); + virtual void id_res(const params_t& pin,const string& identity="",extension_t *ext=0); /** * perform a check_authentication request. * @param server the OpenID server * @param p request parameters */ void check_authentication(const string& server,const params_t& p); 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 @@ -61,34 +61,34 @@ namespace opkele { * @param pin the incoming request parameters * @param return_to reference to the object to store return_to url to * @param pout the response parameters * @param ext pointer to the extension hooks object * @throw exception in case of errors or negative reply */ - void checkid_immediate(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); + virtual void checkid_immediate(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); /** * process the checkid_setup request. * @param pin the incoming request parameters * @param return_to reference to the object to store return_to url to * @param pout the response parameters * @param ext pointer to the extension hooks object * @throw exception in case of errors or negative reply */ - void checkid_setup(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); + virtual void checkid_setup(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); /** * the actual functionality behind checkid_immediate() and * checkid_setup() * @param mode the request being processed (either * mode_checkid_immediate or mode_checkid_setup) * @param pin the incoming request parameters * @param return_to reference to the object to store return_to url to * @param pout the response parameters * @param ext pointer to the extension hooks object * @throw exception in case of errors or negative reply */ - void checkid_(mode_t mode,const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); + virtual void checkid_(mode_t mode,const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0); /** * process the check_authentication request. * @param pin incoming request parameters * @param pout response parameters */ void check_authentication(const params_t& pin,params_t& pout); 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 @@ +#ifndef __OPKELE_XCONSUMER_H +#define __OPKELE_XCONSUMER_H + +/** + * @file + * @brief OpenID consumer with built-in extension chain + */ + +#include <opkele/extension_chain.h> +#include <opkele/consumer.h> + +/** + * @brief the main opkele namespace + */ +namespace opkele { + + /** + * Extended OpenID consumer implementation with built in + * extensions chain. + */ + class xconsumer_t : public consumer_t, public extension_chain_t { + public: + + string checkid_immediate(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0) { + return consumer_t::checkid_immediate(identity,return_to,trust_root,this); + } + string chekid_setup(const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0) { + return consumer_t::checkid_setup(identity,return_to,trust_root,this); + } + string checkid_(mode_t mode,const string& identity,const string& return_to,const string& trust_root="",extension_t *ext=0) { + return consumer_t::checkid_(mode,identity,return_to,trust_root,this); + } + void id_res(const params_t& pin,const string& identity="",extension_t *ext=0) { + consumer_t::id_res(pin,identity,this); + } + + }; + +} + +#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 @@ +#ifndef __OPKELE_XSERVER_H +#define __OPKELE_XSERVER_H + +/** + * @file + * @brief OpenID server with built-in extension chain + */ + +#include <opkele/extension_chain.h> +#include <opkele/server.h> + +/** + * @brief the main opkele namespace + */ +namespace opkele { + + /** + * Extended OpenID server implementationwith built in + * extensions chain. + */ + class xserver_t : public server_t, public extension_chain_t { + public: + + void checkid_immediate(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0) { + server_t::checkid_immediate(pin,return_to,pout,this); + } + void checkid_setup(const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0) { + server_t::checkid_setup(pin,return_to,pout,this); + } + void checkid_(mode_t mode,const params_t& pin,string& return_to,params_t& pout,extension_t *ext=0) { + server_t::checkid_(mode,pin,return_to,pout,this); + } + }; + +} + +#endif /* __OPKELE_XSERVER_H */ |