Проблема CORS в тестовой среде с весенней загрузкой - PullRequest
0 голосов
/ 21 апреля 2020

У меня проблемы с использованием весенней загрузки при публикации в тестовой среде, но в локальной системе все работает отлично У меня есть приложение весенней загрузки, работающее в качестве бэкенда для приложения angular 9. Они работают на разных серверах и портах. И проблема в том, что при публикации в тестировании при попытке загрузить файл я получил следующую ошибку: «заблокирован политикой CORS: тип ответа поля заголовка запроса не разрешен Access-Control-Allow-Headers в ответе перед проверкой». Код выглядит следующим образом:

// Authorization : Role -> Access
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and().csrf().disable().authorizeRequests().antMatchers("/public/*","/token/*").permitAll()
        .antMatchers("/-/**","/actuator/**").hasRole("-")
        .antMatchers("/-/**").hasRole("-")
        .antMatchers("/-/**").hasRole("-")
        .and()
        .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
        .addFilterBefore(authenticationTokenFilterBean(), UsernamePasswordAuthenticationFilter.class);
    //http.headers().frameOptions().disable();
    }

    @Bean 
    CorsConfigurationSource corsConfigurationSource() {
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.setAllowedOrigins(Arrays.asList("*"));
        configuration.setAllowCredentials(true);
        configuration.setMaxAge((long) 3600);
        configuration.setAllowedHeaders(Arrays.asList("X-Requested-With","responseType", 
                "Content-Type", "Authorization", "Origin", "Accept", "Access-Control-Request-Method", 
                 "Access-Control-Allow-Origin", "Access-Control-Request-Headers"));
        configuration.setAllowedMethods(Arrays.asList("GET","PUT","POST","OPTIONS","DELETE"));
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", configuration);
        return source;
    }

У меня также есть в каждом контроллере следующая строка

@CrossOrigin(origins = "*", maxAge = 3600)

Заранее спасибо .-

...