Http Auth Problem

Headymaster

Erfahrenes Mitglied
Hallo!

Ich möchte gerne in meinen Klassen einen HttpAuthFilter eibauen, nur habe ich da noch irgendwie Probleme.

Also kommen wir erstmal zum Problem:

Ich habe in der index.php 2 User mit Passwort definiert.
Versuche ich mich mit diesen Usern einzuloggen, klappt dies nicht, denn ich bekomme immer wieder das Login Fenster.

so kommen wir mal zu index.php:
PHP:
$authFilter = new HttpAuthFilter(array('Nilson' => 'Razer',
								       'Peter' => 'Wurstwasser'));
$controller->addPreFilter($authFilter);

So dann mal die Methode Request::getAuthData();
PHP:
public function getAuthData()
	{
	    if (!isset($_SERVER['PHP_AUTH_USER']))
		{
		   return null;
		}
		
	  return array('user' => $_SERVER['PHP_AUTH_USER'],
	               'password' => $_SERVER['PHP_AUTH_PW']);
	}

So und hier die HttpAuthFilter-Klasse:
PHP:
class HttpAuthFilter implements Filter
{
    private $authData;
	
	public function __construct($authData)
	{
	    $this->authData = $authData;
	}
	
	public function execute(Request $request, Response $response)
	{
	    $authData = $request->getAuthData();
		if ($authData === null)
		{
		    $this->sendAuthRequest($response);
		}
		
		$username = $authData[0];
		$password = $authData[1];
		if (!isset($this->authData[$username]) || $this->authData[$username] !== $password)
		{
		    $this->sendAuthRequest($response);
		}
	}
	
	public function sendAuthRequest(Response $response)
	{
	    $response->setStatus('401 Unauthorized');
		$response->addHeader('WWW-Authenticate', 'Basic realm="NilsonCMS Professional"');
		$response->flush();
		exit();
	}
}

So das wärs erstmal....

Ich verstehe halt nicht warum der Login immer Fehl schlägt, obwohl die Logins existieren und diese auch in der HttpAuthFilter-Klasse überprüft werden..

Würde mich super über Hilfe freuen :)

MFG Niels
 
Zurück