mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-28 23:59:57 +09:00
#18541587 : remove openid_lib and replace it with janrain 1.2.3 (LGPL)
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7045 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
571766a8aa
commit
910785c86f
19 changed files with 499 additions and 3250 deletions
173
modules/member/php-openid-1.2.3/Auth/OpenID/XEStore.php
Normal file
173
modules/member/php-openid-1.2.3/Auth/OpenID/XEStore.php
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
<?php
|
||||
|
||||
require_once 'Auth/OpenID.php';
|
||||
require_once 'Auth/OpenID/Interface.php';
|
||||
require_once 'Auth/OpenID/HMACSHA1.php';
|
||||
|
||||
class Auth_OpenID_XEStore extends Auth_OpenID_OpenIDStore {
|
||||
|
||||
function Auth_OpenID_XEStore()
|
||||
{
|
||||
$this->max_nonce_age = 6 * 60 * 60;
|
||||
}
|
||||
|
||||
function destory()
|
||||
{
|
||||
}
|
||||
|
||||
function createAuthKey()
|
||||
{
|
||||
$auth_key = Auth_OpenID_CryptUtil::randomString($this->AUTH_KEY_LEN);
|
||||
$oModuleModel = &getModel('module');
|
||||
$memberConfig = $oModuleModel->getModuleConfig('member');
|
||||
$memberConfig->openid_authkey = $auth_key;
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->inesrtModuleConfig("module", $memberConfig);
|
||||
return $auth_key;
|
||||
}
|
||||
|
||||
function _readAuthKey()
|
||||
{
|
||||
$oModuleModel = &getModel('module');
|
||||
$memberConfig = $oModuleModel->getModuleConfig('member');
|
||||
return $memberConfig->openid_authkey;
|
||||
}
|
||||
|
||||
function getAuthKey()
|
||||
{
|
||||
$auth_key = $this->_readAuthKey();
|
||||
if ($auth_key === null) {
|
||||
$auth_key = $this->createAuthKey();
|
||||
|
||||
if (strlen($auth_key) != $this->AUTH_KEY_LEN) {
|
||||
$fmt = 'Got an invalid auth key from %s. Expected '.
|
||||
'%d-byte string. Got: %s';
|
||||
$msg = sprintf($fmt, $this->auth_key_name, $this->AUTH_KEY_LEN,
|
||||
$auth_key);
|
||||
trigger_error($msg, E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function storeNonce($nonce)
|
||||
{
|
||||
$args->nonce = $nonce;
|
||||
$args->expires = time();
|
||||
$output = executeQuery("member.insertOpenIdNonce", $args);
|
||||
}
|
||||
|
||||
function useNonce($nonce)
|
||||
{
|
||||
$args->nonce = $nonce;
|
||||
$output = executeQuery("member.getOpenIdNonce", $args);
|
||||
if($output->data)
|
||||
{
|
||||
$timestamp = $output->data->expires;
|
||||
$nonce_age = time() - $timestamp;
|
||||
|
||||
if ($nonce_age > $this->max_nonce_age) {
|
||||
$present = 0;
|
||||
} else {
|
||||
$present = 1;
|
||||
}
|
||||
$output = executeQuery("member.deleteOpenIdNonce", $args);
|
||||
}
|
||||
else
|
||||
{
|
||||
$present = 0;
|
||||
}
|
||||
|
||||
return $present;
|
||||
}
|
||||
|
||||
function storeAssociation($server_url, $association)
|
||||
{
|
||||
$args->server_url = $server_url;
|
||||
$args->handle = $association->handle;
|
||||
$args->secret = bin2hex($association->secret);
|
||||
$args->issued = $association->issued;
|
||||
$args->lifetime = $association->lifetime;
|
||||
$args->assoc_type = $association->assoc_type;
|
||||
executeQuery("member.insertOpenIdAssociation", $args);
|
||||
}
|
||||
|
||||
function _check_expire(&$assoc)
|
||||
{
|
||||
$assoc_o = new Auth_OpenID_Association($assoc->handle, $assoc->secret, $assoc->issued, $assoc->lifetime, $assoc->assoc_type);
|
||||
if ($assoc_o->getExpiresIn() == 0) {
|
||||
$this->removeAssociation($server_url, $assoc_o->handle);
|
||||
return null;
|
||||
}
|
||||
return $assoc_o;
|
||||
}
|
||||
|
||||
function hex2bin($h)
|
||||
{
|
||||
if (!is_string($h)) return null;
|
||||
$r='';
|
||||
for ($a=0; $a<strlen($h); $a+=2) { $r.=chr(hexdec($h{$a}.$h{($a+1)})); }
|
||||
return $r;
|
||||
}
|
||||
|
||||
function _get_assoc($server_url, $handle)
|
||||
{
|
||||
$args->server_url = $server_url;
|
||||
$args->handle = $handle;
|
||||
$output = executeQueryArray("member.getOpenIdAssociation", $args);
|
||||
if(!$output->data) return null;
|
||||
|
||||
if(count($output->data) == 1) {
|
||||
$assoc = array_shift($output->data);
|
||||
$assoc->secret = $this->hex2bin($assoc->secret);
|
||||
return $this->_check_expire($assoc);
|
||||
}
|
||||
|
||||
$res = null;
|
||||
foreach($output->data as $assoc)
|
||||
{
|
||||
if($res == null)
|
||||
{
|
||||
$res = $assoc;
|
||||
continue;
|
||||
}
|
||||
|
||||
$assoc->secret = $this->hex2bin($assoc->secret);
|
||||
$assoc_o = $this->_check_expire($assoc);
|
||||
if(!$assoc_o) continue;
|
||||
|
||||
if($res->issued < $assoc->issued)
|
||||
{
|
||||
$res = $assoc_o;
|
||||
}
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
function getAssociation($server_url, $handle = null)
|
||||
{
|
||||
$assoc = $this->_get_assoc($server_url, $handle);
|
||||
return $assoc;
|
||||
}
|
||||
|
||||
|
||||
function removeAssociation($server_url, $handle)
|
||||
{
|
||||
if ($this->_get_assoc($server_url, $handle) == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$args->server_url = $server_url;
|
||||
$args->handle = $handle;
|
||||
$output = executeQuery("member.deleteOpenIdAssociation", $args);
|
||||
return true;
|
||||
}
|
||||
|
||||
function reset()
|
||||
{
|
||||
$output = executeQuery("member.deleteOpenIdNonce");
|
||||
$output = executeQuery("member.deleteOpenIdAssociation");
|
||||
}
|
||||
}
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue