From 4cc2e58186e8cd9b96a3573c92f6664064cf11fe Mon Sep 17 00:00:00 2001 From: Michael Krelin Date: Fri, 12 Jan 2007 00:28:16 +0000 Subject: extended server and consumer classes --- diff --git a/include/Makefile.am b/include/Makefile.am index 2c190b8..f3551f5 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -8,7 +8,9 @@ nobase_include_HEADERS = \ 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 @@ -87,7 +87,7 @@ namespace opkele { * @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. @@ -98,7 +98,7 @@ namespace opkele { * @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. @@ -110,7 +110,7 @@ namespace opkele { * @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 @@ -123,7 +123,7 @@ namespace opkele { * @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 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 @@ -64,7 +64,7 @@ namespace opkele { * @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 @@ -73,7 +73,7 @@ namespace opkele { * @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() @@ -85,7 +85,7 @@ namespace opkele { * @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 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 +#include + +/** + * @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 +#include + +/** + * @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 */ -- cgit v0.9.0.2