Added some of the standard directories darcs-hash:20080506151729-84dde-563da8505e06a7302041c93ab157ced31165876c.gz
		
			
				
	
	
		
			197 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			197 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * This file specifies the interface for PHP OpenID store implementations.
 | |
|  *
 | |
|  * PHP versions 4 and 5
 | |
|  *
 | |
|  * LICENSE: See the COPYING file included in this distribution.
 | |
|  *
 | |
|  * @package OpenID
 | |
|  * @author JanRain, Inc. <openid@janrain.com>
 | |
|  * @copyright 2005-2008 Janrain, Inc.
 | |
|  * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * This is the interface for the store objects the OpenID library
 | |
|  * uses. It is a single class that provides all of the persistence
 | |
|  * mechanisms that the OpenID library needs, for both servers and
 | |
|  * consumers.  If you want to create an SQL-driven store, please see
 | |
|  * then {@link Auth_OpenID_SQLStore} class.
 | |
|  *
 | |
|  * Change: Version 2.0 removed the storeNonce, getAuthKey, and isDumb
 | |
|  * methods, and changed the behavior of the useNonce method to support
 | |
|  * one-way nonces.
 | |
|  *
 | |
|  * @package OpenID
 | |
|  * @author JanRain, Inc. <openid@janrain.com>
 | |
|  */
 | |
