diff options
author | Jaime Perez Crespo <jaime.perez@uninett.no> | 2015-08-30 18:41:57 +0200 |
---|---|---|
committer | Jaime Perez Crespo <jaime.perez@uninett.no> | 2015-08-30 18:41:57 +0200 |
commit | a72da2e3d9a575ab0e09c0e8f656ae6f0007b9e1 (patch) | |
tree | 033b2e2face30c547bec5e71ea18c299b8ccfb89 | |
parent | 83e18ffb0d7684f02e51400e35884efddc9f879f (diff) | |
download | simplesamlphp-a72da2e3d9a575ab0e09c0e8f656ae6f0007b9e1.zip simplesamlphp-a72da2e3d9a575ab0e09c0e8f656ae6f0007b9e1.tar.gz simplesamlphp-a72da2e3d9a575ab0e09c0e8f656ae6f0007b9e1.tar.bz2 |
Reformat sspmod_saml_Auth_Process_PersistentNameID and fix some phpdoc comments.
-rw-r--r-- | modules/saml/lib/Auth/Process/PersistentNameID.php | 130 |
1 files changed, 71 insertions, 59 deletions
diff --git a/modules/saml/lib/Auth/Process/PersistentNameID.php b/modules/saml/lib/Auth/Process/PersistentNameID.php index 255764f..0ef4f47 100644 --- a/modules/saml/lib/Auth/Process/PersistentNameID.php +++ b/modules/saml/lib/Auth/Process/PersistentNameID.php @@ -1,78 +1,90 @@ <?php + /** - * Authproc filter to generate a persistent NameID. + * Authentication processing filter to generate a persistent NameID. * - * @package simpleSAMLphp + * @package SimpleSAMLphp */ -class sspmod_saml_Auth_Process_PersistentNameID extends sspmod_saml_BaseNameIDGenerator { - - /** - * Which attribute contains the unique identifier of the user. - * - * @var string - */ - private $attribute; +class sspmod_saml_Auth_Process_PersistentNameID extends sspmod_saml_BaseNameIDGenerator +{ + /** + * Which attribute contains the unique identifier of the user. + * + * @var string + */ + private $attribute; - /** - * Initialize this filter, parse configuration. - * - * @param array $config Configuration information about this filter. - * @param mixed $reserved For future use. - */ - public function __construct($config, $reserved) { - parent::__construct($config, $reserved); - assert('is_array($config)'); - $this->format = SAML2_Const::NAMEID_PERSISTENT; + /** + * Initialize this filter, parse configuration. + * + * @param array $config Configuration information about this filter. + * @param mixed $reserved For future use. + * + * @throws SimpleSAML_Error_Exception If the required option 'attribute' is missing. + */ + public function __construct($config, $reserved) + { + parent::__construct($config, $reserved); + assert('is_array($config)'); - if (!isset($config['attribute'])) { - throw new SimpleSAML_Error_Exception('PersistentNameID: Missing required option \'attribute\'.'); - } - $this->attribute = $config['attribute']; - } + $this->format = SAML2_Const::NAMEID_PERSISTENT; + if (!isset($config['attribute'])) { + throw new SimpleSAML_Error_Exception("PersistentNameID: Missing required option 'attribute'."); + } + $this->attribute = $config['attribute']; + } - /** - * Get the NameID value. - * - * @return string|NULL The NameID value. - */ - protected function getValue(array &$state) { - if (!isset($state['Destination']['entityid'])) { - SimpleSAML_Logger::warning('No SP entity ID - not generating persistent NameID.'); - return NULL; - } - $spEntityId = $state['Destination']['entityid']; + /** + * Get the NameID value. + * + * @param array $state The state array. + * @return string|null The NameID value. + */ + protected function getValue(array &$state) + { - if (!isset($state['Source']['entityid'])) { - SimpleSAML_Logger::warning('No IdP entity ID - not generating persistent NameID.'); - return NULL; - } - $idpEntityId = $state['Source']['entityid']; + if (!isset($state['Destination']['entityid'])) { + SimpleSAML_Logger::warning('No SP entity ID - not generating persistent NameID.'); + return null; + } + $spEntityId = $state['Destination']['entityid']; - if (!isset($state['Attributes'][$this->attribute]) || count($state['Attributes'][$this->attribute]) === 0) { - SimpleSAML_Logger::warning('Missing attribute ' . var_export($this->attribute, TRUE) . ' on user - not generating persistent NameID.'); - return NULL; - } - if (count($state['Attributes'][$this->attribute]) > 1) { - SimpleSAML_Logger::warning('More than one value in attribute ' . var_export($this->attribute, TRUE) . ' on user - not generating persistent NameID.'); - return NULL; - } - $uid = array_values($state['Attributes'][$this->attribute]); /* Just in case the first index is no longer 0. */ - $uid = $uid[0]; + if (!isset($state['Source']['entityid'])) { + SimpleSAML_Logger::warning('No IdP entity ID - not generating persistent NameID.'); + return null; + } + $idpEntityId = $state['Source']['entityid']; - $secretSalt = SimpleSAML\Utils\Config::getSecretSalt(); + if (!isset($state['Attributes'][$this->attribute]) || count($state['Attributes'][$this->attribute]) === 0) { + SimpleSAML_Logger::warning( + 'Missing attribute '.var_export($this->attribute, true). + ' on user - not generating persistent NameID.' + ); + return null; + } + if (count($state['Attributes'][$this->attribute]) > 1) { + SimpleSAML_Logger::warning( + 'More than one value in attribute '.var_export($this->attribute, true). + ' on user - not generating persistent NameID.' + ); + return null; + } + $uid = array_values($state['Attributes'][$this->attribute]); // just in case the first index is no longer 0 + $uid = $uid[0]; - $uidData = 'uidhashbase' . $secretSalt; - $uidData .= strlen($idpEntityId) . ':' . $idpEntityId; - $uidData .= strlen($spEntityId) . ':' . $spEntityId; - $uidData .= strlen($uid) . ':' . $uid; - $uidData .= $secretSalt; + $secretSalt = SimpleSAML\Utils\Config::getSecretSalt(); - return sha1($uidData); - } + $uidData = 'uidhashbase'.$secretSalt; + $uidData .= strlen($idpEntityId).':'.$idpEntityId; + $uidData .= strlen($spEntityId).':'.$spEntityId; + $uidData .= strlen($uid).':'.$uid; + $uidData .= $secretSalt; + return sha1($uidData); + } } |