[FIXED] Apache2 – Rewrite Response Header Key

Ausgabe

Wie kann ich Antwortheader innerhalb der Apache2-Konf umschreiben? Ist das überhaupt möglich? Wir verwenden Apache2 für Legacy-Dienste, die eine Verbindung zu einem Dienst hinter einem Envoy-Proxy herstellen.

Envoy setzt den Antwort- und Anforderungsheader immer auf Kleinbuchstaben. Ihre Lösung mit dem
Erhaltungsformat funktioniert nicht, weil sie den Quellheader nicht respektieren.

Ich erwarte einen Responseheader wie

“DockingStation_Eins: 44”

Gesandter tut

“dockingstation_one: 44”

mit ihrem Beibehaltungsformat bekomme ich

“Dockingstation_eins: 44”

Meine Idee war, den Header entweder mit mod_rewrite oder mod_headers in Apache2 neu zu schreiben, bevor er die Antwort an den Client sendet. Leider funktioniert nichts wie erwartet.

Meine neuste Einstellung:


<Location /my/service/v2>
        RewriteEngine   on
        # 1. Save the current value in env var (Case of header name does not matter)
        SetEnvIf dockingstation_one(.*) HEADER_VALUE=$1

        # 2. Delete the current header (Case of header name does not matter)
        Header unset "dockingstation_one" env=HEADER_VALUE

        # 3. Recreate header with the required case (Case of header name is preserved)
        #    env=HEADER_VALUE ensures the header is only set if it was set to begin with
        Header set "DockingStation_One" %{DOCKINGSTATION_ONE}e env=HEADER_VALUE


     ProxyPass        "http://service.go:8090/v2"
     ProxyPassReverse "http://service.go:8090/v2"
</Location>


Lösung

Egal. Meine ganze Syntax war falsch. Mein Fix sieht so aus:

Header always set "DockingStation_One" "expr=%{resp:dockingstation_one}"


Beantwortet von –
Igor Williams


Antwort geprüft von –
Jay B. (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like