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 :
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>');
        }
 
   }
}
 
?>
Comment faire pour que mon fichier index.phtml soit inaccessible depuis mon Controller ?

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.