Wir haben derzeit eine Shibboleth-Implementierung, die einen bestimmten Pfad schützt. Da es sich bei diesem Pfad jedoch tatsächlich um eine HTTP-Anfrage handelt (mit einer AngularJS-App mit $ http), versucht shibboleth, diese Anfrage an den Identity Provider "weiterzuleiten", der Browser interpretiert dies jedoch einfach als unzustellbare Anfrage. Es wird an AngularJS zurückgegeben mit Status = -1 und keine zugeordneten Header/Daten.Catch 302 mit Apache und Rückgabe 401 statt
Ich möchte diese 302 abfangen und stattdessen eine 401 zurückgeben, und vorzugsweise in der Lage sein, die Antwortheader zu bearbeiten. Gibt es irgendwelche Möglichkeiten, dies mit Apache oder Shibboleth zu tun?
Relevante Blöcke:
# Proxy all requests to WebLogic
<Location "/api">
SetHandler weblogic-handler
WLSRequest On
WebLogicHost services.endpoint.com
WebLogicPort 9002
</Location>
# For requests marked as protected, apply shibboleth
# If this block gets triggered, Shibboleth attempts redirect
# which does not work with our architecture
<Location "/api/protected">
AuthType Shibboleth
ShibRequireSession On
ShibApplicationId default
ShibExportAssertion On
Require Shibboleth
</Location>
Wie geht es in AngularJS verwendet:
//API call to unprotected endpoint
$http.get('http://hosted.on.apache.com/api/getData');
//API call to protected endpoint - Shibboleth triggered
$http.get('http://hosted.on.apache.com/api/protected/getSecureData');
Scheint, wie Sie eine 'login page' mit einem' api' authentifizieren versuchen, und Sie versuchen, 'ein solution' hacken, um sie' zusammen speake' zu machen. Ich denke, die beste Lösung ist es, anstelle von diesem bestehenden Schema "Login" über "API" wie "REST" zu erlauben. Ich kenne Shibboleth nicht. Aber Sie können besser mit "Apache Reverse-Proxy" Mangel bekommen, um dies zu tun, kann hacken – oak
, um 'hack it' Sie können http://stackoverflow.com/a/21074783/1211174 überprüfen. Aber besser ist es zu überprüfen, ob 'shibboleth' Authentifizierungs-basierte 'API' hat statt – oak
Mögen Sie nur diese 302 oder alle abzufangen? – tuergeist