Auth_OpenID_AssociateRequest Klassenreferenz

Abgeleitet von Auth_OpenID_Request.

Zusammengehörigkeiten von Auth_OpenID_AssociateRequest:

Collaboration graph
[Legende]

Öffentliche Methoden

 getSessionClasses ()
 Auth_OpenID_AssociateRequest (&$session, $assoc_type)
 fromMessage ($message, $server=null)
 answer ($assoc)
 answerUnsupported ($text_message, $preferred_association_type=null, $preferred_session_type=null)

Datenfelder

 $mode = "associate"

Ausführliche Beschreibung

Definiert in Zeile 582 der Datei Server.php.


Dokumentation der Elementfunktionen

answer ( assoc  ) 

Definiert in Zeile 652 der Datei Server.php.

00653     {
00654         $response = new Auth_OpenID_ServerResponse($this);
00655         $response->fields->updateArgs(Auth_OpenID_OPENID_NS,
00656            array(
00657                  'expires_in' => sprintf('%d', $assoc->getExpiresIn()),
00658                  'assoc_type' => $this->assoc_type,
00659                  'assoc_handle' => $assoc->handle));
00660 
00661         $response->fields->updateArgs(Auth_OpenID_OPENID_NS,
00662            $this->session->answer($assoc->secret));
00663 
00664         if (! ($this->session->session_type == 'no-encryption' 
00665                && $this->message->isOpenID1())) {
00666             $response->fields->setArg(Auth_OpenID_OPENID_NS,
00667                                       'session_type',
00668                                       $this->session->session_type);
00669         }
00670 
00671         return $response;
00672     }

answerUnsupported ( text_message,
preferred_association_type = null,
preferred_session_type = null 
)

Definiert in Zeile 674 der Datei Server.php.

00677     {
00678         if ($this->message->isOpenID1()) {
00679             return new Auth_OpenID_ServerError($this->message);
00680         }
00681 
00682         $response = new Auth_OpenID_ServerResponse($this);
00683         $response->fields->setArg(Auth_OpenID_OPENID_NS,
00684                                   'error_code', 'unsupported-type');
00685         $response->fields->setArg(Auth_OpenID_OPENID_NS,
00686                                   'error', $text_message);
00687 
00688         if ($preferred_association_type) {
00689             $response->fields->setArg(Auth_OpenID_OPENID_NS,
00690                                       'assoc_type',
00691                                       $preferred_association_type);
00692         }
00693 
00694         if ($preferred_session_type) {
00695             $response->fields->setArg(Auth_OpenID_OPENID_NS,
00696                                       'session_type',
00697                                       $preferred_session_type);
00698         }
00699 
00700         return $response;
00701     }

Auth_OpenID_AssociateRequest ( &$  session,
assoc_type 
)

Definiert in Zeile 593 der Datei Server.php.

00594     {
00595         $this->session =& $session;
00596         $this->namespace = Auth_OpenID_OPENID2_NS;
00597         $this->assoc_type = $assoc_type;
00598     }

fromMessage ( message,
server = null 
)

Definiert in Zeile 600 der Datei Server.php.

00601     {
00602         if ($message->isOpenID1()) {
00603             $session_type = $message->getArg(Auth_OpenID_OPENID_NS,
00604                                              'session_type');
00605 
00606             if ($session_type == 'no-encryption') {
00607                 // oidutil.log('Received OpenID 1 request with a no-encryption '
00608                 //             'assocaition session type. Continuing anyway.')
00609             } else if (!$session_type) {
00610                 $session_type = 'no-encryption';
00611             }
00612         } else {
00613             $session_type = $message->getArg(Auth_OpenID_OPENID_NS,
00614                                              'session_type');
00615             if ($session_type === null) {
00616                 return new Auth_OpenID_ServerError($message,
00617                   "session_type missing from request");
00618             }
00619         }
00620 
00621         $session_class = Auth_OpenID::arrayGet(
00622            Auth_OpenID_AssociateRequest::getSessionClasses(),
00623            $session_type);
00624 
00625         if ($session_class === null) {
00626             return new Auth_OpenID_ServerError($message,
00627                                                "Unknown session type " .
00628                                                $session_type);
00629         }
00630 
00631         $session = call_user_func(array($session_class, 'fromMessage'),
00632                                   $message);
00633         if (is_a($session, 'Auth_OpenID_ServerError')) {
00634             return $session;
00635         }
00636 
00637         $assoc_type = $message->getArg(Auth_OpenID_OPENID_NS,
00638                                        'assoc_type', 'HMAC-SHA1');
00639 
00640         if (!in_array($assoc_type, $session->allowed_assoc_types)) {
00641             $fmt = "Session type %s does not support association type %s";
00642             return new Auth_OpenID_ServerError($message,
00643               sprintf($fmt, $session_type, $assoc_type));
00644         }
00645 
00646         $obj = new Auth_OpenID_AssociateRequest($session, $assoc_type);
00647         $obj->message = $message;
00648         $obj->namespace = $message->getOpenIDNamespace();
00649         return $obj;
00650     }

getSessionClasses (  ) 

Definiert in Zeile 585 der Datei Server.php.

00586     {
00587         return array(
00588           'no-encryption' => 'Auth_OpenID_PlainTextServerSession',
00589           'DH-SHA1' => 'Auth_OpenID_DiffieHellmanSHA1ServerSession',
00590           'DH-SHA256' => 'Auth_OpenID_DiffieHellmanSHA256ServerSession');
00591     }


Dokumentation der Datenelemente

$mode = "associate"

Erneute Implementation von Auth_OpenID_Request.

Definiert in Zeile 583 der Datei Server.php.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:
Copyright © 2003 - 2009 MyOOS [Shopsystem]. All rights reserved.
MyOOS [Shopsystem] is Free Software released under the GNU/GPL License.

Webmaster: info@r23.de (Impressum)
doxygen