| class Auth_OpenID_OpenIDStore {
 | |
|     /**
 | |
|      * This method puts an Association object into storage,
 | |
|      * retrievable by server URL and handle.
 | |
|      *
 | |
|      * @param string $server_url The URL of the identity server that
 | |
|      * this association is with. Because of the way the server portion
 | |
|      * of the library uses this interface, don't assume there are any
 | |
|      * limitations on the character set of the input string. In
 | |
|      * particular, expect to see unescaped non-url-safe characters in
 | |
|      * the server_url field.
 | |
|      *
 | |
|      * @param Association $association The Association to store.
 | |
|      */
 | |
|     function storeAssociation($server_url, $association)
 | |
|     {
 | |
|         trigger_error("Auth_OpenID_OpenIDStore::storeAssociation ".
 | |
|                       "not implemented", E_USER_ERROR);
 | |
|     }
 | |
| 
 | |
|     /*
 | |
|      * Remove expired nonces from the store.
 | |
|      *
 | |
|      * Discards any nonce from storage that is old enough that its
 | |
|      * timestamp would not pass useNonce().
 | |
|      *
 | |
|      * This method is not called in the normal operation of the
 | |
|      * library.  It provides a way for store admins to keep their
 | |
|      * storage from filling up with expired data.
 | |
|      *
 | |
|      * @return the number of nonces expired
 | |
|      */
 | |
|     function cleanupNonces()
 | |
|     {
 | |
|         trigger_error("Auth_OpenID_OpenIDStore::cleanupNonces ".
 | |
|                       "not implemented", E_USER_ERROR);
 | |
|     }
 | |
| 
 | |
|     /*
 | |
|      * Remove expired associations from the store.
 | |
|      *
 | |
|      * This method is not called in the normal operation of the
 | |
|      * library.  It provides a way for store admins to keep their
 | |
|      * storage from filling up with expired data.
 | |
|      *
 | |
|      * @return the number of associations expired.
 | |
|      */
 | |
|     function cleanupAssociations()
 | |
|     {
 | |
|         trigger_error("Auth_OpenID_OpenIDStore::cleanupAssociations ".
 | |
|                       "not implemented", E_USER_ERROR);
 | |
|     }
 | |
| 
 | |
|     /*
 | |
|      * Shortcut for cleanupNonces(), cleanupAssociations().
 | |
|      *
 | |
|      * This method is not called in the normal operation of the
 | |
|      * library.  It provides a way for store admins to keep their
 | |
|      * storage from filling up with expired data.
 | |
|      */
 | |
|     function cleanup()
 | |
|     {
 | |
|         return array($this->cleanupNonces(),
 | |
|                      $this->cleanupAssociations());
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Report whether this storage supports cleanup
 | |
|      */
 | |
|     function supportsCleanup()
 | |
|     {
 | |
|         return true;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * This method returns an Association object from storage that
 | |
|      * matches the server URL and, if specified, handle. It returns
 | |
|      * null if no such association is found or if the matching
 | |
|      * association is expired.
 | |
|      *
 | |
|      * If no handle is specified, the store may return any association
 | |
|      * which matches the server URL. If multiple associations are
 | |
|      * valid, the recommended return value for this method is the one
 | |
|      * most recently issued.
 | |
|      *
 | |
|      * This method is allowed (and encouraged) to garbage collect
 | |
|      * expired associations when found. This method must not return
 | |
|      * expired associations.
 | |
|      *
 | |
|      * @param string $server_url The URL of the identity server to get
 | |
|      * the association for. Because of the way the server portion of
 | |
|      * the library uses this interface, don't assume there are any
 | |
|      * limitations on the character set of the input string.  In
 | |
|      * particular, expect to see unescaped non-url-safe characters in
 | |
|      * the server_url field.
 | |
|      *
 | |
|      * @param mixed $handle This optional parameter is the handle of
 | |
|      * the specific association to get. If no specific handle is
 | |
|      * provided, any valid association matching the server URL is
 | |
|      * returned.
 | |
|      *
 | |
|      * @return Association The Association for the given identity
 | |
|      * server.
 | |
|      */
 | |
|     function getAssociation($server_url, $handle = null)
 | |
|     {
 | |
|         trigger_error("Auth_OpenID_OpenIDStore::getAssociation ".
 | |
|                       "not implemented", E_USER_ERROR);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * This method removes the matching association if it's found, and
 | |
|      * returns whether the association was removed or not.
 | |
|      *
 | |
|      * @param string $server_url The URL of the identity server the
 | |
|      * association to remove belongs to. Because of the way the server
 | |
|      * portion of the library uses this interface, don't assume there
 | |
|      * are any limitations on the character set of the input
 | |
|      * string. In particular, expect to see unescaped non-url-safe
 | |
|      * characters in the server_url field.
 | |
|      *
 | |
|      * @param string $handle This is the handle of the association to
 | |
|      * remove. If there isn't an association found that matches both
 | |
|      * the given URL and handle, then there was no matching handle
 | |
|      * found.
 | |
|      *
 | |
|      * @return mixed Returns whether or not the given association existed.
 | |
|      */
 | |
|     function removeAssociation($server_url, $handle)
 | |
|     {
 | |
|         trigger_error("Auth_OpenID_OpenIDStore::removeAssociation ".
 | |
|                       "not implemented", E_USER_ERROR);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Called when using a nonce.
 | |
|      *
 | |
|      * This method should return C{True} if the nonce has not been
 | |
|      * used before, and store it for a while to make sure nobody
 | |
|      * tries to use the same value again.  If the nonce has already
 | |
|      * been used, return C{False}.
 | |
|      *
 | |
|      * Change: In earlier versions, round-trip nonces were used and a
 | |
|      * nonce was only valid if it had been previously stored with
 | |
|      * storeNonce.  Version 2.0 uses one-way nonces, requiring a
 | |
|      * different implementation here that does not depend on a
 | |
|      * storeNonce call.  (storeNonce is no longer part of the
 | |
|      * interface.
 | |
|      *
 | |
|      * @param string $nonce The nonce to use.
 | |
|      *
 | |
|      * @return bool Whether or not the nonce was valid.
 | |
|      */
 | |
|     function useNonce($server_url, $timestamp, $salt)
 | |
|     {
 | |
|         trigger_error("Auth_OpenID_OpenIDStore::useNonce ".
 | |
|                       "not implemented", E_USER_ERROR);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Removes all entries from the store; implementation is optional.
 | |
|      */
 | |
|     function reset()
 | |
|     {
 | |
|     }
 | |
| 
 | |
| }
 | |
| ?>
 |