Spring mvc Spring 4-在BasicAuthenticationFilter之前添加一个自定义筛选器,但仅适用于某些URL模式

Spring mvc Spring 4-在BasicAuthenticationFilter之前添加一个自定义筛选器,但仅适用于某些URL模式,spring-mvc,spring-security,servlet-filters,spring-4,Spring Mvc,Spring Security,Servlet Filters,Spring 4,我正在使用Spring/Security4.x和Java配置。 我有几个网址。所有这些都使用基本身份验证进行身份验证。假设URL模式是 /urlPattern1/** /urlPattern2/** /urlPattern3/** 到目前为止一切正常 现在我只想为pattern/urlPattern3/**添加一个CORS过滤器。如果我添加自定义CORS过滤器(我尝试了几种方法),我最终会遇到AccessDeniedException。Ajaxpre-flight请求在到达自定义CORS筛选

我正在使用Spring/Security4.x和Java配置。 我有几个网址。所有这些都使用基本身份验证进行身份验证。假设URL模式是

  • /urlPattern1/**
  • /urlPattern2/**
  • /urlPattern3/**
到目前为止一切正常

现在我只想为pattern/urlPattern3/**添加一个CORS过滤器。如果我添加自定义CORS过滤器(我尝试了几种方法),我最终会遇到
AccessDeniedException
。Ajax
pre-flight
请求在到达自定义CORS筛选器之前在
BasicAuthenticationFilter
失败

我发现我添加的自定义过滤器位于过滤器链的底部。因此,我在
基本身份验证过滤器
之前添加了它

如果我使用http.addFilterBefore(new CORSFilter(),basicAuthenticationFilter.class)添加CORS筛选器,则与其他URL模式匹配的传入请求也会通过此自定义CORSFilter,这不是我想要的。(但它是有效的)

我现在想做的是

  • 在任何已知筛选器之前添加自定义筛选器(即
    BasicAuthenticationFilter.class
  • 指定该自定义筛选器的URL模式

  • 如果你解决了这个问题,请分享答案。谢谢