Wie setze ich den JSESSIONID-Cookie-Pfad richtig hinter den Reverse-Proxy ein?
Meine web-app läuft im Tomcat an http://localhost:8080/example.com/
aber es ist als reverse Proxy für den Apache, welcher bis http://example.com/
auf port 80. Meine web-app sieht am request.getHeader("x-forwarded-host")
header zu wissen, dass es hinter einem reverse-proxy. Wenn es dies feststellt (dynamisch), es baut URLs ohne die servlet-Pfad auf.
Dies funktioniert gut für alles, außer für das JSESSIONID-cookie. Es wird mit einem Pfad von /example.com
statt /
wenn der Zugriff über den reverse-proxy. Ich kann nicht herausfinden, wie kann ich meinen code sagen Tomcat überschreiben Sie den Pfad für das cookie, wenn es eine x-forwarded-host
- header der Anfrage.
Ich habe versucht, die Einstellung des JSESSIONID cookie von der web-app selber, aber das nur die Ergebnisse in zwei Set-Cookie-Header, von denen nur eine richtig ist.
InformationsquelleAutor der Frage Stephen Ostermiller | 2012-02-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tomcat6 verwendet die Servlet 2.3 Spezifikation. Es unterstützt nicht das ändern der cookie-Pfad, der entweder durch code oder Konfiguration von Tomcat.
Ich es geschafft habe von der Apache-Seite mit einigen
mod_proxy
Richtlinien. DieProxyPassReverseCookiePath
Richtlinie genau das tut, was ich will. Es nimmt den cookie von Tomcat mit dem falschen Pfad und schreibt es auf den richtigen Pfad.InformationsquelleAutor der Antwort Stephen Ostermiller
Alternativ setzen Sie das Attribut sessionCookiePath des node /Kontext, (file: /conf/context.xml)"/":
Haben Sie einen Blick auf: http://tomcat.apache.org/tomcat-7.0-doc/config/context.html für mehr info
InformationsquelleAutor der Antwort drumn82
Version 3.0 der Servlet-Spezifikation eingeführten Funktionalität für die Steuerung der session-cookie: http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getSessionCookieConfig()
Tomcat 7 basiert auf der version 3 der Servlet-Spezifikation.
InformationsquelleAutor der Antwort Stephen Ostermiller