Spring Boot Plus V1.4.0发布
Spring Boot Plus是一个基于SpringBoot的项目快速开发脚手架,版本 V1.4.0 提供了用户角色权限部门管理的集成,方便用户快速搭建管理后台。
安装
首先,我们需要安装Java和Maven,参考:
- Java 安装教程
- Maven 安装教程
Spring Boot Plus 是通过Maven进行构建和管理的,我们可以使用以下命令将代码克隆到本地:
git clone https://github.com/geekidea/spring-boot-plus.git
然后,进入spring-boot-plus目录:
cd spring-boot-plus
配置
Spring Boot Plus V1.4.0 集成了用户角色权限部门管理,需要进行相关的配置。
数据库配置
在 application.yml
中配置数据库信息,如下所示:
# Datasource
spring:
datasource:
url: jdbc:mysql://${MYSQL_HOST:localhost}:3306/spring-boot-plus?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username: root
password: root
权限管理配置
在 application.yml
中进行权限管理相关的配置,如下所示:
# 配置
spring:
security:
auth:
# 超级管理员初始账号
init-username: admin
init-password: admin123
# 需要鉴权的接口地址开头
auth-url-patterns:
- "/api/**"
- "/v1/**"
# 忽略鉴权的接口地址开头
ignore-url-patterns:
- "/openapi/**"
- "/file/**"
# 不需要拦截验证的url列表
permit-all:
- "/doc.html"
- "/api-docs-ext"
- "/v2/api-docs-ext"
- "/v2/api-docs"
- "/swagger-resources/configuration/ui"
- "/swagger-resources/configuration/security"
- "/webjars/**"
- "/swagger-ui.html"
- "/swagger/**"
- "/auth/**"
# 鉴权失败时的响应信息
unauthorized-response-message: {"success":false,"code":401,"msg":"鉴权失败,请重新登录"}
# 角色与权限
plus:
security:
role:
allowed-api:
# 各个接口的权限定义
# 示例:一个hello接口需要EDITOR、ADMIN权限
- name: hello
url: /hello/**
permission:
- ROLE_EDITOR
- ROLE_ADMIN
# 账号与部门
plus:
system:
user:
# 超级管理员账号信息定义
admin:
username: admin
password: admin123
日志配置
在 application.yml
中进行日志配置,如下所示:
# Log
logging:
level:
root: info
com.geekidea.springbootplus: debug
pattern:
console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %highlight(%-5level) %cyan(%logger{48}) %white(---) %msg %n'
使用
Spring Boot Plus V1.4.0 集成了用户角色权限部门管理,可以直接使用。
系统管理
Spring Boot Plus V1.4.0 实现了用户、角色、权限、部门等管理功能,我们可以访问以下地址来进行相关管理:
/system/user
管理用户/system/role
管理角色/system/permission
管理权限/system/dept
管理部门
授权管理
Spring Boot Plus V1.4.0 集成了授权管理,需要在 controller 或者其他方法中通过 @PreAuthorize
进行授权,例如:
@RestController
@RequestMapping("/hello")
public class HelloController {
@GetMapping("")
@PreAuthorize("hasAnyAuthority('ROLE_EDITOR','ROLE_ADMIN')")
public Result<String> hello() {
return Result.ok("Hello World");
}
}
以上示例定义了一个 /hello
的接口,需要拥有 ROLE_EDITOR
或者 ROLE_ADMIN
权限才能访问。
示例
以下是两个示例代码:
示例1:获取当前用户信息
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private CurrentUserUtil currentUserUtil;
@GetMapping("")
public Result<UserVo> currentUser() {
SysUser currentUser = currentUserUtil.getCurrentUser();
UserVo userVo = UserVo.builder()
.id(currentUser.getId())
.username(currentUser.getUsername())
.build();
return Result.ok(userVo);
}
}
以上示例中,我们通过 CurrentUserUtil
获取当前用户信息,返回一个自定义的 UserVo
对象。
示例2:获取当前用户的所有角色
@RestController
@RequestMapping("/role")
public class RoleController {
@Autowired
private CurrentUserUtil currentUserUtil;
@Autowired
private SysRoleService sysRoleService;
@GetMapping("/list")
public Result<List<SysRoleVo>> roleList() {
SysUser currentUser = currentUserUtil.getCurrentUser();
List<SysRoleVo> list = sysRoleService.getRoleVoListByUserId(currentUser.getId());
return Result.ok(list);
}
}
以上示例中,我们通过 SysRoleService
获取当前用户的所有角色,并返回自定义的 SysRoleVo
对象列表。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring-boot-plus V1.4.0发布 集成用户角色权限部门管理(推荐) - Python技术站