Hallo zusammen,
habe da eine Frage, die ich mal unter "Anfänger" einstufen würde:
Ich habe eine funktionierende Authentifizierung/Authorisierung über Zend_Auth + Zend_Acl. Bei uns in der Firma ist nun eine neue Passwort-Policy eingesetzt worden, die unter anderem verlangt, dass ein Passwort nach 90 Tagen geändert werden muss.
Derzeit wird nach dem Übergeben der Login-Daten eines Users geschaut, welcher result code zurückgegeben wird:
PHP-Code:
$myAuth = Zend_Auth::getInstance();
$myAuth->setStorage(new Zend_Auth_Storage_Session('authNamespace'));
$result = $myAuth->authenticate($myAuthAdapter);
if($result->getCode() != 1){
// Code 1 = Authentication successful
// Ausgabe an Benutzer mit Fehlermeldung, wenn Login fehlgeschlagen
}
Ich würde nun gerne "$result->getCode()" auf einen Code abfragen, der mir sagt, dass ein User-Passwort "abgelaufen" ist, um dem Benutzer eine entsprechende Meldung auszugeben. Ein solcher Fall ist in "Zend_Auth_Result" aber leider nicht vorgesehen. Dort gibt es nur:
PHP-Code:
// General Failure
const FAILURE = 0;
// Failure due to identity not being found
const FAILURE_IDENTITY_NOT_FOUND = -1;
// Failure due to identity being ambiguous
const FAILURE_IDENTITY_AMBIGUOUS = -2;
// Failure due to invalid credential being supplied
const FAILURE_CREDENTIAL_INVALID = -3;
// Failure due to uncategorized reasons
const FAILURE_UNCATEGORIZED = -4;
// Authentication success
const SUCCESS = 1;
Mein Problem ist, dass an sich ja korrekt der ResultCode "1" = "Login korrekt" kommt - denn die Benutzerdaten stimmen ja. Einzig das Passwort ist abgelaufen und muss neu gesetzt werden. Insofern wäre ein anderer ResultCode auch irgendwie wieder am Sinn von ZendAuth vorbei.
Andererseits fehlt mir bisher bei ZendAuth die Möglichkeit weitere Bedingungen zu prüfen, wie etwa "Ist der User gesperrt?", "Ist das Passwort abgelaufen?". Zumindest habe ich auch nach längerer Suche noch nichts hilfreiches dazu gefunden. 
Hat jemand evtl. einen Lösungsansatz für mich?
Besten Dank schon einmal vorab!
Lesezeichen