глобальная конфигурация cors не работает при весенней загрузке, но работает индивидуальная @CrossOrigins - PullRequest
0 голосов
/ 02 июля 2019

У меня есть следующие конфиги:

@Bean
    public CorsConfigurationSource corsConfigurationSource() {
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.setAllowedOrigins(Arrays.asList("*"));
        configuration.setAllowedMethods(Arrays.asList("GET","POST","HEAD","DELETE","PUT"));
        configuration.setMaxAge(1l);
        configuration.setAllowCredentials(true);
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", configuration);
        return source;
    }

и настройки безопасности:

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .cors()
            .and()
            .csrf()
            .disable()
            .exceptionHandling()
            .authenticationEntryPoint(unauthorizedHandler)
            .and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and().authorizeRequests()
            .antMatchers(
                "/auth/**"
            ).permitAll()
            .antMatchers(HttpMethod.OPTIONS, "/**").permitAll()
            .anyRequest().authenticated()
            ;
}

, но этот микс не работает.Если я удаляю блок CorsConfigurationSource corsConfigurationSource() и добавляю @CrossOrigin(origins = "*", maxAge = 1) проблемы с ядрами, то проблемы исчезнут!

, но я хочу зарегистрировать cors глобально, в чем проблема?

Я использую весеннюю загрузку версии 2, сSpring Security и некоторые остальные контроллеры.

(maxAge = 1) добавлено из-за кэширования в браузере, которое тратит много моего времени!

(если случайно браузер пропускает предполётный шаг, почему серверне проверяет источник в реальном вызове? который должен проверяться на сервере или в клиенте браузером?)

1 Ответ

3 голосов
/ 03 июля 2019

Проверьте, добавив это свойство.

configuration.setAllowedHeaders(Arrays.asList("*"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...