현재 세션 사용자의 정보를 알고 싶은 경우 다음 방법들을 이용한다.
우선
1. Controller에서 정보를 받는 방법.
@RequestMapping("/") public String user(Principal principal) { System.out.println(principal.getName()); return "user"; }
2. SpringContextHolder를 사용하는 방법.
Authentication auth = SecurityContextHolder.getContext().getAuthentication(); System.out.println(auth.getName());
3. 스프링 시큐리티 User 클래스로 형변환하여 정보를 조회하는 방법
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); System.out.println(user.getUsername());
이때 User 클래스는
org.springframework.security.core.userdetails.User