在项目中集成shiro权限框架

在项目中集成shiro权限框架

ID:8828461

大小:265.58 KB

页数:41页

时间:2018-04-08

在项目中集成shiro权限框架_第1页
在项目中集成shiro权限框架_第2页
在项目中集成shiro权限框架_第3页
在项目中集成shiro权限框架_第4页
在项目中集成shiro权限框架_第5页
资源描述:

《在项目中集成shiro权限框架》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、在项目中集成shiro权限框架(1) Shiro是一个功能强大的轻量级权限框架,相对其它权限框架(比如spring security)来说,要易用得很,下面,我给大家讲讲如何在一个项目中简单整合shiro。我们通常所说的权限,就是要判断某个操作者是否有操作某个资源的权限,而资源,可以是菜单、链接、功能按钮、业务方法、某类型的数据等等,根据需求,每个项目的权限可能都有所不同,通用万能权限系统是不存在的。 Shrio的权限包括认证、授权、密码管理、会话管理等四个部分,每一个部分,shrio都进行了抽象,以做到和具体应用平台、环境的无关。关于shiro的基础了解,大家可到这里去

2、看看:http://www.infoq.com/cn/articles/apache-shiro权限系统的设计,根据不同的权限粒度,会用所不同,比如:有的系统到菜单级,而有的到每一个功能按钮级,有的到方法级,有的到业务数据级,我在这仅仅讨论前两类。 上面是一个对象关系图,模块在此处仅仅为菜单进行逻辑归类,当然,也可以建立菜单和功能的一对多关系,为功能进行逻辑归类。当然,菜单也可以建成关联的树状结构,以更好扩展。 根据对象关系,可以设计出表结构,我直接贴出数据截图:模块表:菜单表: 操作表,一般对应页面中的按钮,其中f_action_flag对应于restful中的增、删、

3、查、改: 角色表: 角色-菜单关系表: 角色-功能表: 用户表: 用户-角色关系表: 上面截图中,真正有效的表7张,权限控制到页面及功能上。下篇,贴出上面的类代码及class映射文件。在项目中集成shiro权限框架(2)基础代码贴上:对象如下:/** * 用户对象 *  * @authorLjh *  */public classUser implementsSerializable {     // 学生编码(由系统自动生成)    privateLong id;     // 姓名    @NotEmpty(message = "姓名不可以为空!")    @Leng

4、th(min = 2, max = 5)    privateString name;     // 出生日期    @NotNull(message = "生日不能为空")    @Past(message = "生日输入不正确,请核对!")    privateDate birthday;     // 登录密码    privateString password= "111";     // 用户角色集合字符    privateSet roles= newHashSet();        /**     * 得到该用户可访问的模块,模块中

5、的菜单将实例化     * @return     */    publicList getModels() {       List models = newArrayList();       for(Iterator

 its = this.getMenus().iterator(); its.hasNext();){           Menu m = its.next();            if(!models.contains(m.getModel())) {              Model m

6、odel = newModel();              model.setId(m.getModel().getId());              model.setDisplayOrder(m.getDisplayOrder());              model.setModelName(m.getModel().getModelName());              model.getMenus().add(m);              models.add(model);           } else{              fo

7、r(Model model : models) {                  if(model.getId() == m.getModel().getId()) {                     model.getMenus().add(m);                     break;                  }              }           }       }       Collections.sort(models);       returnmodels;  

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。