【发布时间】:2018-07-13 05:34:11
【问题描述】:
我有以下配置,基于此处的示例https://docs.spring.io/spring-security/site/docs/current/reference/html/cors.html
@Override
public void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
.csrf().disable()
.cors();
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("https://example.com"));
configuration.setAllowedMethods(Arrays.asList("GET","POST"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
但是当我对此进行测试时,我仍然可以从本地主机访问它,这没有问题。就像根本没有激活cors一样。
编辑:我应该补充一点,我正在使用 Spring OAuth2,这个配置位于我的ResourceServerConfigurerAdapter
【问题讨论】:
-
这对我没有任何改变。如果有什么不只是允许任何起源?我正在尝试测试不被允许。
-
@dur Firefox 和邮递员使用
localhost:8080/ -
也许您需要将@CrossOrigin 添加到您的控制器
-
我认为问题可能是因为我使用的是 Spring OAuth2,所以它忽略了 web mvc 级别的 cors 配置。即使我在我的
ResourceServerConfigurerAdapter中声明了cors(),但我不确定它是否会接受它 -
@zero01alpha 但是当我测试它时,我仍然可以从本地主机访问它,没有问题。您的请求是否包含
origin标头?如果您的页面是从另一台服务器加载的,Firefox 应该会自动执行此操作。使用 Firefox 中的开发工具检查请求标头。
标签: java spring spring-boot spring-security cors