基于Spring Boot+Security+Redis权限管理系统,权限控制采用RBAC
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Spring Boot+Security+Redis权限管理系统,权限控制采用RBAC相关的知识,希望对你有一定的参考价值。
参考技术A 用户管理 提供用户的相关配置角色管理 角色菜单进行权限的分配
权限管理 权限细化到接口
菜单管理 已实现菜单动态路由,后端可配置化,支持多级菜单
定时任务 整合Quartz做定时任务,加入任务日志,任务运行情况一目了然
系统日志 使用apo记录用户操作日志,并且记录异常堆栈信息
系统缓存 使用jedis将缓存操作可视化,并提供对redis的基本操作,可根据需求自行扩展
实时控制台 实时打印logback日志,来自微强迫症患者的精心配色,更好地监控系统的运行状态
SQL监控 采用druid 监控数据库访问性能
common 公共包
aop 记录日志与接口限流
exception 项目异常处理
mapper mapstruct的通用mapper
redis redis缓存相关配置
swagger2 接口文档配置
utils 通用工具
core 核心包
config JWT的安全过滤器配置与跨域配置
rest 用户授权的接口
security 配置spring security
service 用户登录与权限的处理
utils 包含加密工具与JWT工具
monitor 系统监控
config 配置日志拦截器与WebSocket等
domain 实体类
repository 数据库操作
rest 前端控制器
service 业务接口
impl 业务接口实现
query 业务查询
quartz 定时任务
system 系统管理
tools 第三方工具
Spring Boot Security 基于角色的访问控制
@Override protected void configure(HttpSecurity http) throws Exception { //如果配置为需要登录 if (needLogin) { http .authorizeRequests() .antMatchers("/keepalived", "/revision","/static/**").permitAll() .antMatchers("/manager/**").hasRole("ADMIN") .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .defaultSuccessUrl("/index",true) .permitAll() .and() .logout().permitAll();
} }
配置如上所示。但是需要注意,检查的是ADMIN角色,库里存的字段要是ROLE_ADMIN,而不是ADMIN。
The HttpServletRequest.isUserInRole(String) will determine if
SecurityContextHolder.getContext().getAuthentication().getAuthorities()
contains aGrantedAuthority
with the role passed intoisUserInRole(String)
. Typically users should not pass in the "ROLE_" prefix into this method since it is added automatically. For example, if you want to determine if the current user has the authority "ROLE_ADMIN", you could use the following:boolean isAdmin = httpServletRequest.isUserInRole("ADMIN");
This might be useful to determine if certain UI components should be displayed. For example, you might display admin links only if the current user is an admin.
以上是关于基于Spring Boot+Security+Redis权限管理系统,权限控制采用RBAC的主要内容,如果未能解决你的问题,请参考以下文章
基于 Spring Boot / Spring Security 角色的授权无法正常工作 [重复]
217.Spring Boot+Spring Security:基于内存的角色授权
spring boot系列--spring security (基于数据库)登录和权限控制
spring boot系列--spring security (基于数据库)登录和权限控制
216.Spring Boot+Spring Security:基于内存的认证信息
250.Spring Boot+Spring Security:基于URL动态权限:自定义AccssDesionManager