403 Запрещено при выполнении запроса на удаление. Весенний ботинок остальные API - PullRequest
0 голосов
/ 26 апреля 2019

Так что у меня есть бэкэнд в 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);
    }

enter image description here

1 Ответ

0 голосов
/ 26 апреля 2019

Я думаю, вы ограничиваете тип запроса на

HttpMethod.GET

в ваших antMatchers.

Удалите этот параметр или добавьте еще один антиМатчер, например:

.antMatchers(HttpMethod.DELETE,"your delete url").permitAll()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...