shiro 标签不能在html中应用的解决方案

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之后,这些都是小边角料,会者不难。

posted @ 2018-09-22 10:05  瓜瓜先生  阅读(18)  评论(0)    收藏  举报  来源