zeromemos
最好的学习方法就是输出所学的知识使用fastJson序列化和反序列化UserDetails对象
根据流程图http://www.zeromemos.com/index/article/read.html?id=409
修改MySecurityUser对象
public class MySecurityUser extends User {
//自己的User实体类,方便后面存取需要的用户信息
private SysUser sysUser;
//Redis校验码
private String checkCode;
//权限集合用于反序列化时填充父类权限
private List<String> permissions;
//分别将用户、密码和权限集合传到父类的构造函数里
public MySecurityUser(SysUser sysUser, List<String> permissions) {
super(sysUser.getUsername(), sysUser.getPassword(), AuthorityUtils.createAuthorityList(permissions.toArray(new String[0])));
//将密码置空存到Redis
sysUser.setPassword("");
this.permissions = permissions;
this.sysUser = sysUser;
}
//提供全参构造器 用于反序列化时填充属性
public MySecurityUser(SysUser sysUser, String checkCode, List<String> permissions) {
super(sysUser.getUsername(), sysUser.getPassword(), AuthorityUtils.createAuthorityList(permissions.toArray(new String[0])));
this.sysUser = sysUser;
this.checkCode = checkCode;
this.permissions = permissions;
}
public SysUser getSysUser() {
return sysUser;
}
public void setSysUser(SysUser sysUser) {
this.sysUser = sysUser;
}
public String getCheckCode() {
return checkCode;
}
public void setCheckCode(String checkCode) {
this.checkCode = checkCode;
}
public List<String> getPermissions() {
return permissions;
}
public void setPermissions(List<String> permissions) {
this.permissions = permissions;
}
}
反序列化时会用全参构造器进行反序列化,我们用permissions和sysUser构造父类里的用户名和权限集合
评论区
关于我们
本站主要用于记录个人学习笔记,网站开发中,如需以前站内资料请加QQ群272473835索取。注册账号仅提供回帖功能,可不注册!
