Inheritance: extends Auth_OpenID_Request
コード例 #1
0
ファイル: Server.php プロジェクト: aprilchild/aprilchild
 function test_associate()
 {
     if (!defined('Auth_OpenID_NO_MATH_SUPPORT')) {
         $request = Auth_OpenID_AssociateRequest::fromQuery(array());
         $response = $this->server->openid_associate($request);
         $this->assertTrue(array_key_exists('assoc_handle', $response->fields));
     }
 }
コード例 #2
0
ファイル: Server.php プロジェクト: hoalangoc/ftf
	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;
	}
コード例 #3
0
 function test_missingSessionTypeOpenID2()
 {
     // Make sure session_type is required in OpenID 2
     $msg = Auth_OpenID_Message::fromPostArgs(array('openid.ns' => Auth_OpenID_OPENID2_NS));
     $result = Auth_OpenID_AssociateRequest::fromMessage($msg);
     $this->assertTrue(is_a($result, 'Auth_OpenID_ServerError'));
 }