html介面實現shiro前端介面許可權
阿新 • • 發佈:2019-01-31
一.背景
由於專案所採用的框架是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=newArrayList<String>(); if(subject.hasRole("superadmin")){ roleList.add("superadmin"); } if(subject.hasRole("admin")){ roleList.add("admin"); } if(subject.hasRole("user")){ roleList.add("user"); } return roleList; }
參考部落格:http://blog.csdn.net/u014688419/article/details/52733278