Spring 4 - 在BasicAuthenticationFilter之前添加自定义过滤器,但仅适用于某些URL模式

时间:2015-09-15 18:30:08

标签: spring-mvc spring-security servlet-filters spring-4

我正在使用带有Java配置的Spring / Security 4.x. 我有几个网址。所有这些都使用BASIC身份验证进行身份验证。假设URL模式是,

  • / urlPattern1 / **
  • / urlPattern2 / **
  • / urlPattern3 / **

到目前为止一切正常。

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

我发现我添加的自定义过滤器位于过滤器链的底部。因此我在BasicAuthenticationFilter之前添加了它。

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

我想做什么现在是,

  1. 在任何已知过滤器(即BasicAuthenticationFilter.class
  2. 之前添加自定义过滤器
  3. 指定该自定义过滤器的网址格式

0 个答案:

没有答案