A minha SecurityFilterChain da aplicação está configurada para permitir requisições POST em caminhos específicos. No entanto, quando faço essas requisições, ele não reconhece o caminho e direciona a requisição para o meu filtro de segurança para filtragem, o que não deveria acontecer.
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http.csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and().authorizeRequests()
.antMatchers(HttpMethod.POST, "/login").permitAll()
.antMatchers("/v3/api-docs/**", "/swagger-ui.html", "/swagger-ui/**").permitAll()
.anyRequest().authenticated()
.and().addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}
Um dos meus Controllers:
@RestController
@RequestMapping("/cadastrar")
public class CadastroController {
@Autowired
private CadastroService cadastroService;
@PostMapping("/cadastro-usuario")
@Transactional
public ResponseEntity<Object> cadastrar(@RequestBody @Valid DadosCadastroUsuario dados ){
try{
cadastroService.cadastrarUsuario(dados);
return ResponseEntity.status(HttpStatus.CREATED).header("Location", "/login").build();
} catch (Exception e){
return ResponseEntity.badRequest().body(e.getMessage());
}
}
@PostMapping("/cadastro-loja")
@Transactional
public ResponseEntity<Object> cadastrar(@RequestBody @Valid DadosCadastroLoja dados) throws Exception {
try{
cadastroService.cadastrarLoja(dados);
return ResponseEntity.status(HttpStatus.CREATED).header("Location", "/login").build();
} catch (Exception e) {
return ResponseEntity.badRequest().body(e.getMessage());
}
}
}
A URL que estou usando para minha requisição é: https://localhost:443/cadastrar/cadastro-usuario. Já verifiquei o caminho para o qual estou fazendo a requisição e o controlador, mas tudo parece estar correto.