解决方式:在授权的方法里面,把principal.getPrimaryPrincipal()获取到的对象复制给User就行了!
Object obj = principal.getPrimaryPrincipal();
User user = new User();
BeanUtils.copyProperties(obj,user);
// 授权
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principal) {
SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
Object obj = principal.getPrimaryPrincipal();
User user = new User();
BeanUtils.copyProperties(obj,user);
sysRoleMapper.findRoleByUsername(user.getEmail()).stream().forEach(sysRole -> {
// 添加角色
authorizationInfo.addRole(sysRole.getRole());
sysPermissionMapper.findPermissionByRoleId(sysRole.getId()).stream().forEach(sysPermission -> {
authorizationInfo.addStringPermission(sysPermission.getPermission());
});
});
return authorizationInfo;
}