Nous avons une exigence dans laquelle je dois forcer l'utilisateur de déconnexion si certaines conditions sont remplies. J'ai écrit un crochet PostLoginAction
pour vérifier la condition et faire getSession().invalidate()
lorsque la condition est remplie. Mais après cela, puisqu'il n'y a pas de session active, Liferay m'emmène à l'écran de connexion par défaut (prolly en utilisant un filtre). Si j'essaie de rediriger vers l'une des pages d'erreur à l'intérieur de /ROOT/html/common/
, je reçois une erreur serveur interne cryptique page.Afficher la page d'erreur personnalisée après forcer la déconnexion dans Liferay
À ce stade, j'ai besoin d'afficher un message d'erreur, mais toutes les redirections se retrouvent sur la page de connexion. Quelle devrait être la bonne façon de faire cela? Juste sur une note, est-il un moyen d'afficher le message d'erreur sur la page de connexion lui-même au lieu de rediriger vers une autre page? J'ai essayé d'employer la méthode sessionErrors.add()
pour réaliser la même chose, mais cela aussi n'a pas fonctionné. Faites-moi savoir si vous avez besoin de plus de détails.
Est-ce que je bien - vous voulez déconnecter l'utilisateur _immediately_ après que l'utilisateur a été connecté? Pourriez-vous ajouter votre «PostLoginAction» actuel pour mieux expliquer le problème? –
Avez-vous essayé d'utiliser la création d'un hook "login.events.pre" dans liferay et d'invalider une session utilisateur dans la classe d'action? –
@TobiasLiefke - mon code est presque similaire à ce qui est donné dans la réponse ci-dessous. – buch11