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:
So dann mal die Methode Request::getAuthData();
So und hier die HttpAuthFilter-Klasse:
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
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