Wie schreibe ich Location Response Header in einem Proxy-Setup mit Apache um?

Ich habe einen primären Proxy, der Anfragen an einen sekundären Proxy sendet, auf dem OpeenSSO installiert ist.

Wenn der OpenSSO-Agent feststellt, dass der Benutzer nicht angemeldet ist, löst er eine 302-Umleitung zum Authentifizierungsserver aus und gibt die ursprüngliche (codierte) URL an, die der Benutzer als GET-Parameter im Header des Umleitungsorts angefordert hat.

Die URL in der GET-Variablen ist jedoch die des internen (sekundären) Proxyservers und nicht der ursprüngliche Proxyserver. Aus diesem Grund möchte ich den Antwortheader "Location" bearbeiten / umschreiben, um die richtige URL anzugeben.

Z.B.

http://a.com/hello/ (Ursprünglich angeforderte URL)http://a.com/hello2/ (Sekundärer Proxy mit OpenSSO-Agent)http://auth.a.com/login/?orig_request=http%3A%2F%2Fa.com%2Fhello2%2F (302 Weiterleitung zum Authentifizierungsserver mit der angeforderten URL des zweiten Proxy-Servers, der in der GET-Variablen codiert ist)http://auth.a.com/login/?orig_request=http%3A%2F%2Fa.com%2Fhello%2F (Die verschlüsselte URL wird in die der ursprünglichen Anfrage umgeschrieben.)

Ich habe so ziemlich alle Kombinationen von Überschriften und Neuschreibungen ohne Glück ausprobiert, daher denke ich, dass dies möglicherweise nicht möglich ist. Am nächsten kam mir dies, aber die Bearbeitungsfunktion mod_headers parst keine 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"

Antworten auf die Frage(1)

Ihre Antwort auf die Frage