java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springsecurity前后端分离的RBAC动态权限管理

springsecurity前后端分离的RBAC动态权限管理实践

作者:Fwanmou

还在纠结Spring Security和Shiro选哪个?本文从功能、整合难度、社区支持等角度全面对比,并手把手教你整合Spring Boot,深入解析过滤器链执行流程,助你快速上手权限管理,为后续实现RBAC打下基础

一、为什么选择springsecurity,以及Shiro对比?

1.相同点:

2.不同点:

优点:

缺点:

3.那我们为什莫选择Spring Security:

二、springsecurity、springboot基本整合

1.新建springboot项目(版本:2.4.4 步骤暂不多说,port自己也配个我是901)

2.pom.xml 依赖导入

<dependencies>
<!--        spring security 相关依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!--        spring security 相关依赖-->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>5.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

3.第一个controller编写

/**
 * @author :alm
 */
@RestController
@RequestMapping("/introduction")
public class Demo1Controller {

    /**
     * 第一次运行项目
     * @return :成功
     */
    @GetMapping("/one")
    public String one(){
        return "成功了宝!";
    }
}

4.废话不多说直接运行,你会发现控制台输出了这玩意(见下图),

然后访问 http://localhost:901/introduction/one 该路径你会发现一个有确的事他自动跳转到了 http://localhost:901/login,

那么Username为user :

Password为ac985071-dbf5-461b-8b59-9efbf337b0cf(随机密码,不信再运行一次试试)

输入成功打印

三、执行流程(敲黑板)

1:是不是感觉这玩意很有趣,那么就让我们初步看一下他执行流程

2:话不多说,直接上图

3:我们可以看见很多的filter,SpringSecurity 采用的是责任链的设计模式,它有一条很长的过滤器链。现在对这条过滤器链的各个进行说明: 只说几个会常见的过滤器

四、挖坑,提需求

1.用户名密码mysql里面查,并实现登录

2.说好的RBAC权限管理呢?对了什么是RBAC?

我就将现实一个重要接口UserDetails再方法loadUserByUsername()内进行数据库查询操作,以及实现WebSecurityConfigurerAdapter的配置类进行权限管理,所以下次讲基于RBAC的数据库设计,以及简单的RBAC讲解(就怕自己忘记),再见!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文