原创:一一哥
前言:
在前面的章节中,一一哥 已经给大家介绍了Spring Security的很多功能,在这些众多功能中,我们知道其核心功能其实就是认证+授权。
在前面我们分别基于内存模型、基于默认的数据库模型、基于自定义数据库模型实现了认证和授权功能,但是不管哪种方式,我们对某个接口的拦截限制,都是通过编写一个SecurityConfig配置类,在该类的configure (Http Security http)方法中,通过http. authorize Requests ( ). antMatchers ("/admin/**")…这样的代码进行的权限控制。
这种权限控制方法虽然也可以实现对某些接口的拦截或放行,但是不够灵活,其实Spring Security对接口的拦截或放行的写法,还有另外的方式,接下来请跟我学习一下吧!
一. 权限控制方式
在Spring Security 中,我们既可以使用 Spring Security 提供的默认方式进行授权,也可以进行自定义授权,总之在Spring Security中权限控制的实现方式是比较灵活多样的。在Spring Security 中,对接口的拦截或放行,有四种常见的权限控制方式:
利用Ant表达式实现权限控制;
利用授权注解结合SpEl表达式实现权限控制;
利用过滤器注解实现权限控制;
利用动态权限实现权限控制。
对上面说到的四种权限控制方式,我们接下来分别进行讲解实现。
二. 利用Ant表达式实现权限控制
利用Ant表达式的权限控制方式,是我们之前一直在使用的权限控制方式,在进行代码实现之前,我先对这种方式的底层实现进行简单分析。
1. Spring Security中的权限控制方法
在Spring Security中,有一个Security Expression Operations 接口,在该接口中定义了一系列的方法,用于用户权限的设置,如下图:

SecurityExpressionOperations接口中的
这些方法作用如下图所示:


2. Spring Security中的权限控制粒度
这个接口有一个SecurityExpressionRoot子类,该类提供了基于表达式的权限控制实现方式。而这个Secu

本文详细讲解了Spring Security的四种权限控制方法:Ant表达式、授权注解结合SpEl、过滤器注解以及动态权限。通过实例代码展示了如何实现URL接口和方法级别的权限控制,提供更灵活的权限管理方案。

1万+

被折叠的 条评论
为什么被折叠?



