복붙노트

[SPRING] 스프링 보안으로 세션 ID 검색하기

SPRING

스프링 보안으로 세션 ID 검색하기

로깅 목적으로, 현재 세션의 ID를 기록 된 라인에 자동으로 추가하는 로거를 만들고 싶습니다. 로그인 한 사용자의 경우 이는 문제가되지 않습니다.

((WebAuthenticationDetails) SecurityContextHolder.getContext().getAuthentication().getDetails())
    .getSessionId()

문제는 사용자가 로그인하기 전에 getAuthentication ()이 null을 반환한다는 것입니다. 현재 응답이나 그 종류의 어떤 것도 참조하지 않고 세션 ID를 가져 오는 또 다른 방법이 있습니까?

감사!

해결법

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

    1.너는 사용할 수있다.

    너는 사용할 수있다.

    RequestContextHolder.currentRequestAttributes().getSessionId();
    

    이것은 Spring의 RequestContextHolder에 의존하기 때문에 Spring MVC의 DispatcherServlet과 함께 사용하거나 RequestContextListener를 선언해야한다. 존재하지 않으면 세션도 생성됩니다.

  2. from https://stackoverflow.com/questions/3542026/retrieving-session-id-with-spring-security by cc-by-sa and MIT license