Sessão perdida no Jetty usando o Apache como proxy [closed]

1

Eu tenho um aplicativo baseado em eXist-db. É basicamente um aplicativo da Web Java que usa o Jetty. Ele é executado no servidor Linux remoto por trás do proxy Apache.

Eu uso a seguinte configuração do Apache:

ServerName  domain.com
ProxyRequests       off
ProxyPass       /myapp   http://localhost:8899/exist/apps/myapp
ProxyPassReverse       /myapp   http://localhost:8899/exist/apps/myapp

Tudo funciona bem, exceto as sessões. Em cada solicitação, a sessão é renovada. Significa a solicitação O cabeçalho do cookie não contém JSESSIONID , mas o cabeçalho da resposta Set-Cookie é algo como JSESSIONID=oryq5odyt3f79xxax25n7x0h;Path=/exist . Também verifico o ID da sessão no aplicativo que confirma que a sessão é nova a cada vez.

Eu tentei três cenários de teste:

Cenário de teste A:

  • Cliente: Windows 7, Google Chrome
  • Servidor: Ubuntu 12.04.4 LTS (GNU / Linux 3.11.0-26-genérico x86_64), proxy Apache / 2.4.9

Cenário de teste B:

  • Cliente: Windows 7, Google Chrome
  • Servidor: CentOS release 6.6 (Final), proxy Apache / 2.2.15

Cenário de teste C (local):

  • Cliente: Windows 7, Google Chrome
  • Servidor (o mesmo laptop): Windows 7, sem proxy

O problema aparece em ambos os cenários A e B, mas não em C.

Alguma idéia de como fazer as sessões funcionarem?

    
por lagivan 04.05.2015 / 23:11

1 resposta

1

A seguinte configuração do Apache resolve o problema:

ServerName  domain.com
ProxyRequests       off
ProxyPass       /myapp   http://localhost:8899/exist/apps/myapp
ProxyPassReverse       /myapp   http://localhost:8899/exist/apps/myapp
ProxyPassReverseCookiePath /exist /

Ele altera o caminho de /exist para / nos cookies para que a sessão seja adequadamente mapeada para o caminho.

Em certos casos, a diretiva a seguir pode ser necessária para alterar o domínio em cookies também (mas não foi necessário no meu caso):

ProxyPassReverseCookieDomain localhost domain.com

Encontrei ainda mais detalhes em stackoverflow .

    
por 05.05.2015 / 10:30