/**
* {@inheritdoc}
*/
public function connect($username = null, $password = null)
{
$controllers = $this->configuration->getDomainControllers();
$port = $this->configuration->getPort();
// Connect to the LDAP server.
if ($this->connection->connect($controllers, $port)) {
$protocol = 3;
$followReferrals = $this->configuration->getFollowReferrals();
// Set the LDAP options.
$this->connection->setOption(LDAP_OPT_PROTOCOL_VERSION, $protocol);
$this->connection->setOption(LDAP_OPT_REFERRALS, $followReferrals);
// Get the default guard instance.
$guard = $this->getGuard();
if (is_null($username) && is_null($password)) {
// If both the username and password are null, we'll connect to the server
// using the configured administrator username and password.
$guard->bindAsAdministrator();
} else {
// Bind to the server with the specified username and password otherwise.
$guard->bindUsingCredentials($username, $password);
}
} else {
throw new ConnectionException('Unable to connect to LDAP server.');
}
}