-rw-r--r-- | include/Makefile.am | 4 | ||||
-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 |
5 files changed, 88 insertions, 8 deletions
diff --git a/include/Makefile.am b/include/Makefile.am index 2c190b8..f3551f5 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,14 +1,16 @@ nobase_include_HEADERS = \ opkele/acconfig.h \ opkele/opkele-config.h \ opkele/types.h \ opkele/association.h \ opkele/exception.h \ opkele/server.h \ opkele/consumer.h \ opkele/extension.h \ opkele/sreg.h \ - opkele/extension_chain.h + opkele/extension_chain.h \ + opkele/xconsumer.h \ + opkele/xserver.h EXTRA_DIST = \ opkele/data.h \ opkele/util.h 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 @@ -74,69 +74,69 @@ namespace opkele { * @param server the OpenID server * @return the auto_ptr<> for the newly allocated association_t * object, representing established association * @throw exception in case of error */ assoc_t associate(const string& server); /** * prepare the parameters for the checkid_immediate * 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_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); /** * make URL canonical, by adding http:// and trailing slash, if needed. * @param url * @return canonicalized url */ static string canonicalize(const string& url); }; 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 @@ -51,49 +51,49 @@ namespace opkele { /** * process the associate request. * @param pin the incoming request parameters * @param pout the store for the response parameters */ void associate(const params_t& pin,params_t& pout); /** * process the checkid_immediate 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_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); }; } #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 @@ +#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 */ |