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:
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 $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; } }
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
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"
j'avais mis cela:
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']);
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,
Partager