본문 바로가기
▶ Back-End/Java

Swagger3 JWT 인증 설정

by 오늘도 코딩 2023. 10. 18.
728x90
반응형

Swagger UI에서  API 테스트 시 JWT 인증을 위한 추가 설정

*이전 글에 이어서 작업(관련 글 참고)

*자세한 설명 생략

 

 

▷ Swagger-ui 추가 설정

 

*@SecurityScheme 사용 속성

태그 속성 설명
@SecurityScheme

  인증 스키마 정보를 설정
type 인증타입 (APIKEY, HTTP, OPENIDCONNECT, OAUTH2)
in 인증키 입력 위치(HEADER, QUERY, COOKIE)
name 인증 스키마 명
description 인증 스키마 설명

 

*@OpenAPIDefinition 사용 속성

태그 속성 설명
@SecurityRequirement name Swagger-ui에서 사용할 인증 스키마

 

/**
 * Swagger3
 * 
 */
@OpenAPIDefinition
(
    info = @Info(title = "[행태분석 솔루션] API 명세서", version = "0.1"), 
    security = { @SecurityRequirement(name = "Authorization")}
)
@SecurityScheme
(
    type = SecuritySchemeType.APIKEY, 
    in = SecuritySchemeIn.HEADER, 
    name = "Authorization", 
    description = "로그인 후 응답 받은 토큰"
)
@Configuration
public class Swagger3Config {

    /** API Group */
    @Bean
    public GroupedOpenApi groupedOpenApi() {
        return GroupedOpenApi.builder()
                .group("v0.1-BehaviorAnalysis")
                .pathsToMatch("/**")
                // .pathsToExclude("/bhs/mkd/**")
                .build();
    }

    /** Test Data Make Group */
    @Bean
    public GroupedOpenApi mkdOpenApi() {
        return GroupedOpenApi.builder()
                .group("v0.1-MakeTestData")
                .pathsToMatch("/bhs/mkd/**")
                .build();
    }

}

 

 

▷ 결과 Swagger3 UI

 

인증 버튼 과 인증키 입력 팝업이 생성됐고 인증 후 API 테스트가 가능

 

 

▷ 참고

 

Springdoc-openapi를 활용한 Spring Boot 기반 API의 문서 자동화

1. Springdoc-openapi 프론트엔드와 백엔드의 업무 분리가 명확해지고, REST Api에 의한 서비스 또는 시스템 간의 연계가 증가함에 따라, 자연스레 원활한 협업을 위해 API에 대한 정보의 가공/수정/전파

tg360.tistory.com

 

 

▷ 관련 글

 

Swagger 란?

시간 소요가 많고 관리하기 번거롭던 API 명세서 작성 작업을 Swagger를 통해 간단하게 해결 *자세한 설명 생략 ▷ Swagger 란? *OAS : Open API Specification API의 명세(Spec)를 문서화하여 관리하기 위한 프로

coding-today.tistory.com

 

Swagger 연동 및 설정 방법

Spring Boot + Swagger 연동 방법과 간단한 설정 방법 *maven project에서 springdoc(swagger3)으로 진행 *자세한 설명 생략 ▷ Swagger3 연동 *dependency 이후 바로 사용 가능 ① pom.xml springdoc dependency org.springdoc springd

coding-today.tistory.com

 

 

728x90
728x90

댓글