Так что у меня есть бэкэнд в Java и фронтенд в Angular. В то время как я посылаю запрос на удаление моей конечной точке остального загрузчика, я получаю код 403.
Angular отправляет первый запрос OPTIONS и возвращает этот 403, поэтому запрос DELETE не происходит.
Дополнительно GET и POST работает нормально.
Я попытался отключить csrf, но он не работал. Также я использую его в своем браузере, поэтому я не должен отключать это. В soapUI DELETE работает отлично.
Это мой класс конфигурации безопасности
@Configuration
@EnableWebSecurity
public class AuthConfig extends WebSecurityConfigurerAdapter {
@Value(value = "${auth0.apiAudience}")
private String audience;
@Value(value = "${auth0.issuer}")
private String issuer;
@Bean
CorsConfigurationSource corsConfigurationSource() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues());
return source;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
JwtWebSecurityConfigurer
.forRS256(audience, issuer)
.configure(http)
.cors()
.and()
.authorizeRequests()
.antMatchers(HttpMethod.GET,"/public").permitAll()
.antMatchers(HttpMethod.GET,"/private/**").authenticated()
.antMatchers(HttpMethod.GET,"/private-scoped").hasAuthority("read:posts");
}
}
Я хочу сделать это запросы на удаление.
@PostMapping("/private/post/{id}/like")
public void likePostById(@PathVariable Long id){
postService.likePostById(id);
}
@DeleteMapping("/private/post/{id}/like")
public void unlikePostById(@PathVariable Long id){
postService.unlikePostById(id);
}