SpringSecurity实现访问控制url匹配

目录
  • 一、访问控制url匹配
    • 1.anyRequest()
    • 2.antMatcher()
    • 3.regexMatchers()
      • 3.1介绍
      • 3.2两个参数时使用方式

一、访问控制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匹配内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • springboot+springsecurity如何实现动态url细粒度权限认证

    谨记:Url表只储存受保护的资源,不在表里的资源说明不受保护,任何人都可以访问 1.MyFilterInvocationSecurityMetadataSource 类判断该访问路径是否被保护 @Component //用于设置受保护资源的权限信息的数据源 public class MyFilterInvocationSecurityMetadataSource implements FilterInvocationSecurityMetadataSource { @Bean public An

  • SpringSecurity实现动态url拦截(基于rbac模型)

    目录 1.了解主要的过滤器 1.SecurityMetadataSource 2.UserDetailsService 3.AccessDecisionManager 2.正式实战了 1 使用idea的Srping Initializr 创建一个项目 我的版本如下Pom.xml 2,创建一个springSecurity配置类,你也可以使用配置文件的方法.我这里使用了boot的配置类 3.自定义SecurityMetadataSource拦截器 后续会讲解如何实现方法拦截.其实与url拦截大同小异

  • SpringSecurity实现访问控制url匹配

    目录 一.访问控制url匹配 1.anyRequest() 2.antMatcher() 3.regexMatchers() 3.1介绍 3.2两个参数时使用方式 一.访问控制url匹配 在前面讲解了认证中所有常用配置,主要是对http.formLogin()进行操作.而在配置类中 http.authorizeRequests()主要是对url进行控制,也就是我们所说的授权(访问控制).http.authorizeRequests()也支持连缀写法,总体公式为: url匹配规则.权限控制方法 通

  • Spring Boot 定制URL匹配规则的方法

    事情的起源:有人问我,说编写了一个/hello访问路径,但是吧,不管是输入/hello还是/hello.html,还是/hello.xxx都能进行访问.当时我还以为他对代码进行处理了,后来发现不是,后来发现这是Spring Boot路由规则.好了,有废话了下,那么看看我们解决上面这个导致的问题. 构建web应用程序时,并不是所有的URL请求都遵循默认的规则.有时,我们希望RESTful URL匹配的时候包含定界符".",这种情况在Spring中可以称之为"定界符定义的格式&q

  • Django正则URL匹配实现流程解析

    一.引子 在day17 作业中,我们查看主机详细信息的时候,是通过 在url 中拼接,传参数.urls 中匹配 path("detail/",views.detail) 这样url 变成类似 http://127.0.0.1:8000/detail/?nid=2 今天我们来学习,类似http://127.0.0.1:8000/detail-3.html 这样的URL 据说,以前我们使用的方式 ,在seo 时候算是动态页面,后面这种方式算静态页面.可能在做搜索优化的时候有好处吧. 二.开

  • spring mvc url匹配禁用后缀访问操作

    spring mvc url匹配禁用后缀访问 在spring mvc中默认 访问url 加任意后缀名都能访问 比如:你想访问 /login ,但是通过 /login.do /login.action /login.json 都能访问 通常来说可能没有影响,但对于权限控制,这就严重了. 权限控制通常有两种思路: 1)弱权限控制 允许所有url通过,仅对个别重要的url做权限控制.此种方式比较简单,不需要对所有url资源进行配置,只配置重要的资源. 2)强权限控制 默认禁止所有url请求通过,仅开放

  • ASP.NET MVC对URL匹配操作

    1.使用{parameter}做模糊匹配 {parameter}:花括弧加任意长度的字符串,字符串不能定义成controller和action字母.默认的就是模糊匹配. 例如:{admin}. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MVCURLMatc

  • 详解IIS中URL重写工具的匹配URL-规则模式(rule patterns)

    rule patterns规则模式在IIS的URL重写模块中,是较为关键的设置.只有规则模式的URL匹配成功时,其他的规则才能起到作用.规则模式的匹配URL设置主要是匹配URL中的路径部分,一般使用正则表达式和通配符对URL路径进行匹配,下面会仔细的说明. 首先要了解规则模式是匹配URL中的哪一部分,假设当前有网站的URL地址为http://shiyousan.com/Home/Index?page=1,那么规则模式匹配的部分就是Home/Index,域名的主机部分和参数部分如果要匹配,则需要在

  • Django url 路由匹配过程详解

    1 Django 如何处理一个请求 当一个用户请求Django 站点的一个页面,下面是Django 系统决定执行哪个Python 代码使用的算法: Django 确定使用根 URLconf 模块.通常,这是 ROOT_URLCONF 设置的值(即 settings 中的 ROOT_URLCONF),但如果传入 HttpRequest 对象拥有 urlconf 属性(通过中间件设置),它的值将被用来代替 ROOT_URLCONF 设置.可以在 django/core/handlers/base.p

  • ASP.NET中URL Routing和IIS上URL Rewriting的区别

    前言 前面有2篇帖子提到了关于URL Routing的特性,但是发现有很多人误会URL Routing就是URl Rewriting,其实2个虽然都提供相似的功能(提高友好的URL方便搜索引起收录),但是2者的原理和运行周期是完全不一样的,本篇文章我们就来分析一下具体有什么不同. 例子 在分析原理之前,我们先来做一个例子测试一下(IIS URL Rewrite模块需要IIS7的支持). 1.为Customer/1的URL建立对应的MVC程序 首先建立一个普通的MVC3程序,建立一个简单的Cust

  • 详解IIS中URL重写工具的规则条件(Rule conditions)

    本文结合官方文档和相关示例,详细记录了在IIS中URL重写工具下的规则条件(Rule conditions)的相关说明.规则条件允许我们通过额外的逻辑规则来过滤和匹配规则模式( rule pattern ),所以只有当规则模式的URL匹配成功时,Rule conditions才会起作用. 先附上官方文档地址:Rule conditions.下面会详细说明规则中的各种属性和设置. 逻辑分组 逻辑分组只有两个选项,任意匹配和全部匹配.规则条件是由多个条件组成的一个条件集合,所以最终判断需要根据逻辑分

随机推荐