没有合适的资源?快使用搜索试试~ 我知道了~
Spring Security LDAP 全选管理框架 中文版
4星 · 超过85%的资源 需积分: 10 21 下载量 68 浏览量
2012-06-28
10:40:26
上传
评论
收藏 1.17MB PDF 举报
温馨提示
试读
140页
spring 的权限管理框架 中文参考手册 单点登录,LDAP等 详细的介绍了一个权限的分配,不用自己在写过多的程序代码实现权限系统了
资源推荐
资源详情
资源评论
Part I. 入门
本指南的后面部分提供对框架结构和实现类的深入讨论,了解它们,对你进行复杂的定
制是十分重要的。在这部分,我们将介绍 Spring Security 3.0,简要介绍该项目的历
史,然后看看如何开始在程序中使用框架。特别是,我们将看看命名控件配置提供了一
个更加简单的方式,在使用传统的 spring bean 配置时,你不得不实现所有类。
我们也会看看可用的范例程序。它们值得试着运行,实验,在你阅读后面的章节之前 -
你可以在对框架有了更多连接之后再回来看这些例子。也请参考 项目网站 获得构建项
目有用的信息,另外链接到网站,视频和教程。
Chapter 1. 介绍
1.1. Spring Security 是什么?
Spring Security 为基于 J2EE 企业应用软件提供了全面安全服务。 特别是使用领先
的 J2EE 解决方案-spring 框架开发的企业软件项目。 如果你没有使用 Spring 开发企
业软件,我们热情的推荐你仔细研究一下。 熟悉 Spring-尤其是依赖注入原理-将帮助
你更快的掌握 Spring Security。
人们使用 Spring Security 有很多种原因, 不过通常吸引他们的是在 J2EE Servlet
规范或 EJB 规范中找不到典型企业应用场景的解决方案。 提到这些规范,特别要指出
的是它们不能在 WAR 或 EAR 级别进行移植。这样,如果你更换服务器环境, 就要,
在新的目标环境进行大量的工作,对你的应用系统进行重新配置安全。 使用 Spring
Security 解决了这些问题,也为你提供了很多有用的,可定制的其他安全特性。
你可能知道,安全包括两个主要操作, “认证”和“验证”(或权限控制)。 这就是 Spring
Security 面向的两个主要方向。“认证” 是为用户建立一个他所声明的主体的过程,
(“主体”一般是指用户,设备或可以在你系统中执行行动的其他系统)。 “验证”指的
一个用户能否在你的应用中执行某个操作。 在到达授权判断之前,身份的主体已经由
身份验证过程建立了。 这些概念是通用的,不是 Spring Security 特有的。
在身份验证层面,Spring Security 广泛支持各种身份验证模式。 这些验证模型绝大
多数都由第三方提供,或正在开发的有关标准机构提供的,例如 Internet Engineering
Task Force。 作为补充,Spring Security 也提供了自己的一套验证功能。 Spring
Security 目前支持认证一体化和如下认证技术:
HTTP BASIC authentication headers (一个基于 IEFT RFC 的标准)
HTTP Digest authentication headers (一个基于 IEFT RFC 的标准)
HTTP X.509 client certificate exchange (一个基于 IEFT RFC 的标准)
LDAP (一个非常常见的跨平台认证需要做法,特别是在大环境)
Form-based authentication (提供简单用户接口的需求)
OpenID authentication
基于预先建立的请求头进行认证 (比如 Computer Associates Siteminder)
JA-SIG Central Authentication Service (也被称为 CAS,这是一个流行的
开源单点登录系统)
Transparent authentication context propagation for Remote Method
Invocation (RMI) and HttpInvoker (一个 Spring 远程调用协议)
Automatic "remember-me" authentication (这样你可以设置一段时间,避
免在一段时间内还需要重新验证)
Anonymous authentication (允许任何调用,自动假设一个特定的安全主体)
Run-as authentication (这在一个会话内使用不同安全身份的时候是非常有
用的)
Java Authentication and Authorization Service (JAAS)
JEE Container autentication (这样,你可以继续使用容器管理认证,如果想
的话)
Kerberos
Java Open Source Single Sign On (JOSSO) *
OpenNMS Network Management Platform *
AppFuse *
AndroMDA *
Mule ESB *
Direct Web Request (DWR) *
Grails *
Tapestry *
JTrac *
Jasypt *
Roller *
Elastic Plath *
Atlassian Crowd *
你自己的认证系统(向下看)
(* 是指由第三方提供,查看我们的整合网页,获得最新详情的链接。)
许多独立软件供应商(ISVs, independent software vendors )采用 Spring
Security,是因为它拥有丰富灵活的验证模型。 这样,无论终端用户需要什么,他们
都可以快速集成到系统中,不用花很多功夫,也不用让用户改变运行环境。 如果上述
的验证机制都没有满足你的需要,Spring Security 是一个开放的平台,编写自己的验
证机制是十分简单的。 Spring Security 的许多企业用户需要整合不遵循任何特定安
全标准的“遗留”系统,Spring Security 在这类系统上也表现的很好。
有时基本的认证是不够的。 有时你需要根据在主体和应用交互的方式来应用不同的安
全措施。 比如,你可能,为了保护密码,不被窃听或受到中间人攻击,希望确保请求
只通过 HTTPS 到达。 这在防止暴力攻击保护密码恢复过程特别有帮助, 或者简单的,
让人难以复制你的系统的关键字内容。 为了帮助你实现这些目标,Spring Security
完全支持自动“信道安全”, 整合 jcaptcha 一体化进行人类用户检测。
Spring Security 不仅提供认证功能,也提供了完备的授权功能。 在授权方面主要有
三个领域,授权 web 请求,授权被调用方法,授权访问单个对象的实例。 为了帮你了
解它们之间的区别,对照考虑授在 Servlet 规范 web 模式安全,EJB 容器管理安全,
和文件系统安全方面的授权方式。 Spring Security 在所有这些重要领域都提供了完
备的能力,我们将在这份参考指南的后面进行探讨。
1.2. 历史
Spring Security 开始于 2003 年年底,““spring 的 acegi 安全系统”。 起因是 Spring
开发者邮件列表中的一个问题,有人提问是否考虑提供一个基于 spring 的安全实现。
在当时 Spring 的社区相对较小(尤其是和今天的规模比!),其实 Spring 本身是从
2003 年初才作为一个 sourceforge 的项目出现的。 对这个问题的回应是,这的确是
一个值得研究的领域,虽然限于时间问题阻碍了对它的继续研究。
有鉴于此,一个简单的安全实现建立起来了,但没有发布。 几周之后,spring 社区的
其他成员询问安全问题,代码就被提供给了他们。 随后又有人请求,在 2004 年一月
左右,有 20 人在使用这些代码。 另外一些人加入到这些先行者中来,并建议在
sourceforge 上建立一个项目,项目在 2004 年 3 月正式建立起来。
在早期,项目本身没有自己的认证模块。 认证过程都是依赖容器管理安全的,而 acegi
则注重授权。 这在一开始是合适的,但随着越来越多用户要求提供额外的容器支持,
基于容器认证的限制就显现出来了。 还有一个有关的问题,向容器的 classpath 中添
加新 jar,常常让最终用户感到困惑,又容易出现配置错误。
随后 acegi 加入了认证服务。大约一年后,acegi 成为 spring 的官方子项目。 经过了
两年半在许多生产软件项目中的活跃使用和数以万计的改善和社区的贡献,1.0.0 最终
版本发布于 2006 年 5 月。
acegi 在 2007 年年底,正式成为 spring 组合项目,被更名为“Spring Security”。
现在,Spring Security 成为了一个强大而又活跃的开源社区。 在 Spring Security
支持论坛上有成千上万的信息。 有一个积极的核心开发团队专职开发,一个积极的社
区定期共享补丁并支持他们的同伴。
1.3. 发行版本号
了解 spring Security 发行版本号是非常有用的。它可以帮助你判断升级到新的版本是
否需要花费很大的精力。 我们使用 apache 便携式运行项目版本指南,可以在以下网
址查看 http://apr.apache.org/versioning.html。 为了方便大家,我们引用页面
上的一段介绍:
“版本号是一个包含三个整数的组合:主要版本号.次要版本号.补丁。 基本思路是主要
版本是不兼容的,大规模升级 API。 次要版本号在源代码和二进制要与老版本保持兼
容,补丁则意味着向前向后的完全兼容。”
1.4. 获得 Spring Security
你可以通过多种方式获得 Spring Security。你可以下载打包好的发行包,从 Spring
的网站 下载页, 下载单独的 jar(和实例 WAR 文件)从 Maven 中央资源库(或者
SpringSource Maven 资源库,获得快照和里程碑发布)。 可选的,你可以通过源代
码创建项目。参考项目网站获得更多细节。
1.4.1. 项目模块
在 Spring Security 3.0 中,项目已经分割成单独的 jar,这更清楚的按照功能进行分
割模块和第三方依赖。 如果你在使用 Maven 来构建你的项目,你需要把这些模块添
加到你的 pom.xml 中。 即使你没有使用 Maven,我们也推荐你参考这个 pom.xml 文
件, 来了解第三方依赖和对应的版本。可选的,一个好办法是参考实例应用中包含的
依赖库。
1.4.1.1. Core - spring-security-core.jar
包含了核心认证和权限控制类和接口, 运程支持和基本供应 API。使用 Spring
Security 所必须的。支持单独运行的应用, 远程客户端,方法(服务层)安全和 JDBC
用户供应。包含顶级包:
org.springframework.security.core
org.springframework.security.access
org.springframework.security.authentication
org.springframework.security.provisioning
org.springframework.security.remoting
1.4.1.2. Web - spring-security-web.jar
包含过滤器和对应的 web 安全架构代码。任何需要依赖 servlet API 的。 你将需要它,
如果你需要 Spring Security Web 认证服务和基于 URL 的权限控制。 主包是
org.springframework.security.web。
1.4.1.3. Config - spring-security-config.jar
包含安全命名控制解析代码(因此我们不能直接把它用在你的应用中)。你需要它, 如
果使用了 Spring Security XML 命名控制来进行配置。主包是
org.springframework.security.config。
1.4.1.4. LDAP - spring-security-ldap.jar
LDAP 认证和实现代码,如果你需要使用 LDAP 认证或管理 LDAP 用户实体就是必须的。
顶级包是 org.springframework.security.ldap。
1.4.1.5. ACL - spring-security-acl.jar
处理领域对象 ACL 实现。用来提供安全给特定的领域对象实例,在你的应用中。 顶级
包是 org.springframework.security.acls。
1.4.1.6. CAS - spring-security-cas-client.jar
Spring Security 的 CAs 客户端集成。如果你希望使用 Spring Security web 认证 整
合一个 CAS 单点登录服务器。顶级包是 org.springframework.security.cas。
1.4.1.7. OpenID - spring-security-openid.jar
OpenID web 认 证 支 持 。 用 来 认 证 用 户 , 通 过 一 个 外 部 的 OpenID 服务。
org.springframework.security.openid。需要 OpenID4Java。
1.4.2. 获得源代码
Spring Security 是一个开源项目,我们大力推荐你从 subversion 获得源代码。 这
样你可以获得所有的示例,你可以很容易的建立目前最新的项目。 获得项目的源代码
对调试也有很大的帮助。 异常堆栈不再是模糊的黑盒问题,你可以直接找到发生问题
的那一行,查找发生了什么额外难题。 源代码也是项目的最终文档,常常是最简单的
方法,找出这些事情是如何工作的。
要像获得项目最新的源代码,使用如下 subversion 命令:
svn checkout
http://acegisecurity.svn.sourceforge.net/svnroot/acegisecurity/
spring-security/trunk/
Security 命名空间配置
2.1. 介绍
从 Spring-2.0 开始可以使用命名空间的配置方式。 使用它呢,可以通过附加 xml 架
构,为传统的 spring beans 应用环境语法做补充。 你可以在 spring 参考文档得到更
多信息。 命名空间元素可以简单的配置单个 bean,或使用更强大的,定义一个备用配
置语法,这可以更加紧密的匹配问题域,隐藏用户背后的复杂性。 简单元素可能隐藏
事实,多种 bean 和处理步骤添加到应用环境中。 比如,把下面的 security 命名元素
添加到应用环境中,将会为测试用途,在应用内部启动一个内嵌 LDAP 服务器:
<security:ldap-server />
这比配置一个 Apache 目录服务器 bean 要简单得多。 最常见的替代配置需求都可以
使用 ldap-server 元素的属性进行配置,这样用户就不用担心他们需要设置什么,不
用担心 bean 里的各种属性。
[1]
。使用一个良好的 XML 编辑器来编辑应用环境文件,
剩余139页未读,继续阅读
资源评论
- Wonzer2013-02-05不错,挺详细的
- liang_Henry2013-07-19这个是Spring3_Security_中文指南.pdf,我表示很无奈
- chwdf12013-06-21真心挺狗血的
- bbeardai2013-12-14只是文档,,但是还是比看英文快,谢谢啦
flashdream8
- 粉丝: 20
- 资源: 26
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功