SpringSecurity实现访问控制url匹配

 更新时间:2022年08月01日 11:18:29   作者:请叫我黄同学  
本文主要介绍了SpringSecurity实现访问控制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规则。

规则如下:

  • ? 匹配一个字符

    • 匹配0个或多个字符
  • ** 匹配0个或多个目录

  • 在实际项目中经常需要放行所有静态资源,下面演示放行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内置属性如下:

到此这篇关于SpringSecurity实现访问控制url匹配的文章就介绍到这了,更多相关SpringSecurity实现访问控制url匹配内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mybatis接口式编程的原理

    Mybatis接口式编程的原理

    mybatis有两种实现方式,一种可以通过xml配置文件实现,其二是面向接口编程的实现。本文重点给大家介绍mybatis接口编程的原理,需要的的朋友参考下
    2017-03-03
  • Java基础之CardLayout的使用

    Java基础之CardLayout的使用

    这篇文章主要介绍了Java基础之CardLayout的使用,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • SpringBoot整合EasyExcel实现导入导出数据

    SpringBoot整合EasyExcel实现导入导出数据

    这篇文章主要为大家详细介绍了如何使用Vue、SpringBoot和EasyExcel实现导入导出数据功能,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-05-05
  • SpringMVC参数的传递之如何接收List数组类型的数据

    SpringMVC参数的传递之如何接收List数组类型的数据

    这篇文章主要介绍了SpringMVC参数的传递之如何接收List数组类型的数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Java中的ThreadLocal与ThreadLocalMap详解

    Java中的ThreadLocal与ThreadLocalMap详解

    这篇文章主要介绍了Java中的ThreadLocal与ThreadLocalMap详解,ThreadLocal 是一个线程局部变量,其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,需要的朋友可以参考下
    2023-09-09
  • java对象克隆实现方法详解

    java对象克隆实现方法详解

    这篇文章主要给大家介绍了关于java对象克隆实现的相关资料,克隆就是复制一个对象的副本,Java支持我们对一个对象进行克隆,通常用在装饰模式和原型模式中,需要的朋友可以参考下
    2023-06-06
  • MyBatis实现配置加载的步骤

    MyBatis实现配置加载的步骤

    本文主要介绍了MyBatis实现配置加载的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • SpringBoot之Controller的使用详解

    SpringBoot之Controller的使用详解

    本篇文章主要介绍了SpringBoot之Controller的使用详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-08-08
  • maven无法自动导入依赖jar包解决方式

    maven无法自动导入依赖jar包解决方式

    有时候Maven无法自动导入包是因为该包未下载到本地仓库中,本文就来介绍一下解决方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • Java MyBatis框架环境搭建详解

    Java MyBatis框架环境搭建详解

    MyBatis本是apache的一个开源项目iBatis,MyBatis环境的搭建有点麻烦,本章带你了解搭建过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
    2022-08-08

最新评论