From b0f140fedb28004b2cae99296a59ade1a8278c69 Mon Sep 17 00:00:00 2001 From: HongGit Date: Mon, 7 Oct 2024 02:40:34 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[CHORE/#152]=20=EC=8A=A4=EC=9B=A8=EA=B1=B0?= =?UTF-8?q?=20=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.gradle b/build.gradle index 45b03d9..c07d4da 100644 --- a/build.gradle +++ b/build.gradle @@ -87,6 +87,9 @@ dependencies { // Redisson implementation "org.redisson:redisson:3.29.0" + + // SWAGER + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0' } ext { From ec329c25b101b11f454961f42da5a85ed92019b9 Mon Sep 17 00:00:00 2001 From: HongGit Date: Mon, 7 Oct 2024 02:41:02 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[FEAT/#152]=20=EC=8A=A4=EC=9B=A8=EA=B1=B0?= =?UTF-8?q?=20=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=BB=A8=EB=B2=84=ED=84=B0=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/sopt/seonyakServer/global/config/WebConfig.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/org/sopt/seonyakServer/global/config/WebConfig.java b/src/main/java/org/sopt/seonyakServer/global/config/WebConfig.java index f95fa5b..70875d5 100644 --- a/src/main/java/org/sopt/seonyakServer/global/config/WebConfig.java +++ b/src/main/java/org/sopt/seonyakServer/global/config/WebConfig.java @@ -2,6 +2,7 @@ import java.util.List; import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.ByteArrayHttpMessageConverter; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.servlet.config.annotation.CorsRegistry; @@ -27,6 +28,9 @@ public void configureMessageConverters(List> converters) // 기존 컨버터들을 모두 제거 (외부 라이브러리의 코틀린 컨버터와 충돌을 피하기 위함) converters.clear(); + // Swagger M7 ByteArrayHttpMessageConverter (add + converters.add(new ByteArrayHttpMessageConverter()); + // Jackson 라이브러리를 사용하는 컨버터 추가 converters.add(new MappingJackson2HttpMessageConverter()); } From 644f8cdb86e78c0bfe9d5b176125601e97e4990c Mon Sep 17 00:00:00 2001 From: HongGit Date: Mon, 7 Oct 2024 02:41:25 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[FEAT/#152]=20=EC=8A=A4=EC=9B=A8=EA=B1=B0?= =?UTF-8?q?=20=EC=84=A4=EC=A0=95=20=ED=8C=8C=EC=9D=BC=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/config/SwaggerConfig.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/main/java/org/sopt/seonyakServer/global/config/SwaggerConfig.java diff --git a/src/main/java/org/sopt/seonyakServer/global/config/SwaggerConfig.java b/src/main/java/org/sopt/seonyakServer/global/config/SwaggerConfig.java new file mode 100644 index 0000000..ad13b5c --- /dev/null +++ b/src/main/java/org/sopt/seonyakServer/global/config/SwaggerConfig.java @@ -0,0 +1,37 @@ +package org.sopt.seonyakServer.global.config; + +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.security.SecurityRequirement; +import io.swagger.v3.oas.models.security.SecurityScheme; +import io.swagger.v3.oas.models.servers.Server; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class SwaggerConfig { + @Bean + public OpenAPI openAPI() { + Info info = new Info() + .title("SEONYAK Swagger") + .description("SEONYAK Docs") + .version("1.0.0."); + + // jwt에 대한 SecurityScheme 설정, Swagger-ui에서 token 인증이 가능해짐 + String jwtSchemeName = "jwtAuth"; + SecurityRequirement securityRequirement = new SecurityRequirement().addList(jwtSchemeName); + Components components = new Components() + .addSecuritySchemes(jwtSchemeName, new SecurityScheme() + .name(jwtSchemeName) + .type(SecurityScheme.Type.HTTP) + .scheme("bearer") + .bearerFormat("JWT")); + + return new OpenAPI() + .addServersItem(new Server().url("/")) + .addSecurityItem(securityRequirement) + .components(components) + .info(info); + } +} From 080b68300e0853c5b9398949c14fb46535aca79c Mon Sep 17 00:00:00 2001 From: HongGit Date: Mon, 7 Oct 2024 02:41:45 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[FEAT/#152]=20=EC=8A=A4=EC=9B=A8=EA=B1=B0?= =?UTF-8?q?=20=EB=B0=B0=ED=8F=AC=20=EC=84=9C=EB=B2=84=20=ED=86=B5=EC=8B=A0?= =?UTF-8?q?=EC=9D=84=20=EC=9C=84=ED=95=9C=20=EC=96=B4=EB=85=B8=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EC=85=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/sopt/seonyakServer/SeonyakServerApplication.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/sopt/seonyakServer/SeonyakServerApplication.java b/src/main/java/org/sopt/seonyakServer/SeonyakServerApplication.java index c602143..ce1b6d2 100644 --- a/src/main/java/org/sopt/seonyakServer/SeonyakServerApplication.java +++ b/src/main/java/org/sopt/seonyakServer/SeonyakServerApplication.java @@ -1,9 +1,12 @@ package org.sopt.seonyakServer; +import io.swagger.v3.oas.annotations.OpenAPIDefinition; +import io.swagger.v3.oas.annotations.servers.Server; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; +@OpenAPIDefinition(servers = {@Server(url = "https://api.seonyak.com", description = "product seonyak server")}) @SpringBootApplication @EnableScheduling public class SeonyakServerApplication { From 92a9525666adb9d213371d437dc66b6a5ef8e4e7 Mon Sep 17 00:00:00 2001 From: HongGit Date: Mon, 7 Oct 2024 02:42:08 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[FEAT/#152]=20=EC=8A=A4=EC=9B=A8=EA=B1=B0?= =?UTF-8?q?=20=ED=99=94=EC=9D=B4=ED=8A=B8=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sopt/seonyakServer/global/auth/security/SecurityConfig.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/org/sopt/seonyakServer/global/auth/security/SecurityConfig.java b/src/main/java/org/sopt/seonyakServer/global/auth/security/SecurityConfig.java index b1de9aa..64064ac 100644 --- a/src/main/java/org/sopt/seonyakServer/global/auth/security/SecurityConfig.java +++ b/src/main/java/org/sopt/seonyakServer/global/auth/security/SecurityConfig.java @@ -29,7 +29,9 @@ public class SecurityConfig { "/actuator/health", "/v3/api-docs/**", "/swagger-ui/**", + "/swagger-ui.html", "/swagger-resources/**", + "swagger-ui/index.html" }; @Bean