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"%>

时间: 2024-08-29 14:18:23

Apache Shiro学习----授权的相关文章

Apache Shiro学习笔记(六)FilterChain

鲁春利的工作笔记,好记性不如烂笔头 Apache Shiro学习笔记(七)IniWebEnvironment

Apache Shiro学习笔记(三)用户授权自定义Permission

鲁春利的工作笔记,好记性不如烂笔头 Shiro配置文件(shiro-customize-permission.ini) [main] myRealmA=com.invicme.apps.shiro.permission.MyRealmOne myPermissionResolver=com.invicme.apps.shiro.permission.MyPermissionResolver securityManager.authorizer.permissionResolver = $myPe

Apache Shiro学习笔记(三)用户授权

鲁春利的工作笔记,好记性不如烂笔头 Shiro默认提供的Realm 认证(Authentication)用来证明用户身份是合法的:而授权(Authorize)用来控制合法用户能够做什么(能访问哪些资源). 实际系统应用中一般继承AuthorizingRealm(授权)即可:其继承了AuthenticatingRealm(即身份验证),而且也间接继承了CachingRealm(带有缓存实现). 在授权中需了解的几个关键对象:主体(Subject).资源(Resource).权限(Permissio

Apache Shiro学习笔记

鲁春利的工作笔记,好记性不如烂笔头 官网地址:http://shiro.apache.org/ 主要功能包括: Authentication:身份认证/登录,验证用户是不是拥有相应的身份:Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限:即判断用户是否能做事情:常见的如:验证某个用户是否拥有某个角色. Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中:会话可以是普通JavaSE环境的,也可以是如Web环境

Apache Shiro 学习记录5

本来这篇文章是想写从Factory加载ini配置到生成securityManager的过程的....但是貌似涉及的东西有点多...我学的又比较慢...很多类都来不及研究,我又怕等我后面的研究了前面的都忘记了...所以就先与大家分享一下我对Shiro里Ini这个类的研究. 简介 我感觉其实利用ini来配置shiro在实际应用中应该不是很多,我想大部分java应用还是web类型的,数据也应该储存在数据库里..不会简简单单的存在.ini这样的配置文件中的...但是对于学习Shiro来说,我觉得研究一下

Apache Shiro学习----配置(与SpringMVC集成)

1.web.xml文件中配置 <!--将shiro的配置文件交给Spring监听器初始化--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml,classpath:spring-shiro-web.xml</param-value> </context-param> <!-

Apache Shiro学习---简介

Apache Shiro是Java的一个安全框架.Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境. 其基本功能点如下图所示: Authentication:身份认证/登录,验证用户是不是拥有相应的身份: Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限:即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色.或者细粒度的验证某个用户对某个资源是否具有某个权限: Session Manager:会话管

Apache Shiro 认证+授权(一)

1.核心依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.0</version> </dependency> 2.认证流程:创建SecurityManager-->主体提交认证-->SecurityMananger认证-->Authentict

Apache Shiro学习笔记(九)Spring集成

鲁春利的工作笔记,好记性不如烂笔头 Integrating Apache Shiro into Spring-based Applications Shiro 的组件都是JavaBean/POJO 式的组件,所以非常容易使用Spring进行组件管理,可以非常方便的从ini配置迁移到Spring进行管理,且支持JavaSE应用及Web 应用的集成. Web Applications 1.web.xml <!-- The filter-name matches name of a 'shiroFil