Hallo zusammen,
ich habe eine Frage bzgl. dem Authenticate-Mechanismus. Die Funktion Authenticate() sowie die AuthenticateFn in bspw. allowed hat folgende Rückgabewerte:
0 - don't care
1 - success
2 - failed
Nun frage ich mich, warum ausgerechnet 0 => don't care und 2 => failed? Rein logisch betrachtet würde es doch eher Sinn machen zu sagen 0 => failed, 1 => success und 2 => don't care wobei Authenticate() nur 0/1 zurückgibt (sobald eine AuthenticateFn mit 1 zurück kommt). Sollte in Authenticate() keine AuthenticateFn eine 1 liefern, so wird immer das Ergebnis der letzten Prüfung zurückgegeben (0 oder 2). Damit kann man aber eigentlich so nichts anfangen, da die Authentifizierung nicht erfolgreich war, man aber dennoch auf != 1 prüfen muss. Besser wäre es doch in diesem Fall immer 0 zurückzugeben, damit man einfach nur mit if(Authenticate(...)) { ... } arbeiten kann, oder irre ich mich da?
Hintergrund meiner Frage: Ich versuche gerade die entsprechenden Abschnitte für die jeweiligen Wiki-Seiten zu schreiben, damit ich endlich mal fertig werde.
Vielleicht kann mich jemand erhellen.
Vielen Dank
Gruß
Markus
oh, da versucht mal wieder jemand, krumme Gurken gradezubiegen 8)
ZitatBesser wäre es doch in diesem Fall immer 0 zurückzugeben, damit man einfach nur mit if(Authenticate(...)) { ... } arbeiten kann
Ich meine das reicht nicht, da man beim "nein" wissen muss, warum nicht: wenn die Schnittstelle ohne Passwort kommt, dann muss man nach Passwort fragen (401:unauthorized), wenn aber eins da ist, aber falsch, dann ist die Reaktion anders (403:forbidden).