Ich habe eine App für Rails 5 (5.0.0.rc1) mit dem Flag --api
eingerichtet. Es verwendet Warden für die Authentifizierung.
Alles funktioniert, außer wenn die Warden-Authentifizierung fehlschlägt, wird die Antwort nicht ordnungsgemäß protokolliert. Das Protokoll sieht folgendermaßen aus:
%Vor%oder in der Produktion:
%Vor% Es sollte natürlich Completed 401 Unauthorized in...
heißen, aber aus welchem Grund auch immer, es kennt den Statuscode der Antwort nicht.
Warden-Authentifizierungsfehler werden an einen Rack-kompatiblen ActionController::Metal
-basierten Controller gesendet, der sehr einfach ist:
Es wird die grundlegende head
-Methode verwendet, um zu antworten (keine Notwendigkeit, etwas zu rendern), also würde es sich vermutlich genauso verhalten wie die Verwendung von head
in einem normalen Rails-Controller. Aber nein.
Das Gleiche passiert, wenn ich versuche, redirect_to ...
oder render ...
zu verwenden (nach dem Einschließen der relevanten Module). Irgendwo in der Rack → Rails → Warden → Warden Failure App (Controller) fehlt der Statuscode der Antwort. Das Protokoll kann die Anforderung protokollieren und weiß, dass es bearbeitet wurde, da es offensichtlich die Zeile "Abgeschlossen ..." ausspuckt. Aber etwas ist nicht richtig angeschlossen.
Irgendwelche Ideen, wie Sie das beheben können?
Warden hat keinen rails
Logger. Es wirft nur eine Ausnahme und fängt es ab,
Warden bietet eine Möglichkeit, diese Ausnahme mit before_failure
callback
Tags und Links ruby-on-rails logging rack warden