Post

Backend - Spring boot swagger UI JWT 인증 적용 방법에 대해 알아보자.

Backend - Spring boot swagger UI JWT 인증 적용 방법에 대해 알아보자.

Swagger UI JWT 토큰 인증 방식 적용 방법

Swagger UI에 JWT 인증 방식을 적용시키는 방법은 @SecurityScheme, @SecurityRequirement를 사용하는 것이다.

@SecurityScheme

SwaggerConfig.java 예시

1
2
3
4
5
6
7
8
9
10
@SecurityScheme(
        name = "Jwt Auth",
        type = SecuritySchemeType.HTTP,
        bearerFormat = "JWT",
        scheme = "bearer"
)

public class SwaggerConfig {
  ...
}
  • name: Swagger UI에서 인증 스킴명
    • @SecurityRequirement 어노테이션을 사용해서 인증 스킴을 지정할 때 name 값으로 사용됨
  • type: 인증 유형을 지정
    • SecuritySchemeType.HTTP: HTTP 프로토콜 기반 인증 방식을 뜻함
    • 이 외에도 APIKEY, OAUTH2등이 있음
  • bearerFormat: 인증 스킴에서 사용되는 토큰 형식을 알려줌
    • 단순 설명 용도로 사용되며 실질적인 기능은 없음
  • scheme: 인증 스킴의 이름
    • bearer: Authorization: Bearer <token> 형태로 요청을 날려줌
    • basic: Authorization: Basic <credentials> 형태로 요청을 날려줌

@SecurityRequirement

해당 어노테이션에 name 속성을 사용하여 정의한 @SecurityScheme와 연결한다.

@SecurityRequirement 사용 예시

1
2
3
4
5
6
@GetMapping("/example")
@PreAuthorize("hasRole('ROLE_USER')")
@SecurityRequirement(name="Jwt Auth")
public String example(){
	return "Hello";
}
This post is licensed under CC BY 4.0 by the author.