匹配 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 从入门到进阶系列教程
免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报
举报