
Tengo una aplicación que se ejecuta detrás de Apache 2.4.27 y que autentica a los usuarios con mod_auth_cas. Este módulo almacena atributos sobre el usuario autenticado en encabezados. Tengo problemas con un encabezado que se está eliminando porque tiene un guión bajo ( X-CAS-email_primary
). Después de buscar un poco, agregué el siguiente fragmento de código a la configuración de VirtualHost.
SetEnvIfNoCase X-CAS-email_primary ^(.*)$ fix_header=$1
RequestHeader set X-CAS-email-primary %{fix_header}e env=fix_header
En caso de que no sea obvio, estoy intentando cambiar X-CAS-email_primary
a X-CAS-email-primary
. Este código está funcionando parcialmente. El nuevo encabezado aparece pero no tiene valor.
["HTTP_X_CAS_EMAIL_PRIMARY"]=> string(0) ""
He confirmado que X-CAS-email_primary
está configurado, así que no estoy muy seguro de qué está pasando. ¿Alguna sugerencia?
¡Gracias!
Respuesta1
El valor de a RequestHeader set
admite expresiones, y las expresiones incluyen la función req
(o http
), que le proporciona el valor de los encabezados de solicitud. Entonces esta directiva debería hacer lo que quieras:
RequestHeader set X-CAS-email-primary "expr=%{req:X-CAS-email_primary}"
Tienes que profundizar en eldocumentaciónencontrar este tipo de cosas, pero está ahí.
No estoy seguro de por qué su configuración no funcionó, pero supongo que SetEnvIfNoCase se evalúa después de RequestHeader. Los documentos no facilitan la comprensión de eso.