requestMatchers().mvcMatchers( 和 mvcMatcher(
Difference between requestMatchers().mvcMatchers( and mvcMatcher(
我知道 requestMatchers 指定安全检查适用于哪些请求,但也有 mvcMatcher 非常相似。它们可以互换使用吗?
例如
@Override
public void configure(HttpSecurity httpSecurity)
httpSecurity.requestMatchers().mvcMatchers("/*")...
对
@Override
public void configure(HttpSecurity httpSecurity)
httpSecurity.mvcMatcher("/*")...
这两种方法没有太大区别。当你有一个单一路径的简单配置时,你可以使用 mvcMatcher("/api/**")
例如。
当需要更高级的配置时,可以使用requestMatchers(...)
或requestMatcher(...)
,像这样:
http
.requestMatchers()
.mvcMatchers("/api/**")
.mvcMatchers("/admin/**")
.requestMatchers(myCustomRequestMatcher())
如果查看源代码,mvcMatchers()
方法调用requestMatcher()
方法:
public HttpSecurity mvcMatcher(String mvcPattern) {
HandlerMappingIntrospector introspector = new HandlerMappingIntrospector(getContext());
return requestMatcher(new MvcRequestMatcher(introspector, mvcPattern));
}
我知道 requestMatchers 指定安全检查适用于哪些请求,但也有 mvcMatcher 非常相似。它们可以互换使用吗?
例如
@Override
public void configure(HttpSecurity httpSecurity)
httpSecurity.requestMatchers().mvcMatchers("/*")...
对
@Override
public void configure(HttpSecurity httpSecurity)
httpSecurity.mvcMatcher("/*")...
这两种方法没有太大区别。当你有一个单一路径的简单配置时,你可以使用 mvcMatcher("/api/**")
例如。
当需要更高级的配置时,可以使用requestMatchers(...)
或requestMatcher(...)
,像这样:
http
.requestMatchers()
.mvcMatchers("/api/**")
.mvcMatchers("/admin/**")
.requestMatchers(myCustomRequestMatcher())
如果查看源代码,mvcMatchers()
方法调用requestMatcher()
方法:
public HttpSecurity mvcMatcher(String mvcPattern) {
HandlerMappingIntrospector introspector = new HandlerMappingIntrospector(getContext());
return requestMatcher(new MvcRequestMatcher(introspector, mvcPattern));
}