【问题标题】:Spring Security CORS not workingSpring Security CORS 不工作
【发布时间】: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


【解决方案1】:

你有没有用@component 注释你的类?那是您正在初始化 CORS 过滤器的类?

【讨论】:

    猜你喜欢
    • 2018-10-16
    • 2016-11-10
    • 2017-04-14
    • 2018-09-20
    • 2013-10-13
    • 2012-03-04
    • 2019-09-27
    • 2016-05-20
    相关资源
    最近更新 更多