/** * Sets the Account's assigned roles. Simply calls <code>this.authzInfo.setRoles(roles)</code>. * * @param roles the Account's assigned roles. * @see Account#getRoles() */ public void setRoles(Set<String> roles) { this.authzInfo.setRoles(roles); }
/** * 授权模块,获取用户角色和权限 * * @param principal principal * @return AuthorizationInfo 权限信息 */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principal) { User user = (User) SecurityUtils.getSubject().getPrincipal(); String userName = user.getUsername(); SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo(); // 获取用户角色集 List<Role> roleList = this.roleService.findUserRole(userName); Set<String> roleSet = roleList.stream().map(Role::getRoleName).collect(Collectors.toSet()); simpleAuthorizationInfo.setRoles(roleSet); // 获取用户权限集 List<Menu> permissionList = this.menuService.findUserPermissions(userName); Set<String> permissionSet = permissionList.stream().map(Menu::getPerms).collect(Collectors.toSet()); simpleAuthorizationInfo.setStringPermissions(permissionSet); return simpleAuthorizationInfo; }
@Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { LOG.debug("Retrieving authorization information for {}", principals); final User user = userService.load(principals.getPrimaryPrincipal().toString()); if (user == null) { return new SimpleAuthorizationInfo(); } else { final SimpleAuthorizationInfo info = new UserAuthorizationInfo(user); final List<String> permissions = user.getPermissions(); if (permissions != null) { info.setStringPermissions(Sets.newHashSet(permissions)); } info.setRoles(user.getRoleIds()); LOG.debug("User {} has permissions: {}", principals, permissions); return info; } }
/** * 授权:验证权限时调用 * @param principalCollection * @return */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { String username = (String) principalCollection.getPrimaryPrincipal(); UpmsUser upmsUser = upmsApiService.selectUpmsUserByUsername(username); // 当前用户所有角色 List<UpmsRole> upmsRoles = upmsApiService.selectUpmsRoleByUpmsUserId(upmsUser.getUserId()); Set<String> roles = new HashSet<>(); for (UpmsRole upmsRole : upmsRoles) { if (StringUtils.isNotBlank(upmsRole.getName())) { roles.add(upmsRole.getName()); } } // 当前用户所有权限 List<UpmsPermission> upmsPermissions = upmsApiService.selectUpmsPermissionByUpmsUserId(upmsUser.getUserId()); Set<String> permissions = new HashSet<>(); for (UpmsPermission upmsPermission : upmsPermissions) { if (StringUtils.isNotBlank(upmsPermission.getPermissionValue())) { permissions.add(upmsPermission.getPermissionValue()); } } SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo(); simpleAuthorizationInfo.setStringPermissions(permissions); simpleAuthorizationInfo.setRoles(roles); return simpleAuthorizationInfo; }
@Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { if (principals == null) { throw new AuthorizationException("PrincipalCollection method argument cannot be null."); } LitemallAdmin admin = (LitemallAdmin) getAvailablePrincipal(principals); Integer[] roleIds = admin.getRoleIds(); Set<String> roles = roleService.queryByIds(roleIds); Set<String> permissions = permissionService.queryByRoleIds(roleIds); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); info.setRoles(roles); info.setStringPermissions(permissions); return info; }
/** * Sets the Account's assigned roles. Simply calls <code>this.authzInfo.setRoles(roles)</code>. * * @param roles the Account's assigned roles. * @see Account#getRoles() */ public void setRoles(Set<String> roles) { this.authzInfo.setRoles(roles); }
authorizationInfo.setRoles(roleCodes); authorizationInfo.setStringPermissions(functionCodes); return authorizationInfo;
/** * Sets the Account's assigned roles. Simply calls <code>this.authzInfo.setRoles(roles)</code>. * * @param roles the Account's assigned roles. * @see Account#getRoles() */ public void setRoles(Set<String> roles) { this.authzInfo.setRoles(roles); }
@Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { String payload = (String) principalCollection.getPrimaryPrincipal(); // likely to be json, parse it: if (payload.startsWith("jwt:") && payload.charAt(4) == '{' && payload.charAt(payload.length() - 1) == '}') { Map<String, Object> payloadMap = JsonWebTokenUtil.readValue(payload.substring(4)); Set<String> roles = JsonWebTokenUtil.split((String)payloadMap.get("roles")); Set<String> permissions = JsonWebTokenUtil.split((String)payloadMap.get("perms")); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); if(null!=roles&&!roles.isEmpty()) info.setRoles(roles); if(null!=permissions&&!permissions.isEmpty()) info.setStringPermissions(permissions); return info; } return null; }
/** * Shiro权限认证 */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { logger.info("Shiro开始权限配置"); ShiroUser shiroUser = (ShiroUser) principals.getPrimaryPrincipal(); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); Set<String> roles = new HashSet<>(); List<String> roleList = shiroUser.getRoles(); roles.addAll(roleList); info.setRoles(roles); info.addStringPermissions(shiroUser.getUrlSet()); return info; }
/** * 授权的回调方法 */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { System.out.println("UserRealm------------doGetAuthorizationInfo-----------"); SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo(); authorizationInfo.setRoles(UserUtils.getRoleStringList()); authorizationInfo.setStringPermissions(UserUtils.getPermissionsList("all")); return authorizationInfo; }
/** * 只有需要验证权限时才会调用, 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用.在配有缓存的情况下,只加载一次. * 如果需要动态权限,但是又不想每次去数据库校验,可以存在ehcache中.自行完善 */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principal) { Session session = SecurityUtils.getSubject().getSession(); User user = (User) session.getAttribute("USER_SESSION"); // 权限信息对象info,用来存放查出的用户的所有的角色(role)及权限(permission) SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); // 用户的角色集合 Set<String> roles = new HashSet<>(); roles.add(user.getRoleName()); info.setRoles(roles); // 用户的角色对应的所有权限,如果只使用角色定义访问权限,下面可以不要 // 只有角色并没有颗粒度到每一个按钮 或 是操作选项 PERMISSIONS 是可选项 final Map<String, Collection<String>> permissionsCache = DBCache.PERMISSIONS_CACHE; final Collection<String> permissions = permissionsCache.get(user.getRoleName()); info.addStringPermissions(permissions); return info; }
@Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { LOG.debug("Retrieving authorization information for {}", principals); final User user = userService.load(principals.getPrimaryPrincipal().toString()); if (user == null) { return new SimpleAuthorizationInfo(); } else { final SimpleAuthorizationInfo info = new UserAuthorizationInfo(user); final List<String> permissions = user.getPermissions(); if (permissions != null) { info.setStringPermissions(Sets.newHashSet(permissions)); } info.setRoles(user.getRoleIds()); LOG.debug("User {} has permissions: {}", principals, permissions); return info; } }
/** * 权限验证 */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { String username = principals.getPrimaryPrincipal().toString(); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); Set<String> roles = systemService.findRolesByAuthorityName(username); Set<String> permissions = systemService.findPermissionsByAuthorityName(username); info.setRoles(roles); info.setStringPermissions(permissions); return info; }
@Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { LoginUser user = SecurityUtil.getPrincipal(); List<RoleData> roleList = cmsService.getRoles(user.getUsername()); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); Set<String> roles = new HashSet<>(); for (RoleData role : roleList) { roles.add(role.getRoleName()); } info.setRoles(roles); List<FuncData> funList = cmsService.getFunsByRoles(roles); Set<String> funs = new HashSet<>(); for (FuncData fun : funList) { funs.add(fun.getFuncName()); } info.setStringPermissions(funs); return info; } }
@Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { String username = (String)principals.getPrimaryPrincipal(); SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo(); authorizationInfo.setRoles(userService.findRoles(username)); authorizationInfo.setStringPermissions(userService.findPermissions(username)); return authorizationInfo; }
/** * Shiro权限认证 */ @Override protected AuthorizationInfo doGetAuthorizationInfo( PrincipalCollection principals) { ShiroUser shiroUser = (ShiroUser) principals.getPrimaryPrincipal(); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); info.setRoles(shiroUser.getRoles()); info.addStringPermissions(shiroUser.getUrlSet()); return info; }
@Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { //获取登录时输入的用户名 String loginName = (String) principalCollection.fromRealm(getName()).iterator().next(); //到数据库查是否有此对象 User user = this.getDao().findByName(loginName); if (user != null) { //权限信息对象info,用来存放查出的用户的所有的角色(role)及权限(permission) SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); //用户的角色集合 info.setRoles(user.getRolesName()); //用户的角色对应的所有权限,如果只使用角色定义访问权限,下面的四行可以不要 List<Role> roleList = user.getRoleList(); for (Role role : roleList) { info.addStringPermissions(role.getPermissionsString()); } return info; } return null; }
@Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { String username = (String)getAvailablePrincipal(principals); if ("marry".equals(username)) { SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); info.setRoles(Tools.set("role3")); info.setStringPermissions(Tools.set("permission3")); return info; } return null; }
@Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { String username = (String)getAvailablePrincipal(principals); if ("root".equals(username)) { SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); info.setRoles(Tools.set("role1", "role2")); info.setStringPermissions(Tools.set("permission1", "permission2")); return info; } else if ("john".equals(username)) { SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); info.setRoles(Tools.set("role2")); info.setStringPermissions(Tools.set("permission2")); return info; } return null; }