2017-09-27 1 views
0

Ich habe eine NginX-Box mit dem Modul auth_request installiert, die jede Anfrage über unseren Authentifizierungsdienst autorisiert und die Anfrage an unsere Backend-Dienste weiterleitet, wenn die Anfrage autorisiert ist, und fügt auch CORS hinzu Kopfzeilen.CORS-Header mit NginX und das auth_request-Modul

Das Problem, das ich habe, ist, dass, wenn unser Autorisierungsdienst einen Nicht-200-Statuscode zurückgibt, z. 401 für nicht autorisierte Benutzer gibt NginX eine 401 an den Client ohne die CORS-Header zurück, unabhängig davon, ob sie von NginX oder von unserem Autorisierungsdienst gesetzt werden.

Meine Frage ist, wie kann ich CORS-Header der Antwort von NginX hinzufügen, wenn eine 401 zurückgegeben wird? NginX scheint den Befehl add_header zu ignorieren.

Antwort

0

Ich habe die Antwort darauf gefunden, falls jemand das gleiche Problem hat.

Dies kann unter Verwendung add_header mit dem Schlüsselwort always erreicht werden.

Zum Beispiel

add_header Access-Control-Expose-Headers "X-My-Header" always;

Ohne das always Schlüsselwort, das auth_request Modul scheint im Fall einer 4xx Antwort von dem Autorisierungsdienst nicht standardisierte Header aus der Antwort strippen. Weitere Informationen finden Sie unter http://nginx.org/en/docs/http/ngx_http_headers_module.html