1. 授权从数据库查询权限(掌握)
查询出所有数据权限
对登录用户权限处理
根据用户的ID拿到权限
根据登录用户查询用户权限
自定义权限拦截器
(1)shiro把所有的权限从数据库查询出来
(2)当前用户的它具备的权限查询出来交给shiro管理
(3)当我们来访问的时候,根据url(key) --去shiro是否有对应的value (shiro里面做判断处理,如果
发现你没有权限,返回的没有权限的页面)
2.如果没有权限返回权限页面 不能适用ajax(掌握)
我们重写shiro 的权限拦截器 PermissionsAuthorizationFilter
(1)写一个类去继承PermissionsAuthorizationFilter
(2)覆写处理失败的方法
判断如果是ajax 就返回对应的json字符串
否则返回原来的页面
3.菜单操作
从数据读取出菜单,每个人的菜单都不一样;
在页面展示的菜单的json 需要自己去构造出来;
[外链图片转存失败(img-mPp5YwzW-1565398185638)(C:\Users\0427\AppData\Roaming\Typora\typora-user-images\1565330778275.png)]
Menu里面 – 配置parent --配置children
发送sql 查询数据库菜单
@Query("select m from Employee e join e.roles er join er.permissions p join p.menu m where e.id = ?1 ")
public List<Menu> findMenuByLoginUser(Long userid);
4通过shiro的标签控制权限
<shiro:hasPermission name="employee:delete">
<a href="#" data-method="del" class="easyui-linkbutton" iconCls="icon-remove" plain="true">删除</a>
</shiro:hasPermission>
ve" plain=“true”>删除
</shiro:hasPermission>
来源:https://blog.csdn.net/weixin_45484641/article/details/99050301