public function test_authenticate_AddsUsernameSuffix_IfOneIsConfigured() { $adminUserName = null; $userName = null; $filterUsed = null; $filterBind = null; $mockLdapClient = $this->makeMockLdapClient(); $mockLdapClient->expects($this->any())->method('bind')->will($this->returnCallback(function ($bindResource) use(&$adminUserName, &$userName) { static $i = 0; if ($i == 0) { $adminUserName = $bindResource; } else { $userName = $bindResource; } ++$i; return true; })); $mockLdapClient->expects($this->any())->method('fetchAll')->will($this->returnCallback(function ($baseDn, $filter, $bind) use(&$filterUsed, &$filterBind) { $filterUsed = $filter; $filterBind = $bind; return array(array('uid' => LdapUsersTest::TEST_USER, 'dn' => 'thedn')); })); $this->ldapUsers->setLdapClientClass($mockLdapClient); $this->setSingleLdapServer(); $this->ldapUsers->setAuthenticationUsernameSuffix('whoa'); $this->ldapUsers->authenticate(self::TEST_USER, self::PASSWORD); $this->assertEquals(self::TEST_ADMIN_USER, $adminUserName); $this->assertEquals('thedn', $userName); $this->assertContains("uid=?", $filterUsed); $this->assertEquals(array(self::TEST_USER . 'whoa'), $filterBind); }
/** * Creates a new {@link LdapUsers} instance using config.ini.php values. * * @return LdapUsers */ public static function makeConfigured() { $result = new LdapUsers(); $result->setLdapServers(Config::getConfiguredLdapServers()); $usernameSuffix = Config::getLdapUserEmailSuffix(); if (!empty($usernameSuffix)) { $result->setAuthenticationUsernameSuffix($usernameSuffix); } $requiredMemberOf = Config::getRequiredMemberOf(); if (!empty($requiredMemberOf)) { $result->setAuthenticationRequiredMemberOf($requiredMemberOf); } $memberOfField = Config::getRequiredMemberOfField(); if (!empty($memberOfField)) { $result->setAuthenticationMemberOfField($memberOfField); } $filter = Config::getLdapUserFilter(); if (!empty($filter)) { $result->setAuthenticationLdapFilter($filter); } $timeoutSecs = Config::getLdapNetworkTimeout(); if (!empty($timeoutSecs)) { $result->setLdapNetworkTimeout($timeoutSecs); } $result->setLdapUserMapper(UserMapper::makeConfigured()); Log::debug("LdapUsers::%s: configuring with userEmailSuffix = %s, requiredMemberOf = %s, filter = %s, timeoutSecs = %s", __FUNCTION__, $usernameSuffix, $requiredMemberOf, $filter, $timeoutSecs); return $result; }
/** * Creates a new {@link LdapUsers} instance using config.ini.php values. * * @return LdapUsers */ public static function makeConfigured() { $result = new LdapUsers(); $result->setLdapServers(Config::getConfiguredLdapServers()); $usernameSuffix = Config::getLdapUserEmailSuffix(); if (!empty($usernameSuffix)) { $result->setAuthenticationUsernameSuffix($usernameSuffix); } $requiredMemberOf = Config::getRequiredMemberOf(); if (!empty($requiredMemberOf)) { $result->setAuthenticationRequiredMemberOf($requiredMemberOf); } $memberOfField = Config::getRequiredMemberOfField(); if (!empty($memberOfField)) { $result->setAuthenticationMemberOfField($memberOfField); } $filter = Config::getLdapUserFilter(); if (!empty($filter)) { $result->setAuthenticationLdapFilter($filter); } $timeoutSecs = Config::getLdapNetworkTimeout(); if (!empty($timeoutSecs)) { $result->setLdapNetworkTimeout($timeoutSecs); } $result->setLdapUserMapper(UserMapper::makeConfigured()); return $result; }