Shiro
peterwanghao
这个作者很懒,什么都没留下…
展开
-
Apache Shiro Web应用会话管理
Servlet容器会话管理在Web环境中,Shiro默认的会话管理器SessionManager 的实现是ServletContainerSessionManager。这个实现只是简单的封装了Servlet容器,包括会话集群功能。它的本质是Shiro Session API与Servlet容器之间的一个桥梁。使用这个默认实现的好处是,应用程序将使用现有的servlet容器的会话配...2013-01-25 17:03:50 · 270 阅读 · 0 评论 -
Apache Shiro Web应用整合-标签库
Apache Shiro 提供了一个JSP/GSP 标签库,它允许你控制你的JSP,JSTL 或GSP 页面基于当前Subject的状态进行输出。这对于根据用户身份和当前用户的授权状态来提供个性化视图是相当有用的。标签库的描述文件(TLD)保存在shiro-web.jar里的META-INF/shiro.tld文件。要使用任何标签,需要在你JSP 页面(或任何你定义的页面指令)的顶部添加下面一原创 2013-03-29 09:45:06 · 15685 阅读 · 4 评论 -
Apache Shiro Remember Me服务
Shiro提供Remember服务,AuthenticationToken需要实现org.apache.shiro.authc.RememberMeAuthenticationToken接口,此接口提供了一个方法:boolean isRememberMe();如果该方法返回true,则Shiro 将会在整个会话中记住终端用户的身份ID。注:经常使用的Us原创 2013-03-29 09:39:57 · 10081 阅读 · 0 评论 -
Apache Shiro Web应用会话管理
Servlet容器会话管理在Web环境中,Shiro默认的会话管理器SessionManager 的实现是ServletContainerSessionManager。这个实现只是简单的封装了Servlet容器,包括会话集群功能。它的本质是Shiro Session API与Servlet容器之间的一个桥梁。使用这个默认实现的好处是,应用程序将使用现有的servlet容器的会话配置,例如超原创 2013-01-25 16:51:58 · 16920 阅读 · 2 评论 -
Apache Shiro Web应用整合-配置
将Shiro 集成到任何Web 应用程序的最简单的方法是在web.xml 中配置ContextListener 和Filter,来使Shiro知道如何读取Shiro的INI 配置文件。注意:Spring 框架用户将不执行此设置。如果你使用Spring,你将要阅读关于Spring 特定的Web 配置。 Web.xmlShiro 1.2 and later在Shiro 1.2 及以后版原创 2013-01-11 16:08:49 · 11041 阅读 · 2 评论 -
Apache Shiro Web应用过滤器
Shiro中一些默认的过滤器:Filter NameClassanonorg.apache.shiro.web.filter.authc.AnonymousFilterauthcorg.apache.shiro.web.filter.authc.FormAuthenticationFilter原创 2013-01-25 16:48:21 · 7226 阅读 · 1 评论 -
Apache Shiro 加密
加密是使用密钥对数据进行可逆转换的加密算法。我们使用其保证数据的安全,尤其是传输或存储数据时,以及在数据容易被窥探的时候。如果你曾经用过JDK的Cryptography API,特别是javax.crypto.Cipher类,你会知道它是一头需要驯服的极其复杂的野兽。对于初学者,每个可能的加密配置总是由一个 javax.crypto.Cipher实例表示。必须进行公钥/私钥加密?你得用Ciph原创 2012-12-21 10:52:44 · 6838 阅读 · 0 评论 -
Apache Shiro 哈希
如果你曾使用过JDK的MessageDigest类, 你会立刻意识到它的使用有点麻烦。MessageDigest类有一个笨拙的基于工厂的静态方法API,它不是面向对象的,并且你被迫去捕获那些永远都不必捕获的Checked Exceptions。如果需要输出十六进制编码或Base64编码的消息摘要,你只有靠自己 - 对上述两种编码,没有标准的JDK支持它们。Shiro用一种干净而直观的哈希API解决原创 2012-12-21 10:50:46 · 3854 阅读 · 0 评论 -
Apache Shiro 加密管理
加密是隐藏或混淆需要被保护的数据以防止被非法偷窥的过程。Shiro集中于安全领域两个核心的元素:加密和哈希(也称为消息摘要)。Shiro的加密管理主要目标是提高一套强大的加密功能同时简化操作便于使用。Shiro中加密管理的特点:基于POJO的接口驱动 — 所有的Shiro的API都以POJO实现。这使得你可以轻松地配置加密与JavaBean兼容的格式,如JSON,YAML,Spring原创 2012-12-21 10:47:46 · 3603 阅读 · 1 评论 -
Apache Shiro 会话与主体状态的关系
有状态的应用程序默认情况下Shiro 的SecurityManager 实例会使用一个Subject 的Session存储Subject 的身份ID(PrincipalCollection)和验证状态(subject.isAuthenticated())。这通常发生在一个Subject 登录后或当一个Subject的身份ID 通过Remember 服务后。使用这种默认方式的好处是:l原创 2012-12-14 15:26:02 · 8950 阅读 · 0 评论 -
Apache Shiro 会话集群
Apache Shiro的会话管理提供了一个非常令人兴奋的功能,你可通过Shiro本身实现会话集群而不需要担心容器的环境。你使用Shiro本身的会话和会话集群可以部署到Tomcat,Jetty,JBOSS,Geronimo等任何的环境下,而不用担心容器或环境对集群设置所需要的特定配置。Shiro的会话集群只需配置一次就可运行在任何环境下。这是怎么做到的呢?一切是基于Shiro的POJO体系原创 2012-12-07 11:19:59 · 14120 阅读 · 1 评论 -
Apache Shiro 会话管理
在安全框领域,Apache Shiro 提供了一个独一无二的东西:一个完整的企业级Session 解决方案,从最简单的命令行及智能手机应用到最大的集群企业Web 应用程序。如果你需要session 支持,你可以使用Shiro的Session支持,比Web 容器或使用EJB 有状态会话Bean这两种机制的使用和管理更为简单。下面是Shiro对Session支持的一些特点:1) POJO/J2原创 2012-11-16 15:29:47 · 7832 阅读 · 0 评论 -
Apache Shiro SessionManager
SessionManager是在应用程序中为所有Subject提供Session的管理,包括创建,删除,失效及验证等。同其的核心组件一样,SessionManager 也是一个由SecurityManager 维护的顶级组件。在Shiro中默认提供了一个SessionManager的实现DefaultSessionManager。DefaultSessionManager 提供一个应用程序所需原创 2012-11-28 11:16:33 · 26567 阅读 · 2 评论 -
Apache Shiro 参考手册
关注 Apache Shiro 这个开源项目很长时间了。觉得它是一个非常不错的安全框架,灵巧,强壮。将繁琐复杂的安全应用进行了简化,使开发者非常方便地为应用提供安全保障。其可不依赖于任何的框架和容器,具有很高的独立性和灵活性,有自己鲜明的特点。本人把 Apache Shiro 的参考手册整理了一下,希望能给喜欢这个项目或希望了解此项目的同学一些帮助。官方的参考手册地址 http://s原创 2012-09-19 17:33:05 · 11156 阅读 · 0 评论 -
Apache Shiro 集成-spring
Shiro 的JavaBean 兼容性使得它非常适合通过Spring XML 或其他基于Spring 的配置机制。Shiro 应用程序需要一个具有单例SecurityManager 实例的应用程序。请注意,这不会是一个静态的单例,但应该只有一个应用程序能够使用的实例,无论它是否是静态单例的。Standalone 应用程序这里是在Spring 应用程序中启用应用程序单例SecurityMan原创 2013-04-19 16:36:07 · 22906 阅读 · 2 评论 -
Apache Shiro Web应用过滤器
Shiro中一些默认的过滤器:Filter NameClassanonorg.apache.shiro.web.filter.authc.AnonymousFilterauthcorg.apache.shiro.web.filter.authc.FormAuthenticationFilter...2013-01-25 17:00:03 · 136 阅读 · 0 评论 -
Apache Shiro Web应用整合-配置
将Shiro 集成到任何Web 应用程序的最简单的方法是在web.xml 中配置ContextListener 和Filter,来使Shiro知道如何读取Shiro的INI 配置文件。注意:Spring 框架用户将不执行此设置。如果你使用Spring,你将要阅读关于Spring 特定的Web 配置。...2013-01-11 16:18:32 · 109 阅读 · 0 评论 -
Apache Shiro 参考手册
关注 Apache Shiro 这个开源项目很长时间了。觉得它是一个非常不错的安全框架,灵巧,强壮。将繁琐复杂的安全应用进行了简化,使开发者非常方便地为应用提供安全保障。其可不依赖于任何的框架和容器,具有很高的独立性和灵活性,有自己鲜明的特点。本人把 Apache Shiro 的参考手册整理了一下,希望能给喜欢这个项目或希望了解此项目的同学一些帮助。官方的参考手册地址 http:/...2012-09-19 17:33:00 · 935 阅读 · 0 评论 -
Apache Shiro Web应用整合-标签库
Apache Shiro 提供了一个JSP/GSP 标签库,它允许你控制你的JSP,JSTL 或GSP 页面基于当前Subject的状态进行输出。这对于根据用户身份和当前用户的授权状态来提供个性化视图是相当有用的。标签库的描述文件(TLD)保存在shiro-web.jar里的META-INF/shiro.tld文件。要使用任何标签,需要在你JSP 页面(或任何你定义的页面指令)的顶部添加下...2013-03-29 09:57:08 · 131 阅读 · 0 评论 -
Apache Shiro Web应用整合-Remember Me服务
Shiro提供Remember服务,AuthenticationToken需要实现org.apache.shiro.authc.RememberMeAuthenticationToken接口,此接口提供了一个方法:boolean isRememberMe();如果该方法返回true,则Shiro 将会在整个会话中记住终端用户的身份ID。注:经常使用的UsernamePa...2013-03-29 09:53:58 · 160 阅读 · 0 评论 -
Apache Shiro 学习资料
Apache Shiro 是ASF旗下的一款开源软件,提供了一个强大而灵活的安全框架。可为任何应用提供安全保障 — 从命令行应用、移动应用到大型网络及企业应用。在这里整理下自己在学习这款开源软件过程中的一些理解和认识,与大家一起分享。随着学习的深入不断来完善此文档。以Shiro开发团队所称的“四大安全基石”-认证、授权、会话管理和加密这四个方面进行说明:认证(A原创 2014-12-05 13:06:52 · 4152 阅读 · 0 评论 -
Apache Shiro 身份认证例子
1. 概述在本例子中使用Apache Shiro在Web应用中实现身份认证,将Shiro与Spring进行集成,使用内嵌的derby数据库存储用户信息。2. 准备创建一个内嵌的derby数据库,本例使用的是db-derby-10.10.1.1。2.1 建表Create table users(Id int primary key,Name varchar(20),P原创 2014-01-15 16:08:34 · 21867 阅读 · 7 评论 -
Apache Shiro 基于权限授权
授权即是访问控制,是对资源访问的管理过程。它将判断用户在应用程序中是否对资源有相应的访问权限。基于角色的访问控制在谈到应用程序的安全性时,大家都熟悉一个概念:角色。角色代表了一组行为或责任,角色通常被分配给用户,然后通过关联代表用户可以‘做’各种归因于角色的事情。但现在很多程序都使用隐式的角色进行访问控制,定义一个角色来代表一系列的操作。当需要对某一操作进行授权验证时,只需判断是否拥有原创 2014-02-11 16:04:45 · 14405 阅读 · 2 评论 -
Apache Shiro 授权例子
概述在本例中使用Apache Shiro进行授权控制,基于事先定义好的角色控制用户的操作权限。基于Apache Shiro 提供的标签库,在JSP页面上根据用户的授权状态来控制不同的操作行为。业务逻辑定义两种角色:administrator,common。administrator代表管理员,可查看,修改,删除用户;common代表普通用户,可查看用户,只能修改自己,不能删除用原创 2014-01-22 16:57:01 · 12824 阅读 · 7 评论 -
Apache Shiro 集成-Ehcache
在Shiro中为会话启用Ehcache是非常容易的。首先,确保在你的classpath 中有shiro-ehcache-.jar 文件。然后,在shiro.ini中配置EHCache为所有Shiro 的缓存提供使用:[main]sessionDAO = org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO原创 2013-04-19 16:39:46 · 29722 阅读 · 1 评论 -
Apache Shiro 集成-Cas
Shiro集成CAS是在1.2版本里新增的功能。Shiro-cas模块将应用作为CAS客户端与CAS SSO服务器一起保护web应用。CAS协议的一个基本理解:1. 如果你想访问一个被CAS客户端保护的应用,而你还没有进行认证。你讲被重定向到CAS服务端的登录页面。在应用中你需要配置CAS的登录url地址。http://application.examples.co原创 2013-04-19 16:38:32 · 39375 阅读 · 13 评论 -
Apache Shiro 集成-Guice
Shiro集成Guice是在1.2版本里新增的功能。Shiro提供了三个Guice模块可包含到你的应用系统:l ShiroModule为配置SecurityManager, any Realms和其他的Shiro组件提供最基本的集成。通过扩展此模块来增加你自定义的配置。l ShiroWebModule此模块扩展了ShiroModule模块,用来设置web环境和配置过滤器链。原创 2013-04-19 16:49:25 · 5104 阅读 · 1 评论 -
Apache Shiro 编程方式授权
最简单和最常见的方式来执行授权是直接以编程方式与当前Subject 实例交互。基于角色授权Role checks(角色检查)如果你只是简单的想检查当前的Subject 是否拥有一个角色,你可以在Subject 实例上调用hasRole方法。例如:Subject currentUser = SecurityUtils.getSubject();if(current原创 2012-11-09 09:32:56 · 5153 阅读 · 0 评论 -
Apache Shiro 标签方式授权
Shiro提供了一套JSP标签库来实现页面级的授权控制。 在使用Shiro标签库前,首先需要在JSP引入shiro标签: 下面一一介绍Shiro的标签: guest标签 验证当前用户是否为“访客”,即未认证(包含未记住)的用户。 Hi there! Please Login or Signup today!原创 2012-11-09 09:38:32 · 29010 阅读 · 1 评论 -
Apache Shiro 配置
Shiro 被设计成能够在任何环境下工作,从最简单的命令行应用程序到最大的企业群集应用。由于环境的多样性,使得许多配置机制适用于它的配置。Shiro的SecurityManager 实现及所支持的组件都是兼容JavaBean的。这使得Shiro几乎能使用任何配置格式,如regular Java,XML(Spring,JBoss, Guice,等等),YAML,JSON,Groovy Builder原创 2012-09-29 09:31:34 · 4707 阅读 · 0 评论 -
Java安全框架Shiro的使用示例
关于Apache 的孵化器项目Shiro(JSecurity/Ki)如何在工程中使用,有位Bruce Phillips先生写了一系列的文章来介绍。他总共写了5篇文章来讲述如何在一个Web应用中使用此安全框架来完成身份验证、权限控制等。每篇文章都有相应的工程源码,非常清楚明了。对于想要了解Shiro是如何使用的很有帮助。 文章的链接地址如下: 1、一个简单的Web应用,没有安全控原创 2010-01-28 15:29:00 · 7965 阅读 · 1 评论 -
Java安全框架—Shiro
Apache 的孵化器项目Shiro其前身是JSecurity,是一个强大,灵活的java安全框架。用于简洁地处理身份验证,授权,企业多个系统会话管理,加密服务等。 其系统框架如下:Shiro的目标是成为一个最全面的,也是最容易使用的Java安全框架,以下是Shiro的一些特点:1、 类的接口的定义都很直观非常容易理解。2、 身份验证支持多种数据源(如LD原创 2010-01-26 18:24:00 · 10761 阅读 · 1 评论 -
Apache Shiro 1.2.1版本发布
2012年7月29日Apache Shiro开源小组发布了Apache Shiro 1.2.1,此版本主要是修复了1.2.0版本中的11个bug。Apache Shiro 1.2版本有哪些新功能点呢?通过其官方网站可以看到主要包含在4个方面:Tools, Core, Web, and Support Modules。Tools提供了一个命令行工具包可以为各种数据生成哈希值:shiro-原创 2012-08-10 15:32:25 · 2568 阅读 · 0 评论 -
使用Apache Shiro进行身份认证-多数据源认证
使用Apache Shiro 可以非常容易地基于一个或多个数据源进行身份认证,使用多数据源时可以返回一个针对用户的联合视图。可以通过使用认证策略来自定义一个认证流程,这些工作都是通过修改配置文件来完成的而无须修改代码。这样可降低项目实施的复杂性和维护工作。本例子中使用了两个数据源:数据库和LDAP。配置文件如下:#首先定义两个数据源ds = com.mysql.jdbc.jdbc原创 2012-06-18 14:30:33 · 3948 阅读 · 2 评论 -
使用Apache Shiro进行身份认证-Active Directory认证
Apache Shiro 支持基于活动目录的用户认证。其配置文件shiro.ini配置如下:activeDirectoryRealm = org.apache.shiro.realm.activedirectory.ActiveDirectoryRealmactiveDirectoryRealm.url = ldap://192.168.131.111:389activeDirecto原创 2012-05-31 18:36:11 · 3763 阅读 · 0 评论 -
使用Apache Shiro进行身份认证-LDAP两次绑定认证
通常在根据LDAP进行身份验证时会采取以下三种方法:1、利用一个LDAP用户的用户名和密码绑定到LDAP服务器。2、在LDAP中检索一个用户的条目,然后将提供的密码和检索到的LDAP记录中的密码属性相比较。3、“两次绑定”验证方法。基于LDAP进行身份验证,最好也是最通用的方法就是 “两次绑定”。这种方法的步骤以及优点可参看我的另一篇博客:基于LDAP进行验证-方法原创 2012-04-23 11:25:28 · 6701 阅读 · 1 评论 -
使用Apache Shiro进行身份认证-LDAP认证
Apache Shiro 支持LDAP做为数据源进行身份认证。我做了一个简单的实验来说明Shiro是如何支持LDAP的。在本机安装了OpenLDAP,版本为2.4.23。手动建了一个用户,结构如下:在Shiro.ini文件中配置LDAP:[main]ldapRealm = org.apache.shiro.realm.ldap.JndiLdapRealmldapRealm.us原创 2012-04-13 17:33:49 · 10769 阅读 · 7 评论 -
使用Apache Shiro进行身份认证-密码加密
在进行身份认证时,用户的密码一般是用密文的形式存放在数据库中。这样在做比对时不能直接使用用户提交的明文口令。在Shiro中使用org.apache.shiro.authc.credential.SimpleCredentialsMatcher做凭证信息的比对。SimpleCredentialsMatcher实现了凭证信息的明文比对,即对凭证信息不做任何处理。通过HashedCreden原创 2012-03-22 11:34:28 · 14537 阅读 · 0 评论 -
使用Apache Shiro进行身份认证-proxool配置
在用数据库做数据源认证时,Apache Shiro的官方例子是用com.mysql.jdbc.jdbc2.optional.MysqlDataSource类连接数据库。此为MySQL自带的数据源。如果想使用proxool来替换此数据源也非常简单。(proxool支持自动重连接)proxool的配置方法和一般的WEB应用类似,先在web.xml定义好proxool连接池,指定proxool.原创 2012-04-06 16:09:58 · 1526 阅读 · 0 评论 -
将 Shiro 作为应用的权限基础
2010年6月1日,Apache Shiro 孵化项目发布了1.0.0版本。这个新兴的安全框架又成长了,其仍然保持着自己灵活简洁的特点。 转载一篇文章,文中详细介绍了 Shiro 的整体框架、安全模型、关键概念类等,同时给出了Shiro 以及 Grails Shiro Plugin 的使用示例。对理解Shiro的架构和实现方式很有帮助。 原文地址:http://www.ibm转载 2010-06-04 17:06:00 · 2006 阅读 · 0 评论