Spring Boot +Shiro 用户角色权限设计

首先创建 用户-角色-权限 三个实体类 和 用户与角色关系表和 角色与权限关系表

  1. 用户表UserInfo:在用户表中保存了用户的基本信息,账号、密码、姓名等;
  2. 权限表SysPermission(资源+控制权限):这个表中主要是保存了用户的URL地址,权限信息;
  3. 角色表SysRole:在这个表重要保存了系统存在的角色;
  4. 关联表:用户-角色管理表SysRoleUser(用户在系统中都有什么角色,比如admin,manage等),角色-权限关联表SysRolePermission(每个角色对应什么权限可以进行操作)。

    用户实体

@TableName("user_info")
public class UserInfo extends BaseEntity<UserInfo> {
   

    private static final long serialVersionUID = 1L;

    private Long id;//用户id;
    private String name;//名称(昵称或者真实姓名,不同系统不同定义)
    private String password; //密码;
    private String salt;//加密密码的盐
    private Integer state;//用户状态,0:创建未认证(比如没有激活,没有输入验证码等等)--等待验证的用户 , 1:正常状态,2:用户被锁定.
    @TableField("user_name")
    private String userName; //账号.

    @TableField(exist=false)
    private List<SysRole> roleList;// 一个用户具有多个角色
    }

角色实体

@TableName("sys_role")
public class SysRole extends BaseEntity<SysRole> {
   

    private static final long serialVersionUID = 1L;

    private String available;// 是否可用,如果不可用将不会添加给用户
    private String description; // 角色描述,UI界面显示使用
    private Long id;// 编号
    private String role; // 角色标识程序中判断使用,如"admin",这个是唯一的:

    @TableField(exist = false)
    private List<SysPermission> permissions;// 角色 - 权限关系定义;
    }

权限实体

@TableName("sys_permission")
public class SysPermission extends BaseEntity<SysPermission> {
   

    private static final long serialVersionUID = 1L;

    private Long id;
    private String name;
    @TableField("parent_id")
    private Integer parentId;
    @TableField("parent_ids")
    private String parentIds;
    private String permission;
    @TableField("resource_type")
    private String resourceType;
    private String url;
    }

对应关系实体(mybatisPlus生成)

@TableName("sys_role_user")
public class SysRoleUser extends Model<SysRoleUser> {
   

    private static final long serialVersionUID = 1L;

    private Long id;
    private Long roleId;
    private Long uid;
}


@TableName("sys_role_permission")
public class SysRolePermission extends Model<SysRolePermission> {
   

    private static final long serialVersionUID = 1L;

    private Integer id;
    private Lo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值