/** * Attempts to connect with the given credentials and returns the response. * * @param AuthenticationOperation $operation * @return AuthenticationResponse */ protected function getAuthenticationResponse(AuthenticationOperation $operation) { $authenticated = false; $errorMessage = null; $errorCode = null; // Only catch a bind failure. Let the others through, as it's probably a sign of other issues. try { $authenticated = (bool) $this->connection->close()->connect(...$operation->getArguments()); } catch (LdapBindException $e) { $errorMessage = $this->connection->getLastError(); $errorCode = $this->connection->getExtendedErrorNumber(); } return new AuthenticationResponse($authenticated, $errorMessage, $errorCode); }