Как устранить ошибку 403 в Spring Boot Post - PullRequest
0 голосов
/ 23 мая 2018

Я новичок в весенних ботинках.Я разработал некоторые api rest при загрузке весной, используя проект maven.

Я успешно разработал Get и Post Api.Мой GET Метод работает должным образом в почтальоне и мобильном телефоне. когда я пытаюсь запустить метод post от почтальона, он работает правильно, но с мобильного телефона выдает ошибку 403.

Это моя конфигурация:

spring.datasource.url = jdbc:mysql://localhost/sampledb?useSSL=false
spring.datasource.username = te
spring.datasource.password = test
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5InnoDBDialect
Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto = update

Пожалуйста, предложитемне, как решить ошибку.

enter image description here

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Вы должны отключить защиту csrf, потому что она включена по умолчанию в весенней безопасности: здесь вы можете увидеть код, который разрешает возникновение ядер.

import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{

    @Override
    protected void configure(HttpSecurity http) throws Exception{
        http.cors().and().csrf().disable();
    }

    @Bean
    CorsConfigurationSource corsConfigurationSource() {
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.setAllowedOrigins(Arrays.asList("*"));
        configuration.setAllowedMethods(Arrays.asList("*"));
        configuration.setAllowedHeaders(Arrays.asList("*"));
        configuration.setAllowCredentials(true);
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", configuration);
        return source;
    }

}
0 голосов
/ 23 мая 2018

Возможные причины:

  1. Запросы, поступающие от почтальона, отличаются от запросов, поступающих с мобильного (uri, method, headers)
  2. Недопустимый токен
  3. CORS (прочитайте кое-что об этом, Google полон статей) добавьте аннотацию @CrossOrigin к своему контроллеру.
  4. мобильное приложение выполняет запрос OPTION перед выполнением POST, и вы блокируете запросы OPTION.Если также от почтальона заблокированы запросы OPTION, добавьте свойство spring.mvc.dispatch-options-request = true .Более того, если вы используете Spring Security, вы должны явно разрешить запросы OPTION и для него.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...