[DEBUG] springboot结合shiro控制资源(按钮
2020-04-15 本文已影响0人
陆书生
之后我会再开专题分析我这个项目,目前只写一下debug。。。
更多技术文章请访问我的博客园账户:点击这里
那边会更新有关生物信息学,java Web,统计学理论和一些杂七杂八的记录:)
leetcode刷题记录争取日更(github):点击这里
问题描述:登录后,不同角色应该展示不同菜单。例如我的一个用户cc,属于RD(研发部门),他拥有查看所有订单权限,所以登录后应该在主页看到,他所创建的所有订单的列表。而我的另一个用户admin,属于管理员,他在登录后只需要看到欢迎页面(或者统计页面)。
知识总结:
1.善用freemaker的include标签,将与权限相关的ftl模块单独放置,通过@shiro.hasPermission来引用。
2.if标签用来隐藏不需要展示在页面中的资源。
3.ShiroFilterFactoryBean 处理拦截资源文件问题。不过这次没有用到。
解决方案:
1.在主页(index.ftl)中合适位置添加
2.按钮放置在菜单上,sidebar.ftl通过sys_resources表查找资源并列举(包括其child),那么表中应该保存资源的父子关系,至于显示的时候,只需要用if标签控制该父级是否显示即可。
if标签示例:
<#if node.id!=48>
</#if>
3.本来考虑过对不同的角色设置不同的successUrl,后来觉得不合适。