summaryrefslogtreecommitdiffabout
path: root/include
authorMichael Krelin <hacker@klever.net>2007-01-12 00:28:16 (UTC)
committer Michael Krelin <hacker@klever.net>2007-01-12 00:28:16 (UTC)
commit4cc2e58186e8cd9b96a3573c92f6664064cf11fe (patch) (side-by-side diff)
tree762943dfd3db8b6c48d5b31418310962376746d3 /include
parentf5eb33d7a9c296e3fa7bde9b678f0e1027a9bf88 (diff)
downloadlibopkele-4cc2e58186e8cd9b96a3573c92f6664064cf11fe.zip
libopkele-4cc2e58186e8cd9b96a3573c92f6664064cf11fe.tar.gz
libopkele-4cc2e58186e8cd9b96a3573c92f6664064cf11fe.tar.bz2
extended server and consumer classes
Diffstat (limited to 'include') (more/less context) (ignore whitespace changes)
-rw-r--r--include/Makefile.am4
-rw-r--r--include/opkele/consumer.h8
-rw-r--r--include/opkele/server.h6
-rw-r--r--include/opkele/xconsumer.h41
-rw-r--r--include/opkele/xserver.h37
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
@@ -58,88 +58,88 @@ namespace opkele {
virtual assoc_t find_assoc(const string& server);
/**
* retrieve the metainformation contained in link tags from the
* page pointed by url. the function may implement caching of the
* information.
* @param url url to harvest for link tags
* @param server reference to the string object where to put
* openid.server value
* @param delegate reference to the string object where to put the
* openid.delegate value (if any)
*/
virtual void retrieve_links(const string& url,string& server,string& delegate);
/**
* perform the associate request to OpenID server.
* @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);
};
}
#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
@@ -35,65 +35,65 @@ namespace opkele {
* store.
* @param h association handle
* @return the auto_ptr<> for the newly allocated association_t object
* @throw failed_lookup in case of failure
*/
virtual assoc_t retrieve_assoc(const string& h) = 0;
/**
* validate the identity.
* @param assoc association object
* @param pin incoming request parameters
* @param identity being verified
* @param trust_root presented in the request
* @throw exception if identity can not be confirmed
*/
virtual void validate(const association_t& assoc,const params_t& pin,const string& identity,const string& trust_root) = 0;
/**
* 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 */