-rw-r--r-- | include/opkele/consumer.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/opkele/consumer.h b/include/opkele/consumer.h index 3c0ed5f..9932315 100644 --- a/include/opkele/consumer.h +++ b/include/opkele/consumer.h @@ -35,103 +35,108 @@ namespace opkele { * store. * @param server the OpenID server * @param handle association handle * @return the autho_ptr<> for the newly allocated association_t object * @throw failed_lookup in case of error */ virtual assoc_t retrieve_assoc(const string& server,const string& handle) = 0; /** * invalidate stored association. The function should be overridden * in the real implementation of the consumer. * @param server the OpenID server * @param handle association handle */ virtual void invalidate_assoc(const string& server,const string& handle) = 0; /** * retrieve any unexpired association for the server. If the * function is not overridden in the real implementation, the new * association will be established for each request. * @param server the OpenID server * @return the auto_ptr<> for the newly allocated association_t object * @throw failed_lookup in case of absence of the handle */ 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 * @return the location string * @throw exception in case of error */ string checkid_immediate(const string& identity,const string& return_to,const string& trust_root=""); /** * 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 * @return the location string * @throw exception in case of error */ string checkid_setup(const string& identity,const string& return_to,const string& trust_root=""); /** * 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 * @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=""); /** * verify the id_res response * @param pin the response parameters * @param identity the identity being checked (if not specified, 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=""); /** * 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 */ |