728x90
클라이언트 측에서 Header에 Jwt 토큰을 실어 보내면 해당 정보를 볼 수 있는 방법을 간단하게 알아보겠습니다.
커스텀 애너테이션
@Login이라는 커스텀 애너테이션을 만들어서 UserDetails 객체에 받아온다
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
@AuthenticationPrincipal
public @interface Login {
}
@GetMapping
public void getJwtEmailTest(@Login UserDetails userDetails) {
System.out.println("@Login : " + userDetails.getUsername());
}
@AuthenticationPrincipal 애너테이션
@AuthenticationPrincipal 애너테이션을 이용하여 정보를 UserDetails 객체에 받아온다
@GetMapping
public void getJwtEmailTest(@AuthenticationPrincipal UserDetails userDetails) {
System.out.println("@AuthenticationPrincipal : " + userDetails.getUsername());
}
SecurityContextHolder
@GetMapping
public void getJwtEmailTest() {
String jwtEmail = SecurityContextHolder.getContext().getAuthentication().getName();
System.out.println("SecurityContextHolder : " + jwtEmail);
}
결과
728x90
'개발일지 > Spring' 카테고리의 다른 글
Spring-boot Querydsl 사용해보기! (0) | 2023.01.23 |
---|---|
캐시 사용해보기 @Cacheable, @CacheEvict (Spring-boot) (0) | 2023.01.13 |
springboot 개발환경에 따른 application.yml 설정 (2) | 2022.11.28 |
인증서 발급 및 Spring boot에서 HTTPS 서버 구현 (0) | 2022.11.22 |
Spring boot - Profile 설정 (0) | 2022.11.15 |