Как выйти из системы определенного пользователя в Spring Boot - PullRequest
0 голосов
/ 28 сентября 2018

Я уже написал метод входа в систему.Теперь я хочу, чтобы пользователь вышел из текущей сессии.Однако можно уничтожить только все сеансы.

Это то, что у меня есть в данный момент:

Мой метод входа в систему:

@GetMapping("/")
public String root(Model model) {

    //show all current logged in users
    List<Object> loggedUsers = sessionRegistry.getAllPrincipals();
    for (Object principal : loggedUsers) {
        final User loggedUser = (User) principal;
        model.addAttribute("loggedInUser", loggedUsers); 
    }
    return "index";
}

Класс выхода из системы

@ Открытый класс компонента CustomLogoutSuccessHandler реализует LogoutSuccessHandler {

@Override
public void onLogoutSuccess(HttpServletRequest request,
        HttpServletResponse response, Authentication authentication)
        throws IOException, ServletException {
    logger.info("Logout successfully with principal: " + authentication.getName());

    HttpSession hs = request.getSession();
    String username = request.getUserPrincipal().getName();
    String id = hs.getId();
    Enumeration e = hs.getAttributeNames();
    while (e.hasMoreElements()) {
        String attr = (String) e.nextElement();
        hs.setAttribute(attr, null);
    }
    hs.invalidate();
}

}

Может быть, кто-нибудь может дать мне подсказку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...