public function login()
    {

        // initialize the flag for the successfull login
        $this->loginOk = false;

        // array containing the username and password from the user's input
        list ($this->username, $password) = $this->getUsernameAndPassword();

        // query whether or not password AND username are set
        if ($this->username === null && $password === null) {
            $this->identity = $this->unauthenticatedIdentity;
        }

        // try to create a identity based on the given username
        if ($this->identity === null) {
            try {
                $this->identity = $this->createIdentity($this->username);
            } catch (\Exception $e) {
                throw new LoginException(
                    sprintf('Failed to create principal: %s', $e->getMessage())
                );
            }
        }

        // connect to the LDAP server
        $ldapConnection = $this->ldapConnect();

        // replace the placeholder  with the actual username of the user
        $this->baseFilter = preg_replace('/\{0\}/', "$this->username", $this->baseFilter);

        // try to load the user from the LDAP server
        $search = ldap_search($ldapConnection, $this->baseDN, $this->baseFilter);
        $entry = ldap_first_entry($ldapConnection, $search);
        $this->userDN = ldap_get_dn($ldapConnection, $entry);

        // query whether or not the user is available
        if (!isset($this->userDN)) {
            throw new LoginException('User not found in LDAP directory');
        }

        // bind the authenticating user to the LDAP directory
        if ((ldap_bind($ldapConnection, $this->userDN, $password)) === false) {
            throw new LoginException('Username or password wrong');
        }

        // query whether or not password stacking has been activated
        if ($this->getUseFirstPass()) {
            // add the username and password to the shared state map
            $this->sharedState->add(SharedStateKeys::LOGIN_NAME, $this->username);
            $this->sharedState->add(SharedStateKeys::LOGIN_PASSWORD, $this->credential);
        }

        // set the login flag to TRUE and return
        return $this->loginOk = true;
    }
public function login()
    {

        // initialize the flag for the successfull login
        $this->loginOk = false;

        // array containing the username and password from the user's input
        list ($this->username, $password) = $this->getUsernameAndPassword();

        // query whether or not password AND username are set
        if ($this->username === null && $password === null) {
            $this->identity = $this->unauthenticatedIdentity;
        }

        // try to create a identity based on the given username
        if ($this->identity === null) {
            try {
                $this->identity = $this->createIdentity($this->username);
            } catch (\Exception $e) {
                throw new LoginException(
                    sprintf('Failed to create principal: %s', $e->getMessage())
                );
            }
        }

        // connect to the LDAP server
        $ldapConnection = $this->ldapConnect();

        // replace the placeholder  with the actual username of the user
        $this->baseFilter = preg_replace('/\{0\}/', "$this->username", $this->baseFilter);

        // try to load the user from the LDAP server
        $search = ldap_search($ldapConnection, $this->baseDN, $this->baseFilter);
        $entry = ldap_first_entry($ldapConnection, $search);
        $this->userDN = ldap_get_dn($ldapConnection, $entry);

        // query whether or not the user is available
        if (!isset($this->userDN)) {
            throw new LoginException('User not found in LDAP directory');
        }

        // bind the authenticating user to the LDAP directory
        if ((ldap_bind($ldapConnection, $this->userDN, $password)) === false) {
            throw new LoginException('Username or password wrong');
        }

        // query whether or not password stacking has been activated
        if ($this->getUseFirstPass()) {
            // add the username and password to the shared state map
            $this->sharedState->add(SharedStateKeys::LOGIN_NAME, $this->username);
            $this->sharedState->add(SharedStateKeys::LOGIN_PASSWORD, $this->credential);
        }

        // set the login flag to TRUE and return
        return $this->loginOk = true;
    }
public function login ( ) { // initialize the flag for the successfull login $ this -> loginOk = false ; // array containing the username and password from the user's input list ( $ this -> username , $ password ) = $ this -> getUsernameAndPassword ( ) ; // query whether or not password AND username are set if ( $ this -> username === null && $ password === null ) { $ this -> identity = $ this -> unauthenticatedIdentity ; } // try to create a identity based on the given username if ( $ this -> identity === null ) { try { $ this -> identity = $ this -> createIdentity ( $ this -> username ) ; } catch ( \ Exception $ e ) { throw new LoginException ( sprintf ( 'Failed to create principal: %s' , $ e -> getMessage ( ) ) ) ; } } // connect to the LDAP server $ ldapConnection = $ this -> ldapConnect ( ) ; // replace the placeholder  with the actual username of the user $ this -> baseFilter = preg_replace ( '/\{0\}/' , "$this->username" , $ this -> baseFilter ) ; // try to load the user from the LDAP server $ search = ldap_search ( $ ldapConnection , $ this -> baseDN , $ this -> baseFilter ) ; $ entry = ldap_first_entry ( $ ldapConnection , $ search ) ; $ this -> userDN = ldap_get_dn ( $ ldapConnection , $ entry ) ; // query whether or not the user is available if ( ! isset ( $ this -> userDN ) ) { throw new LoginException ( 'User not found in LDAP directory' ) ; } // bind the authenticating user to the LDAP directory if ( ( ldap_bind ( $ ldapConnection , $ this -> userDN , $ password ) ) === false ) { throw new LoginException ( 'Username or password wrong' ) ; } // query whether or not password stacking has been activated if ( $ this -> getUseFirstPass ( ) ) { // add the username and password to the shared state map $ this -> sharedState -> add ( SharedStateKeys :: LOGIN_NAME , $ this -> username ) ; $ this -> sharedState -> add ( SharedStateKeys :: LOGIN_PASSWORD , $ this -> credential ) ; } // set the login flag to TRUE and return return $ this -> loginOk = true ; }
Perform the authentication of username and password through LDAP.

@return boolean TRUE when login has been successfull, else FALSE
@throws \AppserverIo\Psr\Security\Auth\Login\LoginException Is thrown if an error during login occured
Perform the authentication of username and password through LDAP .