在项目中集成sihro权限框架.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在项目中集成shiro权限框架(1)?Shiro是一个功能强大的轻量级权限框架,相对其它权限框架(比如spring?security)来说,要易用得很,下面,我给大家讲讲如何在一个项目中简单整合shiro。我们通常所说的权限,就是要判断某个操作者是否有操作某个资源的权限,而资源,可以是菜单、链接、功能按钮、业务方法、某类型的数据等等,根据需求,每个项目的权限可能都有所不同,通用万能权限系统是不存在的。?Shrio的权限包括认证、授权、密码管理、会话管理等四个部分,每一个部分,shrio都进行了抽象,以做到和具体应用平台、环境的无关。关于shiro的基础了解,大家可到这里去看看:/cn/articles/apache-shiro权限系统的设计,根据不同的权限粒度,会用所不同,比如:有的系统到菜单级,而有的到每一个功能按钮级,有的到方法级,有的到业务数据级,我在这仅仅讨论前两类。?上面是一个对象关系图,模块在此处仅仅为菜单进行逻辑归类,当然,也可以建立菜单和功能的一对多关系,为功能进行逻辑归类。当然,菜单也可以建成关联的树状结构,以更好扩展。?根据对象关系,可以设计出表结构,我直接贴出数据截图:模块表:菜单表:?操作表,一般对应页面中的按钮,其中f_action_flag对应于restful中的增、删、查、改:?角色表:?角色-菜单关系表:?角色-功能表:?用户表:?用户-角色关系表:?上面截图中,真正有效的表7张,权限控制到页面及功能上。下篇,贴出上面的类代码及class映射文件。在项目中集成shiro权限框架(2)基础代码贴上:对象如下:/**?*?用户对象?*??*?@authorLjh?*??*/public?classUser?implementsSerializable?{??//?学生编码(由系统自动生成)?privateLong?id;??//?姓名?@NotEmpty(message?=?姓名不可以为空!)?@Length(min?=?2,?max?=?5)?privateString?name;??//?出生日期?@NotNull(message?=?生日不能为空)?@Past(message?=?生日输入不正确,请核对!)?privateDate?birthday;??//?登录密码?privateString?password=?111;??//?用户角色集合字符?privateSetRole?roles=?newHashSetRole();??/**?*?得到该用户可访问的模块,模块中的菜单将实例化?*?@return?*/?publicListModel?getModels()?{?ListModel?models?=?newArrayListModel();?for(IteratorMenu?its?=?this.getMenus().iterator();?its.hasNext();){?Menu?m?=?its.next();??if(!models.contains(m.getModel()))?{?Model?model?=?newModel();?model.setId(m.getModel().getId());?model.setDisplayOrder(m.getDisplayOrder());?model.setModelName(m.getModel().getModelName());?model.getMenus().add(m);?models.add(model);?}?else{?for(Model?model?:?models)?{?if(model.getId()?==?m.getModel().getId())?{?model.getMenus().add(m);?break;?}?}?}?}?Collections.sort(models);?returnmodels;?}??/**?*?得到用户可访问的菜单资源?*?@return?*/?publicSetMenu?getMenus()?{?SetMenu?menus?=?newHashSetMenu();?for(IteratorRole?role?=?this.getRoles().iterator();?role.hasNext();)?{?menus.addAll(role.next().getMenus());?}?returnmenus;??}??//?用户菜操作功能权限集合字符串描述?publicSetString?getOperationPermissionsAsString()?{?SetString?pomissions?=?newHashSetString();?IteratorRole?

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档