Spring Security 实战干货:路径Uri中的 Ant 风格
点击上方蓝色“程序猿DD”,选择“设为星标”
回复“资源”获取独家整理的学习资料!
来源 | juejin.im/post/5c6b6b126fb9a04a0c2f024f
我们经常在读到一些文章会遇到uri
支持 Ant
风格 ,而且这个东西在 Spring MVC 和 Spring Security 中经常被提及。这到底是什么呢?今天我们来学习了解一 下。这对我们学习 Spring MVC 和 Spring Security 十分必要。
2. Ant 风格
说白了 Ant
风格就是一种路径匹配表达式。主要用来对uri
的匹配。其实跟正则表达 式作用是一样的,只不过正则表达式适用面更加宽泛,Ant
仅仅用于路径匹配。
3. Ant 通配符
Ant
中的通配符有三种:
?
匹配任何单字符*
匹配0或者任意数量的 字符**
匹配0或者更多的 目录这里注意了单个
*
是在一个目录内进行匹配。而**
是可以匹配多个目录,一定不要迷糊。3.1 Ant 通配符示例
3.2 最长匹配原则
从 3.1 可以看出
*
和**
是有冲突的情况存在的。为了解决这种冲突就规定了最长匹配原则(has more characters)。一旦一个uri
同时符合两个Ant
匹配那么走匹配规则字符最多的。为什么走最长?因为字符越长信息越多就越具体。比如/ant/a/path
同时满足/**/path
和/ant/*/path
那么走/ant/*/path
4. Spring MVC 和 Spring Security 中的 Ant 风格
接下来我们来看看 Spring MVC 和 Spring Security 下的
Ant
风格。4.1 Spring MVC 中的 Ant 风格
这里也提一下在 Spring MVC 中 我们在控制器中写如下接口:
/** * ant style test. * * @return the string */ @GetMapping("/?ant") public String ant() { return "ant"; }
你使用任意合法
uri
字符替代?
发现都可以匹配,比如/bant
。还有Spring MVC 的一些 过滤器注册、格式化器注册都用到了Ant
风格。4.2 Spring Security 中的 Ant 风格
在 Spring Security 中
WebSecurityConfigurerAdapter
中的你可以通过如下配置进行路由权限访问控制:public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired public void configureGlobal(AuthenticationManagerBuilder authenticationManagerBuilder) throws Exception { authenticationManagerBuilder.inMemoryAuthentication().withUser("admin").password("admin").roles("USER"); } @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() //放行静态资源 首页 .antMatchers("/index.html","/static/**").permitAll() .anyRequest().authenticated(); }}
上面 Spring Security 的配置中在
antMatchers
方法中通过Ant
通配符来控制了资源的访问权限。后面我也会出相关的教程,敬请关注公众号:Felordcn 和个人博客:https://felord.cn5. 总结
Ant
风格整体东西不多,也很好理解。很多关于uri
的配置、路由匹配、处理都用到了Ant
风格 。对于 Web 开发人员来说是必须掌握的技能之一 。
关注我,回复“加群”加入各种主题讨论群
RESTful 架构基础
17 个方面,综合对比四大消息中间件
9 个爱不释手的 JSON 工具
手把手教你定制标准 Spring Boot starter
程序员接私活的10个平台和一些建议
朕已阅
Spring Security 实战干货:路径Uri中的 Ant 风格相关推荐
- 路径 URI 中的 Ant 风格
前言 我们经常在读到一些文章会遇到URI支持 Ant 风格 ,而且这个东西在 Spring MVC 和 Spring Security 中经常被提及.这到底是什么呢?今天我们来学习了解一下.这对我们学 ...
- Spring Security 实战干货: RBAC权限控制概念的理解
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 1 ...
- Spring Security 实战干货:玩转自定义登录
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 1. 前言 前面的关于 Spring Security ...
- Spring Security 实战干货:自定义异常处理
Spring Security 实战干货:自定义异常处理 转自:https://www.cnblogs.com/felordcn/p/12142514.html 文章目录 1. 前言 2. Sprin ...
- Spring Security 实战干货:OAuth2登录获取Token的核心逻辑
作者 | 码农小胖哥 来源 | https://mp.weixin.qq.com/s/zdTBdSVunqwVGx-spHjLjw 1. 前言 在上一篇Spring Security 实战干货:OAu ...
- Spring Security 实战干货:OAuth2授权回调的核心认证流程
1. 前言 我们在上一篇 Spring Security 实战干货:OAuth2 授权回调的处理机制 对 OAuth2 服务端调用客户端回调的流程进行了图解, 今天我们来深入了解 OAuth2 在回调 ...
- Spring Security 实战干货:客户端OAuth2授权请求的入口在哪里
1. 前言 在Spring Security 实战干货:OAuth2 第三方授权初体验一文中我先对 OAuth2.0 涉及的一些常用概念进行介绍,然后直接通过一个 DEMO 来让大家切身感受了 OAu ...
- Spring Security 实战干货:实现自定义退出登录
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 1. 前言 上一篇对 Spring Security 所 ...
- Spring Security 实战干货:自定义配置类入口 WebSecurityConfigurerAdapter
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 1. 前言 今天我们要进一步的的学习如何自定义配置 Sp ...
最新文章
- 去掉chrome记住密码后自动填充表单的黄色背景
- 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
- sublime text 3设置快捷键让html文件在浏览器打开
- python numpy.linspace() 使用介绍
- Nacos配置管理-配置热更新
- [源码学习]调试Razor从哪里开始
- linux 未找到wifi适配器,无线 - 重新启动后找不到WI-FI适配器
- C#.net中什么类型能存放这种数组!
- 用这款免费工具,即可解决 90% 的报表设计难题
- 30 网站项目建设流程概述
- mybatis-plus配置日志
- 系统分析与设计(个人总结)
- 5个超厉害的资源搜索网站,每一款都可以让你的资源满满!
- 怎么让浏览器一直前置_上海居住证积分没有前置学历怎么解决?
- PATA1066题解
- Spring Boot 服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!...
- [渝粤教育] 中国地质大学 人力资源开发与管理 复习题
- CodeForces - 727E Games on a CD 字符串Hash
- 书架bookshelf
- 图解 Panda3D引擎开发入门