ILIAS  release_4-4 Revision
All Data Structures Namespaces Files Functions Variables Modules Pages
Auth_OpenID_Decoder Class Reference
+ Collaboration diagram for Auth_OpenID_Decoder:

Public Member Functions

 Auth_OpenID_Decoder ($server)
 
 decode ($query)
 Given an HTTP query in an array (key-value pairs), decode it into an Auth_OpenID_Request object. More...
 
 defaultDecoder ($message)
 

Detailed Description

Definition at line 1522 of file Server.php.

Member Function Documentation

◆ Auth_OpenID_Decoder()

Auth_OpenID_Decoder::Auth_OpenID_Decoder (   $server)

Definition at line 1524 of file Server.php.

References $server.

1525  {
1526  $this->server = $server;
1527 
1528  $this->handlers = array(
1529  'checkid_setup' => 'Auth_OpenID_CheckIDRequest',
1530  'checkid_immediate' => 'Auth_OpenID_CheckIDRequest',
1531  'check_authentication' => 'Auth_OpenID_CheckAuthRequest',
1532  'associate' => 'Auth_OpenID_AssociateRequest'
1533  );
1534  }
$server

◆ decode()

Auth_OpenID_Decoder::decode (   $query)

Given an HTTP query in an array (key-value pairs), decode it into an Auth_OpenID_Request object.

Definition at line 1540 of file Server.php.

References $query, Auth_OpenID\arrayGet(), Auth_OpenID_OPENID2_NS, Auth_OpenID_OPENID_NS, Auth_OpenID_ServerError\Auth_OpenID_ServerError(), Auth_OpenID_Message\fromPostArgs(), and Auth_OpenID\isFailure().

1541  {
1542  if (!$query) {
1543  return null;
1544  }
1545 
1547 
1548  if ($message === null) {
1549  /*
1550  * It's useful to have a Message attached to a
1551  * ProtocolError, so we override the bad ns value to build
1552  * a Message out of it. Kinda kludgy, since it's made of
1553  * lies, but the parts that aren't lies are more useful
1554  * than a 'None'.
1555  */
1556  $old_ns = $query['openid.ns'];
1557 
1558  $query['openid.ns'] = Auth_OpenID_OPENID2_NS;
1560  return new Auth_OpenID_ServerError(
1561  $message,
1562  sprintf("Invalid OpenID namespace URI: %s", $old_ns));
1563  }
1564 
1565  $mode = $message->getArg(Auth_OpenID_OPENID_NS, 'mode');
1566  if (!$mode) {
1567  return new Auth_OpenID_ServerError($message,
1568  "No mode value in message");
1569  }
1570 
1571  if (Auth_OpenID::isFailure($mode)) {
1572  return new Auth_OpenID_ServerError($message,
1573  $mode->message);
1574  }
1575 
1576  $handlerCls = Auth_OpenID::arrayGet($this->handlers, $mode,
1577  $this->defaultDecoder($message));
1578 
1579  if (!is_a($handlerCls, 'Auth_OpenID_ServerError')) {
1580  return call_user_func_array(array($handlerCls, 'fromMessage'),
1581  array($message, $this->server));
1582  } else {
1583  return $handlerCls;
1584  }
1585  }
const Auth_OpenID_OPENID_NS
Definition: Message.php:42
const Auth_OpenID_OPENID2_NS
Definition: Message.php:35
defaultDecoder($message)
Definition: Server.php:1587
static fromPostArgs($args)
Definition: Message.php:444
static arrayGet($arr, $key, $fallback=null)
Convenience function for getting array values.
Definition: OpenID.php:242
static isFailure($thing)
Return true if $thing is an Auth_OpenID_FailureResponse object; false if not.
Definition: OpenID.php:118
+ Here is the call graph for this function:

◆ defaultDecoder()

Auth_OpenID_Decoder::defaultDecoder (   $message)

Definition at line 1587 of file Server.php.

References Auth_OpenID_OPENID_NS, Auth_OpenID_ServerError\Auth_OpenID_ServerError(), and Auth_OpenID\isFailure().

1588  {
1589  $mode = $message->getArg(Auth_OpenID_OPENID_NS, 'mode');
1590 
1591  if (Auth_OpenID::isFailure($mode)) {
1592  return new Auth_OpenID_ServerError($message,
1593  $mode->message);
1594  }
1595 
1596  return new Auth_OpenID_ServerError($message,
1597  sprintf("Unrecognized OpenID mode %s", $mode));
1598  }
const Auth_OpenID_OPENID_NS
Definition: Message.php:42
static isFailure($thing)
Return true if $thing is an Auth_OpenID_FailureResponse object; false if not.
Definition: OpenID.php:118
+ Here is the call graph for this function:

The documentation for this class was generated from the following file: