turk porno porno escort rokettube
Ergebnis 1 bis 3 von 3

Thema: DbBcrypt + LDAP

  1. #1
    Erfahrener Benutzer
    Registriert seit
    07.07.2010
    Beiträge
    118
    Thanks
    7
    Thanked 0 Times in 0 Posts

    Standard DbBcrypt + LDAP

    Hallo zusammen,

    ich nutze aktuell den DbBcryptAdapter aus Ralf's Buch zur Authentifizierung.
    Dieser funktioniert auch. Allerdings benötige ich nun eine LDAP Authentifizierung.
    Das es dazu schon Module gibt habe ich gesehen.
    Allerdings scheinen diese dann immer gegen den LDAP Server zu prüfen.
    Ich hingegen möchte nur gegen LDAP prüfen, wenn der Login via DB nicht funktioniert hat.
    Falls er dann mit LDAP funktioniert sollen die Daten in der DB aktualisiert bzw angelegt werden.

    Gibt es sowas schon? Sollte ich den DbBcryptAdapter nach eigenen Wünschen nun erweitern?
    Wie würdet ihr vorgehen? Vielen Dank!

    PHP-Code:
    /**
     * ZF2 Buch Kapitel 21
     * 
     * Das Buch "Zend Framework 2 - Das Praxisbuch"
     * von Ralf Eggert ist im Galileo-Computing Verlag erschienen. 
     * ISBN 978-3-8362-2610-3
     * 
     * @package    User
     * @author     Ralf Eggert <r.eggert@travello.de>
     * @copyright  Alle Listings sind urheberrechtlich geschützt!
     * @link       http://www.zendframeworkbuch.de/ und http://www.galileocomputing.de/3460
     */

    /**
     * namespace definition and usage
     */
    namespace User\Authentication;

    use 
    Zend\Authentication\Result;
    use 
    Zend\Authentication\Adapter\AdapterInterface;
    use 
    Zend\Crypt\Password\Bcrypt;
    use 
    User\Table\UserTableInterface;

    /**
     * Database authentication with bcrypt
     * 
     * Handles the user authentication with a database and bcrypt
     * 
     * @package    User
     */
    class DbBcryptAdapter implements AdapterInterface
    {
        
    /**
         * @var UserTableInterface
         */
        
    protected $table null;
        
        
    /**
         * @var Bcrypt
         */
        
    protected $bcrypt null;
        
        
    /**
         * $identity - Identity value
         *
         * @var string
         */
        
    protected $identity null;

        
    /**
         * $credential - Credential values
         *
         * @var string
         */
        
    protected $credential null;

        
    /**
         * $authenticateResultInfo
         *
         * @var array
         */
        
    protected $authenticateResultInfo null;

        
    /**
         * Constructor
         * 
         * @param UserTableInterface $table
         * @param Bcrypt $bcrypt
         */
        
    public function __construct(UserTableInterface $tableBcrypt $bcrypt)
        {
            
    $this->setTable($table);
            
    $this->setBcrypt($bcrypt);
        }
        
        
    /**
         * Get user table
         * 
         * @return UserTableInterface
         */
        
    public function getTable()
        {
            return 
    $this->table;
        }
        
        
    /**
         * Set user table
         * 
         * @param UserTableInterface $table
         * @return DbBcryptAdapter
         */
        
    public function setTable(UserTableInterface $table)
        {
            
    $this->table $table;
            return 
    $this;
        }
        
        
    /**
         * Get service bcrypt
         * 
         * @return Bcrypt
         */
        
    public function getBcrypt()
        {
            return 
    $this->bcrypt;
        }
        
        
    /**
         * Set service bcrypt
         * 
         * @param Bcrypt $bcrypt
         * @return DbBcryptAdapter
         */
        
    public function setBcrypt(Bcrypt $bcrypt)
        {
            
    $this->bcrypt $bcrypt;
            return 
    $this;
        }
        
        
    /**
         * Get identity value
         * 
         * @return string
         */
        
    public function getIdentity()
        {
            return 
    $this->identity;
        }
        
        
    /**
         * set the value to be used as the identity
         *
         * @param  string $value
         * @return DbBcryptAdapter
         */
        
    public function setIdentity($value)
        {
            
    $this->identity trim($value);
            return 
    $this;
        }

        
    /**
         * Get credential value
         * 
         * @return string
         */
        
    public function getCredential()
        {
            return 
    $this->credential;
        }
        
        
    /**
         * set the credential value to be used
         *
         * @param  string $credential
         * @return DbBcryptAdapter
         */
        
    public function setCredential($credential)
        {
            
    $this->credential $credential;
            return 
    $this;
        }

        
    /**
         * Setup for authentication result
         */
        
    protected function setupResult()
        {
            
    // setup result info
            
    $this->authenticateResultInfo = array(
                
    'code'     => Result::FAILURE,
                
    'identity' => $this->getIdentity(),
                
    'messages' => array()
            );
            
            return 
    true;
        }
        
        
    /**
         * Creates a Zend\Authentication\Result object 
         *
         * @return AuthenticationResult
         */
        
    protected function createResult()
        {
            return new 
    Result(
                
    $this->authenticateResultInfo['code'],
                
    $this->authenticateResultInfo['identity'],
                
    $this->authenticateResultInfo['messages']
            );
        }
            
        
    /**
         * Performs an authentication attempt
         *
         * @return \Zend\Authentication\Result
         * @throws \Zend\Authentication\Adapter\Exception\ExceptionInterface If authentication cannot be performed
         */
        
    public function authenticate()
        {
            
    // set authentication
            
    $this->setupResult();
            
            
    // check for identity
            
    if (!$this->getIdentity()) {
                
    $this->authenticateResultInfo['messages'][] = 
                    
    'Sie haben keine E-Mail Adresse eingegeben!';
                return 
    $this->createResult();
            }
            
            
    // check for credential
            
    if (!$this->getCredential()) {
                
    $this->authenticateResultInfo['messages'][] = 
                    
    'Sie haben kein Passwort eingegeben!';
                return 
    $this->createResult();
            }
            
            
    // fetch dataset for identity
            
    $user $this->getTable()->fetchSingleByEmail($this->getIdentity());
            
            
    // check user
            
    if (!$user) {        
                
    $this->authenticateResultInfo['code'      ] = 
                    
    Result::FAILURE_IDENTITY_NOT_FOUND;
                
    $this->authenticateResultInfo['messages'][] = 
                    
    'Es gibt keinen Benutzer für die E-Mail Adresse!';
                return 
    $this->createResult();            
            }
            
            
    // verify password
            
    $bcrypt $this->getBcrypt();
            
    $verify $bcrypt->verify($this->getCredential(), $user->getPass());
            
            
    // check password
            
    if (!$verify) {            
                
    $this->authenticateResultInfo['code'      ] = 
                    
    Result::FAILURE_CREDENTIAL_INVALID;
                
    $this->authenticateResultInfo['messages'][] = 
                    
    'Das Passwort ist falsch!';
                return 
    $this->createResult();            
            }
            
            
    // clear password
            
    $user->setPass('');
            
            
    // successful
            
    $this->authenticateResultInfo['code'      ] = Result::SUCCESS;
            
    $this->authenticateResultInfo['identity'  ] = $user;
            
    $this->authenticateResultInfo['messages'][] = 
                
    'Sie haben sich erfolgreich angemeldet!';
            return 
    $this->createResult();
        }

    Geändert von Kaiuwe (04.10.2013 um 14:15 Uhr)

  2. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Bitte die passenden BBCodes für PHP-Code-Auszüge verwenden. (siehe meine Änderung)

    Zitat Zitat von AllOnline Beitrag anzeigen
    ich nutze aktuell den DbBcryptAdapter aus Ralf's Buch zur Authentifizierung.
    Wir befinden uns hier nicht im Unterforum zum ZF2-Buch von Ralf Eggert. Bitte bring daher auch immer die passenden Links (z.B. Github) zu den genannten Code-Stellen, ansonsten ist es für alle Mitleser, die das Buch nicht haben oder gar kennen, nicht klar, wovon du redest. Am Ende kann dir auch viel schneller geholfen werden, wenn man weiß worüber du schreibst.

    Danke!
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  3. #3
    Erfahrener Benutzer
    Registriert seit
    07.07.2010
    Beiträge
    118
    Thanks
    7
    Thanked 0 Times in 0 Posts

    Standard

    Danke für den Hinweis, werde mich ab jetzt dran halten ;-)
    https://github.com/ZF2Buch/kapitel21...Authentication

    Kann mir dennoch einer helfen?

    Sollte ich einfach den Adapter kopieren/umbennen und wenn login nicht funktioniert gegen LDAP prüfen und auf den UserService zurück greifen um den User zu verändern (z.B. Passwort aktualisieren)?

Ähnliche Themen

  1. Ldap abfrage mit Zend_Ldap
    Von Wer? im Forum DB
    Antworten: 0
    Letzter Beitrag: 02.07.2013, 12:57
  2. Ldap - Berechtigungen festlegen
    Von andos im Forum Auth
    Antworten: 8
    Letzter Beitrag: 19.06.2012, 11:12
  3. Antworten: 13
    Letzter Beitrag: 17.05.2012, 01:25
  4. Unter CN von LDAP auflisten ?
    Von MrSpoocy im Forum Core
    Antworten: 0
    Letzter Beitrag: 01.03.2011, 17:11
  5. Zend_Auth mit LDAP
    Von Chrisover im Forum Auth
    Antworten: 2
    Letzter Beitrag: 06.03.2008, 11:02

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •