2011-07-26 3 views
1

J'espère que vous pouvez m'aider, parce que j'essaie de trouver des réponses sur Internet, mais je n'ai rien trouvé à ce sujet. Problème: J'ai une application Web Java commune (la première page est une connexion, puis des options système) qui fonctionne très bien dans les environnements publics. J'ai un client qui a ISA Server 2006 comme un proxy pour son entreprise et les gens dans cet endroit obtiennent quelques erreurs comme montrer des informations d'autres utilisateurs qui sont connectés simultanément dans le système. Je pense que l'erreur est que ISA met en cache le cookie de session et quand un utilisateur fait une demande, le partage ISA ce cookie envoie à mon serveur une demande avec le mauvais sessionId.Java HttpSession problème avec ISA Server 2006

Quelqu'un a une idée sur ce problème ou sait comment le résoudre (je n'ai pas accès à ISA pour éviter la mise en cache de mon application)?

Merci!

Répondre

0

Je n'ai jamais entendu parler d'un problème avec les cookies de session de mise en cache des proxies. Cela ne veut pas dire que ça ne peut pas arriver, mais je regarderais d'abord plus près de chez moi. Ce que vous décrivez serait un résultat attendu d'un code non thread-safe. Recherchez les problèmes de concurrence dans votre base de code. Une autre possibilité est la mise en cache Web. Si les demandes de données vont toutes à la même URL et que vous ne contrôlez pas correctement la mise en cache, il est concevable qu'un cache Web puisse mettre en cache les données de la requête d'un utilisateur et les afficher à un autre utilisateur.

+0

J'utilise Spring 3 pour le web en utilisant MultiActionControllers, de cette façon je ne sais pas si J'ai des problèmes de non-thread-safe mais je ne pense pas. J'ai mis les directives ci-dessous mais cela ne fonctionne pas avec le proxy. Connaissez-vous une autre façon de faire une bonne gestion du cache? – zerovirus

+0

Voici les directives '<% response.setHeader (" Cache-Control "," no-store "); // HTTP 1.1 response.setHeader ("Pragma", "no-cache"); // HTTP 1.0 response.setDateHeader ("Expires", -1); %> ' – zerovirus