From 4ce97d88071af2f38dcb32535da667a2c9ff5054 Mon Sep 17 00:00:00 2001 From: GUARDiA Date: Sat, 13 Jun 2026 21:03:49 +0900 Subject: [PATCH] =?UTF-8?q?fix(security):=20permit=20storefront=20SPA=20st?= =?UTF-8?q?atic(assets/img/admin)+product=20images=20public=20=E2=80=94=20?= =?UTF-8?q?resolve=20403=20on=20/,=20/img/products,=20/admin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/zioinfo/mall/config/SecurityConfig.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backend/src/main/java/com/zioinfo/mall/config/SecurityConfig.java b/backend/src/main/java/com/zioinfo/mall/config/SecurityConfig.java index a3ec687..2b93f1a 100644 --- a/backend/src/main/java/com/zioinfo/mall/config/SecurityConfig.java +++ b/backend/src/main/java/com/zioinfo/mall/config/SecurityConfig.java @@ -45,6 +45,11 @@ public class SecurityConfig { .requestMatchers("/actuator/health").permitAll() .requestMatchers("/ws/mall/**").permitAll() .requestMatchers("/swagger-ui/**", "/v3/api-docs/**", "/api/mall/docs/**", "/api/mall/swagger/**").permitAll() + // 스토어프론트 SPA 정적 리소스 + 상품 실이미지 — 공개 + .requestMatchers(HttpMethod.GET, + "/", "/index.html", "/favicon.ico", "/favicon.svg", "/robots.txt", "/manifest.json", + "/assets/**", "/img/**", "/images/**", "/static/**", "/admin", "/admin/**", + "/*.js", "/*.css", "/*.png", "/*.jpg", "/*.jpeg", "/*.gif", "/*.svg", "/*.webp", "/*.ico").permitAll() // 스토어프론트 공개 조회 (상품·카탈로그·리뷰·기획전·매장·권역·스케줄 브라우징) .requestMatchers(HttpMethod.GET, "/api/mall/product/**", "/api/mall/category/**", "/api/mall/review/**", "/api/mall/promotion/**",