URL匹配RequestMatcher接口详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL匹配RequestMatcher接口详解相关的知识,希望对你有一定的参考价值。
参考技术A 匹配 HttpServletRequest 的简单策略接口 RequestMatcher ,其下定义了 matches 方法,如果返回是true表示提供的请求与提供的匹配规则匹配,如果返回的是false则不匹配。RequestMatcher其实现类:
其javadoc描述如下:
所谓Apache Ant的样式路径,有三种通配符的匹配方式
做url匹配的时候,不需要加上 context path ,只匹配 servletPath + pathInfo ,关于 context path , servletPath , pathInfo 的讲解在第一节已经讲解过了,想了解详细可以去查看。
定义了 servletPath 为 /v1
发现虽然我们配置了context path,但是在权限配置中是不需要配置context path,servletPath需要配置
secuity-quickstart-url01
其javadoc描述如下:
MvcRequestMatcher 是根据 server_path 来匹配的。
配置类和上面都差不多,不一样的是下面的类,
servletPath配置的三种模式,
第一种配置方式 servlet Path 为空
第二种配置方式 servlet Path /aaa, /aaa/bbb/
第三种配置方式servlet Path /.do, /.action
这三种情况只有第二种需要去配置servletPath,其他二种都不需要。具体配置的时候自己去调试一下。
MvcRequestMatcher和AntPathRequestMatcher的区别:
如果配置了servlet_path,那么AntPathRequestMatcher在配置antMatchers的时候需要加上servlet_path,比如如果加了
那么antMatchers("/v1/hello"),而mvcMatchers不需要加上servlet_path
secuity-quickstart-url02
匹配所有的请求
secuity-quickstart-url03
spring secuity提供了 requestMatchers 入口让我们自定义自己的 RequestMatcher 实现类
secuity-quickstart-url03
我们看看 WebSecurityConfigurerAdapter 类中的 configure 默认的实现是什么:
我们看到了任何请求需要认证以表单的形式,以 httpbasic 的方式进行认证。
官方文档
Spring Security 从入门到进阶系列教程
以上是关于URL匹配RequestMatcher接口详解的主要内容,如果未能解决你的问题,请参考以下文章
AADSTS50011:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配:'**********-*****-*****-**** *****'
TOMCAT中web.xml里url-pattern配置详解