shiro提供jsp标签,html属于静态页面,没办法引入。解决办法:
1.把html换成jsp。
2.用js判断:
原理参照:https://blog.csdn.net/fusugongzi/article/details/75221407
实现的方式大同小异,我这边实现的是根据权限显示元素。
①为html页面元素的添加class:shiro-myself 和name : sys:user:delete
<a id="btnExit" name="sys:user:delete" class="easyui-linkbutton shiro-myself" data-options="plain: true, iconCls:'sn-exit'">退出系统</a>
②js获取元素,比较权限
$(function(){
var permissions = getPermissionStringList();
});
function getPermissionStringList(){
$.ajax({
type: "post",
url: JSmile.baseUrl+"/sys_user/getPermissionStringList",
contentType: 'application/json;charset=utf-8',
success: function (data) {
var data1 = eval('(' + data + ')');
var resData =data1.resData;
//获取权限集合
var rows = resData.rows;
//选取class = shiro-myself 的标签
$(".shiro-myself").each(function(){
var name = $(this).attr("name");
var index = $.inArray(name,rows);
if(index < 0){
$(this).css('display','none');
}
});
}
③后台实现方法
AuthorizationInfo authorizationInfo = shiroDbRealm.doGetAuthorizationInfo(SecurityUtils.getSubject().getPrincipals()) ;
permissionList=castSetToList((HashSet<String>) authorizationInfo.getStringPermissions());
当然,学会shiro之后,这些都是小边角料,会者不难。