인증 필요 여부 표기

엔드 포인트 중에는 인증이 필요한 기능이 있고, 필요 없는 기능이 있다.

API 사용자 입장에서는 직접 사용해서 깨닫기 보다는 사용 전에 이 두가지를 구분해주면 사용하기 더 편리할 것이다.


구현하기

구현 순서는 아래와 같다.

  1. SwaggerConfig 추가 설정
  2. 컨트롤러에 스웨거 UI용 설정 추가
  3. 결과 확인

1.  SwaggerConfig 추가 설정 

아래처럼 SwaggerConfig에 @SecurityScheme 애노테이션을 이용하여 인증 수단을 등록할 수 있다.

본인은 JWT를 쿠키에 넣어서 인증하는 방식을 사용했다.

만약 Authorization 헤더를 사용한다면 알맞게 수정하면 된다.

SwaggerConfig

@Configuration
@RequiredArgsConstructor
@SecurityScheme(
    name = "jwt-cookie",
    type = SecuritySchemeType.APIKEY,
    in = SecuritySchemeIn.COOKIE
)
public class SwaggerConfig {

 


2.  컨트롤러에 스웨거 UI 표기용 설정 추가

UserController

@RestController
@RequestMapping("/api/user")
@RequiredArgsConstructor
@SecurityRequirement(name = "jwt-cookie")
@Tag(name = "UserController", description = "유저 정보 관련 컨트롤러 입니다.")
public class UserController {

ㄴ@SecurityRequirement

해당 애노테이션 추가 시 인증이 필요하다는 자물쇠 모양이 생긴다.

name 값에는 SwaggerConfig 에서 @SecurityScheme 을 이용하여 등록한 인증 수단 이름을 넣어준다.

각각 메서드에도 붙일 수 있지만 클래스에 붙이면 모든 엔드포인트가 인증이 필요함을 표시할 수 있다.


3. 결과 확인

아래 사진처럼 인증이 필요한 컨트롤러에는 자물쇠 모양으로 구분할 수 있게 되었다.

+ Recent posts