Frage zu Authenticate()/AuthenticateFn

Begonnen von Markus Bloch, 06 Dezember 2017, 21:00:33

Vorheriges Thema - Nächstes Thema

Markus Bloch

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
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

betateilchen

oh, da versucht mal wieder jemand, krumme Gurken gradezubiegen  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

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).