
Eu tenho um aplicativo executado no Apache 2.4.27 que autentica usuários com mod_auth_cas. Este módulo armazena atributos sobre o usuário autenticado em cabeçalhos. Estou tendo problemas com um cabeçalho que está sendo removido porque contém um sublinhado ( X-CAS-email_primary
). Depois de fazer algumas pesquisas, adicionei o trecho de código abaixo à configuração do VirtualHost.
SetEnvIfNoCase X-CAS-email_primary ^(.*)$ fix_header=$1
RequestHeader set X-CAS-email-primary %{fix_header}e env=fix_header
Caso não fosse óbvio, estou tentando mudar X-CAS-email_primary
para X-CAS-email-primary
. Este código está funcionando parcialmente. O novo cabeçalho aparece, mas não tem valor.
["HTTP_X_CAS_EMAIL_PRIMARY"]=> string(0) ""
Confirmei que X-CAS-email_primary
está definido, então não tenho certeza do que está acontecendo. Alguma sugestão?
Obrigado!
Responder1
O valor de RequestHeader set
expressões de suporte, e as expressões incluem a função req
(ou http
), que fornece o valor dos cabeçalhos de solicitação. Portanto, esta diretiva deve fazer o que você deseja:
RequestHeader set X-CAS-email-primary "expr=%{req:X-CAS-email_primary}"
Você tem que cavar fundo nodocumentaçãopara encontrar esse tipo de coisa, mas está lá.
Não sei por que sua configuração não funcionou, mas acho que SetEnvIfNoCase é avaliado após RequestHeader. Os documentos não facilitam descobrir isso.