SpringBoot에서 Swagger Authorize 버튼으로 토큰 인증 설정하기

LeeYulhee·2024년 12월 7일

👉 문제


  • 스웨거로 테스트 할 때 토큰을 같이 넘기지 못해서 원할한 테스트가 불가

  • 찾아보니 아래처럼 Authorize 버튼을 활성화 시키면 토큰으로 인증을 수행

  • 참고로 스웨거는 3버전





👉 적용 방법


@Configuration
public class SwaggerConfig {

    public static final String ACCESS_TOKEN_SECURITY_SCHEMA_NAME = "AccessToken";

    @Bean
    public OpenAPI openAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("API 명세서")
                        .description("API 명세서 정보")
                        .version("1.0.0"))
                // Components 등록
                .components(new Components() // 버튼
                        .addSecuritySchemes(
                                ACCESS_TOKEN_SECURITY_SCHEMA_NAME,
                                new SecurityScheme()
                                        .type(SecurityScheme.Type.APIKEY)
                                        .in(SecurityScheme.In.HEADER)
                                        .name(ACCESS_TOKEN_SECURITY_SCHEMA_NAME))
                        )
                .addSecurityItem(new SecurityRequirement() // 스웨거 상에서 매 요청마다 AccessToken을 헤더로 담아줌
                        .addList(ACCESS_TOKEN_SECURITY_SCHEMA_NAME));
    }
}
  • components로 시작하는 부분은 해당 기능에 대한 버튼을 추가하는 것(컴포넌트만)
  • addSecurityItem로 실제 요청 헤더에 토큰 추가가 됨
  • public static final String ACCESS_TOKEN_SECURITY_SCHEMA_NAME = "AccessToken" 부분의 변수명과 값을 수정해서 헤더 이름을 설정할 수 있음
profile
끝없이 성장하고자 하는 백엔드 개발자입니다.

0개의 댓글