diff --git a/src/main/java/com/institutosemprealerta/semprealerta/infrastructure/config/security/SecurityConfigurations.java b/src/main/java/com/institutosemprealerta/semprealerta/infrastructure/config/security/SecurityConfigurations.java index 5442e63..1f28db0 100644 --- a/src/main/java/com/institutosemprealerta/semprealerta/infrastructure/config/security/SecurityConfigurations.java +++ b/src/main/java/com/institutosemprealerta/semprealerta/infrastructure/config/security/SecurityConfigurations.java @@ -14,6 +14,12 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.CorsConfigurationSource; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; + +import java.util.Arrays; +import java.util.List; @Configuration @EnableWebSecurity @@ -37,11 +43,23 @@ public class SecurityConfigurations { "/actuator/health/**" }; + @Bean + public CorsConfigurationSource corsConfigurationSource() { + CorsConfiguration configuration = new CorsConfiguration(); + configuration.setAllowedOrigins(List.of("*")); + configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "OPTIONS")); + configuration.setAllowedHeaders(List.of("*")); + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", configuration); + return source; + } + @Bean public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception { return httpSecurity .csrf(AbstractHttpConfigurer::disable) .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + .cors(httpSecurityCorsConfigurer -> httpSecurityCorsConfigurer.configurationSource(corsConfigurationSource())) .authorizeHttpRequests(authorize -> authorize .requestMatchers(AUTH_SWAGGER_WHITELIST).permitAll() .requestMatchers(ACTUATOR_WHITELIST).permitAll()