package cn.bidlink.wsmp.commons.security;
import junit.framework.TestCase;
import org.springframework.util.AntPathMatcher;
import org.springframework.util.PathMatcher;
public class AntPathMatcherTest extends TestCase {
public void testMatch() {
PathMatcher matcher = new AntPathMatcher();
// 完全路径url方式路径匹配
String requestPath="/user/list.htm?username=aaa&departmentid=2&pageNumber=1&pageSize=20";//请求路径
String patternPath="/user/list.htm**";//路径匹配模式
// 不完整路径uri方式路径匹配
// String requestPath="/app/pub/login.do";//请求路径
// String patternPath="/**/login.do";//路径匹配模式
// 模糊路径方式匹配
// String requestPath="/app/pub/login.do";//请求路径
// String patternPath="/**/*.do";//路径匹配模式
// 包含模糊单字符路径匹配
//String requestPath = "/app/pub/login.do";// 请求路径
//String patternPath = "/**/lo?in.do";// 路径匹配模式
boolean result = matcher.match(patternPath, requestPath);
assertTrue(result);
}
}
总结如下:
ANT方式的通配符有三种:
?(匹配任何单字符),*(匹配0或者任意数量的字符),**(匹配0或者更多的目录)
url路径匹配规则:
URL路径 说明
/app/*.x 匹配(Matches)所有在app路径下的.x文件
/app/p?ttern 匹配(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern
/**/example 匹配(Matches) /app/example, /app/foo/example, 和 /example
/app/**/dir/file. 匹配(Matches) /app/dir/file.jsp, /app/foo/dir/file.html,/app/foo/bar/dir/file.pdf, 和 /app/dir/file.java
/**/*.jsp 匹配(Matches)任何的.jsp 文件
最长匹配原则(has more characters)
说明,URL请求/app/dir/file.jsp,现在存在两个路径匹配模式/**/*.jsp和/app/dir/*.jsp,那么会根据模式/app/dir/*.jsp来匹配
分享到:
相关推荐
主要为大家详细介绍了Spring boot工具类静态属性注入,及多环境配置详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
spring的jdbc工具类,对数据库的操作,对数据库进行增删改查的操作
SpringData框架中使用的JPA工具类.模板代码,解决实体管理器工厂的浪费资源和耗时问题.第一次访问getEntityManager方法:经过静态代码块创建一个factory对象,再调用方法创建一个EntityManager对象,第二次方法...
基于Java语言编写的Spring Boot时间工具类方法封装,主要方法如下:根据日期获取该日期内24小时的整点时刻、获取当月的 天数、根据 年、月 获取对应的月份 的 天数、根据指定日期得获取对应月份的所有日期的每日结束...
SpringJdbcTemplate封装工具包,包括规范model格式接口,封装SpringJdbcTemplate,实现分页,自适应多种数据库
java spring 工具包,一般使用spring需要导入的jar包基本在。还有更详细的由于大小限制,分好了再传
创建SpringBean配置工具类(安全)如: <bean id=... scope="prototype"></bean>
主要介绍了 Spring获取ApplicationContext对象工具类的实现方法的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下
Spring整合Redis工具类,导入redis依赖,并使用工具类,不必使用RedisTemplate调用redis,并且采用java更常用的方式调用方法。
该类是jedis操作redis的工具类,使用该工具类之后,无需配置spring,只需要显示调用工具类中的方法就好了。此类为工作中在用,所以确定可用。 共有两个类,一个工具类和一个测试调用demo
自定义依赖注入工具类SpringUtil.java
springboot统返回结果集工具类demo
该工具类使用于spring boot 开发,返回值为md5加密后的字符串,参数为字符串,一般用于加密密码。为了防止MD5加密的密码能被反译回明文。所以建议传入的密码字符串必须由数字字母和特殊字符组成。本人上传的表单验证...
现在的数据层的开发,大多会使用如MyBatis或...由于部分场景下MyBatis或JPA之类无法满足我的需求,所以我打算自己封装一套查数据库的工具类。 文章地址: https://blog.csdn.net/lxyoucan/article/details/124042295
在spring中获取代理对象代理的目标对象工具类
springboot使用rabbitmq工具类,里面包含比较原生的方法,还有一套是我结合springboot框架写的一套方法,里面有两个方法,看情况使用,一般使用框架的方法比较好,因为框架方法时前辈们封装好经过检验的没有问题的方法,...
java分页工具类,以及基于Struts,Spring,mybatis,jsp中分页的调用及实现
封装springmvc上传单文件、多文件保存,保存文件时(文件夹路径不存在则创建),会改变文件名,使用起来非常方便。
org.springframework.web.client.AsyncRestTemplate org.springframework.web.client.RestTemplate HTTP请求工具类,基于以上两个Rest请求工具模板完成封装HTTP请求,包括同步和异步请求的实现。