在很多系统中需要使用权限控制,来控制不同角色的人访问不同的资源。表达能力不好,不喜勿喷!
环境:eclipse4.5.2+oracle11g+hibernate4+spring4+shiro+jboss
源码(工程)+ 数据表sql(包含初始化数据)+hibernate4的包下载:源码下载
一、权限实现思路:
1、创建一个的权限存在Tpopedom表中,本Demo中“父权限ID”和“树的连接路径”并未使用。
2、将菜单名称及URL链接和所需权限的ID(所需权限ID直接查询Tpopedom,在创建菜单是下拉选择)存储在Tmenu表中。
3、创建一个角色“admin”存在Trole表中。
4、创建一个用户“admin”存在Tuser表中。
5、给角色“admin”赋予一个权限,角色和权限的关系在TRole_popedom表中。
6、给用户“admin”赋予“admin”角色,角色和用户的关系存在TUser_role表汇总。
总的来说:就是将权限赋给角色,再将角色赋给用户。当登录成功后在Shiro标签内遍历菜单,登录用户没有权限访问的菜单直接不显示。
二、过程中遇到的问题:
shiro提供了jsp标签用于页面上的权限控制,有hasAnyRoles,hasPermission等标签,但是却没提供hasAnyPermission标签,有点不大方便。
可以参考: