Spring Security / JSF / Hibernate Accidental Session Hijacking na Tomcat?

Coś bardzo dziwnego i krępującego wydarzyło mi się pewnego dnia i nie mam słów, by opisać, co się stało.

Moja aplikacja uruchamia Spring 3 zintegrowany z JSF 2.1, Hibernate 4, Spring Security na Tomcat 7. Rozmawiałem przez telefon z kimś ważnym z poziomu C i oboje byliśmy jednocześnie w środowisku testowym jednocześnie na tych samych stronach. Poszedł, aby przejść do strony, do której nawigowałem prawie w tym samym momencie, kiedy jego strona wymyśliła moje osobiste dane konta. Nie wierzyłem mu, więc podszedłem do jego biura i na pewno został zalogowany jako moje konto, do którego nie ma hasła.

Aplikacja będzie chroniła informacje o zdrowiu pacjenta, więc kazano mi dostarczyć pełny raport na temat poziomu C, co się stało, ale nie mogę znaleźć, jak to było możliwe. Przeszukałem bazę kodu i nic nie wymyśliłem. Próbowałem odtworzyć dokładny scenariusz wielokrotnie i nigdy nie byłem w stanie go odtworzyć. Nie mam nawet wykształconego przypuszczenia, z którego jestem zadowolony.

Myślę, że być może w sesjach zapisanych w implementacji kontekstu aplikacji Tomcat mogła wystąpić pewna niebezpieczna operacja wątku, ale nie mogę tego udowodnić, jeśli nie jest odtwarzalna. Pomyślałem też, że skoro Spring Security działa jako filtr, wyprzedza inne żądania i przesyła dalej, że może przeszkadzać jeden z innych filtrów serwletów. Pozostałe dwa to filtr do ładowania plików Primefaces i filtr Omnifaces SEO, który ostatnio dodałem.

Filtr Omnifaces w rzeczywistości kolidował z filtrem ładowania plików Primefaces, który musiałem majstrować przy jego konfiguracji, aby obaj grali ze sobą dobrze, więc nadal czuję, że to też może być możliwe.

Czy są jakieś znane błędy związane z Spring Security, które spowodowały podobne problemy? Czy znane są problemy z serwerem Tomcat dotyczące przypadkowego podania niewłaściwego stanu sesji z ApplicationContext? Czy ktoś inny doświadczył podobnego problemu lub ma jakiś wyjątkowy wgląd w to?

EDYTOWAĆ: Wkrótce po opublikowaniu tego znalazłem to, opublikowane kilka dni temu:

Wymieszaj sesje - httpd apache z mod_jk, tomcat, spring security - serwowanie danych innego użytkownika

Jest to prawie identyczna konfiguracja, ponieważ mam wtyczkę httpd + mod_jk Apache przed Tomcatem, więc z pewnością nie jestem szalony :)

AKTUALIZACJA:

Udało mi się odtworzyć problem w moim środowisku programistycznym bez mod_jk lub Apache z przodu, więc mogę to rzetelnie wykluczyć jako sprawcę.

questionAnswers(1)

yourAnswerToTheQuestion