IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Acl & Zend_Auth PHP Discussion :

Zend_auth Application Error [ZF 1.11]


Sujet :

Zend_Acl & Zend_Auth PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Points : 52
    Points
    52
    Par défaut Zend_auth Application Error
    Bonjour à tous,

    Après beaucoup de lectures de tutos sur Zend_auth, j'ai commencé à coder.

    Voila, je débute sur zf c'est la première fois que je fais de l'authentification et d'autant plus avec Zend .

    Quand je rafraîchis la page, cela me met An error occurred Application error.

    Voici mon code.

    Dans le controller:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    $username = $this->_request->getParam('username');
            $password = $this->_request->getParam('password');
             // Instanciation de la classe Zend_Auth
            $auth = Zend_Auth::getInstance();
     
            $config = new Zend_Config_Ini('../application/config/application.ini','ldap');
            $log_path = $config->ldap->log_path;
            $options = $config->ldap->toArray();
            unset($options['log_path']);
            // Paramètres LDAP
     
            // Définition de l'adaptateur d'authentification
                $adapter = new Zend_Auth_Adapter_Ldap($options,$username,$password);
                $resultat = $auth->authenticate($adapter);
     
            if (!$resultat->isValid()) {
                // Echec de l'authentification ; afficher pourquoi
                foreach ($resultat->getMessages() as $message) {
                    echo "$message\n";
                }
            } else {
                // Authentification réussie ; l'identité ($identifiant) est
                // stockée dans la session
                 $resultat->getIdentity() === $auth->getIdentity();
                 $resultat->getIdentity() === $username;
            }
     
        }
    le code de mon fichier conf:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    [production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    includePaths.library = APPLICATION_PATH "/../library"
    bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
    bootstrap.class = "Bootstrap"
    appnamespace = "Application"
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
    resources.frontController.params.displayExceptions = 0
    phpSettings.date.timezone = "Europe/Paris"
    resources.db.adapter = "PDO_MYSQL"
    resources.db.params.host = "blabla"
    resources.db.params.username = "root"
    resources.db.params.password = "mdp"
    resources.db.params.dbname = "blabla"
    resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
     
     
     
     
    [staging : production]
     
    [testing : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
     
    [development : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    resources.frontController.params.displayExceptions = 1
    phpSettings.date.timezone = "Europe/Paris"
     
     
    [ldap]
    host = "adresse"
    useStartTls = true
    accountDomainName = "blabla"
    accountDomainNameShort = "blabla"
    accountCanonicalForm = 3
    username = "CN=blabla,DC=blabla,DC=blabla,DC=blabla"
    password = "Azerty12*"
    baseDn = "CN=blabla,DC=blabla,DC=blabla,DC=blabla"
    Apparemment, c'est mieux de mettre la config ldap dans un fichier. Et donc avant ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $config = new Zend_Config_Ini('../application/config/application.ini','ldap');
            $log_path = $config->ldap->log_path;
            $options = $config->ldap->toArray();
            unset($options['log_path']);
    j'avais mis cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $options = array(array(
                    'host' => 'adresse',
                    'accountDomainName' => 'blabla',
                    'accountDomainNameShort' => 'blabla',
                    'accountCanonicalForm' => 3,
                    'username' => 'uid='.$username.',CN=blabla,DC=blabla,DC=blabla,DC=blabla',
                    'password' => $password,
                    'baseDn' => 'CN=blabla,DC=blabla,DC=blabla,DC=blabla',
                    'bindRequiresDn' => false
                    ));

    l'erreur affichée était la suivante :


    Invalid credentials 0x31 (Invalid credentials; 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db0): uid=blabla,CN=blabla,DC=nsoblablac,DC=obiblablaane,DC=blablal host=adresse,accountDomainName=blabla.blabla.blabla,accountDomainNameShort=NSOC,accountCanonicalForm=3,username=uid=QKVX0524,CN=QKVX0524,DC=nsoc,DC=obiane,DC=local,password=*****,baseDn=CN=Users,DC=blabla,DC=blabla,DC=local,bindRequiresDn= blabla authentication failed: 0x31 (Invalid credentials; 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db0): uid=blabla,CN=blabla,DC=blabla,DC=blabla,DC=blabla.

    Le fichier conf est application.ini qui se trouve comme à l'habitude dans /application/config/application.ini.
    Je ne comprends absolument pas d'où vient l'erreur.
    J'espère que cela est compréhensif.
    J'ai lu pas mal de tutos mais soit ils ne sont pas complet ou il y a des erreurs, ou encore mal expliqués.
    Pourriez vous m'aider s'il vous plaît ?

    Merci d'avance.

    Cordialement,

  2. #2
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Bonjour,
    Ton problème est selon moi au niveau de ton application.ini.

    Les sections dans ce fichier sont normalement pour l'environnement mais admettons.

    Tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $config = new Zend_Config_Ini('../application/config/application.ini','ldap');
            $log_path = $config->ldap->log_path;
            $options = $config->ldap->toArray();
            unset($options['log_path']);
    Ton problème est au niveau de $config->ldap->toArray()

    Pour mettre ça, il faudrait que tu préfixe dans la section ldap toutes les variables par ldap.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Points : 52
    Points
    52
    Par défaut
    Bonjour Loïc,
    Tout d'abord merci de votre réponse.
    Faut il créer un autre fichier pour la conf ?

    Quand vous parlez de préfixe c'est cela ?

    ldap.host = "ip"
    ldap.useStartTls = 1
    ldap.accountDomainName = "accountDomainName "
    ldap.accountDomainNameShort = "accountDomainNameShort"
    ldap.accountCanonicalForm = 3
    ldap.username = "username "
    ldap.password = "password"
    ldap.baseDn = "baseDn "
    ldap.port = port

    Auriez vous un exemple s'il vous plaît ?

    Merci d'avance.

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Points : 52
    Points
    52
    Par défaut
    Car en essayant comme cela avec le préfixe ldap
    Cela plante quand même

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Points : 52
    Points
    52
    Par défaut
    Dans mon fichier log :

    #0 /usr/local/zend/share/ZendFramework/library/Zend/Config/Ini.php(202): Zend_Config_Ini->_parseIniFile('/var/www/WebMRL...')
    #1 /usr/local/zend/share/ZendFramework/library/Zend/Config/Ini.php(126): Zend_Config_Ini->_loadIniFile('/var/www/WebMRL...')

    #2 /var/www/WebMRL/public/index.php(24): Zend_Application->__construct('production', '/var/www/WebMRL...')
    #3 {main}
    thrown in /usr/local/zend/share/ZendFramework/library/Zend/Config/Ini.php on line 182

    Quelqu'un peut m'aider s'il vous plaît ?
    Merci d'avance.

  6. #6
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Alors, je t'invite à préfixer comme tu l'a fait mais tu enlève la section ldap ([ldap]) puis au lieu de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Zend_Config_Ini(...)
    récupère l'instance que tu as du faire plus haut dans ton bootstrap

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Points : 52
    Points
    52
    Par défaut
    Bonjour Loïc,

    merci de te pencher sur mon problème.

    Récupérer l'instance ?
    Excuse moi je débute en Zend.
    Tu veux dire que mon code Zend_auth et zend_acl je les mets dans le bootstrap ? si j'ai bien compris je peux récupérer avec un return ?
    Merci d'avance.

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Points : 52
    Points
    52
    Par défaut
    Je précise que c'est pour un AD et pas Open LDAP

  9. #9
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Ben normalement, tout ce qui est initialisation c'est dans le bootstrap en principe par exemple dans des méthodes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    protected function _initConfig() {
    ...
    }
    Et quand tu initialise ta config dans cette méthode, tu stocke ton objet config dans Zend_Registry et le récupère en suite où tu veux.

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Points : 52
    Points
    52
    Par défaut
    bonjour Loïc,

    merci beaucoup pour tes conseils.
    Je vais sauvegarder tes messages, car je dois passer sur autre chose.
    Comme ca, j'y reviendrai plus facilement merci encore pour tout.

    Bonne continuation.

    Cordialement.

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Points : 52
    Points
    52
    Par défaut
    Re Loïc,

    Sinon aurais tu un exemple de code concret stp (bootstrap, controller?
    Je te remercie d'avance.

    Bonne continuation à toi.

    Cordialement.

  12. #12
    Membre averti Avatar de Njörd
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 190
    Points : 390
    Points
    390
    Par défaut
    Bonjour yoann92,

    Le partage de pheuh pourrait peut-être t'intéresser.

    Il n'utilise pas Zend_Ldap.

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 118
    Points : 52
    Points
    52
    Par défaut
    Bonjour Njörd,

    Merci infiniment pour ta réponse, c'est exactement cela.
    Merci pour tout .

    Bonne continuation à tous.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ZF 1.7] Application error lors d'un save()
    Par gostbuster dans le forum Zend_Db
    Réponses: 1
    Dernier message: 30/03/2009, 18h20
  2. Raise Application Error
    Par toony94 dans le forum SQL
    Réponses: 4
    Dernier message: 13/06/2008, 15h57
  3. Server Application Error
    Par naima2005 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 03/01/2008, 12h22
  4. [IIS 5.1] Server Application Error
    Par sami_c dans le forum IIS
    Réponses: 3
    Dernier message: 07/05/2007, 21h49
  5. Server Application Error
    Par __fabrice dans le forum ASP
    Réponses: 5
    Dernier message: 22/08/2005, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo