没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
入门
本指南的后面部分提供对框架结构和实现类的深入讨论,了解它们,对你进行复杂的
定制是十分重要的。在这部分,我们将介绍 ,简要介绍该项目
的历史,然后看看如何开始在程序中使用框架。特别是,我们将看看命名控件配置提
供了一个更加简单的方式,在使用传统的 配置时,你不得不实现所有类。
我们也会看看可用的范例程序。它们值得试着运行,实验,在你阅读后面的章节之前
你可以在对框架有了更多连接之后再回来看这些例子。也请参考 项目网站 获得构建项
目有用的信息,另外链接到网站,视频和教程。
Chapter1.介绍
1.1.Spring Security 是什么?
为基于 企业应用软件提供了全面安全服务。 特别是使用领先的
解决方案 框架开发的企业软件项目。 如果你没有使用 开发企业
软件,我们热情的推荐你仔细研究一下。 熟悉 尤其是依赖注入原理将帮助你
更快的掌握 。
人们使用 有很多种原因, 不过通常吸引他们的是在
规范或 规范中找不到典型企业应用场景的解决方案。 提到这些规范,特别要指出
的是它们不能在 或 级别进行移植。这样,如果你更换服务器环境, 就要,
在新的目标环境进行大量的工作,对你的应用系统进行重新配置安全。 使用
解决了这些问题,也为你提供了很多有用的,可定制的其他安全特性。
你可能知道,安全包括两个主要操作, “认证”和“验证”(或权限控制)。 这就是
面向的两个主要方向。“认证” 是为用户建立一个他所声明的主体的
过程, (“主体”一般是指用户,设备或可以在你系统中执行行动的其他系统)。 “验
证”指的一个用户能否在你的应用中执行某个操作。 在到达授权判断之前,身份的主体
已经由身份验证过程建立了。 这些概念是通用的,不是 特有的。
在身份验证层面, 广泛支持各种身份验证模式。 这些验证模型绝大
多 数 都 由 第 三 方 提 供 , 或 正 在 开 发 的 有 关 标 准 机 构 提 供 的 , 例 如
!"#。 作为补充, 也提供了自己的一套验证
功能。 目前支持认证一体化和如下认证技术:
$ %&#&'(一个基于 " "% 的标准)
$ *&#&'(一个基于 " "% 的标准)
$ +,-./&(一个基于 " "% 的标准)
0*(一个非常常见的跨平台认证需要做法,特别是在大环境)
"#1'&#(提供简单用户接口的需求)
2*&#
基 于 预 先 建 立 的 请 求 头 进 行 认 证 ( 比 如 %#1 #
1')
3%&#(也被称为 %,这是一个流行的
开源单点登录系统)
&##/##4#1#5&#'
##(5)'$#!(一个 远程调用协议)
#161116&#(这样你可以设置一段时间,
避免在一段时间内还需要重新验证)
#1#&#(允许任何调用,自动假设一个特定的安全主
体)
&#(这在一个会话内使用不同安全身份的时候是非常有
用的)
&#'#()
%##(这样,你可以继续使用容器管理认证,如果想
的话)
8#
2#2(22)9
2:5:;#!514#19
"9
'#5*9
59
*<(*)9
39
9
9
9
#9
&9
%#;'9
你自己的认证系统(向下看)
(9是指由第三方提供,查看我们的整合网页,获得最新详情的链接。)
许 多 独 立 软 件 供 应 商 ( =>''#4;'# ) 采 用
,是因为它拥有丰富灵活的验证模型。 这样,无论终端用户需要什么,他们
都可以快速集成到系统中,不用花很多功夫,也不用让用户改变运行环境。 如果上述
的验证机制都没有满足你的需要, 是一个开放的平台,编写自己的
验证机制是十分简单的。 的许多企业用户需要整合不遵循任何特定
安全标准的“遗留”系统, 在这类系统上也表现的很好。
有时基本的认证是不够的。 有时你需要根据在主体和应用交互的方式来应用不同的安
全措施。 比如,你可能,为了保护密码,不被窃听或受到中间人攻击,希望确保请求
只通过 $ 到达。 这在防止暴力攻击保护密码恢复过程特别有帮助, 或者简单的,
让人难以复制你的系统的关键字内容。 为了帮助你实现这些目标,
完全支持自动“信道安全”, 整合 ?& 一体化进行人类用户检测。
不仅提供认证功能,也提供了完备的授权功能。 在授权方面主要有
三个领域,授权 ; 请求,授权被调用方法,授权访问单个对象的实例。 为了帮你
了解它们之间的区别,对照考虑授在 规范 ; 模式安全, 容器管理安全,
和文件系统安全方面的授权方式。 在所有这些重要领域都提供了完
备的能力,我们将在这份参考指南的后面进行探讨。
1.2.历史
开始 于 年 年 底,“ “ 的 安 全 系 统 ” 。 起 因 是
开发者邮件列表中的一个问题,有人提问是否考虑提供一个基于 的安
全实现。 在当时 的社区相对较小(尤其是和今天的规模比!),其实
本身是从 年初才作为一个 #4# 的项目出现的。 对这个问题的回应是,
这的确是一个值得研究的领域,虽然限于时间问题阻碍了对它的继续研究。
有鉴于此,一个简单的安全实现建立起来了,但没有发布。 几周之后, 社区的
其他成员询问安全问题,代码就被提供给了他们。 随后又有人请求,在 @ 年一月
左右,有 人在使用这些代码。 另外一些人加入到这些先行者中来,并建议在
#4# 上建立一个项目,项目在 @ 年 月正式建立起来。
在早期,项目本身没有自己的认证模块。 认证过程都是依赖容器管理安全的,而
则注重授权。 这在一开始是合适的,但随着越来越多用户要求提供额外的容器
支 持 , 基 于 容 器 认 证 的限 制 就 显 现 出 来 了 。 还 有 一个 有 关 的问 题 , 向 容 器 的
& 中添加新 ?,常常让最终用户感到困惑,又容易出现配置错误。
随后 加入了认证服务。大约一年后, 成为 的官方子项目。 经过
了两年半在许多生产软件项目中的活跃使用和数以万计的改善和社区的贡献,A 最
终版本发布于 B 年 , 月。
在 C 年年底,正式成为 组合项目,被更名为“D。
现在, 成为了一个强大而又活跃的开源社区。 在
支持论坛上有成千上万的信息。 有一个积极的核心开发团队专职开发,一个积极的社
区定期共享补丁并支持他们的同伴。
1.3.发行版本号
了解 发行版本号是非常有用的。它可以帮助你判断升级到新的版本
是否需要花费很大的精力。 我们使用 & 便携式运行项目版本指南,可以在以下
网址查看 &EFF&#F#&1。 为了方便大家,我们引用
页面上的一段介绍:
G版本号是一个包含三个整数的组合:主要版本号次要版本号补丁。 基本思路是主要
版本是不兼容的,大规模升级 。 次要版本号在源代码和二进制要与老版本保持兼
容,补丁则意味着向前向后的完全兼容。”
1.4.获得 Spring Security
你可以通过多种方式获得 。你可以下载打包好的发行包,从
的网站 下载页, 下载单独的 ?(和实例 文件)从 5 中央资源库(或者
#5 资源库,获得快照和里程碑发布)。 可选的,你可以通过源
代码创建项目。参考项目网站获得更多细节。
1.4.1.项目模块
在 中,项目已经分割成单独的 ?,这更清楚的按照功能进行分
割模块和第三方依赖。 如果你在使用 5 来构建你的项目,你需要把这些模块添
加 到 你 的 #1/1 中 。 即 使 你 没 有 使 用 5 , 我 们 也 推 荐 你 参 考 这 个
#1/1 文件, 来了解第三方依赖和对应的版本。可选的,一个好办法是参考实例
应用中包含的依赖库。
1.4.1.1.Core - spring-security-core.jar
包含了核心认证和权限控制类 和接口, 运程支持和基本供应 。使用
所必须的。支持单独运行的应用, 远程客户端,方法(服务层)安全和
*% 用户供应。包含顶级包:
#41;#!#
#41;#!
#41;#!&#
#41;#!##
#41;#!1#
1.4.1.2.Web - spring-security-web.jar
包含过滤器和对应的 ; 安全架构代码。任何需要依赖 的。 你将需要它,
如 果 你 需 要 认 证 服 务 和 基 于 H0 的权 限 控 制 。 主 包 是
#41;#!;。
1.4.1.3.Cong - spring-security-cong.jar
包含安全命名控制解析代码(因此我们不能直接把它用在你的应用中)。你需要它,
如 果 使 用 了 +50 命 名 控 制 来 进 行 配 置 。 主 包 是
#41;#!#.。
1.4.1.4.LDAP - spring-security-ldap.jar
0* 认证和实现代码,如果你需要使用 0* 认证或管理 0* 用户实体就是必须
的。 顶级包是 #41;#!'。
1.4.1.5.ACL - spring-security-acl.jar
处理领域对象 %0 实现。用来提供安全给特定的领域对象实例,在你的应用中。 顶级
包是 #41;#!。
1.4.1.6.CAS - spring-security-cas-client.jar
的 % 客户端集成。如果你希望使用 ; 认证
整 合 一 个 % 单 点 登 录 服 务 器 。 顶 级 包 是
#41;#!。
1.4.1.7.OpenID - spring-security-openid.jar
2*; 认 证 支 持 。 用 来 认 证 用 户 , 通 过 一 个 外 部 的 2* 服 务 。
#41;#!#'。需要 2*@。
1.4.2.获得源代码
是一个开源项目,我们大力推荐你从 # 获得源代码。 这
样你可以获得所有的示例,你可以很容易的建立目前最新的项目。 获得项目的源代码
对调试也有很大的帮助。 异常堆栈不再是模糊的黑盒问题,你可以直接找到发生问题
的那一行,查找发生了什么额外难题。 源代码也是项目的最终文档,常常是最简单的
方法,找出这些事情是如何工作的。
要像获得项目最新的源代码,使用如下 # 命令E
&!#
&EFF#4#F##FF
F!F
命名空间配置
2.1.介绍
从 开始可以使用命名空间的配置方式。 使用它呢,可以通过附加 /1 架
构,为传统的 应用环境语法做补充。 你可以在 参考文档得到更
多信息。 命名空间元素可以简单的配置单个 ,或使用更强大的,定义一个备用
配置语法,这可以更加紧密的匹配问题域,隐藏用户背后的复杂性。 简单元素可能隐
藏事实,多种 和处理步骤添加到应用环境中。 比如,把下面的 命名元
素添加到应用环境中,将会为测试用途,在应用内部启动一个内嵌 0* 服务器:
IE'FJ
这比配置一个 & 目录服务器 要简单得多。 最常见的替代配置需求都可以
使用 ' 元素的属性进行配置,这样用户就不用担心他们需要设置什么,不
剩余63页未读,继续阅读
资源评论
- wurr7072013-03-17还行吧,作为一个参考,多谢分享
- ukair2016-08-12多一个参考挺好的
joode
- 粉丝: 31
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功