Thoralf Knuth: ErrorDocument 401 http://xyz.de - funzt nicht

Beitrag lesen

Hallo Cheatah,

Dann den 401 auf eine lokale Datei umleiten, die dann Ihrerseits auf die gewünschte URL umleitet.

das resultiert in einem völligen Verlust des Authentication-Mechanismus'.

Wieso? Die Passwörter werden per Basic Auth zwischen Server und Client hin und her geschoben und wenn das Passwort falsch ist, schickt ihn eine Datei im Realm vom Server weg.
Wenn er nen 401 auf eine Fremd-URL umleiten will, ist das m.E. der einzige Weg.

dann hast Du etwas grundsätzliches falsch konfiguriert. Es müsste ein 403 Forbidden kommen, kein 401 Unauthorized.
Nein, der 401 ist richtig. Du kannst beliebig oft versuchen, da rein zu kommen, so lange die Daten nicht stimmen, liefert der Server 'nen 401. Sonst könntest Du nach 3x falschem Pass ja nicht wieder neu versuchen. ;)

Solange ein 401 kommt, ist der Server bereit, eine Authentifizierung entgegenzunehmen.

Korrekt. So soll es auch sein. Denn 403 heisst: Für Dich Zugriff verboten. 401 heisst: Du kannst/konnstest Deine Berechtigung nicht nachweisen. Sind zwei verschiedene Fehler.

Dass der Server die Versuchsanzahl nicht irgendwie sammelt, finde ich da: http://httpd.apache.org/docs/howto/auth.html#basicfaq.

Und hier: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html steht:

If the request already included Authorization credentials, then
the 401 response indicates that authorization has been refused for
those credentials. If the 401 response contains the same challenge
as the prior response, and the user agent has already attempted
authentication at least once, then the user SHOULD be presented
the entity that was given in the response, since that entity might
include relevant diagnostic information.

Somit kommt bei Auth immer der 401, selbst bei Serverfehlern in diesem Zusammenhang. Wenn der 401 trotz übergebenen Daten kommt, sind diese falsch. Weswegen m.W. die meisten Browser nach 3 Versuchen aufhören. Oder irre ich mich da?

Gruss, Thoralf