Я знаю, что на форуме есть много тем об этой проблеме, но до сих пор не нашли решения.
Итак, я развернул два приложения в частной JVM / tomcat 8.5.30 на своем VPS. Один - мой ROOT.war, а другой - admin.war. Они были доступны с http://example.com и http://example.com/admin
До установки сертификата ssl все работало нормально. После его установки и принудительного перенаправления https я столкнулся с проблемой с моим admin.war (теперь они оба доступны с https://example.com и https://example.com/admin)
Мой админ работает с большим количеством jquery (я не могу это изменить), и я получаю эту ошибку каждый раз, когда пытаюсь что-то отправить
Access to XMLHttpRequest at 'http: //example.com/admin/add' from origin 'https: //example.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Так что я пытаюсь исправить это с помощью весенней безопасности. В моей конфигурации безопасности у меня есть
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class SiteSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.cors().and()
//.....
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("https://example.com"));
configuration.setAllowedHeaders(Arrays.asList("Access-Control-Allow-Headers"));
configuration.addExposedHeader("Access-Control-Allow-Headers");
configuration.setAllowedMethods(Arrays.asList("POST"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
}
Я делаю это как для своего корневого приложения, так и для моего приложения администратора (я не знаю, правильно ли это делать для них обоих). Все еще не работает.
Любая помощь?
спасибо !!