From c2d6d149b01f52d08f463454f816e321e0b2f277 Mon Sep 17 00:00:00 2001 From: Minbro-Kim Date: Fri, 19 Jun 2026 18:53:08 +0900 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20logback-spring.xml=EC=97=90=20local?= =?UTF-8?q?=20=ED=94=84=EB=A1=9C=ED=8C=8C=EC=9D=BC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/logback-spring.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 677f5b4a..e2a6a566 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -131,7 +131,7 @@ - + From b9c482e37bd0da8da49e1357874e3866a991d1f2 Mon Sep 17 00:00:00 2001 From: Minbro-Kim Date: Fri, 19 Jun 2026 19:15:00 +0900 Subject: [PATCH 2/6] =?UTF-8?q?chore:=20swagger=20=EC=84=A4=EC=A0=95=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 --- build.gradle | 2 + .../moduply/common/config/OpenApiConfig.java | 48 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/main/java/com/team6/moduply/common/config/OpenApiConfig.java diff --git a/build.gradle b/build.gradle index 2550ebb1..39a164ef 100644 --- a/build.gradle +++ b/build.gradle @@ -41,6 +41,8 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-testcontainers' testImplementation 'org.testcontainers:junit-jupiter' testImplementation 'org.testcontainers:postgresql' + // Swagger + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.15' } // ========================================= diff --git a/src/main/java/com/team6/moduply/common/config/OpenApiConfig.java b/src/main/java/com/team6/moduply/common/config/OpenApiConfig.java new file mode 100644 index 00000000..2adbd2b0 --- /dev/null +++ b/src/main/java/com/team6/moduply/common/config/OpenApiConfig.java @@ -0,0 +1,48 @@ +package com.team6.moduply.common.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 org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class OpenApiConfig { + + @Bean + public OpenAPI openAPI() { + //csrf + SecurityScheme csrfScheme = new SecurityScheme() + .type(SecurityScheme.Type.APIKEY) + .in(SecurityScheme.In.HEADER) + .name("X-XSRF-TOKEN") + .description("CSRF 토큰 (GET /api/auth/csrf-token 호출 후 XSRF-TOKEN 쿠키 값)"); + + //jwt + SecurityScheme jwtScheme = new SecurityScheme() + .type(SecurityScheme.Type.HTTP) + .scheme("bearer") + .bearerFormat("JWT") + .in(SecurityScheme.In.HEADER) + .name("Authorization") + .description("JWT 액세스 토큰 (로그인 후 발급)"); + + SecurityRequirement securityRequirement = new SecurityRequirement() + .addList("csrfToken") + .addList("jwtToken"); + + return new OpenAPI() + .info(new Info() + .title("모두의 플레이리스트 API 문서") + .description("모두의 플레이리스트 프로젝트의 Swagger API 문서입니다.") + .version("1.0") + ) + .addSecurityItem(securityRequirement) + .components(new Components() + .addSecuritySchemes("csrfToken", csrfScheme) + .addSecuritySchemes("jwtToken", jwtScheme) + ); + } +} From bf6847adb5cf75cef6e5d04e8ea841723444570b Mon Sep 17 00:00:00 2001 From: Minbro-Kim Date: Fri, 19 Jun 2026 19:29:00 +0900 Subject: [PATCH 3/6] =?UTF-8?q?chore:=20swagger=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 39a164ef..824d9b9e 100644 --- a/build.gradle +++ b/build.gradle @@ -42,7 +42,7 @@ dependencies { testImplementation 'org.testcontainers:junit-jupiter' testImplementation 'org.testcontainers:postgresql' // Swagger - implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.15' + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.3' } // ========================================= From 953e7024afda87d0acf7e994dedba6295479eef9 Mon Sep 17 00:00:00 2001 From: Minbro-Kim Date: Fri, 19 Jun 2026 19:50:44 +0900 Subject: [PATCH 4/6] =?UTF-8?q?chore:=20swagger=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EB=B3=B5=EA=B5=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 824d9b9e..39a164ef 100644 --- a/build.gradle +++ b/build.gradle @@ -42,7 +42,7 @@ dependencies { testImplementation 'org.testcontainers:junit-jupiter' testImplementation 'org.testcontainers:postgresql' // Swagger - implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.3' + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.15' } // ========================================= From 939f9d42d341199b6ced4576261caf8cd61fe1c7 Mon Sep 17 00:00:00 2001 From: Minbro-Kim Date: Fri, 19 Jun 2026 19:51:07 +0900 Subject: [PATCH 5/6] =?UTF-8?q?chore:=20swagger=20=EC=8B=9C=ED=81=90?= =?UTF-8?q?=EB=A6=AC=ED=8B=B0=20=EC=A0=84=EC=97=AD=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/team6/moduply/common/config/OpenApiConfig.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/team6/moduply/common/config/OpenApiConfig.java b/src/main/java/com/team6/moduply/common/config/OpenApiConfig.java index 2adbd2b0..bd0feabb 100644 --- a/src/main/java/com/team6/moduply/common/config/OpenApiConfig.java +++ b/src/main/java/com/team6/moduply/common/config/OpenApiConfig.java @@ -39,7 +39,6 @@ public OpenAPI openAPI() { .description("모두의 플레이리스트 프로젝트의 Swagger API 문서입니다.") .version("1.0") ) - .addSecurityItem(securityRequirement) .components(new Components() .addSecuritySchemes("csrfToken", csrfScheme) .addSecuritySchemes("jwtToken", jwtScheme) From e745759aac5315c128cad7ac0a090d814620a7b2 Mon Sep 17 00:00:00 2001 From: Minbro-Kim Date: Mon, 22 Jun 2026 10:46:28 +0900 Subject: [PATCH 6/6] =?UTF-8?q?chore:=20swagger=20=EC=8B=9C=ED=81=90?= =?UTF-8?q?=EB=A6=AC=ED=8B=B0=20=EC=A0=84=EC=97=AD=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/team6/moduply/common/config/OpenApiConfig.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/com/team6/moduply/common/config/OpenApiConfig.java b/src/main/java/com/team6/moduply/common/config/OpenApiConfig.java index bd0feabb..0c541b63 100644 --- a/src/main/java/com/team6/moduply/common/config/OpenApiConfig.java +++ b/src/main/java/com/team6/moduply/common/config/OpenApiConfig.java @@ -29,10 +29,6 @@ public OpenAPI openAPI() { .name("Authorization") .description("JWT 액세스 토큰 (로그인 후 발급)"); - SecurityRequirement securityRequirement = new SecurityRequirement() - .addList("csrfToken") - .addList("jwtToken"); - return new OpenAPI() .info(new Info() .title("모두의 플레이리스트 API 문서")