@RestController
@RequestMapping(value = "/api")
public class Controller {
@PostMapping(value = "/post")
public String getPost(@RequestBody String name) {
if (name.isEmpty()) {
throw new RequestEmpty("Request vazio");
} else {
return "welcome" + name;
}
}
@PostMapping(value = "/post-logado")
public String postLogado(@RequestBody String name, Authentication authentication) {
if (authentication.isAuthenticated()) {
return "Welcome" + name;
}
return "Você não tem acesso.";
}
@GetMapping("/welcome")
public String getwelcome() {
return "Welcome";
}
@GetMapping("/logado")
public String logad() {
return "Estou logado";
}
}
@Configuration
@EnableWebSecurity
public class Secutiry {
@Bean
public SecurityFilterChain config(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(custom -> {
custom.requestMatchers(HttpMethod.GET, "/api/welcome").permitAll();
custom.requestMatchers(HttpMethod.POST, "/api/post").permitAll();
custom.anyRequest().authenticated();
}).httpBasic(Customizer.withDefaults());
return http.build();
}
}
Alguém sabe me dizer porque em todos os casos (autenticado ou não) minhas rotas marcadas como PostMapping sempre retornam error 401? As rotas marcadas como GetMapping funcionam pra ambos os casos como eu espero, mas as PostMapping ficam com esse comportamento.