Spring Security-访问控制url匹配

简介: Spring Security-访问控制url匹配

一、访问控制url匹配


在前面讲解了认证中所有常用配置,主要是对http.formLogin()进行操作。而在配置类中 http.authorizeRequests()主要是对url进行控制,也就是我们所说的授权(访问控制)。http.authorizeRequests()也支持连缀写法,总体公式为:


url匹配规则.权限控制方法


通过上面的公式可以有很多url匹配规则和很多权限控制方法。这些内容进行各种组合就形成了Spring Security中的授权。


在所有匹配规则中取所有规则的交集。配置顺序影响了之后授权效果,越是具体的应该放在前面,越是笼统的应该放到后面。



1.anyRequest()


在之前认证过程中我们就已经使用过anyRequest(),表示匹配所有的请求。一般情况下此方法都会使用,设置全部内容都需要进行认证。


代码示例:

anyRequest().authenticated();
复制代码



2.antMatcher()


方法定义如下:

public C antMatchers(String... antPatterns)
复制代码



参数是不定向参数,每个参数是一个ant表达式,用于匹配URL规则。

规则如下:


  1. ? 匹配一个字符
  • 匹配0个或多个字符

  1. ** 匹配0个或多个目录

  2. 在实际项目中经常需要放行所有静态资源,下面演示放行js文件夹下所有脚本文件。

.antMatchers("/js/**").permitAll()
复制代码


还有一种配置方式是只要是.js文件都放行

antMatchers("/**/*.js").permitAll()
复制代码



3.regexMatchers()


3.1介绍

使用正则表达式进行匹配。和antMatchers()主要的区别就是参数,antMatchers()参数是ant表达式,regexMatchers()参数是正则表达式。


演示所有以.js结尾的文件都被放行。


.regexMatchers(".+[.]js").permitAll()
复制代码



3.2两个参数时使用方式


无论是antMatchers()还是regexMatchers()都具有两个参数的方法,其中第一个参数都是HttpMethod,表示请求方式,当设置了HttpMethod后表示只有设定的特定的请求方式才执行对应的权限设置。


枚举类型HttpMethod内置属性如下:


image.png


相关文章
|
10月前
|
JSON 安全 Java
什么是JWT?如何使用Spring Boot Security实现它?
什么是JWT?如何使用Spring Boot Security实现它?
1832 5
|
6月前
|
数据采集 人工智能 Java
1天消化完Spring全家桶文档!DevDocs:一键深度解析开发文档,自动发现子URL并建立图谱
DevDocs是一款基于智能爬虫技术的开源工具,支持1-5层深度网站结构解析,能将技术文档处理时间从数周缩短至几小时,并提供Markdown/JSON格式输出与AI工具无缝集成。
243 1
1天消化完Spring全家桶文档!DevDocs:一键深度解析开发文档,自动发现子URL并建立图谱
|
安全 Java 数据安全/隐私保护
使用Spring Security实现细粒度的权限控制
使用Spring Security实现细粒度的权限控制
|
安全 Java 数据库
实现基于Spring Security的权限管理系统
实现基于Spring Security的权限管理系统
|
安全 Java 数据安全/隐私保护
解析Spring Security中的权限控制策略
解析Spring Security中的权限控制策略
|
Java Spring
成功解决Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings
这篇文章提供了解决Spring Initializr网站初始化失败问题的方法,包括检查URL、网络和代理设置。
成功解决Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings
|
安全 Java 数据安全/隐私保护
Spring 安全配置中拦截 URL 的顺序重要性
【8月更文挑战第21天】
192 1
|
安全 Java 数据安全/隐私保护
使用Spring Security实现细粒度的权限控制
使用Spring Security实现细粒度的权限控制
|
安全 Java 数据安全/隐私保护
使用Java和Spring Security实现身份验证与授权
使用Java和Spring Security实现身份验证与授权
|
前端开发 JavaScript
前端JS截取url上的参数
文章介绍了两种前端JS获取URL参数的方法:手动截取封装和使用URLSearchParams。
321 0