FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Markus Bloch am 06 Dezember 2017, 21:00:33

Titel: Frage zu Authenticate()/AuthenticateFn
Beitrag von: Markus Bloch am 06 Dezember 2017, 21:00:33
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
Titel: Antw:Frage zu Authenticate()/AuthenticateFn
Beitrag von: betateilchen am 06 Dezember 2017, 22:13:57
oh, da versucht mal wieder jemand, krumme Gurken gradezubiegen  8)
Titel: Antw:Frage zu Authenticate()/AuthenticateFn
Beitrag von: rudolfkoenig am 07 Dezember 2017, 09:53:01
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).