Spring Security 实现动态权限菜单方案(附源码)

系统权限管理

1、前言

在实际开发中,开发任何一套系统,基本都少不了权限管理这一块。这些足以说明权限管理的重要性。其实SpringSecurity去年就学了,一直没有时间整理,用了一年多时间了,给我的印象一直都挺好,实用,安全性高(Security可以对密码进行加密)。而且这一块在实际开发中也的确很重要,所以这里整理了一套基于SpringSecurity的权限管理。

案例代码下面有下载链接。

2、案例技术栈

如果对于SpringSecurity还不了解的话可以先了解一下SpringSecurity安全控件的学习,页面采用的是Bootstrap写的(页面就简单的写了一下,可以根据自己的需求更改),其实后端理解了,前台就是显示作用,大家可以自行更换前台页面显示框架,持久层使用的是Spring-Data-Jpa。

并且对后端持久层和控制器进行了一下小封装,Java持久层和控制器的封装。页面使用的Thymeleaf模板,SpringBoot整合Thymeleaf模板。

数据库设计

1、表关系

Spring Security 实现动态权限菜单方案(附源码)_第1张图片

  • 菜单(TbMenu)=====> 页面上需要显示的所有菜单
  • 角色(SysRole)=====> 角色及角色对应的菜单
  • 用户(SysUser)=====> 用户及用户对应的角色
  • 用户和角色中间表(sys_user_role)====> 用户和角色中间表

2、数据库表结构

菜单表tb_menu

Spring Security 实现动态权限菜单方案(附源码)_第2张图片

角色及菜单权限表sys_role,其中父节点parent 为null时为角色,不为null时为对应角色的菜单权限。

Spring Security 实现动态权限菜单方案(附源码)_第3张图片

用户表sys_user

Spring Security 实现动态权限菜单方案(附源码)_第4张图片

用户和角色多对多关系,用户和角色中间表sys_user_role(有Spring-Data-Jpa自动生成)。

Spring Security 实现动态权限菜单方案(附源码)_第5张图片

新建项目

1、新建springboot项目

新建springboot项目,在项目中添加SpringSecurity相关Maven依赖,pom.map文件



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.2.RELEASE
         
    
    com.mcy
    springboot-security
    0.0.1-SNAPSHOT
    springboot-security
    Demo project for Spring Boot

    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-data-jpa
        
        
            org.springframework.boot
            spring-boot-starter-security
        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            mysql
            mysql-connector-java
            runtime
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
        
            org.springframework.security
            spring-security-test
            test
        
        
            org.thymeleaf.e

你可能感兴趣的:(Java,程序员,spring,spring,spring,boot,java,程序员,security)