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);
}