Unterstrich im Apache-Header in Bindestrich ändern

Unterstrich im Apache-Header in Bindestrich ändern

Ich habe eine Anwendung, die hinter Apache 2.4.27 läuft und Benutzer mit mod_auth_cas authentifiziert. Dieses Modul speichert Attribute über den authentifizierten Benutzer in Headern. Ich habe Probleme mit einem Header, der entfernt wird, weil er einen Unterstrich enthält ( X-CAS-email_primary). Nach einiger Suche habe ich den folgenden Codeausschnitt zur VirtualHost-Konfiguration hinzugefügt.

SetEnvIfNoCase X-CAS-email_primary ^(.*)$ fix_header=$1
RequestHeader set X-CAS-email-primary %{fix_header}e env=fix_header

Falls es nicht offensichtlich war, ich versuche, zu zu ändern X-CAS-email_primary. X-CAS-email-primaryDieser Code funktioniert teilweise. Der neue Header wird zwar angezeigt, hat aber keinen Wert.

["HTTP_X_CAS_EMAIL_PRIMARY"]=> string(0) ""

Ich habe bestätigt, dass es X-CAS-email_primaryeingestellt ist, bin mir also nicht ganz sicher, was los ist. Irgendwelche Vorschläge?

Danke!

Antwort1

Der Wert von a RequestHeader setunterstützt Ausdrücke, und Ausdrücke enthalten die Funktion req(oder http), die Ihnen den Wert der Anforderungsheader liefert. Diese eine Anweisung sollte also das tun, was Sie wollen:

RequestHeader set X-CAS-email-primary "expr=%{req:X-CAS-email_primary}"

Man muss tief graben in dieDokumentationso etwas zu finden, aber es ist da.

Ich bin nicht sicher, warum Ihre Konfiguration nicht funktioniert hat, aber ich vermute, dass SetEnvIfNoCase nach dem RequestHeader ausgewertet wird. Die Dokumentation macht es nicht einfach, das herauszufinden.

verwandte Informationen