shiro 如何获取当前用户所拥有的所有的角色

woshikaka6 2015-08-17 09:39:53
我不想通过如下代码去判断
Subject subject = SecurityUtils.getSubject();
if(subject.hasRole("admin")){......}
因为,如果一个用户有多种角色,那我还要自己维护一个所有角色的集合,然后去遍历才能知道当前用户所拥有的角色。

不知道大家有没有更好的解决方案
...全文
13370 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jon_Deng 2017-01-07
  • 打赏
  • 举报
回复
123
wuwangjun 2015-08-17
  • 打赏
  • 举报
回复
/** * * @author Allen * 自己实现role控制代替shiro中的filter */ public class PandaRolesAuthorizationFilter extends AuthorizationFilter{ @Override protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception { Subject subject = getSubject(request, response); String[] rolesArray = (String[]) mappedValue; if (rolesArray == null || rolesArray.length == 0) { //no roles specified, so nothing to check - allow access. return true; } Set<String> roles = CollectionUtils.asSet(rolesArray); Iterator<String> roleIterator=roles.iterator(); boolean flag=false; while(roleIterator.hasNext()){ if( subject.hasRole(roleIterator.next())){ flag=true; } } return flag; } } xml 文件https://github.com/qman23/pandaWeb/blob/master/src/main/webapp/WEB-INF/shiro-context.xml

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