Ejemplo n.º 1
0
 public function Connect()
 {
     $connected = false;
     $attempts = 0;
     $hosts = $this->options->Controllers();
     $options = $this->options->AdLdapOptions();
     while (!$connected && $attempts < count($hosts)) {
         try {
             $host = $hosts[$attempts];
             Log::Debug('ActiveDirectory - Trying to connect to host %s', $host);
             $options['domain_controllers'] = array($host);
             $attempts++;
             $this->ldap = new adLdap($options);
             $connected = true;
             if ($connected) {
                 Log::Debug('ActiveDirectory - Connection succeeded to host %s', $host);
             } else {
                 Log::Debug('ActiveDirectory - Connection failed to host %s. Reason %s', $host, $this->ldap->getLastError());
             }
         } catch (adLDAPException $ex) {
             Log::Error($ex);
             throw $ex;
         }
     }
     return $connected;
 }
Ejemplo n.º 2
0
 public function testAdLdapConstructsOptionsCorrectly()
 {
     $controllers = 'localhost, localhost.2';
     $port = '389';
     $username = '******';
     $password = '******';
     $base = '';
     $usessl = 'false';
     $version = '3';
     $accountSuffix = '';
     $configFile = new FakeConfigFile();
     $configFile->SetKey(ActiveDirectoryConfig::DOMAIN_CONTROLLERS, $controllers);
     $configFile->SetKey(ActiveDirectoryConfig::PORT, $port);
     $configFile->SetKey(ActiveDirectoryConfig::USERNAME, $username);
     $configFile->SetKey(ActiveDirectoryConfig::PASSWORD, $password);
     $configFile->SetKey(ActiveDirectoryConfig::BASEDN, $base);
     $configFile->SetKey(ActiveDirectoryConfig::USE_SSL, $usessl);
     $configFile->SetKey(ActiveDirectoryConfig::VERSION, $version);
     $configFile->SetKey(ActiveDirectoryConfig::ACCOUNT_SUFFIX, $accountSuffix);
     $this->fakeConfig->SetFile(ActiveDirectoryConfig::CONFIG_ID, $configFile);
     $ldapOptions = new ActiveDirectoryOptions();
     $options = $ldapOptions->AdLdapOptions();
     $this->assertNotNull($this->fakeConfig->_RegisteredFiles[ActiveDirectoryConfig::CONFIG_ID]);
     $this->assertEquals('localhost', $options['domain_controllers'][0], 'domain_controllers must be an array');
     $this->assertEquals(intval($port), $options['ad_port'], 'port should be int');
     $this->assertEquals($username, $options['admin_username']);
     $this->assertEquals($password, $options['admin_password']);
     $this->assertEquals($base, $options['base_dn']);
     $this->assertEquals(false, $options['use_ssl']);
     $this->assertEquals($accountSuffix, $options['account_suffix']);
     $this->assertEquals(intval($version), $options['ldap_version'], "version should be int");
 }