Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-01-2010 14:33:21

Żabojad
Nouveau membre
Date d'inscription: 29-01-2010
Messages: 2

[Zend_Auth_Adapter_Http][1.9.5]Basic/digest : header de request perdus

Bonjour,

Je tente de mettre en place une authentification HTTP digest pour mon application. Ci-dessous mon code (tiré directement de la doc Zend) :

Code:

      $logger = Zend_Registry::get('logger');
       
      $config = array(
          'accept_schemes' => 'digest',
          'realm'          => 'zks',
          'digest_domains' => '/',
          'nonce_timeout'  => 3600,
      );
      
      $adapter = new Zend_Auth_Adapter_Http($config);
      
      //$basicResolver = new Zend_Auth_Adapter_Http_Resolver_File();
      //$basicResolver->setFile(dirname(__FILE__).'/../security/basicPasswd.txt');
      
      $digestResolver = new Zend_Auth_Adapter_Http_Resolver_File();
      $digestResolver->setFile(dirname(__FILE__).'/../security/digestPasswd.txt');
      
      //$adapter->setBasicResolver($basicResolver);
      $adapter->setDigestResolver($digestResolver);
      
      $response = Zend_Controller_Front::getInstance()->getResponse();
      $request = Zend_Controller_Front::getInstance()->getRequest();
      
      assert($request instanceof Zend_Controller_Request_Http);
      assert($response instanceof Zend_Controller_Response_Http);
      
      $adapter->setRequest($request);
      $adapter->setResponse($response);
      //Authorization
      $result = $adapter->authenticate();
      if (!$result->isValid()) {
          
          $logger->log('[preDispatch] IDENTITY : '.print_r($result->getIdentity(),true).' <br /><br />', Zend_Log::DEBUG);
        
          $logger->log('[preDispatch] ERREURS : '.print_r($result->getMessages(),true).' <br /><br />', Zend_Log::DEBUG);
        
          $logger->log("RESPONSE : ".print_r($response->getHeaders(),true).' <br /><br />', Zend_Log::DEBUG);
          
        $logger->log("REQUEST : ".$request->getHeader("Authorization").' <br /><br />', Zend_Log::DEBUG);
          
      }

Lorsque je tente d'accéder à mon appli, le browser affiche bien la fenêtre de login. Lorsque je rentre mes login/password, il semble ne pas les reconnaître comme corrects et me réaffiche la fenêtre de login. J'ai essayé en basic et en digest et j'ai le même problème dans les deux cas.

Voici l'output que j'obtiens sur la page :

2010-01-29T14:16:41+01:00 DEBUG (7): [preDispatch] IDENTITY : Array ( )

2010-01-29T14:16:41+01:00 DEBUG (7): [preDispatch] ERREURS : Array ( [0] => Invalid or absent credentials; challenging client )

2010-01-29T14:16:41+01:00 DEBUG (7): RESPONSE : Array ( [0] => Array ( [name] => Www-Authenticate [value] => Digest realm="zks", domain="/", nonce="98112168bacad0dab7a0db892f127b2a", opaque="d75db7b160fe72d1346d2bd1f67bfd10", algorithm="MD5", qop="auth" [replace] => ) )

2010-01-29T14:16:41+01:00 DEBUG (7): REQUEST :


Côté fichiers contenant les données sur les users, j'ai :

pour le basic :

Code:

thomas:zks:thomas

pour le digest :

Code:

thomas:zks:ca53835d2a7e04669ccf2dd1410acbe4

D'après l'output généré, il semble que la requête reçue par le serveur ne contient pas le header "Authorization". Pourtant, cette même requête contient bien ce header lorsque je sniff le réseau entre les deux. J'ai le problème sur Firefox comme sur IE.

J'en suis venu à penser qu'il s'agirait peut-être d'un problème de configuration d'Apache qui empêcherait les requêtes de type authentification de garder leurs headers. Quelqu'un a-t-il déjà rencontré ce problème ? (Je travaille en local sur un Zend server)

Merci d'avance pour votre aide.

Hors ligne

 

#2 29-01-2010 20:46:26

nosferapti
Membre
Date d'inscription: 10-01-2010
Messages: 40

Re: [Zend_Auth_Adapter_Http][1.9.5]Basic/digest : header de request perdus

peut-être que "ca53835d2a7e04..." ne correspond pas à ce qu'envoie le navigateur
quand tu as surveillé le réseau avec le bon mot de passe, est ce que tu as vu quelle information a été envoyée par le navigateur ?


GNAP !

Hors ligne

 

#3 29-01-2010 21:52:40

Żabojad
Nouveau membre
Date d'inscription: 29-01-2010
Messages: 2

Re: [Zend_Auth_Adapter_Http][1.9.5]Basic/digest : header de request perdus

ok, je viens de trouver le problème.

PHP est installé en script CGI sur l'Apache de Zend Server, ce qui cause le problème : voir cette doc

Je n'ai pas le problème sous mon Xampp où PHP est installé en module...

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages