Apache Tomcat 7 Zmiana JSESSIONID na każde żądanie

Ten problem doprowadza mnie do szaleństwa, więc może ktoś mógłby mi pomóc zrozumieć, o co chodzi. Mam aplikację internetową Tomcat, która jest obsługiwana przez HAProxy. HAProxy wykonuje również odciążanie SSL i jest skonfigurowany do korzystania z sesji lepkich. Korzystam z funkcji replikacji sesji Tomcat, która wydaje się działać dobrze. Sesje pojawiają się na obu serwerach aplikacji.

Z jakiegoś powodu Tomcat generuje nowy JSESSIONID dla każdego pojedynczego żądania WWW, a następnie kopiuje zawartość starej sesji do nowej sesji. Oznacza to, że moja zawartość sesji jest nadal obecna w nowej sesji, ale generowany jest nowy identyfikator i wysyłany do klienta. Ale robi to tylko dla mojej aplikacji internetowej. Nie robi tego dla aplikacji / manager.

Wypróbowałem wszystkie sztuczki w książce, takie jak ustawienie tego w moim pliku context.xml:

<Valve className="org.apache.catalina.authenticator.BasicAuthenticator" changeSessionIdOnAuthentication="false" />

I ustawianie tych atrybutów na moim elemencie kontekstowym:

<Context path="/myapp" reloadable="false" override="true" useNaming="false" allowLinking="true" useHttpOnly="false" sessionCookiePath="/" sessionCookiePathUsesTrailingSlash="false">

A jednak wynik jest taki sam. Tomcat generuje nowy identyfikator sesji przy każdym żądaniu i kopiuje zawartość starej sesji do nowego identyfikatora.

Podejrzewam, że ma to coś wspólnego z HAProxy, z wyjątkiem tego, że aplikacja / manager jest również za HAProxy i nie wykazuje tego zachowania.

Dlaczego Tomcat to robi i co mogę zrobić, aby temu zapobiec?

questionAnswers(3)

yourAnswerToTheQuestion