Bonjour les amis,
Je débute en Zend (mais pas en PHP) j'ai réussi a moitié à mettre une authentification dans un controller d'un module, le problème, c'est que quand je cliques sur 'annuler' on accède quand même à la page 'protégée'
Voici mon source :
Comment faire pour que mon fichier index.phtml soit inaccessible depuis mon 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 <?php namespace Nimda\Controller; use Zend\Authentication\Adapter\Http; use Zend\Authentication\Adapter\Http\FileResolver; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; /** * Description of NimdaController * Controlleur du module Nimda * * @author pj */ class NimdaController extends AbstractActionController { public function indexAction() { $this->login(); } public function testAction() { } private function login() { $config=array( 'accept_schemes'=>'basic digest', 'realm'=>'AdministrHMDtion', '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=$this->getRequest(); $response=$this->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('<h1>Bad Motherfucker !</h1>'); } } } ?>
j'ai aussi une autre question : la j'ai fait une fonction login() que j'appelle dans indexAction(), j'avais prévu d'appeler cette fonction dans toutes mes fonctions 'Action' mais je trouve ça un peu lourd, n'y a t-il pas un autre moyen (pour protéger tous le module).
Merci beaucoup pour vos réponses.
Partager