From 61c969af23eecee52d90217bbc8f08229c5e7e1e Mon Sep 17 00:00:00 2001 From: gimn70009 Date: Sun, 14 Sep 2025 11:22:45 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20swagger=EC=9D=B4=EC=9A=A9=EC=8B=9C=20?= =?UTF-8?q?=ED=86=A0=ED=81=B0=20=EC=9D=B4=EC=9A=A9=ED=95=A0=20=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sosaw/global/config/SwaggerConfig.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/sosaw/sosaw/global/config/SwaggerConfig.java b/src/main/java/com/sosaw/sosaw/global/config/SwaggerConfig.java index fc3c05c..fb73366 100644 --- a/src/main/java/com/sosaw/sosaw/global/config/SwaggerConfig.java +++ b/src/main/java/com/sosaw/sosaw/global/config/SwaggerConfig.java @@ -1,5 +1,7 @@ package com.sosaw.sosaw.global.config; +import io.swagger.v3.oas.models.security.SecurityRequirement; +import io.swagger.v3.oas.models.security.SecurityScheme; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; @@ -9,14 +11,32 @@ @Configuration public class SwaggerConfig { + private static final String SECURITY_SCHEME_NAME = "bearerAuth"; + @Bean public OpenAPI openAPI() { + // API 기본 정보 Info info = new Info() .title("sosaw") .version("v0.0.1") .description("공학경진대회 sosaw의 API 명세서"); + + // Bearer(JWT) 스키마 정의 + SecurityScheme bearerAuthScheme = new SecurityScheme() + .type(SecurityScheme.Type.HTTP) // HTTP 인증 + .scheme("bearer") // 스키마는 bearer + .bearerFormat("JWT") // 표시용 포맷 + .in(SecurityScheme.In.HEADER) // 헤더에 담음 + .name("Authorization"); // 헤더 이름 + + // 전역 보안 요구사항, 전체 엔드포인트에 적용 + SecurityRequirement securityRequirement = new SecurityRequirement() + .addList(SECURITY_SCHEME_NAME); + return new OpenAPI() - .components(new Components()) - .info(info); + .info(info) + .components(new Components() + .addSecuritySchemes(SECURITY_SCHEME_NAME, bearerAuthScheme)) + .addSecurityItem(securityRequirement); } -} +} \ No newline at end of file