SMALL
Spring Security에서 현재 로그인한 사용자의 정보를 가져오는 방법을 알아보도록 하자.
SecurityContextHolder 이용
Spring Security에서 전역으로 선언된 SecurityContextHolder를 통해서 정보를 가져올 수 있다.
SecurityContextHolder는 Spring Security Architechture에서 간단하게 알아본 적이 있는데
( https://joomn11.tistory.com/90 )
해당 클래스를 통해서 인증을 통해 발급된 Authentication을 얻을 수 있다.
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String userName = auth.getName();
Controller 메서드 인자 이용
Controller로 선언된 클래스의 메서드에서 인자로 Authentication 객체에 접근을 할 수 있다.
@Controller
public class UserController {
@GetMapping("/user")
public String userName(Authentication authentication) {
String userName = authentication.getName();
return userName;
}
}
추가적으로, Principal 객체도 얻을 수 있다.
@Controller
public class UserController {
@GetMapping("/user")
public String userName(Principal principal) {
String userName = principal.getName();
return userName;
}
}
LIST
'Spring > etc' 카테고리의 다른 글
[Spring] Controller DTO 데이터 검증 - @Valid (0) | 2022.01.11 |
---|---|
[Spring] Spring Boot Logging(SLF4J, Logback) (0) | 2021.12.13 |
[Spring] Spring Security Architecture (0) | 2021.11.29 |
[Spring] @PreAuthorize, @PostAuthorize에서 Custom Security Expression 사용하기 (0) | 2021.11.27 |
[Spring] Spring Security Annotation (@PreAuthorize, @PostAuthorize, @Secure) (0) | 2021.11.24 |