복붙노트

[SPRING] 봄 보안으로 로그인 한 모든 사용자를 어떻게 로그 아웃합니까?

SPRING

봄 보안으로 로그인 한 모든 사용자를 어떻게 로그 아웃합니까?

프로그래밍 방식으로 로그인 한 모든 사용자를 로그 아웃 할 수 있기를 원합니다. 어떤 이벤트에서 모든 사용자를 강제로 로그 아웃 하시겠습니까?

해결법

  1. ==============================

    1.먼저 web.xml에 HttpSessionEventPublisher를 정의하십시오.

    먼저 web.xml에 HttpSessionEventPublisher를 정의하십시오.

    <listener>
        <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
    </listener>
    

    그런 다음 spring security.xml 파일에 를 정의하십시오.

    이제 컨트롤러 메서드에서 SessionRegistry를 사용하여 모든 세션을 무효화하십시오. 아래 코드는 모든 활성 세션을 검색합니다.

    List<SessionInformation> activeSessions = new ArrayList<SessionInformation>();
        for (Object principal : sessionRegistry.getAllPrincipals()) {
            for (SessionInformation session : sessionRegistry.getAllSessions(principal, false)) {
                activeSessions.add(session);
            }
        }
    

    각 활성 세션에서 expireNow () 메서드를 호출하여 만료 또는 무효화 할 수 있습니다.

  2. ==============================

    2.Ketan은 블록에 대해 두 번째를 변경하고 session.expireNow ()를 사용하면 찾고있는 답변을 제공합니다. 대신 activeSessions.add (session); 당신은 만료 된 모든 활성 세션으로 끝날 것입니다.

    Ketan은 블록에 대해 두 번째를 변경하고 session.expireNow ()를 사용하면 찾고있는 답변을 제공합니다. 대신 activeSessions.add (session); 당신은 만료 된 모든 활성 세션으로 끝날 것입니다.

  3. from https://stackoverflow.com/questions/14751964/how-do-you-log-out-all-logged-in-users-in-spring-security by cc-by-sa and MIT license