Copiar cookie para solicitar cabeçalho no HTTPD do Apache

2

Estou tentando definir um cabeçalho de solicitação em todas as solicitações que passam pelo HTTPD do Apache. O valor precisa ser obtido de um cookie anexado à solicitação. A partir dos documentos do Apache, parece que os mod_headers podem funcionar.

Do exemplo dessa página eu coloquei isso em conjunto:

RequestHeader set MyHeaderName "expr=%{req:access_token}"

onde "access_token" é o nome do valor do cookie. Isso define o cabeçalho, mas o valor está chegando em vazio, então não acho que tenha essa expressão correta.

Existe uma expressão que eu possa usar para obter o valor do cookie?

    
por Nick Wilson 05.09.2016 / 12:09

1 resposta

1

Eu acho que o expr=%{req:access_token} não vai te dar o valor do cookie, mas apenas um cabeçalho com o mesmo nome do seu cookie. Você provavelmente deve tentar trabalhar com algo de expr=%{HTTP_COOKIE} e extrair o valor do cookie específico com um regexp. Talvez isso possa funcionar (mas não tenho certeza se a referência back regex pode ser usada como o valor do cabeçalho):

RequestHeader set MyHeaderName $2 "expr=%{HTTP_COOKIE} =~ /(^|;\ *)access_token=([^;\ ]+)/

ou isso (primeiro defina o cabeçalho e edite-o):

RequestHeader set MyHeaderName "%{HTTP_COOKIE}" "expr=%{HTTP_COOKIE} =~ /(^|;\ *)access_token=([^;\ ]+)/
RequestHeader edit MyHeaderName "(^|;\ *)access_token=([^;\ ]+)" "$2"

Se isso não funcionar, talvez seja necessário adicionar mod_env para fazer talvez algo assim:

SetEnvIf Cookie "(^|;\ *)access_token=([^;\ ]+)" MyCookieValue=$2
RequestHeader set MyHeaderName "%{MyCookieValue}e"

Veja também esta pergunta semelhante em SO: link

    
por 05.09.2016 / 13:53

Tags