Apache Shiro学习----授权

Posted 米虫爱喝咖啡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache Shiro学习----授权相关的知识,希望对你有一定的参考价值。

Shiro支持三种方式的授权:

1.编程式:通过写if/else授权代码块完成: 

Subject subject = SecurityUtils.getSubject();  
if(subject.hasRole(“admin”)) {  
    //有权限  
} else {  
    //无权限  
} 

2.注解式:通过在执行的Java方法上放置相应的注解完成: 

@RequiresRoles("admin")  
public void hello() {  
    //有权限  
}  

3.JSP/GSP标签:在JSP/GSP页面通过相应的标签完成: 

<shiro:hasRole name="admin">  
<!— 有权限 —>  
</shiro:hasRole>  

这里我们重点讲下第三种方式---jsp标签

1.了解一些标签的定义

 <shiro:guest>欢迎游客访问,<a href="${pageContext.request.contextPath}/login.jsp">登录</a>  </shiro:guest>  用户没有身份验证时显示相应信息,即游客访问信息。

 <shiro:principal type="java.lang.String"  property="username"/>  显示用户身份信息

 <shiro:user>欢迎[<shiro:principal/>]登录,<a href="${pageContext.request.contextPath}/logout">退出</a>  </shiro:user>  用户已经身份验证/记住我登录后显示相应的信息。

<shiro:hasRole name="admin">     用户拥有角色admin </shiro:hasRole>   

<shiro:hasAnyRoles name="admin,user">    用户拥有角色admin或user  </shiro:hasAnyRoles>   

<shiro:lacksRole name="abc">    用户没有角色abc </shiro:lacksRole>  

<shiro:hasPermission name="user:create">    用户拥有权限user:create </shiro:hasPermission> 

<shiro:lacksPermission name="org:create">      用户没有权限org:create  </shiro:lacksPermission>  

2.想使用Shiro标签首先引用标签库<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags"%>

以上是关于Apache Shiro学习----授权的主要内容,如果未能解决你的问题,请参考以下文章

Apache Shiro学习---简介

Shiro的学习

Apache Shiro 使用手册Shiro 授权

(转) Apache Shiro 使用手册Shiro 授权

Apache Shiro 认证+授权

Shiro-Spring 授权操作