@attack666
2021-03-11T02:24:33.000000Z
字数 1274
阅读 775
目前的逻辑是这样的
第一步:根据request中的token信息获取userid
第二步:userService获取到id信息
注意这里有个问题,就是store/fission/o2o/infra/utils/JWTUtils.java现在的jwt中没有加载userid这一项,所以还需要改动一下(之前的jwt代码在src/main/java/cn/enilu/flash/security/JwtUtil.java)
第三步:利用shiroUser这个类来做桥梁,获取用户角色列表(t_sys_role)
第四步:装载到map中返回
问题1:上面
问题2:现在没有用户角色表,需要重新设计一个
问题3:导航栏是根据返回的信息动态生成的,所以不能说直接把前端权限放开
问题4:目前后端的数据库表和之前的角色管理方面很不一样,所以不是很好迁移,要慢慢重写
@RequestMapping(value = "/info", method = RequestMethod.GET)public Object info(HttpServletRequest request) {Long idUser = null;try {idUser = getIdUser(request);} catch (Exception e) {return Rets.expire();}if (idUser != null) {User user = userService.get(idUser);if (StringUtil.isEmpty(user.getRoleid())) {return Rets.failure("该用户未配置权限");}ShiroUser shiroUser = ShiroFactory.me().shiroUser(user);Map<String, Object> map = Maps.newHashMap("name", user.getName(), "role", "admin", "roles", shiroUser.getRoleCodes());List menus = menuService.getMenusByRoleIds(shiroUser.getRoleList());map.put("menus", menus);map.put("permissions", shiroUser.getUrls());Map profile = (Map) Mapl.toMaplist(user);profile.put("dept", shiroUser.getDeptName());profile.put("roles", shiroUser.getRoleNames());map.put("profile", profile);return Rets.success(map);}return Rets.failure("获取用户信息失败");}