summaryrefslogtreecommitdiffabout
path: root/include
Side-by-side diff
Diffstat (limited to 'include') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/basic_rp.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/opkele/basic_rp.h b/include/opkele/basic_rp.h
index d5356aa..d096e0a 100644
--- a/include/opkele/basic_rp.h
+++ b/include/opkele/basic_rp.h
@@ -1,63 +1,99 @@
#ifndef __OPKELE_BASIC_RP_H
#define __OPKELE_BASIC_RP_H
#include <string>
#include <opkele/types.h>
#include <opkele/extension.h>
namespace opkele {
using std::string;
class basic_RP {
public:
+ /**
+ * Claimed identifier from a parsed id_res message.
+ */
+ string claimed_id;
+ /**
+ * OP-Local identifier from a parsed id_res message.
+ */
+ string identity;
virtual ~basic_RP() { }
+ void reset_vars();
+
+ /**
+ * @name Assertion information retrieval
+ * Retrieval of the information passed with openid message
+ * @{
+ */
+ /**
+ * Find out if the assertion is about identity
+ * @return true if so
+ */
+ bool has_identity() const;
+ /**
+ * Get claimed identifier supplied with the request
+ * @return claimed identifier
+ * @throw non_identity if request is not about identity
+ */
+ const string& get_claimed_id() const;
+ /**
+ * Get the identity (OP-Local identifier) confirmed
+ * @return identity
+ * @throw non_identity if request is not about identity
+ */
+ const string& get_identity() const;
+ /**
+ * @}
+ */
+
/**
* @name Global persistent store API
* These are functions related to the associations with OP storage
* and retrieval and nonce records. They provide an interface to
* the persistent storage which is shared by all sessions. If the
* implementor prefers the dumb mode instead, the function should
* throw dumb_RP exception instead.
* @see opkele::dumb_RP
* @{
*/
/**
* Store association and return allocated association object.
* @param OP OP endpoint
* @param handle association handle
* @param type association type
* @param secret association secret
* @params expires_in the number of seconds association expires in
* @return the association object
* @throw dumb_RP for dumb RP
*/
virtual assoc_t store_assoc(
const string& OP,const string& handle,
const string& type,const secret_t& secret,
int expires_in) = 0;
/**
* Find valid unexpired association with an OP.
* @param OP OP endpoint URL
* @return association found
* @throw failed_lookup if no association found
* @throw dumb_RP for dumb RP
*/
virtual assoc_t find_assoc(
const string& OP) = 0;
/**
* Retrieve valid association handle for an OP by handle.
* @param OP OP endpoint URL
* @param handle association handle
* @return association found
* @throw failed_lookup if no association found
* @throw dumb_RP for dumb RP
*/
virtual assoc_t retrieve_assoc(
const string& OP,const string& handle) = 0;
/**
* Invalidate association with OP
* @param OP OP endpoint URL
* @param handle association handle
* @throw dumb_RP for dumb RP