Mistura de sessões de usuários

Pessoal,

Estou enfrentando um problema gigantesco.

Desenvolvi um sistema usando JBOSS Seam que é utilizado em vários clientes.

Em um dos clientes (e só nele) que utiliza uma rede atrás de um Proxy, acontece algo bizarro: se um usuário acessa o sistema e é autenticado e em seguida noutro PC outro usuário acessa, ele mistura as sessões e o primeiro que acessou consegue ver algumas informações do segundo.

Pode ser que o Proxy esteja causando essa confusão toda. Mas será que tem algum meio de se proteger disso?

Alguém já passou por isso e tem alguma sugestão?

Agradeço qualquer ajuda!!

Cara acho muito difícil que este problema esteja associado ao proxy…pq vc chegou a essa conclusão ?

Porque apenas nesse cliente isso ocorre, e sei que utilizam Proxy e fazem armazenamento de cache.

Já tive outros problemas neste mesmo cliente, nada tão grave quanto esse, mas esses outros problemas foram solucionados alterando uma configuração do web.xml (javax.faces.STATE_SAVING_METHOD). Mudei de server para client.

Você pode pedir para o cliente configurar o proxy para não fazer cache da sua aplicação.

Isso realmente resolveria meus problemas, mas como o cliente é um orgão publico a burocracia é imensa, por isso gostaria de tentar resolver o problema sem alterar configuração de proxy.

Isso realmente resolveria meus problemas, mas como o cliente é um orgão publico a burocracia é imensa, por isso gostaria de tentar resolver o problema sem alterar configuração de proxy.[/quote]

Se o seu problema é ralmente no proxy e as máquinas clientes obrigatoriamente precisam acessar via proxy não tem outra forma de resolver.

E sele ele utilizar essa tag html não resolve? Pois tive um problema bizarrro como esse e o problema todo foi resolvido com essa tag, bem não sei como está a aplicação dele JSF, JSP ou qualquer outra coisa, mas no meu caso só de não guardar o cache deu certo

<HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">

Perdão por ressuscitar…
Estou com um problema parecido …Só que meu sistema é bem grande …Verificar o proxy de todos os clientes não seria viável? existe algum outra solução ?

O que se costuma fazer nesses casos é enviar um conjunto de headers http:

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

Eles dão algumas informações para o browser a respeito do armazenamento em cache do conteúdo. Os proxies normalmente também respeitam esses headers, portanto não deverão fazer cache.

Como adicionar esses headers varia conforme o framework, em Servlet puro seria assim:

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. response.setHeader("Pragma", "no-cache"); // HTTP 1.0. response.setDateHeader("Expires", 0); // Proxies.

E para entender melhor o assunto:


http://condor.depaul.edu/dmumaugh/readings/handouts/SE435/HTTP/node24.html

This really solved my problems,