自己做项目的时候碰到一个要对请求的uri进行过滤的需求,而过滤配置则是在配置文件里以通配符的方式存入的
在网上搜索很久,大部分方法研究都是调用了Spring-security的包。通过阅读Spring源码发现在Spring-core包里已经有相关方法的实现了
对应的类就是org.springframework.util.AntPathMatcher
调用方法很简单,new一个对象后直接调用match方法即可匹配
给出案例:
@Test
public void testMatch(){
AntPathMatcher matcher = new AntPathMatcher();
String pattern = "/abc/**/a.jsp";
System.out.println("pattern:"+pattern);
System.out.println("/abc/aa/bb/a.jsp:"+matcher.match(pattern,"/abc/aa/bb/a.jsp"));
System.out.println("/aBc/aa/bb/a.jsp:"+matcher.match(pattern,"/aBc/aa/bb/a.jsp"));
System.out.println("/abc/a.jsp:"+matcher.match(pattern,"/abc/a.jsp"));
}
测试结果:
pattern:/abc/**/a.jsp
/abc/aa/bb/a.jsp:true
/aBc/aa/bb/a.jsp:false
/abc/a.jsp:true
可以看出这个类的匹配大小写敏感,可用通配符为:?,*,**
?表示单个字符
*表示一层路径内的任意字符串,不可跨层级
**表示任意层路径
如果有人对具体实现算法感兴趣可以自行阅读AntPathMatcher类的源码。
分享到:
相关推荐
领事馆验证重定向uri 使用通配符支持对简单、安全的重定向 uri 检查用法只需将consulate-validate-redirect-uri为您的服务器的插件: var consulate = require ( 'consulate' ) , uriCheck = require ( 'consulate-...
uri转字符串路径,解决4.0以上的兼容问题,
将 URI 与一组模板中的匹配。 指定要测试的模板列表,使用{braces}指定变量 无论插入顺序如何,都返回最佳匹配 扩展到任意数量的模板/模式进行测试 支持使用爆炸修饰符的重复表达式 路由存储关联的“matchValue”...
主要介绍了Spring Security如何使用URL地址进行权限控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1、介绍 location指令是http模块当中最核心的一项配置,根据预先定义的URL匹配规则来接收用户发送的请求,根据匹配结果,将请求转发到后台服务器、非法的请求直接拒绝并返回403、404、500...4、location URI匹配规则
URI-模板-模式-匹配器概述将 URL 与许多 RFC 6570 URI 模板级别 1 进行比较以找到匹配项。 代码是用Java编写的。 这解决了什么问题? 给定一个 URL,HTTP 服务器必须确定该 URL 是否与 URI 模板之一匹配。 一个用例...
Uri - 一个URI处理库
探究 dataURI 中使用 SVG 正确姿势
androdi ContentProvider和Uri详解
spring boot项目,使用springdata来操作数据库mongodb
◆全面的REST支持:在Spring MVC中天然支持REST,如REST式的请求映射,URI变量提取等。 ◆富Portlet 2.0支持:Spring MVC完全支持Portlet 2.0环境以及Portlet 2.0中新的事件与资源请求模型。 ◆对象/XML映射(OXM...
network-uri软件包该软件包提供了用于解析和解析URI以及创建和解析相对URI引用的工具,这些工具紧紧遵循URI规范IETF RFC 3986 [1]。 该程序包中的主要模块Network.URI从network-2.6发行版的网络程序包中分离出来。...
一、权限问题 二、调用相机 1、声明provider 首先,我们需要在主配置文件中声明provider,与activity同级别。之所以要用到provider,是...使用BitmapFactory读取imageUri,得到bitmap,然后进行一些压缩,然后显示。
这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring...
springboot-ionic-backend:框架的开发,Spring,com,Spring Boot,基于URI的RESTful API,以及Java语言。
URI与URL的区别 自己看看
感觉Uri 、File、bitmap 比较混乱,这里进行记载,方便以后查看.下面话不多说了,来一起看看详细的介绍吧 Bitmap、File与Uri 1、将一个文件路径path转换成File String path ; File file = new File(path) 2...
Dart中用于处理的实用程序,主要用于解析和生成URI。... UriTemplates是从模板字符串创建的,然后使用数据进行扩展以生成URI: var template = UriTemplate ( "http://example.com/~{user}/" ); String fre
URI和URL区别 .
Ajax uri 乱码问题总结