Spring Security / JSF / Hibernate Acidental Session Hijacking no Tomcat?

Algo muito estranho e embaraçoso aconteceu comigo outro dia e não tenho palavras para descrever o que aconteceu.

Meu aplicativo executa o Spring 3 integrado com o JSF 2.1, o Hibernate 4 e o Spring Security no Tomcat 7. Eu estava no telefone com alguém importante do nível C e nós dois estávamos simultaneamente no ambiente de teste ao mesmo tempo nas mesmas páginas. Ele foi até uma página que eu estava navegando no mesmo momento em que sua página apareceu com os detalhes da minha conta pessoal. Eu não acreditei nele, então eu fui até o escritório dele e, com certeza, ele de alguma forma estava logado como minha conta, para a qual ele não tem a senha.

O aplicativo terá protegido as informações de saúde do paciente, de modo que fui solicitado a fornecer um relatório completo sobre o nível C com o ocorrido, mas não consigo descobrir como isso foi possível. Eu vasculhei a base de código e não consegui nada. Tentei reproduzir o cenário exato em várias ocasiões e nunca consegui reproduzi-lo. Eu nem tenho um palpite com que estou feliz.

Eu acho que talvez tenha havido alguma operação de thread insegura em sessões armazenadas na implementação de contexto de aplicativo do Tomcat, mas não tenho como provar isso se não for reproduzível. Também achei que, como o Spring Security funciona como um filtro à frente de outras solicitações e encaminha, talvez um dos outros filtros de servlet tenha interferido. Os outros dois foram o filtro Primefaces File Upload e o filtro SEO da Omnifaces que eu adicionei recentemente.

O filtro Omnifaces de fato interferiu com o filtro Primefaces File Upload, que eu tive que mexer com sua configuração para que os dois pudessem tocar bem um com o outro, então eu ainda sinto que isso pode ser uma possibilidade também.

Há algum bug conhecido no Spring Security que tenha causado problemas semelhantes? Há problemas conhecidos com o Tomcat em relação a servir acidentalmente o estado de sessão incorreto do ApplicationContext? Alguém mais experimentou um problema semelhante ou tem alguma visão única sobre isso?

EDITAR: Logo após postar isso eu encontrei isso, postado há apenas alguns dias:

Mistura de sessão - apache httpd com mod_jk, tomcat, spring security - servindo dados de outro usuário

É quase exatamente a mesma configuração que eu tenho no plugin Apache httpd + mod_jk na frente do Tomcat, então certamente não estou louco :)

ATUALIZAR:

Consegui reproduzir o problema em meu ambiente de desenvolvimento sem o mod_jk ou o Apache na frente, portanto, posso afirmar com segurança como o culpado.

questionAnswers(1)

yourAnswerToTheQuestion