개발일지/Spring

Spring boot Jwt 토큰의 정보를 가져오는 방법

E-room 2023. 1. 1. 19:33
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