Spring Security Apache Ant对扩展名或后缀的URL筛选



我想要求对具有特定扩展名的URL进行身份验证,但我很难理解Spring Security中的Apache Ant解析器是如何工作的。它似乎只支持从左到右的解析,而不是使用更常见的正则表达式。本质上,我想要这样的东西:

<intercept-url pattern="/**.html*" access="isAuthenticated()" />

任何末尾有".html"的URL都需要身份验证。有办法做到这一点吗?

您可以更改请求匹配器:

  • 请求匹配器定义FilterChainProxy中使用的RequestMatcher策略以及intercept-url创建的用于匹配传入请求的bean。选项当前为antregexciRegex,分别用于ant、正则表达式和不区分大小写的正则表达式。使用其模式和方法属性为每个intercept-url元素创建一个单独的实例。蚂蚁路径使用AntPathRequestMatcher进行匹配,正则表达式使用RegexRequestMatcher进行匹配。有关如何执行匹配的更多详细信息,请参阅这些类的Javadoc。Ant路径是默认策略

但AntPathMatcher应该做到:

一些例子:

  • com/t?st.jsp-匹配com/test.jsp,也匹配com/tast.jspcom/txst.jsp
  • com/*.jsp-匹配com目录中的所有.jsp文件
  • com/**/test.jsp-匹配com路径下的所有test.jsp文件
  • org/springframework/**/*.jsp-匹配org/springframework路径下的所有.jsp文件
  • org/**/servlet/bla.jsp-匹配org/springframework/servlet/bla.jsp,也匹配org/springframework/testing/servlet/bla.jsporg/servlet/bla.jsp

相关内容

  • 没有找到相关文章