Exemple #1
0
 /**
  * Constructor for this authentication source.
  *
  * @param array $info  Information about this authentication source.
  * @param array $config  Configuration.
  */
 public function __construct($info, $config)
 {
     assert('is_array($info)');
     assert('is_array($config)');
     // Call the parent constructor first, as required by the interface
     parent::__construct($info, $config);
     $this->users = array();
     // Validate and parse our configuration
     foreach ($config as $userpass => $attributes) {
         if (!is_string($userpass)) {
             throw new Exception('Invalid <username>:<passwordhash> for authentication source ' . $this->authId . ': ' . $userpass);
         }
         $userpass = explode(':', $userpass, 2);
         if (count($userpass) !== 2) {
             throw new Exception('Invalid <username>:<passwordhash> for authentication source ' . $this->authId . ': ' . $userpass[0]);
         }
         $username = $userpass[0];
         $passwordhash = $userpass[1];
         try {
             $attributes = SimpleSAML\Utils\Attributes::normalizeAttributesArray($attributes);
         } catch (Exception $e) {
             throw new Exception('Invalid attributes for user ' . $username . ' in authentication source ' . $this->authId . ': ' . $e->getMessage());
         }
         $this->users[$username . ':' . $passwordhash] = $attributes;
     }
 }
Exemple #2
0
 /**
  * Constructor for this authentication source.
  *
  * @param array $info  Information about this authentication source.
  * @param array $config  Configuration.
  */
 public function __construct($info, $config)
 {
     assert('is_array($info)');
     assert('is_array($config)');
     // Call the parent constructor first, as required by the interface
     parent::__construct($info, $config);
     // Parse attributes
     try {
         $this->attributes = SimpleSAML\Utils\Attributes::normalizeAttributesArray($config);
     } catch (Exception $e) {
         throw new Exception('Invalid attributes for authentication source ' . $this->authId . ': ' . $e->getMessage());
     }
 }
 /**
  * Constructor for this authentication source.
  *
  * @param array $info  Information about this authentication source.
  * @param array $config  Configuration.
  */
 public function __construct($info, $config)
 {
     assert('is_array($info)');
     assert('is_array($config)');
     /* Call the parent constructor first, as required by the interface. */
     parent::__construct($info, $config);
     $this->users = array();
     if (!($htpasswd = file_get_contents($config['htpasswd_file']))) {
         throw new Exception('Could not read ' . $config['htpasswd_file']);
     }
     $this->users = explode("\n", trim($htpasswd));
     try {
         $this->attributes = SimpleSAML\Utils\Attributes::normalizeAttributesArray($config['static_attributes']);
     } catch (Exception $e) {
         throw new Exception('Invalid static_attributes in authentication source ' . $this->authId . ': ' . $e->getMessage());
     }
 }
 /**
  * @deprecated This method will be removed in SSP 2.0. Please use
  * SimpleSAML\Utils\Attributes::normalizeAttributesArray() instead.
  */
 public static function parseAttributes($attributes)
 {
     return SimpleSAML\Utils\Attributes::normalizeAttributesArray($attributes);
 }
 /**
  * Test the normalizeAttributesArray() function.
  */
 public function testNormalizeAttributesArray()
 {
     $attributes = array('key1' => 'value1', 'key2' => array('value2', 'value3'), 'key3' => 'value1');
     $expected = array('key1' => array('value1'), 'key2' => array('value2', 'value3'), 'key3' => array('value1'));
     $this->assertEquals($expected, SimpleSAML\Utils\Attributes::normalizeAttributesArray($attributes), 'Attribute array normalization failed');
 }