2010-04-17 6 views
10

Ich habe Probleme mit der Verwendung von Cookies, wenn ich einen ProxyPass verwende, um den Verkehr auf Port 80 zu einer über Tomcat gehosteten Webanwendung umzuleiten.Tomcat-Cookies funktionieren nicht über meinen ProxyPass VirtualHost

Meine Motivation für das Aktivieren von Cookies ist, den Parameter "jsessionid =" loszuwerden, der an die URLs angehängt wird.

Ich habe Cookies in meiner context.xml in META-INF/für meine Webanwendung aktiviert.
Wenn ich über http://url:8080/webapp auf die Webanwendung zugreife funktioniert es wie erwartet, der Parameter jsessionid ist in der URL nicht sichtbar, sondern in einem Cookie gespeichert.

Beim Zugriff auf meine Website über einen apache2 virtualhost scheinen die Cookies nicht zu funktionieren, da nun "jsessionid" an die URLs angehängt wird. Wie kann ich dieses Problem lösen?

Hier ist meine VHost Konfiguration:

 
<VirtualHost *:80> 
     ServerName somedomain.no 
     ServerAlias www.somedomain.no 

     <Proxy *> 
       Order deny,allow 
       Allow from all 
     </Proxy> 

     ProxyPreserveHost Off 
     ProxyPass/http://localhost:8080/webapp/ 
     ProxyPassReverse/http://localhost:8080/webapp/ 

     ErrorLog /var/log/apache2/somedomain.no.error.log 
     CustomLog /var/log/apache2/somedomain.no.access.log combined 
</VirtualHost> 

EDIT: Das Cookie tatsächlich eingestellt wird. Ich vermute, dass das Problem darin besteht, dass der Cookie den "Pfad:/webapp" enthält.

Antwort

18

Ich fand es heraus.

Fügen Sie diese auf der VHost Konfiguration:

 
ProxyPassReverseCookiePath /webapp/
+0

Super Fund. Vielen Dank. – sjas

Verwandte Themen