HttpSecurity AntMatcher()
和MvcMatcher()
函数的区别是什么?
有人可以解释何时使用它们吗?
答案 0 :(得分:5)
antMatcher(String antPattern)
-允许配置HttpSecurity
仅在匹配提供的蚂蚁模式时被调用。
mvcMatcher(String mvcPattern)
-仅允许在匹配提供的Spring MVC模式时调用HttpSecurity
。
通常,mvcMatcher
比antMatcher
更安全。例如:
antMatchers("/secured")
仅匹配确切的 /secured
URL mvcMatchers("/secured")
匹配/secured
以及/secured/
,/secured.html
,/secured.xyz
,因此更通用,还可以处理一些可能的配置错误。
mvcMatcher
使用与Spring MVC用于匹配的规则相同(使用@RequestMapping
注释时)。
如果Spring MVC无法处理当前请求,则将使用将模式用作ant模式的合理默认值。 Source
可能会补充说,mvcMatchers
API(从4.1.1版本开始)比antMatchers
API(从3.1版本开始)更新了。
答案 1 :(得分:2)
AntMatcher()
是Ant样式的路径模式的实现。此映射代码的一部分是从Apache Ant借来的。
MvcMatcher()
使用Spring MVC的HandlerMappingIntrospector
来匹配路径并提取变量。
因此它们都实现了RequestMatcher
接口,但是在后台使用了不同的表达语言。
答案 2 :(得分:0)
AntMatcher()主要取决于Spring MVC配置,因此没有guaradoes不能像MvcMatcher()那样在路径上提供严格的安全筛选器。这是一个例子。