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


相关实践学习
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
4天前
|
XML 安全 前端开发
Spring Security 重点解析(下)
Spring Security 重点解析
13 1
|
4天前
|
安全 Java 数据安全/隐私保护
|
4天前
|
安全 NoSQL Java
Spring Security 重点解析(上)
Spring Security 重点解析
15 1
|
4天前
|
存储 安全 Java
第10章 Spring Security 的未来趋势与高级话题(2024 最新版)(下)
第10章 Spring Security 的未来趋势与高级话题(2024 最新版)
26 2
|
4天前
|
安全 Cloud Native Java
第10章 Spring Security 的未来趋势与高级话题(2024 最新版)(上)
第10章 Spring Security 的未来趋势与高级话题(2024 最新版)
32 2
|
4天前
|
存储 安全 Java
第9章 Spring Security 的测试与维护 (2024 最新版)(下)
第9章 Spring Security 的测试与维护 (2024 最新版)
21 1
|
4天前
|
安全 Java 测试技术
第9章 Spring Security 的测试与维护 (2024 最新版)(上)
第9章 Spring Security 的测试与维护 (2024 最新版)
25 0
|
6月前
|
缓存 安全 算法
Spring Security OAuth 2.0 资源服务器— JWT
Spring Security OAuth 2.0 资源服务器— JWT
267 1
|
4天前
|
安全 Java 数据安全/隐私保护
Spring Security OAuth 之 @EnableAuthorizationServer 干了啥?
【1月更文挑战第19天】在引入 Spring Security OAuth 的 starter 后,可以方便地使用注解,自动开启和配置授权服务组件。它是如何完成这些配置的?
133 2
|
4天前
|
安全 NoSQL Java
Spring Security OAuth 令牌生成
【1月更文挑战第17天】之前写了两篇分析 Spring Security OAuth 认证流程的文章,这篇主要来分析一下,`tokenServices.createAccessToken` 方法,具体是怎么生成 Token。
36 2