diff --git a/doc/权限控制.md b/doc/权限控制.md new file mode 100644 index 0000000..be6d0a7 --- /dev/null +++ b/doc/权限控制.md @@ -0,0 +1,68 @@ +### 与权限有关的注解 + +`@Anonymous`注解用于配置公开接口 + +`@PreAuthorize`注解用于配置接口要求用户拥有某些权限才可访问,它拥有如下方法 + +| 方法 | 参数 | 描述 | +| ----------- | ------ | ---------------------------------------------- | +| hasPermi | String | 验证用户是否具备某权限 | +| lacksPermi | String | 验证用户是否不具备某权限,与 hasPermi逻辑相反 | +| hasAnyPermi | String | 验证用户是否具有以下任意一个权限 | +| hasRole | String | 判断用户是否拥有某个角色 | +| lacksRole | String | 验证用户是否不具备某角色,与 isRole逻辑相反 | +| hasAnyRoles | String | 验证用户是否具有以下任意一个角色,多个逗号分隔 | + +```java +@PreAuthorize("@ss.hasPermi('system:user:list')") +@PreAuthorize("@ss.lacksPermi('system:user:list')") +@PreAuthorize("@ss.hasAnyPermi('system:user:add,system:user:edit')") +``` + +`@DataScope`注解用于配置接口数据权限 + +* `deptAlias`用于指定部门表的别名; +* `userAlias`用于指定用户表的别名; +* 实体需要继承BaseEntity类; +* `全部数据权限`、`自定数据权限`、`部门数据权限`、`部门及以下数据权限`、`仅本人数据权限`五种权限模式在后台角色管理界面配置数据权限 + +```java +// 部门数据权限注解 +@DataScope(deptAlias = "d") +// 部门及用户权限注解 +@DataScope(deptAlias = "d", userAlias = "u") +``` + +1. 使用注解 + +```java + +@DataScope(deptAlias = "d", userAlias = "u") +public List<...> select(...) +{ + return mapper.select(...); +} +``` + +2. 配置mybatis的xml + +```xml + +``` + +### 安全工具类 + +com.ruoyi.common.utils.SecurityUtils + +| 方法 | 参数 | 返回 | 描述 | +| ------------ | ------ | ---------- | ------------------------ | +| getUserId | 无 | Long | 获取当前用户ID | +| getDeptId | 无 | Long | 获取当前部门ID | +| getUsername | 无 | String | 获取当前用户账户 | +| getLoginUser | 无 | LonginUser | 获取当前登录用户代理 | +| hasPermi | String | boolean | 验证用户是否具备某权限 | +| hasRole | String | boolean | 验证用户是否拥有某个角色 | diff --git a/doc/登录+JWT逻辑.drawio b/doc/登录+JWT逻辑.drawio new file mode 100644 index 0000000..d2bf464 --- /dev/null +++ b/doc/登录+JWT逻辑.drawio @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file