Estou fazendo a conexão front/back em um projeto pessoal e o seguinte erro surge:
Access to XMLHttpRequest at 'http://localhost:8080/usuarios' from origin 'http://localhost:5173' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Ou seja, está acontecendo um problema de comunicação entre o front(5173) e o back(8080) , o erro de CORS não era pra estar acontecendo já que o @CrossOrigin está configurado nas entidades corretamente.
Estou usando SpringBoot achando que o problema está no SecurityConfig... Segue abaixo o código:
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Autowired
private SecurityFilter securityFilter;
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http .csrf(csrf -> csrf.disable())
.sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(req -> {
req.requestMatchers(HttpMethod.POST, "/login").permitAll();
req.requestMatchers(HttpMethod.POST, "/usuarios").permitAll();
req.anyRequest().authenticated();
})
.addFilterBefore(securityFilter,UsernamePasswordAuthenticationFilter.class);
return http.build();
}
@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration configuration) throws Exception{
return configuration.getAuthenticationManager();
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
O erro pode ser no SecurityConfig que esta gerando isso? Qual configuração deve ser feita no spring 3.1 para que esse erro de Cors não ocorra?
PS: O erro esta ocorrendo apenas quando vai pro front , pois no postman os metodos estão retornando normalmente.