4 votes

Spring boot Security, Oauth2 logout, invalider la session afin de passer par le cycle d'authentification et d'approbation dans le serveur d'autorisation.

J'ai suivi le tutoriel de Dave Syer, SSO avec OAuth2, Partie 5 https://github.com/spring-guides/tut-spring-security-and-angular-js/tree/master/oauth2

Il comprend une passerelle UI/API, un serveur de ressources et un serveur d'autorisation. Lorsque je clique sur logout depuis l'application passerelle UI/API, j'obtiens le message suivant, ajouter une description de l'image ici Problème Cors

Ce qui se passe actuellement dans le tutoriel de Dave Syer, c'est que lorsqu'un utilisateur clique sur logout, le drapeau d'authentification est changé en false, donnant l'impression que l'utilisateur s'est déconnecté alors qu'ils ne se sont déconnectés que de l'application passerelle UI/API.

Lorsqu'un utilisateur clique sur login, souvenez-vous qu'ils ne se sont pas déconnectés du serveur d'authentification. Par conséquent, l'utilisateur ne passe pas à nouveau par le cycle d'authentification et d'approbation.

Ce que je veux, c'est que lorsqu'un utilisateur clique sur logout et essaie de se reconnecter, l'utilisateur doit saisir son nom d'utilisateur et son mot de passe. En fait, ils devraient recommencer à zéro, ce qui signifie que le système doit invalider la session et/ou le jeton.

J'ai essayé en vain de trouver une solution à ce problème. Est-ce que quelqu'un pourrait m'indiquer comment résoudre/corriger cela?

0voto

isaDev Points 1
@SuppressWarnings("null")
    @RequestMapping(value="/login")
    public String login(HttpServletRequest request){
         HttpSession session= request.getSession();
        SecurityContextHolder.clearContext();
        if(session == null) {
            session.invalidate();
        }
        return"login";
    }

0voto

gokumc Points 11

Je suis actuellement confronté au même problème. Ce que j'ai découvert jusqu'à présent, c'est que cela semble être un problème de conception SSO général car il n'est pas vraiment clair si l'utilisateur souhaite se déconnecter uniquement de l'application (passerelle) ou de tout le système (serveur oauth2). Vous pouvez trouver plus d'informations à ce sujet ici dans l'article de blog de Dave Syers sous le titre L'expérience de déconnexion. J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X