[ZF2.2] authentification HTTP
	
	
		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:
	
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.