Auth_OpenID_AssociateRequest::getSessionClasses PHP Метод

getSessionClasses() статический публичный Метод

static public getSessionClasses ( )
    static function getSessionClasses()
    {
        return array('no-encryption' => 'Auth_OpenID_PlainTextServerSession', 'DH-SHA1' => 'Auth_OpenID_DiffieHellmanSHA1ServerSession', 'DH-SHA256' => 'Auth_OpenID_DiffieHellmanSHA256ServerSession');
    }

Usage Example

Пример #1
0
	function fromMessage($message, $server=null)
	{
		if ($message->isOpenID1()) {
			$session_type = $message->getArg(Auth_OpenID_OPENID_NS,
                                             'session_type');

			if ($session_type == 'no-encryption') {
				// oidutil.log('Received OpenID 1 request with a no-encryption '
				//             'assocaition session type. Continuing anyway.')
			} else if (!$session_type) {
				$session_type = 'no-encryption';
			}
		} else {
			$session_type = $message->getArg(Auth_OpenID_OPENID_NS,
                                             'session_type');
			if ($session_type === null) {
				return new Auth_OpenID_ServerError($message,
                  "session_type missing from request");
			}
		}

		$session_class = Auth_OpenID::arrayGet(
		Auth_OpenID_AssociateRequest::getSessionClasses(),
		$session_type);

		if ($session_class === null) {
			return new Auth_OpenID_ServerError($message,
                                               "Unknown session type " .
			$session_type);
		}

		$session = call_user_func(array($session_class, 'fromMessage'),
		$message);
		if (is_a($session, 'Auth_OpenID_ServerError')) {
			return $session;
		}

		$assoc_type = $message->getArg(Auth_OpenID_OPENID_NS,
                                       'assoc_type', 'HMAC-SHA1');

		if (!in_array($assoc_type, $session->allowed_assoc_types)) {
			$fmt = "Session type %s does not support association type %s";
			return new Auth_OpenID_ServerError($message,
			sprintf($fmt, $session_type, $assoc_type));
		}

		$obj = new Auth_OpenID_AssociateRequest($session, $assoc_type);
		$obj->message = $message;
		$obj->namespace = $message->getOpenIDNamespace();
		return $obj;
	}