express mysql 做rbac_spring boot:spring security用mysql数据库实现RBAC权限管理(spring boot 2.3.1)...

本文介绍了如何使用MySQL数据库实现Spring Security的RBAC(Role-Based Access Control)权限管理。作者通过创建自定义User类、扩展Spring Security的UserDetailsService、配置WebSecurityConfig以及实现相关处理器来详细阐述了整个过程。项目包含了无权限限制、需登录和有权限限制的页面,以及用于处理登录、登出、权限拒绝的自定义操作。
摘要由CSDN通过智能技术生成

一,用数据库实现权限管理要注意哪些环节?

1,需要生成spring security中user类的派生类,用来保存用户id和昵称等信息,

避免页面上显示用户昵称时需要查数据库

2,如果需要在页面上显示用户的登录信息,

需要自定义一个interceptor,

把用户的昵称等信息添加到 modelandview

3,普通用户的角色,即默认的权限,因为每个用户都具有,

就不要写入到数据表中,

避免数据量大时查询缓慢

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,演示项目的相关信息

1,项目地址:

https://github.com/liuhongdi/securitylogin

2,项目功能说明

演示了使用数据库实现的用户RBAC权限管理

三种页面:

无权限限制页面:任何人都可访问

需登录页面:修改密码等:登录才可以访问

有权限限制页面:必须授予相应的角色后才能访问

3,项目结构:如图:

e83be673bc3e8ea0ad1e432446dd4f55.png

6ef2a53ca2e53b65a648d5cd4fddd5ca.png

d61febded98fbbc7121538d8def2fe5e.png

三,配置文件说明

1,pom.xml

org.springframework.boot

spring-boot-starter-security

org.springframework.boot

spring-boot-starter-thymeleaf

org.springframework.boot

spring-boot-starter-validation

org.mybatis.spring.boot

mybatis-spring-boot-starter

2.1.3

mysql

mysql-connector-java

runtime

com.alibaba

fastjson

1.2.72

2,application.properties

#thymeleaf

spring.thymeleaf.cache=falsespring.thymeleaf.encoding=UTF-8spring.thymeleaf.mode=HTML

spring.thymeleaf.prefix=classpath:/templates/spring.thymeleaf.suffix=.html

#mysql

spring.datasource.url=jdbc:mysql://localhost:3306/security?characterEncoding=utf8&useSSL=false

spring.datasource.username=root

spring.datasource.password=lhddemo

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#mybatis

mybatis.mapper-locations=classpath:/mapper/*Mapper.xml

mybatis.type-aliases-package=com.example.demo.mapper

#error

server.error.include-stacktrace=always

#log

logging.level.org.springframework.web=trace

3,数据库:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值