3.4 认证服务查询用户权限
修改认证服务的UserDetailServiceImpl,查询用户的权限,并拼接权限串,将原来硬编码权限代码删除,代码如
下:
......
//请求ucenter查询用户
XcUserExt userext = userClient.getUserext(username);
if(userext == null){
//返回NULL表示用户不存在,Spring Security会抛出异常
return null;
}
//从数据库查询用户正确的密码,Spring Security会去比对输入密码的正确性
String password = userext.getPassword();
//指定用户的权限,这里暂时硬编码
List<String> permissionList = new ArrayList<>();
// permissionList.add("course_get_baseinfo");
// permissionList.add("course_find_pic");
//取出用户权限
List<XcMenu> permissions = userext.getPermissions();
for(XcMenu xcMenu:permissions){
permissionList.add(xcMenu.getCode());
}
......
3.5 测试
重启服务和开启nginx
ac3d5f9f-8152-4c45-b4ed-b469b09f8b1e
1、执行登录,在redis中查看jwt令牌,使用jwt测试程序解析jwt令牌中是否包括用户的权限 。
2、使用新的jwt令牌测试方法授权
3、给用户分配新权限,重新生成jwt令牌,测试授权