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接口详解的主要内容,如果未能解决你的问题,请参考以下文章

js正则表达式 URL格式匹配详解

AADSTS50011:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配:'**********-*****-*****-**** *****'

详解servlet的url-pattern匹配规则.RP

TOMCAT中web.xml里url-pattern配置详解

tomcat关于配置servlet的url-pattern的问题详解

tomcat关于配置servlet的url-pattern的问题详解