- 浏览: 156774 次
- 性别:
- 来自: 大连
最新评论
-
eclipseakwolf:
很棒的文章
Shiro User Manual-Authentication -
xugangqiang:
very good
Java Concurrent Programming (1) -
jlcon:
是不是AbstractShiroTest还需要继承EasyMo ...
Shiro User Manual-Testing -
jlcon:
createNiceMock这个EasyMockSupport ...
Shiro User Manual-Testing -
Technoboy:
53873039oycg 写道楼主:问下,你的那个dao接口的 ...
Shiro Example
文章列表
1. Overview
Shiro1.2及其以后版本,可以通过命令行对字符串和任何类型的资源进行哈希操作。
2. Usage
下载shiro-tools-hasher-version-cli.jar,如果是通过原文件编译或Maven下载的Shiro,进入buildroot/tools/hasher/target目录,然后执行:
java -jar ...
1. Overview
Shiro的JavaBeans兼容性使其可以很容易的配置在Spring XML或其他基于Spring的配置。Shiro需要应用级的SecurityManager单例。注意,它不需要是静态单例,只要保证在应用中存在一个SecurityManager实例即可。
2. Standalone Applications
在Spring应用中配置应用级SecurityManager单例:
<!-- Define the realm you want to use to connect to your back-end security datasource: --&g ...
1. Custom Subject Instances
Shiro在1.0版本添加了一个新的特性,用于在特殊情景自定义subject。
2. Subject.Builder
Subject.Builder可以创建一个匿名,无session关联的Subject实例:
Subject subject = new Subject.Builder().buildSubject()
默认无参的Subject.Builder将使用应用中存在的SecurityManager。也可以指定 SecurityManager:
SecurityManager securityManager = ...
1. Test Setup
创建的Subject实例,必须要绑定到当前线程上,当执行完毕,需要解除绑定。现在流行的测试框架像JUnit,TestNG都支持"setup"和"teardown"。我们可以利用这个特性模拟Shiro在应用中的完整操作。我们创建了AbstractShiroTest抽象类,可用于单元测试和集成测试:
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.UnavailableSecurityManagerException;
import org.ap ...
1. Caching
Shiro团队了解性能的重要性,因此,缓存被作为一个重要的特性纳入到安全操作中。
2. Caching API
Shiro有3个重要的缓存接口:
a. CacheManager 缓存的管理组件,它返回Cache实例。
b. Cache 维护键值对形式的缓存
c. CacheManager ...
1. Configuration
将Shiro集成到web应用中非常简单,只需要在web.xml中配置ContextListener和Filter即可。需要注意的是,如果是Spring web应用,请参考Shiro与Spring集成那节。
a. web.xml
Shiro1.2及其以后版本,在web.xml中添加:
<listener>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>
...
1. Session Management
Shiro提供了安全框架所独有的特性:企业级session的解决方案。
1.1 Using Sessions
使用Subject获取Session:
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
session.setAttribute( "someKey", someValue);
和HttpServletRequest的API相似,Suject.getSession ...
1. Realms
Realm是可以访问应用系统中数据,例如用户,角色,权限等的组件。Realm将应用系统中的数据转义为Shiro可识别的格式,Shiro就可以提供简单易懂的Subject API。Realms通常有一个一对一的数据源关联,比如关系型数据库,LDAP目录,文件系统或其他类似资源,其实现了Realm接口,并使用指定的数据源API去查找授权数据。一个Realm实质上是和安全相关的DAO。由于大多数数据资源既保存了认证相关的信息,又保存了授权相关的信息,所以每一个Realm都可以执行认证和授权的操作。
2. Realm Configuration
如果使用INI配置文件,在[ma ...
1. Wildcard Permissions
为了易读和简化处理,Shiro提供了强大且直观的权限语法,即WildcardPermission(通配符权限)。
1.1 Simple Usage
假设你想保护公司打印机的使用,一些人可以使用打印机,一些人只能查看打印机服务器队列中的任 ...
1. Authorization
Authorization, 授权,或访问控制,是对资源访问的管理。换句话说,控制用户在应用中访问资源的权限。
授权的例子:当前用户是否可以查看当前网页,编辑数据,查看这个按钮,或者使用打印机。这些操作都取决用户是否具有相应的权限。
2. Elements of Authorization
在Shiro中,对于授权,有三个核心元素:permissions,roles,users。
2.1 Permissions
权限在Shiro中代表着最原子级的安全策略,他们明确的描述了用户可以在应用中执行的操作。
2.2 Permission Granula ...
1.Authentication
Authentication,认证,即身份验证,证明一个用户是谁。用户想要证明其身份,就需要提供身份信息,以及系统可以识别的标识证明。这需要向Shiro提供用户的principals和credentials来验证其是否和系统匹配。
1.1 Principals
即Subject的识别属性。 Principals可以是任何可以识别Subject的事物。比如,名,姓,用户名,身份证号等等。当然了,姓不能很好唯一的识别一个Subject。因此,对于应用中,最好的principals就是用户名或者email。
1.1.1 Primary Principal
...
1. Configuration
Shiro可以运行在任何环境下,从命令行应用到企业级集群应用。由于环境的不同,配置也不同。这部分所讲述的配置,只需要Shiro的core包支持即可。Shiro的SecurityManager实现和支持的所有组件服务,都与JavaBeans兼容,因 ...
1. Overview
Shiro的设计目标是通过直观而简易的API,简化应用安全的操作。Shiro的核心设计思想模型化了应用安全性的问题:谁在与应用进行交互。软件应用都是基于用例设计的。当你在设计用户接口或服务API时,都是基于用户如何跟软件交互的基础上。比如:如果当前和系统交互的用户已登录,就显示查看用户信息的按钮,否则显示登录按钮。这个例子表明,应用都是为了满足客户的需求,即便当前交互的"用户"是其他软件系统。Shiro通过其内部设计对应了这些概念。
2. High-Level Overview
Shiro有3个核心概念:Subject,SecurityManag ...
1. Your First Apache Shiro Application
如果对Shiro很陌生,这篇简短的教程将教你如何搭建一个基于Shiro的简单应用,同时在应用中讲解Shiro的核心概念,以帮助你熟悉和理解API。
2. Setup
我们通过简单的命令行应用让你体会一下Shiro的API。这篇教程需要Java1.5及其以后版本,使用Maven作为构建工具。对于这篇教程,需要Maven2.2.1及其以后版本的支持。可以通过mvn --version查看maven版本信息:
hazlewood:~/shiro-tutorial$ mvn --version
Apache Mav ...
1. What is Apache Shiro?
Shiro是一个强大而灵活的开源安全框架,它具有认证,授权,企业级session管理,加密等功能。Shiro简单易用,屏蔽了那些复杂的安全操作细节,并提供了直观的API让开发者保证其应用的安全性。通过Shiro可以进 ...