author | Michael Krelin <hacker@klever.net> | 2008-02-12 23:37:05 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2008-02-12 23:37:05 (UTC) |
commit | 2048be862b8619ddec90163af05e6472bf5175e4 (patch) (side-by-side diff) | |
tree | 74ab3384a2a088abe5748ab93cd2f65fa121e1ae | |
parent | a3eba4c33fee80fcf152dcbd198586e12b687e54 (diff) | |
download | libopkele-2048be862b8619ddec90163af05e6472bf5175e4.zip libopkele-2048be862b8619ddec90163af05e6472bf5175e4.tar.gz libopkele-2048be862b8619ddec90163af05e6472bf5175e4.tar.bz2 |
slight api improvement to ease caching of discovery information
* added opend_endpoint_output_iterator to types.h
* changed endpoint_discovery_iterator to the aforementioned iterator typedef
* added discover() virtual to prequeue_RP and made use thereof.
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | include/opkele/discovery.h | 3 | ||||
-rw-r--r-- | include/opkele/prequeue_rp.h | 8 | ||||
-rw-r--r-- | include/opkele/types.h | 3 | ||||
-rw-r--r-- | lib/prequeue_rp.cc | 9 |
4 files changed, 19 insertions, 4 deletions
diff --git a/include/opkele/discovery.h b/include/opkele/discovery.h index 4471597..f2721a6 100644 --- a/include/opkele/discovery.h +++ b/include/opkele/discovery.h @@ -86,6 +86,5 @@ namespace opkele { } - typedef util::output_iterator_proxy<openid_endpoint_t> - endpoint_discovery_iterator; + typedef openid_endpoint_output_iterator endpoint_discovery_iterator; string idiscover( diff --git a/include/opkele/prequeue_rp.h b/include/opkele/prequeue_rp.h index 68fe03d..6f1fda9 100644 --- a/include/opkele/prequeue_rp.h +++ b/include/opkele/prequeue_rp.h @@ -82,4 +82,12 @@ namespace opkele { void verify_OP(const string& OP, const string& claimed_id,const string& identity) const; + + /** + * Perform full discovery on identity + * @param it iterator used for feeding discovered endpoints back to caller + * @param id user supplied identity + * @returns normalized identity (canonical identifier can be found in endpoints) + */ + virtual const string discover(openid_endpoint_output_iterator it,const string& id) const; }; diff --git a/include/opkele/types.h b/include/opkele/types.h index 1f48362..1fab869 100644 --- a/include/opkele/types.h +++ b/include/opkele/types.h @@ -226,4 +226,7 @@ namespace opkele { }; + typedef util::output_iterator_proxy<openid_endpoint_t> + openid_endpoint_output_iterator; + } diff --git a/lib/prequeue_rp.cc b/lib/prequeue_rp.cc index 3aa960f..ed1ddfe 100644 --- a/lib/prequeue_rp.cc +++ b/lib/prequeue_rp.cc @@ -45,5 +45,5 @@ namespace opkele { void prequeue_RP::verify_OP(const string& OP,const string& claimed_id,const string& identity) const { try { - idiscover(OP_verifier(OP,identity),claimed_id); + discover(OP_verifier(OP,identity),claimed_id); throw id_res_unauthorized(OPKELE_CP_ "OP is not authorized to make an assertion regarding the identity"); @@ -68,5 +68,5 @@ namespace opkele { void prequeue_RP::initiate(const string& usi) { begin_queueing(); - set_normalized_id( idiscover(endpoint_queuer(*this),usi) ); + set_normalized_id( discover(endpoint_queuer(*this),usi) ); end_queueing(); } @@ -79,3 +79,8 @@ namespace opkele { } + const string prequeue_RP::discover(openid_endpoint_output_iterator it, + const string& id) const { + return idiscover(it,id); + } + } |