Wie umschreiben Location-response-header in einem proxy-setup mit Apache?

Habe ich eine primary-proxy, der die Anfragen an einen sekundären proxy auf die OpeenSSO installiert ist.

Wenn die OpenSSO-agent ermittelt, dass der Benutzer nicht eingeloggt ist, wirft er eine 302-Weiterleitung auf die server-Authentifizierung und bietet die original (encoded) URL, die der Benutzer angefordert, die als GET-parameter in der Umleitung location-header.

Jedoch die URL in der GET-variable ist, die der inneren (sekundären) proxy-server, nicht die ursprünglichen proxy-server. Also, ich würde gerne Bearbeiten/umschreiben, die "Location" - header der Antwort zu geben, die richtige URL.

E. g.

  1. http://a.com/hello/ (Original angeforderten URL)
  2. http://a.com/hello2/ (Sekundäre proxy mit OpenSSO-agent)
  3. http://auth.a.com/login/?orig_request=http%3A%2F%2Fa.com%2Fhello2%2F (302-Umleitung zu auth-server mit den angeforderten URL, der zweite proxy-server-codiert GET-variable)
  4. http://auth.a.com/login/?orig_request=http%3A%2F%2Fa.com%2Fhello%2F (Codierte URL wird umgeschrieben, um die ursprüngliche Anforderung)

Habe ich versucht so ziemlich alle Kombinationen von Kopf-und schreibt ohne Glück, so dass ich dachte, es kann nicht möglich sein. Der nächste, den ich bekam war, aber das Sie mod_headers. edit-Funktion funktioniert nicht Parsen von Umgebungsvariablen.

# On the primary proxy.
RewriteEngine On
RewriteRule ^/(.*)$ - [E=orig_request:$1,P]
Header edit Location ^(http://auth\.a\.com/login/\?orig_request=).*$ "$1http%3A%2F%2Fa.com%2F%{orig_request}e"
InformationsquelleAutor xeonman9000 | 2013-04-30
Schreibe einen Kommentar