Source for file AX.php

Documentation is available at AX.php

  1. <?php
  2. /**
  3.  * OpenID_Extension_AX
  4.  * 
  5.  * PHP Version 5.2.0+
  6.  * 
  7.  * @uses      OpenID_Extension
  8.  * @category  Auth
  9.  * @package   OpenID
  10.  * @author    Bill Shupp <hostmaster@shupp.org>
  11.  * @copyright 2009 Bill Shupp
  12.  * @license   http://www.opensource.org/licenses/bsd-license.php FreeBSD
  13.  * @link      http://pearopenid.googlecode.com
  14.  */
  15.  
  16. /**
  17.  * Required files
  18.  */
  19. require_once 'OpenID/Extension.php';
  20. require_once 'Validate.php';
  21.  
  22. /**
  23.  * Support for the AX extension
  24.  * 
  25.  * @uses      OpenID_Extension
  26.  * @category  Auth
  27.  * @package   OpenID
  28.  * @author    Bill Shupp <hostmaster@shupp.org>
  29.  * @copyright 2009 Bill Shupp
  30.  * @license   http://www.opensource.org/licenses/bsd-license.php FreeBSD
  31.  * @link      http://pearopenid.googlecode.com
  32.  */
  33. {
  34.     /**
  35.      * URL for the openid.ns.ax parameter
  36.      * 
  37.      * @var string 
  38.      */
  39.     protected $namespace ='http://openid.net/srv/ax/1.0';
  40.  
  41.     /**
  42.      * Alias string to use
  43.      * 
  44.      * @var string 
  45.      */
  46.     protected $alias = 'ax';
  47.  
  48.     /**
  49.      * Valid modes for AX requests/responses
  50.      * 
  51.      * @var array 
  52.      */
  53.     protected $validModes = array(
  54.         'fetch_request',
  55.         'fetch_response',
  56.         'store_request',
  57.         'store_response_success',
  58.         'store_response_failure',
  59.     );
  60.  
  61.     /**
  62.      * Adds some validation checking when setting a key, then calls the parent set()
  63.      * 
  64.      * @param string $key   Message key
  65.      * @param mixed  $value Key's value
  66.      * 
  67.      * @return void 
  68.      */
  69.     public function set($key$value)
  70.     {
  71.         if (strpos($key'mode'=== 0
  72.             && !in_array($value$this->validModes)) {
  73.  
  74.             throw new OpenID_Extension_Exception('Invalid AX mode: ' $key);
  75.         }
  76.  
  77.         if (preg_match('/^type[.]/'$key)
  78.             && !Validate::uri($value)) {
  79.  
  80.             throw new OpenID_Extension_Exception($key ' is not a valid URI');
  81.         }
  82.         parent::set($key$value);
  83.     }
  84. }
  85. ?>

Documentation generated on Tue, 15 Dec 2009 19:00:51 -0800 by phpDocumentor 1.4.3