From f2fbff2130f76b5f50282434cdd4ee90af775a18 Mon Sep 17 00:00:00 2001 From: HYOJIN Date: Wed, 8 Apr 2026 08:41:16 +0900 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20actuator=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=ED=95=84=ED=84=B0=20context-path=20=EB=8C=80?= =?UTF-8?q?=EC=9D=91=20(#6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- .../java/com/snp/batch/api/logging/ApiAccessLoggingFilter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/snp/batch/api/logging/ApiAccessLoggingFilter.java b/src/main/java/com/snp/batch/api/logging/ApiAccessLoggingFilter.java index 2322337..d47f40a 100644 --- a/src/main/java/com/snp/batch/api/logging/ApiAccessLoggingFilter.java +++ b/src/main/java/com/snp/batch/api/logging/ApiAccessLoggingFilter.java @@ -58,7 +58,7 @@ public class ApiAccessLoggingFilter extends OncePerRequestFilter { } private boolean shouldSkip(String uri) { - return uri.startsWith("/actuator") + return uri.contains("/actuator") || uri.startsWith("/css") || uri.startsWith("/js") || uri.startsWith("/images") -- 2.45.2 From 1745e87c49c300a2138288bf425103fe0a6ad19d Mon Sep 17 00:00:00 2001 From: HYOJIN Date: Wed, 8 Apr 2026 08:41:36 +0900 Subject: [PATCH 2/5] =?UTF-8?q?docs:=20=EB=A6=B4=EB=A6=AC=EC=A6=88=20?= =?UTF-8?q?=EB=85=B8=ED=8A=B8=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/RELEASE-NOTES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/RELEASE-NOTES.md b/docs/RELEASE-NOTES.md index 11fae53..78f7f32 100644 --- a/docs/RELEASE-NOTES.md +++ b/docs/RELEASE-NOTES.md @@ -4,6 +4,9 @@ ## [Unreleased] +### 수정 +- actuator 경로 로그필터가 context-path 환경에서 동작하지 않는 버그 수정 (#6) + ## [2026-04-07] ### 수정 -- 2.45.2 From f2c331214ae96b8b98d635cd816929d17c59e6b8 Mon Sep 17 00:00:00 2001 From: HYOJIN Date: Wed, 8 Apr 2026 09:02:13 +0900 Subject: [PATCH 3/5] =?UTF-8?q?refactor:=20Basic=20Auth=20=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20=EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94=20=EB=B0=8F=20?= =?UTF-8?q?=EA=B3=84=EC=A0=95=20=EB=A9=94=EB=89=B4=20=EC=88=A8=EA=B9=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- frontend/src/App.tsx | 6 ------ frontend/src/components/Navbar.tsx | 3 --- frontend/src/pages/MainMenu.tsx | 4 ++-- .../com/snp/batch/global/config/SecurityConfig.java | 6 +----- .../com/snp/batch/global/config/SwaggerConfig.java | 12 +----------- 5 files changed, 4 insertions(+), 27 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index d7dffa0..cf7f7d1 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -11,9 +11,6 @@ const BypassConfig = lazy(() => import('./pages/BypassConfig')); const BypassCatalog = lazy(() => import('./pages/BypassCatalog')); const ScreeningGuide = lazy(() => import('./pages/ScreeningGuide')); const RiskComplianceHistory = lazy(() => import('./pages/RiskComplianceHistory')); -const BypassAccountRequests = lazy(() => import('./pages/BypassAccountRequests')); -const BypassAccountManagement = lazy(() => import('./pages/BypassAccountManagement')); -const BypassAccessRequest = lazy(() => import('./pages/BypassAccessRequest')); function AppLayout() { const { toasts, removeToast } = useToastContext(); @@ -41,9 +38,6 @@ function AppLayout() { } /> } /> - } /> - } /> - } /> } /> } /> diff --git a/frontend/src/components/Navbar.tsx b/frontend/src/components/Navbar.tsx index ab6f99f..2f37c3c 100644 --- a/frontend/src/components/Navbar.tsx +++ b/frontend/src/components/Navbar.tsx @@ -30,9 +30,6 @@ const MENU_STRUCTURE: MenuSection[] = [ children: [ { id: 'bypass-catalog', label: 'API 카탈로그', path: '/bypass-catalog' }, { id: 'bypass-config', label: 'API 관리', path: '/bypass-config' }, - { id: 'bypass-account-requests', label: '계정 신청 관리', path: '/bypass-account-requests' }, - { id: 'bypass-account-management', label: '계정 관리', path: '/bypass-account-management' }, - { id: 'bypass-access-request', label: 'API 계정 신청', path: '/bypass-access-request' }, ], }, { diff --git a/frontend/src/pages/MainMenu.tsx b/frontend/src/pages/MainMenu.tsx index d580582..65abce9 100644 --- a/frontend/src/pages/MainMenu.tsx +++ b/frontend/src/pages/MainMenu.tsx @@ -5,11 +5,11 @@ const sections = [ { title: 'S&P Global API', description: 'S&P Global Maritime API', - detail: 'API 카탈로그, API 계정 신청', + detail: 'API 카탈로그, API 설정 관리', path: '/bypass-catalog', icon: '🌐', iconClass: 'gc-card-icon gc-card-icon-guide', - menuCount: 5, + menuCount: 2, }, { title: 'S&P Risk & Compliance', diff --git a/src/main/java/com/snp/batch/global/config/SecurityConfig.java b/src/main/java/com/snp/batch/global/config/SecurityConfig.java index 066a12d..04297da 100644 --- a/src/main/java/com/snp/batch/global/config/SecurityConfig.java +++ b/src/main/java/com/snp/batch/global/config/SecurityConfig.java @@ -33,12 +33,8 @@ public class SecurityConfig { .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .authorizeHttpRequests(auth -> auth - .requestMatchers("/api/compliance/**").authenticated() - .requestMatchers("/api/risk/**").authenticated() .anyRequest().permitAll() - ) - .httpBasic(basic -> basic - .authenticationEntryPoint(new BypassAuthenticationEntryPoint())); + ); return http.build(); } diff --git a/src/main/java/com/snp/batch/global/config/SwaggerConfig.java b/src/main/java/com/snp/batch/global/config/SwaggerConfig.java index 08f381c..59dad41 100644 --- a/src/main/java/com/snp/batch/global/config/SwaggerConfig.java +++ b/src/main/java/com/snp/batch/global/config/SwaggerConfig.java @@ -1,12 +1,9 @@ package com.snp.batch.global.config; -import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; -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.springdoc.core.models.GroupedOpenApi; import org.springframework.beans.factory.annotation.Value; @@ -77,7 +74,6 @@ public class SwaggerConfig { .title("Bypass API") .description("S&P Global 선박/해운 데이터를 제공합니다.") .version("v1.0.0")); - openApi.addSecurityItem(new SecurityRequirement().addList("basicAuth")); }) .build(); } @@ -115,13 +111,7 @@ public class SwaggerConfig { return new OpenAPI() .info(defaultApiInfo()) - .servers(servers) - .components(new Components() - .addSecuritySchemes("basicAuth", - new SecurityScheme() - .type(SecurityScheme.Type.HTTP) - .scheme("basic") - .description("Bypass API 접근 계정 (발급된 ID/PW 사용)"))); + .servers(servers); } private Info defaultApiInfo() { -- 2.45.2 From b11842a4a97ada43a3bfcdddb0099580bfda6c76 Mon Sep 17 00:00:00 2001 From: HYOJIN Date: Wed, 8 Apr 2026 09:02:45 +0900 Subject: [PATCH 4/5] =?UTF-8?q?docs:=20=EB=A6=B4=EB=A6=AC=EC=A6=88=20?= =?UTF-8?q?=EB=85=B8=ED=8A=B8=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/RELEASE-NOTES.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/RELEASE-NOTES.md b/docs/RELEASE-NOTES.md index 78f7f32..5512881 100644 --- a/docs/RELEASE-NOTES.md +++ b/docs/RELEASE-NOTES.md @@ -4,6 +4,11 @@ ## [Unreleased] +### 변경 +- Basic Auth 인증 비활성화 (프록시 서버로 인증 이관) +- Swagger Basic Auth 보안 스키마 제거 +- 프론트엔드 API 계정 신청/관리 메뉴 숨김 + ### 수정 - actuator 경로 로그필터가 context-path 환경에서 동작하지 않는 버그 수정 (#6) -- 2.45.2 From dd9009fe3a0fa6703e214eda71607075910d8b91 Mon Sep 17 00:00:00 2001 From: HYOJIN Date: Wed, 8 Apr 2026 09:06:15 +0900 Subject: [PATCH 5/5] =?UTF-8?q?docs:=20=EB=A6=B4=EB=A6=AC=EC=A6=88=20?= =?UTF-8?q?=EB=85=B8=ED=8A=B8=20=EC=A0=95=EB=A6=AC=20(2026-04-08)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/RELEASE-NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/RELEASE-NOTES.md b/docs/RELEASE-NOTES.md index 5512881..404631e 100644 --- a/docs/RELEASE-NOTES.md +++ b/docs/RELEASE-NOTES.md @@ -4,6 +4,8 @@ ## [Unreleased] +## [2026-04-08] + ### 변경 - Basic Auth 인증 비활성화 (프록시 서버로 인증 이관) - Swagger Basic Auth 보안 스키마 제거 -- 2.45.2