forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			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() | ||
|  |     { | ||
|  |     } | ||
|  | 
 | ||
|  | } |