Tomcat включает CORS: POST-запрос от Safari return 200, от chrome и firefox 403 - PullRequest
0 голосов
/ 09 января 2019

У меня есть серверная часть, запущенная на Tomcat 8.5, экземпляр Java Spring на Amazon EC2.

Я делаю почтовый запрос из своего приложения реакции. Запрос от Chrome и Firefox возвращает 403, а запрос от safari возвращает 200 и ожидаемые данные.

После некоторого исследования я обнаружил, что должен добавить этот код где-то , чтобы включить CORS. Я не знаком с Tomcat и не знаю, куда именно поместить этот кусок кода.

У меня есть следующие web.xml файлы, перечисленные в оболочке find команда:

`./webapps/host-manager/WEB-INF/web.xml
./webapps/ROOT/WEB-INF/web.xml
./webapps/docs/appdev/sample/web/WEB-INF/web.xml
./webapps/docs/WEB-INF/web.xml
./webapps/examples/WEB-INF/web.xml
./webapps/manager/WEB-INF/web.xml
./conf/web.xml
`

Я пытался добавить код в host-manager / WEB-INF / web.xml и host-manager / WEB-INF / web.xml одновременно и пытался запустить, но все равно получаю 403.

1 Ответ

0 голосов
/ 09 января 2019

Попробуйте добавить следующий код в приложение Spring. Он обрабатывает конфигурацию CORS для всего приложения.

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

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

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .cors()
            .and()
            .headers().disable()
            .csrf().disable()
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
    }

} 
...