logo资料库

实战Spring Security 3.X 中文 PDF.pdf

第1页 / 共60页
第2页 / 共60页
第3页 / 共60页
第4页 / 共60页
第5页 / 共60页
第6页 / 共60页
第7页 / 共60页
第8页 / 共60页
资料共60页,剩余部分请下载后查看
目 录
前言
1 企业级安全概述
1.1 传统Java EE安全性编程模型的局限性
1.1.1 可移植性差
1.1.2 企业级能力差
1.1.3 不便于实施集成测试或CI工作
1.1.4 Spring Security成功挑战Java EE安全性编程模型
1.2 揭秘Spring Security
1.2.1 基于过滤器链的设计-同Web容器解耦的重要法宝
1.2.2 构建在Spring基础之上
1.2.3 Spring Security内置的企业级特性集合
1.3 小结
2 触动Spring Security 3.0
2.1 下载Spring Security发布包
2.2 运行及分析内置的Spring Security Tutorial Application示例
2.2.1 运行Spring Security Tutorial Application示例
2.2.2 分析Spring Security Tutorial Application示例
2.3 运行及分析内置的Contacts Sample Application示例
2.3.1 运行Contacts Sample Application示例
2.3.2 分析Contacts Sample Application示例
2.4 下载持续更新的Spring Security源码
2.5 小结
3 Spring Security内置的Java EE应用认证支持
3.1 安全性认证概述
3.1.1 安全也是矛盾的统一体
3.2 内置的HTTP BASIC认证支持
3.2.1 不够安全的HTTP BASIC认证
3.3 内置的HTTP Digest认证支持
3.3.1 安全的HTTP Digest认证
3.3.2 对库中用户密码进行MD5加密存储
3.3.3 有关DigestAuthenticationEntryPoint的更多细节
3.4 内置的HTTP表单认证支持
3.4.1 灵活控制登录时页面的跳转逻辑
3.4.2 定制HTTP登录表单的处理URL
3.5 内置的X.509认证支持
3.5.1 设置HTTP与HTTPS端口间的映射关系
3.5.2 如何从X.509证书中抽取用户名
3.5.3 启用单向X.509认证
3.6 小结
4 分享Spring Security认证支持背后的故事
4.1 过滤器链的形成
4.1.1 从springSecurityFilterChain过滤器谈起
4.1.2 若干重要策略接口
4.2 匿名认证
4.3 Remember-Me认证服务
4.4 控制并发HttpSession
4.5 切换用户
4.6 自定义退出逻辑
4.7 小结
5 集成及管理认证信息
5.1 认证提供者-核心策略接口
5.2 处在内存中的认证信息
5.3 处在关系数据库中的认证信息
5.4 借助LDAP服务器管理认证信息
5.5 基于JAAS管理认证信息
5.6 小结
6 Spring Security内置的Java EE应用授权支持
6.1 授权策略
6.2 针对Web资源的授权支持
6.3 针对业务方法的授权支持
6.4 小结
7 针对领域对象的授权支持
7.1 何谓领域对象
7.2 小结
8 集成单点登录及单点退出解决方案
8.1 何谓单点登录及单点退出
8.2 Spring Security对SSO的集成支持
8.2.1 JA-SIG CAS
8.2.2 OpenID
8.3 小结
9 探索及集成JA-SIG CAS
9.1 JA-SIG CAS概述
9.1.1 SAML
9.2 小结
10 探索及集成OpenID
10.1 OpenID概述
10.2 小结
11 探索及集成Kerberos/SPNEGO
11.1 Kerberos/SPNEGO概述
11.2 小结
12 Spring Security 3.x高级专题及最佳实践
12.1 重新审视安全性话题
12.2 同用户认证相关话题
12.3 同用户授权相关话题
12.4 小结
13 附录A:Java EE容器内置的Java EE安全性支持
13.1 Apache Tomcat 6.0内置的Java EE安全性支持
13.1.1 HTTP BASIC认证
13.1.2 HTTP Digest认证
13.1.3 HTTP表单认证
13.1.4 准备X.509证书
13.1.5 双向X.509认证
13.2 Eclipse Jetty 7.0内置的Java EE安全性支持
13.3 JBoss 6.0内置的Java EE安全性支持
13.4 Oracle WebLogic 11g内置的Java EE安全性支持
13.5 IBM WebSphere 7.0内置的Java EE安全性支持
14 附录B:Spring Security内置的命名空间
14.1 命名空间
14.2 命名空间
14.3 命名空间
15 附录C:同Apache HTTP Server相关的话题
15.1 Apache HTTP Server概述
15.1.1 配置CA X.509证书
15.2 Apache HTTP Server与CAS的整合
15.2.1 mod_auth_cas模块
15.3 将Apache HTTP Server作为Java EE容器的前端
15.3.1 激活负载均衡
16 附录D:Spring LDAP
16.1 LDAP概述
16.1.1 LDAP服务器
16.2 第三方LDAP客户端工具
16.2.1 JXplorer
16.2.2 Apache Directory Studio
16.3 深入到Spring LDAP中
16.3.1 LdapTemplate核心类
16.3.2 内置的LDAP连接池支持
16.3.3 事务补偿特性
17 附录E:相关资料
17.1 图书
17.2 网站
实战 Spring Security 3.x:快速构建企业级 安全 罗时飞 著 http://www.open-v.com 2010 年 3 月 25 日 【版权所有、侵权必究】
目 录   序 ......................................................................................................................................... VII  前言 .......................................................................................................................................IX  1  企业级安全概述 .............................................................................................................. 1  1.1  传统 Java EE 安全性编程模型的局限性 ........................................................................ 1  1.1.1  可移植性差 ...................................................... 1  1.1.2  企业级能力差 .................................................... 2  1.1.3  不便于实施集成测试或 CI 工作 ..................................... 3  1.1.4  Spring Security 成功挑战 Java EE 安全性编程模型 ................... 3  1.2  揭秘 Spring Security ........................................................................................................ 4  1.2.1  基于过滤器链的设计-同 Web 容器解耦的重要法宝 .................... 4  1.2.2  构建在 Spring 基础之上 ........................................... 4  1.2.3  Spring Security 内置的企业级特性集合 ............................. 5  1.3  小结 ................................................................................................................................. 5  2  触动 Spring Security 3.0 ................................................................................................... 7  2.1  下载 Spring Security 发布包 ........................................................................................... 7  2.2  运行及分析内置的 Spring Security Tutorial Application 示例 ....................................... 7  2.2.1  运行 Spring Security Tutorial Application 示例 ................... 7  2.2.2  分析 Spring Security Tutorial Application 示例 ................... 9  2.3  运行及分析内置的 Contacts Sample Application 示例 ............................................... 10  2.3.1  运行 Contacts Sample Application 示例 ........................... 10  2.3.2  分析 Contacts Sample Application 示例 ........................... 12  2.4  下载持续更新的 Spring Security 源码 ......................................................................... 13  2.5  小结 ............................................................................................................................... 13  3  Spring Security 内置的 Java EE 应用认证支持 ............................................................... 14  II
3.1  安全性认证概述 ........................................................................................................... 14  3.1.1  安全也是矛盾的统一体 ........................................... 14  3.2  内置的 HTTP BASIC 认证支持 ...................................................................................... 15  3.2.1  不够安全的 HTTP BASIC 认证 ...................................... 16  3.3  内置的 HTTP Digest 认证支持 ...................................................................................... 16  3.3.1  安全的 HTTP Digest 认证 ......................................... 18  3.3.2  对库中用户密码进行 MD5 加密存储 ................................. 18  3.3.3  有关 DigestAuthenticationEntryPoint 的更多细节 .................. 19  3.4  内置的 HTTP 表单认证支持 ......................................................................................... 20  3.4.1  灵活控制登录时页面的跳转逻辑 ................................... 21  3.4.2  定制 HTTP 登录表单的处理 URL ..................................... 21  3.5  内置的 X.509 认证支持 ................................................................................................ 21  3.5.1  设置 HTTP 与 HTTPS 端口间的映射关系 .............................. 24  3.5.2  如何从 X.509 证书中抽取用户名 ................................... 24  3.5.3  启用单向 X.509 认证 ............................................. 25  3.6  小结 ............................................................................................................................... 25  4  分享 Spring Security 认证支持背后的故事 .................................................................... 26  4.1  过滤器链的形成 ........................................................................................................... 26  4.1.1  从 springSecurityFilterChain 过滤器谈起 ......................... 26  4.1.2  若干重要策略接口 ............................................... 26  4.2  匿名认证 ....................................................................................................................... 26  4.3  Remember‐Me 认证服务 .............................................................................................. 26  4.4  控制并发 HttpSession ................................................................................................... 26  4.5  切换用户 ....................................................................................................................... 27  4.6  自定义退出逻辑 ........................................................................................................... 27  4.7  小结 ............................................................................................................................... 27  5  集成及管理认证信息 .................................................................................................... 28  5.1  认证提供者-核心策略接口 ....................................................................................... 28  III
5.2  处在内存中的认证信息 ............................................................................................... 28  5.3  处在关系数据库中的认证信息 ................................................................................... 28  5.4  借助 LDAP 服务器管理认证信息 ................................................................................. 28  5.5  基于 JAAS 管理认证信息.............................................................................................. 28  5.6  小结 ............................................................................................................................... 28  6  Spring Security 内置的 Java EE 应用授权支持 ............................................................... 29  6.1  授权策略 ....................................................................................................................... 29  6.2  针对 Web 资源的授权支持 .......................................................................................... 29  6.3  针对业务方法的授权支持 ........................................................................................... 29  6.4  小结 ............................................................................................................................... 29  7  针对领域对象的授权支持 ............................................................................................. 30  7.1  何谓领域对象 ............................................................................................................... 30  7.2  小结 ............................................................................................................................... 30  8  集成单点登录及单点退出解决方案 .............................................................................. 31  8.1  何谓单点登录及单点退出 ........................................................................................... 31  8.2  Spring Security 对 SSO 的集成支持 .............................................................................. 31  8.2.1  JA-SIG CAS ..................................................... 31  8.2.2  OpenID ......................................................... 31  8.3  小结 ............................................................................................................................... 31  9  探索及集成 JA‐SIG CAS .................................................................................................. 32  9.1  JA‐SIG CAS 概述 ............................................................................................................. 32  9.1.1  SAML ........................................................... 32  9.2  小结 ............................................................................................................................... 32  10  探索及集成 OpenID ................................................................................................... 33  10.1  OpenID 概述 .................................................................................................................. 33  10.2  小结 ............................................................................................................................... 33  IV
11  探索及集成 Kerberos/SPNEGO .................................................................................. 34  11.1  Kerberos/SPNEGO 概述 ................................................................................................. 34  11.2  小结 ............................................................................................................................... 34  12  Spring Security 3.x 高级专题及最佳实践 ....................................................................... 35  12.1  重新审视安全性话题 ................................................................................................... 35  12.2  同用户认证相关话题 ................................................................................................... 35  12.3  同用户授权相关话题 ................................................................................................... 35  12.4  小结 ............................................................................................................................... 35  13  附录 A:Java EE 容器内置的 Java EE 安全性支持 ...................................................... 36  13.1  Apache Tomcat 6.0 内置的 Java EE 安全性支持 .......................................................... 36  13.1.1  HTTP BASIC 认证 ................................................. 36  13.1.2  HTTP Digest 认证 ................................................ 37  13.1.3  HTTP 表单认证 ................................................... 39  13.1.4  准备 X.509 证书 ................................................. 39  13.1.5  双向 X.509 认证 ................................................. 44  13.2  13.3  Eclipse Jetty 7.0 内置的 Java EE 安全性支持 ............................................................... 45  JBoss 6.0 内置的 Java EE 安全性支持 .......................................................................... 45  13.4  Oracle WebLogic 11g 内置的 Java EE 安全性支持 ....................................................... 45  13.5  IBM WebSphere 7.0 内置的 Java EE 安全性支持 ......................................................... 45  14  附录 B:Spring Security 内置的命名空间 .................................................................. 46  14.1  14.2  14.3  命名空间 ........................................................................................................... 46  命名空间 .......................................................................... 46  命名空间 ............................................................................ 46  15  附录 C:同 Apache HTTP Server 相关的话题 ............................................................. 47  15.1  Apache HTTP Server 概述 ............................................................................................. 47  15.1.1  配置 CA X.509 证书 .............................................. 47  15.2  Apache HTTP Server 与 CAS 的整合 ............................................................................. 47  V
15.2.1  mod_auth_cas 模块 ............................................... 47  15.3  将 Apache HTTP Server 作为 Java EE 容器的前端 ....................................................... 47  15.3.1  激活负载均衡 ................................................... 47  16  附录 D:Spring LDAP ................................................................................................. 48  16.1  LDAP 概述...................................................................................................................... 48  16.1.1  LDAP 服务器 ..................................................... 48  16.2  第三方 LDAP 客户端工具 ............................................................................................. 48  16.2.1  JXplorer ....................................................... 48  16.2.2  Apache Directory Studio ........................................ 48  16.3  深入到 Spring LDAP 中 .................................................................................................. 48  16.3.1  LdapTemplate 核心类 ............................................. 48  16.3.2  内置的 LDAP 连接池支持 .......................................... 48  16.3.3  事务补偿特性 ................................................... 49  17  附录 E:相关资料 ..................................................................................................... 50  17.1  图书 ............................................................................................................................... 50  17.2  网站 ............................................................................................................................... 50  VI
序 序 为了在软件产品中启用 Java EE 容器安全性,我们往往要付出很大代价,因为 Java EE 容器内置的安全性支持存在诸多重大缺点,尤其是它的可移植性、企业级能力差、难于展开 各类集成测试工作等缺陷,很多企业应用因为这些问题而转向了 Spring Security。 过去的多年中,基于 Spring 的 Spring Security 博得了企业用户的欢心。无论是在其内部 架构,还是功能方面,它都照顾到多方面的利益,几乎可以用“艺术美”形容它。 从内部架构看,采纳 Spring 及基于它的架构能够很大程度解决企业应用的可移植性问 题。事实上,Spring Security 确实是基于 Spring 架构的,同一 Spring Security 使能应用可以 部署到任意 Java EE 容器中。这一点在如今苛刻的企业部署环境显得格外重要。值得注意的 是,基于 Spring Security 研发的企业应用能够顺利进行各种集成测试工作,包括 CI 工作的 开展。 从功能上看,Spring Security 尽可能不重复发明轮子。在很多场合,它尽量集成现有的、 业界领先的安全性解决方案,比如 JA-SIG CAS、OpenID、Kerberos。如果某些企业级特性 非常重要,而又没有现成的做法,则它会基于开放标准(或事实上的标准)提供它们,比如 领域对象授权。 在一定场合,某些企业应用可能需要扩展 Spring Security。它也是欢迎的,毕竟开放架 构、开源协同工作等是开源项目最基本的行为。因此,我们没有理由不选择 Spring Security 去实施、加强企业应用的安全性。 自从 Spring Security(Acegi)诞生的那天起,我们便开始采纳它,各种软件产品、企业 应用中都有它的身影。我们希望过去积累的 Spring Security 经验、教训能够积累下来,并跟 进持续发展的最新版 Spring Security,便萌发了此书的写作计划。虽然本书的主题是围绕 Spring Security 展开的,但我们更希望它是一本指导企业用户(包括开发者)如何实施企业 级安全不可或缺的重要图书。 当然,Spring Security 涉及的知识面非常广,加上本人经验有限,书中难免出现错误, 还望同行批评指正,并提出各种宝贵写作建议。 罗时飞 VII
序 E_mail:luoshifei@yahoo.cn 2009 年于广州 VIII
分享到:
收藏