当前位置: 首页 > 知识库问答 >
问题:

Spring Security CORS筛选器不工作

徐奇逸
2023-03-14
    registry.addMapping("/**")
            .allowedOrigins("http://127.0.0.1:9000")
            .allowedMethods("POST", "OPTIONS", "GET", "DELETE", "PUT")
            .allowedHeaders("X-Requested-With,Origin,Content-Type,Accept,Authorization")
            .allowCredentials(true).maxAge(3600);

配置基于:https://spring.io/guides/gs/rest-service-cors/

请给我指出解决这个问题的正确方向。

共有1个答案

丌官玺
2023-03-14

希望您很久以前就找到了答案,但如果没有(如果还有人像我一样发现了这个问题):

问题是Spring Security使用过滤器进行操作,而这些过滤器通常优先于用户定义的过滤器、@crossorigin和类似的注释等。

对我有效的方法是将CORS过滤器定义为具有最高优先级的bean,正如这里所建议的那样。

@Configuration
public class MyConfiguration {

    @Bean
    public FilterRegistrationBean corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true);
        config.addAllowedOrigin("http://127.0.0.1:9000");
        config.setAllowedMethods(Arrays.asList("POST", "OPTIONS", "GET", "DELETE", "PUT"));
        config.setAllowedHeaders(Arrays.asList("X-Requested-With", "Origin", "Content-Type", "Accept", "Authorization"));
        source.registerCorsConfiguration("/**", config);
        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
        bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
        return bean;
    }
}
 类似资料:
  • 带有可筛选得适配器: filter由于某种原因不起作用,当我键入某些内容时,它会清除recyclerview

  • 我正在尝试添加一个带有日期范围筛选器的服务器端datatable实现。筛选器不筛选任何数据。我不知道它坏在哪里。需要你帮我弄清楚我错在哪里。 这是剧本。 这是Html

  • 介绍 我注意到我们项目中的推送过滤器都不起作用。它解释了为什么执行时间受到影响,因为它读取了数百万次,而它应该将它减少到几千次。为了调试这个问题,我编写了一个小测试,读取CSV文件,过滤内容(下推过滤器)并返回结果。 它不能与CSV一起工作,所以我尝试读取一个拼花文件。没有一个能用的。 数据 文件具有以下结构: 名词(noun的缩写)镶木地板文件有相同的结构 读取CSV文件 为了重现这个问题,我编

  • 有什么建议吗?

  • 筛选器。 Usage 全部引入 import { Picker } from 'beeshell'; 按需引入 import Picker from 'beeshell/dist/components/Picker'; Examples Code import { Picker } from 'beeshell'; <Picker ref={(c) => { this._pick

  • 所有人。这是一个带有elasitcsearch文档url的简单测试代码