모든 사용자의 세션을 확인하기 위해서는 sessionRegistry를 이용해야 하고 이를 주입받기 위해서는 SecurityConfig파일에 등록해주어야 합니다.
@Bean
public SessionRegistry sessionRegistry() {
return new SessionRegistryImpl();
}
private final SessionRegistry sessionRegistry;
@GetMapping("/")
public String home(HttpServletRequest request, Model model, HttpSession session) {
List<Object> allPrincipals = sessionRegistry.getAllPrincipals();
// 각 Principal(사용자)에 대한 세션 정보를 가져옵니다.
for (Object principal : allPrincipals) {
if (principal instanceof UserDetails) {
UserDetails userDetails = (UserDetails) principal;
// 현재 사용자의 모든 세션 정보를 가져옵니다.
List<SessionInformation> sessions = sessionRegistry.getAllSessions(userDetails, false);
sessions.stream().forEach(s-> log.info(userDetails.getUsername()+" : "+ s.getSessionId()));
}
}
return "home";
}
'Spring' 카테고리의 다른 글
Session을 이용한 로그인2(HttpServletRequest이용) (0) | 2023.05.20 |
---|---|
Session을 이용한 로그인1(직접 구현) (1) | 2023.05.20 |
세션고정 취약점 및 보호 정책 (0) | 2023.05.18 |
LAZY로딩 관련 정리(직렬화 오류, N+1문제) (0) | 2023.05.11 |
JWT인증 설정 시 SpringBootTest (0) | 2023.05.06 |