文章目录
一.数据表结构
这是基于RBAC模型的数据表结构
二.实体类
权限管理主要是对于登入用户的身份验证和通过该用户的角色来获取到该用户的权限,并全权交给到SpringSecurity进行管理
用户实体类
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class SysUser extends BaseEntity<Long> {
private static final long serialVersionUID = -6525908145032868837L;
private String username;
private String password;
private String nickname;
private String headImgUrl;
private String phone;
private String telephone;
private String email;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date birthday;
private Integer sex;
private Integer status;
private String intro;
public interface Status {
int DISABLED = 0;
int VALID = 1;
int LOCKED = 2;
}
}
权限对应的实体类
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class SysPermission extends BaseEntity<Integer> {
private static final long serialVersionUID = -6525908145032868837L;
private Integer parentId;
private String name;
private String css;
private String href;
private Integer type;
private String permission;
private Integer sort;
@Override
public String toString() {
return "SysPermission{" +
"parentId=" + parentId +
", name='" + name + '\'' +
", css='" + css + '\'' +
", href='" + href + '\'' +
", type=" + type +
", permission='" + permission + '\'' +
", sort=" + sort +
'}';
}
}
他们之间的中间表就不一一列举,需要完整源码的可以到我的github中获取(文末有链接)
三.实现权限管理功能
要实现权限管理功能需要先配置一个Config类,并让它继承WebSecurityConfigurerAdapter接口
实现如下方法:
方法 | 作用 |
---|---|
void configure(AuthenticationManagerBuilder auth) | 身份验证管理器,将用户信息交给SpringSecurity管理 |
void configure(HttpSecurity http) | 配置SpringSecurity,设置忽略拦截菜单,自定义登录页,登出和异常处理 |
代码如下
1.身份验证管理器
@Resource<