From 00459a06b2326aa865e3925d3f839fe7d0cad038 Mon Sep 17 00:00:00 2001 From: Harkamal Randhawa Date: Wed, 15 Apr 2026 18:39:00 -0600 Subject: [PATCH] fix CORS for production --- .../com/petshop/backend/security/SecurityConfig.java | 10 ++++++++-- backend/src/main/resources/application.yml | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/com/petshop/backend/security/SecurityConfig.java b/backend/src/main/java/com/petshop/backend/security/SecurityConfig.java index fcc05bb4..f154ead1 100644 --- a/backend/src/main/java/com/petshop/backend/security/SecurityConfig.java +++ b/backend/src/main/java/com/petshop/backend/security/SecurityConfig.java @@ -1,5 +1,6 @@ package com.petshop.backend.security; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpMethod; @@ -21,6 +22,8 @@ import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.CorsConfigurationSource; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import java.util.Arrays; + import com.petshop.backend.config.ActivityLoggingFilter; import java.util.List; @@ -30,6 +33,9 @@ import java.util.List; @EnableMethodSecurity public class SecurityConfig { + @Value("${app.allowed-origins}") + private String allowedOriginsRaw; + private final JwtAuthenticationFilter jwtAuthFilter; private final RateLimitFilter rateLimitFilter; private final UserDetailsService userDetailsService; @@ -101,13 +107,13 @@ public class SecurityConfig { @Bean public CorsConfigurationSource corsConfigurationSource() { CorsConfiguration config = new CorsConfiguration(); - config.setAllowedOriginPatterns(List.of("http://localhost:*", "http://127.0.0.1:*")); + config.setAllowedOriginPatterns(Arrays.asList(allowedOriginsRaw.split(","))); config.setAllowedMethods(List.of("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS")); config.setAllowedHeaders(List.of("*")); config.setAllowCredentials(true); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", config); - + return source; } diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml index ddcfcbe0..e3256221 100644 --- a/backend/src/main/resources/application.yml +++ b/backend/src/main/resources/application.yml @@ -59,7 +59,7 @@ app: upload: base-dir: ${UPLOAD_BASE_DIR:uploads} frontend-url: ${FRONTEND_URL:http://localhost:3000} - allowed-origins: ${ALLOWED_ORIGINS:http://localhost:3000,http://localhost:3001,http://127.0.0.1:3000} + allowed-origins: ${ALLOWED_ORIGINS:http://localhost:3000,http://localhost:3001,http://127.0.0.1:3000,https://petshop-web.nicepond-c7280126.westus2.azurecontainerapps.io} azure: storage: