优秀的编程知识分享平台

网站首页 > 技术文章 正文

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

nanyue 2024-08-21 19:40:52 技术文章 3 ℃

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

最近发表
标签列表