J'utilise Spring Security 3.0 avec Spring MVC. Mon application Web Java est un panier. J'utilise un service qui stocke une liste de courses en session, lorsque l'utilisateur A crée une liste de courses, puis se déconnecte et se reconnecte, la liste de courses est restaurée normalement, mais si un autre utilisateur B va à la même application, en utilisant le même navigateur et en vous connectant, la session est restaurée en utilisant la liste d'achats de l'utilisateur A !. Ce que je peux comprendre, c'est que le cookie JSESSION ne change pas lorsque l'utilisateur se déconnecte du même navigateur. C'est la raison pour laquelle si l'utilisateur A se connecte à l'application en utilisant un autre navigateur, il n'a pas les mêmes données de session, le cookie JSESSION est différent. J'utilise mon propre gestionnaire de succès d'authentification pour me connecter et me déconnecter.Comment créer un nouveau cookie pour un nouvel utilisateur connecté inSpring Security
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/index.html" access="permitAll"/>
<form-login login-page="/index.html"
default-target-url="/index.html"
authentication-success-handler-ref = "loginSuccessHandler"
/>
<logout invalidate-session="false" logout-url="/logout" success-handler-ref="logoutSuccessHandler" />
<!-- <logout invalidate-session="false" success-handler-ref="logoutSuccessHandler" /> -->
</http>
Et oui à l'aide d'invalider session = « true » pourrait être une solution de courte durée, mais de cette façon, je ne peux pas utiliser les données enregistrées en session. Ce que je veux, c'est que lorsque UserA se connecte à un navigateur, enregistre des données dans une session (la liste d'achats), puis déconnecte, que UserB ait sa propre session, au lieu d'utiliser la session UserA, je suspecte que La réponse consiste à assigner un nouveau cookie à userB, mais aussi à asigner l'ancien cookie à UserA.
Si le panier est dans la session et que la session n'est pas invalidée lorsque l'utilisateur se déconnecte, le panier est toujours actif dans ce navigateur, non? Je suppose qu'ils n'y ont tout simplement pas accès parce que toutes les pages du panier exigent que vous soyez connecté? – sourcedelica
Oui, les pages du panier exigent que vous soyez connecté.Quand je logote, les JSESSION ne changent pas, donc n'importe quel utilisateur qui se connecte obtient la même session que l'utilisateur précédent – Jeeba