Apache Underscore in Header é sobrescrito

1

Eu tenho um serviço que define o cabeçalho x-user_type. Como o Apache2.4.33 não pode usar isso, eu vou transformar isso com o seguinte em um .htaccess:

<IfModule mod_headers.c>
    <IfModule mod_setenvif.c>
        SetEnvIfNoCase ^x.user.type$ ^(.*)$ fix_x-user_type=$1
        RequestHeader set x-user-type %{fix_x-user_type}e env=fix_x-user_type
    </IfModule>
</IfModule>

Mas se eu fornecer o tipo x-user dentro de uma solicitação, o valor para x-user-type na resposta será sobrescrito

Exemplos:

  • Nada fornecido - > x-user-type = application (isso é definido pelo serviço)
  • x-user_type = teste - > x-user-type = application (Está tudo bem, já que é definido pelo serviço)
  • x-user-type = teste - > x-user-type = test (isso também deve ser aplicado)

Acho que esse é um problema de configuração do apache. Alguém pode me ajudar a resolver isso?

    
por DasBen 02.10.2018 / 16:53

1 resposta

1

Corrigido meu próprio problema com isso: link

Citação:

The value of a RequestHeader set supports expressions, and expressions include the req (or http) function, which gives you the value of request headers. So this one directive should do what you want:

RequestHeader set X-CAS-email-primary "expr=%{req:X-CAS-email_primary}" You have to dig deep into the documentation to find this kind of thing, but it's there.

Not sure why your configuration didn't work, but I guess the SetEnvIfNoCase is evaluated after the RequestHeader. The docs don't make it easy to figure that out.

Parece que o SetEnvIfNoCase também foi um problema meu.

    
por 05.10.2018 / 12:13