Bonjour, j'ai mis en place une authentification http pour protéger un dossier, la méthode basique (non cryptée) fonctionne mais digest (crypté en md5) ne fonctionne pas, pour crypter mon mot de passe j'ai utilisé :
que j'ai ensuite copié dans mon fichier password :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <?php echo md5('mon_mot_de_passe'); ?>
Voici dans mon fichier Module.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part identifiant:Administration:mont_mot_de_passe_crypté
Merci de votre aide !
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
44
45
46
47 class Module { public function onBootstrap(MvcEvent $e) { $sharedEvents=$e->getApplication()->getEventManager()->getSharedManager(); $sharedEvents->attach(__NAMESPACE__, MvcEvent::EVENT_DISPATCH, array($this, 'authHttp')); } public function authHttp(MvcEvent $e) { $config=array( 'accept_schemes'=>'basic digest', 'realm'=>'Administration', 'digest_domains'=>'/admin', 'nonce_timeout'=>3600 ); $adapter=new Http($config); // $basicResolver=new FileResolver(); $basicResolver->setFile(__DIR__.'/password'); $digestResolver=new FileResolver(); $digestResolver->setFile(__DIR__.'/password'); $adapter->setBasicResolver($basicResolver); $adapter->setDigestResolver($digestResolver); $request=$e->getRequest(); $response=$e->getResponse(); assert($request instanceof \Zend\Http\Request); assert($response instanceof \Zend\Http\Response); $adapter->setRequest($request); $adapter->setResponse($response); $result=$adapter->authenticate(); if(!$result->isValid()) { $response->setContent('Access denied'); $response->setStatusCode(\Zend\Http\Response::STATUS_CODE_401); $e->setResult($response); return FALSE; } else { return TRUE; } } [...] }
Partager