Je développe quelques applications J2EE qui devraient avoir un point de connexion commun. Mes applications sont hébergées sur le serveur d'application GlassFish v3.
Il y a une sécurité basée sur web.xml avec la méthode FORM (un formulaire HTML avec une action "j_security_check") et un Realm JDBC sur une source de données PostgreSQL 8.4. Cela fonctionnait parfaitement bien lorsque la SSO de GlassFish était désactivée.
Maintenant la SSO est activée sur la page de Service HTTP de GF et ça fonctionne vraiment bien lorsque je dois me connecter. Chacune de mes applications laisse un utilisateur connecté. Mais voici un autre problème.
Mon servlet de déconnexion fonctionne désormais correctement uniquement lorsque je clique sur "déconnexion" deux fois. Après le premier clic sur "déconnexion" je reste connecté. Le code du servlet est ci-dessous.
public class LogoutServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//request.logout(); // j'ai aussi essayé cela
request.getSession().invalidate(); // fonctionnait correctement
response.sendRedirect("./"); // vers la page de bienvenue
}
}
Je serais reconnaissant pour quelques conseils utiles.
Merci.