Return to list

[WSSO] Logout

avatar provided by gravatar.com kribot | Oct 25, 2010 11:37:19 AM

[WSSO] Logout

Bonjour,

J'aimerai savoir quel code/lien faut il mettre en place pour gérer la déconnexion d'un utilisateur connecté via WSSO ?

Merci,
Kévin

Vote Score 50

Share

Report

Commentaires (17 )

Posted by : kribot | 15/11/2010 18:01:11
A l'heure actuelle, je ne redirige nul part l'utilisateur, mais tous les cookies sont toujours présents apparemment
 
Posted by : VVO | 15/11/2010 17:52:52
Pouvez-vous me confirmer qu'aucun cookie n'est envoyé lors de la redirection (après le logout, l'utilisateur est redirigé vers la page d'accueil) ?
 
Posted by : kribot | 15/11/2010 17:40:53
Normalement ils sont censés devenir obsoblètes avec cette méthode, mais le remoteUser me remonte bien quelque chose. Y'a t'il un autre moyen pour déconnecter un utilisateur ? Merci
 
Posted by : VVO | 15/11/2010 17:19:20
Les cookies sont-ils bien effacés grâce à votre méthode ? Quel est le comportement de la méthode getRemoteUser( HttpServletRequest request ) de SecurityService du core (user non null, ou retrouvé grâce à l'authentification externe) ?
 
Posted by : kribot | 15/11/2010 17:08:57
ok, bon par contre on dirait que ma méthode ne déconnecte pas l'utilisateur j'ai essayé de faire qqch avec les cookies [code] public void logout( LuteceUser user ) { Cookie[] cookies = LocalVariables.getRequest().getCookies( ); if ( cookies != null ) { for ( int i = 0; i < cookies.length; i++ ) { Cookie cookie = cookies[i]; cookie.setMaxAge( 0 ); cookie.setPath( "/" ); LocalVariables.getResponse().addCookie(cookie); } } } [/code] mais ça ne fait rien, une idée ?
 
Posted by : VVO | 15/11/2010 16:21:55
J'ai regardé le code de la jsp de logout et, par défaut, elle ne renseigne effectivement pas les valeurs de LocalVariable (contrairement à la JSP de login). Vous pouvez surcharger la jsp DoMyLuteceLogout.jsp ou utiliser modifier la propriété suivante : mylutece.url.doLogout=jsp/site/plugins/mylutece/DoMyLuteceLogout.jsp par votre jsp. Le code de la JSP est le suivant : [code] <%@ page import="fr.paris.lutece.portal.web.LocalVariables" %> <% LocalVariables.setLocal( config, request, response ); try { response.sendRedirect( myluteceApp.doLogout( request ) ); } finally { LocalVariables.setLocal( null, null, null ); } %>[/code]
 
Posted by : kribot | 15/11/2010 16:11:12
LocalVariable ne me renvoie null pour le getRequest et getResponse, y'a quelque chose de particulier à faire ?
 
Posted by : kribot | 15/11/2010 15:36:44
ah, ok, non mais en gros j'ai un module d'auth spécifique à mes besoins donc je vais devoir mettre à jour ma classe
 
Posted by : VVO | 15/11/2010 15:31:30
Des évolutions sur le plugin MyLutece ont été réalisées récemment (version 3.0.0), permettant en particulier le support de plusieurs système d'authentification. Si vous mettez à jour votre projet dans eclipse ou netbeans, la dépendances devrait se mettre à jour.
 
Posted by : kribot | 15/11/2010 15:24:05
hum, y'a quelque chose qui aurait changé récemment j'ai cette erreur depuis aujourd'hui (enfin c'est la première fois que je la vois) ? C:\LuteceEnv\workspace\module-mylutece-sima\src\java\fr\paris\lutece\plugins\mylutece\modules\sima\authentication\IdxWSSODatabaseAuthentication.java:[61,7] fr.paris .lutece.plugins.mylutece.modules.sima.authentication.IdxWSSODatabaseAuthentication is not abstract and does not override abstract method getPluginName() in fr.paris .lutece.portal.service.security.LuteceAuthentication
 
Posted by : kribot | 15/11/2010 14:54:45
Héhé! Merci bien, je teste ça de suite, ça m'a l'air pas mal du tout :-)
 
Posted by : VVO | 15/11/2010 14:43:30
Je ne sais pas si ça va vous suffit, mais en front office, vous pouvez accéder à la Response et la Request via LocalVariables.getResponse() et LocalVariables.getRequest()
 
Posted by : kribot | 15/11/2010 14:35:44
pas d'idée ?
 
Posted by : kribot | 04/11/2010 15:31:52
Le problème c'est qu'il faudrait que je puisse passer des paramètres supplémentaires à la méthode logout car avec l'utilisateur seul, je ne peux pas par exemple supprimer le cookie WSSO
 
Posted by : VVO | 25/10/2010 15:16:38
Il n'y a pas actuellement de mécanisme pour se déconnecter réellement d'une authentification externe. En effet, dès que vous chargez une page, l'utilisateur est récupéré (opération effectuée depuis le core). Si l'utilisateur n'est plus en session, alors l'authentification externe est réalisée à nouveau. Par défaut, il n'est pas déconnecté du service externe. Si on déconnecte l'utilisateur, il est en fait déconnecté du site puis reconnecté automatiquement lorsqu'il affichera une page du site. Si c'est le comportement que vous souhaitez, vous pouvez alors surcharger la méthode public String getDoLogoutUrl( ) dans votre authentification pour qu'elle retourne MyLuteceApp.getDoLoginUrl( );, l'include se chargeant d'afficher alors cette url avec la ligne
Logout
Si vous souhaitez réellement déconnecter l'utilisateur (c'est à dire le déconnecter du service externe), alors vous pouvez surcharger la méthode public void logout( LuteceUser user ).
 
Posted by : kribot | 25/10/2010 14:35:51
bonjour, j'utilise un module perso dérivé du wsso-database, et c'est pour le front office Kévin
 
Posted by : VVO | 25/10/2010 13:27:17
Bonjour, quel module utilisez-vous? S'agit-il du front office ou du back office?
 

 Top of the page

Return to list