上文说到使用shiro可以完成用户的认证授权,接下来我们要尝试使用shiro注解给方法上加角色。
说明:我们通常所说的某个用户具有某个角色才具有该角色所对应的权限,也即是说我们把权限加在角色上,给角色分配人选。
一、控制器部分代码示例
@RequiresRoles("tan")
public String list(){
System.out.println("【List】");
return "success";
}
我们给该方法上放了一个角色tan,只有拥有该角色的用户才可以访问该方法。
二、页面中使用
①导入shiro标签库
<%@ taglibprefix="shiro" uri="http://shiro.apache.org/tags"%>
②使用shiro注解
<shiro:hasRolename="tan">
<br><br>
<ahref="list">[list]</a>
</shiro:hasRole>
三、当然struts.xml文件中莫忘记配映射
<actionname="list"class="loginAction"method="list">
<result>/list.jsp</result>
</action>
三、在MyRealm中模拟给用户admin和user加上tan这个角色
//模拟设置权限部分:要分别来判断
if("admin".equals(username)){
//如果用户名为:admin,则为其增加2个角色admin和user
user.getRoles().add("admin");
user.getRoles().add("user");
user.getRoles().add("tan");//tan角色
}elseif("user".equals(username)){
//如果用户名为:user,则为其增加user角色
user.getRoles().add("user");
user.getRoles().add("tan");//tan角色
}
点击list 控制台打印 【List】
好了,自己测试下看看,欢迎大家拍砖。。。