`
Technoboy
  • 浏览: 156774 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论
文章列表
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可以进 ...
Global site tag (gtag.js) - Google Analytics