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()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
}
|
||
|
?>
|