一.背景
由于项目所采用的框架是spring boot,对于jsp不支持,不能采用引入外部taglib的方式对前端界面进行权限控制,只能采用html作为前端界面。前端界面的div根据登陆用户的角色决定是否显示。
二.实现
首先设置前端的div为隐藏模式
<div id="toolbar" style="display: none;"></div>
设置一个随页面加载执行的函数,函数名称为 judgeAuthority
$(function () { judgeAuthority(); })函数体为:
function judgeAuthority() { $.ajax({ type: "post", url: "../meta/queryAuth", contentType: 'application/json;charset=utf-8', success: function (data) { for(var i=0;i<data.length;i++){ if(data[i]=="admin"){ document.getElementById("toolbar").style.display="";//显 } } } }) }
函数通过ajax向后端发送请求,后端返回一个当前用户的角色列表给前端,前端通过判断用户是否具有某个角色决定是否给用户显示某个div
三.后端
@RequestMapping(value = "queryAuth") @ResponseBody public List<String> queryAuth(HttpServletRequest request) { logger.info("查询登录用户权限"); Subject subject= SecurityUtils.getSubject(); List<String> roleList=new ArrayList<String>(); if(("superadmin")){ ("superadmin"); } if(("admin")){ ("admin"); } if(("user")){ ("user"); } return roleList; }
参考博客:/u014688419/article/details/52733278