Kein Statuscode im Rails-Protokoll nach Warden-Auth-Fehler

8

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:

%Vor%

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?

    
Flambino 14.06.2016, 09:46
quelle

1 Antwort

2

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

zu behandeln %Vor%     
itsnikolay 26.06.2016 19:30
quelle

Tags und Links