Commit 8a8abd2d authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Extraction méthode statique utile extractUsernamesUsurpation() qui détecte et...

Extraction méthode statique utile extractUsernamesUsurpation() qui détecte et extrait les identifiants usurpé et usurpateur éventuels.
parent 140152ff
......@@ -89,6 +89,29 @@ class Ldap extends AbstractAdapter implements ServiceManagerAwareInterface, Even
$this->getEventManager()->trigger('userAuthenticated', $e);
}
/**
* Extrait le loginUsurpateur et le loginUsurpé si l'identifiant spécifé est de la forme
* "loginUsurpateur=loginUsurpé".
*
* @param string $identifiant Identifiant, éventuellement de la forme "loginUsurpateur=loginUsurpé"
* @return array
* [loginUsurpateur, loginUsurpé] si l'identifiant est de la forme "loginUsurpateur=loginUsurpé" ;
* [] sinon.
*/
static public function extractUsernamesUsurpation($identifiant)
{
if (strpos($identifiant, self::USURPATION_USERNAMES_SEP) > 0) {
list($identifiant, $usernameUsurpe) = explode(self::USURPATION_USERNAMES_SEP, $identifiant, 2);
return [
$identifiant,
$usernameUsurpe
];
}
return [];
}
/**
* Authentifie l'identifiant et le mot de passe spécifiés.
*
......@@ -102,8 +125,15 @@ class Ldap extends AbstractAdapter implements ServiceManagerAwareInterface, Even
// - le format attendu est "loginUsurpateur=loginUsurpé"
// - le mot de passe attendu est celui du compte usurpateur (loginUsurpateur)
$this->usernameUsurpe = null;
if (strpos($username, self::USURPATION_USERNAMES_SEP) > 0) {
list($username, $this->usernameUsurpe) = explode(self::USURPATION_USERNAMES_SEP, $username, 2);
// if (strpos($username, self::USURPATION_USERNAMES_SEP) > 0) {
// list($username, $this->usernameUsurpe) = explode(self::USURPATION_USERNAMES_SEP, $username, 2);
// if (!in_array($username, $this->getOptions()->getUsurpationAllowedUsernames())) {
// $this->usernameUsurpe = null;
// }
// }
$usernames = self::extractUsernamesUsurpation($username);
if (count($usernames) === 2) {
list ($username, $this->usernameUsurpe) = $usernames;
if (!in_array($username, $this->getOptions()->getUsurpationAllowedUsernames())) {
$this->usernameUsurpe = null;
}
......@@ -226,6 +256,10 @@ class Ldap extends AbstractAdapter implements ServiceManagerAwareInterface, Even
*/
public function setEventManager(EventManagerInterface $eventManager)
{
$eventManager->setIdentifiers([
__NAMESPACE__,
__CLASS__,
]);
$this->eventManager = $eventManager;
return $this;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment