shiro授权

Jsp使用shiro要导标签库:
<%@ taglib uri=“http://shiro.apache.org/tags” prefix=“shiro” %>
如:进行左侧标题栏管理:

<!-- 当jsp页面碰到shiro标签时就执行AuthRealm中授权方法 -->
    <%-- <shiro:hasPermission name="系统首页">
	<span id="topmenu" onclick="toModule('home');">系统首页</span><span id="tm_separator"></span>
	</shiro:hasPermission>
	<shiro:hasPermission name="货运管理">
		<span id="topmenu" onclick="toModule('cargo');">货运管理</span><span id="tm_separator"></span>
	</shiro:hasPermission>
	<shiro:hasPermission name="统计分析">
	<span id="topmenu" onclick="toModule('stat');">统计分析</span><span id="tm_separator"></span>
	</shiro:hasPermission>
	<shiro:hasPermission name="基础信息">
	<span id="topmenu" onclick="toModule('baseinfo');">基础信息</span><span id="tm_separator"></span>
	</shiro:hasPermission>
	<shiro:hasPermission name="系统管理">
	<span id="topmenu" onclick="toModule('sysadmin');">系统管理</span>
	</shiro:hasPermission> --%>

在AuthRealm类中写授权方法:

//PrincipalCollection:主要的信息
	@Override 
	protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection arg0) {
		// TODO Auto-generated method stub
		System.out.println("调用了授权方法");
		SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
		info.addStringPermission("");
		//得到user对象
		User user = (User) arg0.getPrimaryPrincipal();
		//获取用户的角色及角色的模块
		Set<Role> roles = user.getRoles();
		for (Role role : roles) {
			Set<Module> modules = role.getModules();
			for (Module module : modules) {
				info.addStringPermission(module.getCpermission());
				
			}
		}
		Set<String> permissions = info.getStringPermissions();
		System.out.println(permissions);
		return info;
	}

加权限
1.在配置文件中加锁:
如:

/deptAction* = perms["系统管理"]

2.通过注解
如 serviceImpl:

@RequiresPermissions(value="角色管理")
	public Page<Role> findPage(Specification<Role> spec, Pageable pageable) {
		// TODO Auto-generated method stub
		return roleDao.findAll(spec, pageable);
	}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值