本书的写作遵循了这样的一个开发模式,这个模式我们感觉提供了一个有用的前提来解 决复杂的话题——即使用一个基于Spring3的web工程作为基础,以理解使用Spring Security3 使其保证安全的概念和策略。 不管你是不是已经使用 Spring Security 还是只是对这个软件有兴趣,就都会在本书中得 到有用的信息。 在本节的内容中,你能够: 检查一个虚拟安全审计的结果 讨论web 应用通常的一些安全问题 学习软件安全中的几个核心词汇和概念 如果你已经熟悉基本的安全术语,你可以直接跳到第二章:Spring Security 起步,在哪 里我们将涉及这个框架的细节。
本书的写作遵循了这样的一个开发模式,这个模式我们感觉提供了一个有用的前提来解决复杂的话题—— 即使用一个基于Spring3的web工程作为基础,以理解使用Spring Security3使其保证安全的概念和策略。代码是基于Spring和Spring Security3编写而成的,但是它很容易改变为Spring Security2的例子。关于 Spring Security 2和3的细节差异,可以参照第十三章:迁移至Spring Security,可以作为将示例代码转换成 Spring Security2的帮助材料。 不要以本应用作为基础去构建真实的Pet Store在线应用。本应用已经有意识的构建地简单并关注于本书 所要阐述的概念和配置。
实例本例所覆盖的内容:使用SpringSecurity管理用户身份认证、登录退出用户密码加密及验证采用数据库的方式实现SpringSecurity的remember-me功能获取登录用户信息。
SpringSecurity之自定义用户权限信息的存取
下面我们将实现关于SpringSecurity3的一系列教程. 最终的目标是整合SpringSecurity+Spring3MVC 完成类似于SpringSide3中mini-web的功能. SpringSecurity是什么? 引用SpringSecurity,这是一种基于SpringAOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。
入门这是支持OAuth2.0的用户指南。对于OAuth1.0,一切都是不同的,所以看它的用户指南。本用户指南分为两个部分,第一部分是OAuth2.0提供端(OAuth2.0 Provider),第二部分是OAuth2.0的客户端(OAuth2.0 Client)OAuth2.0提供端OAuth2.0的提供端的用途是负责将受保护的资源暴露出去。配置包括建立一个可以访问受保护的资源的客户端代表。提供端是通过管理和验证可用于访问受保护的资源的OAuth2令牌来做的。在适当的地方,提供端也必须为用户提供一个用于确认客户端是否能够访问受保护的资源的接口(也就是一个页面或是一个窗口)。在OAuth2提供者其实是分成授权服务和资源服务两个角色的。
本指南的后面部分提供对框架结构和实现类的深入讨论,了解它们,对你进行复杂的定制是 十分重要的。在这部分,我们将介绍Spring Security 3.0,简要介绍该项目的历史,然后 看看如何开始在程序中使用框架。特别是,我们将看看命名控件配置提供了一个更加简单的 方式,在使用传统的spring bean 配置时,你不得不实现所有类。 Spring Security 为基于J2EE 企业应用软件提供了全面安全服务。特别是使用领先的 J2EE 解决方案-spring 框架开发的企业软件项目。如果你没有使用Spring 开发企业软件, 我们热情的推荐你仔细研究一下。熟悉Spring-尤其是依赖注入原理-将帮助你更快的掌握 Spring Security。
Spring Security为基于J2EE的企业应用软件提供了一套全面的安全解决方案。正如你在本手册中看到的那 样,我们尝试为您提供一套好用,高可配置的安全系统。 安全问题是一个不断变化的目标,更重要的是寻求一种全面的,系统化的解决方案。 在安全领域我们建议 你采取“分层安全”,这样让每一层确保本身尽可能的安全,并为其他层提供额外的安全保障。 每层自身越 是“紧密”,你的程序就会越鲁棒越安全。 在底层,你需要处理传输安全和系统认证,减少“中间人攻 击”(man-in-the-middle attacks)。 接下来,我们通常会使用防火墙,结合VPN或IP安全来确保只有 获得授权的系统才能尝试连接。
Spring Security 3.0.1 中文参考文档
Over 60 recipes to help you successfully safeguard your web applications with Spring Security
Spring Security,这是一种基于Spring AOP和Servlet过滤器[7] 的安全框架。它提供全面 的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权。在 Spring Framework 基础上,Spring Security 充分利用了依赖注入(DI,Dependency Injection)和 面向切面技术。
Spring Security,这是一种基于Spring AOP和Servlet过滤器[7]的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injection)和面向切面技术。 Spring Security原身是Spring Acegi,在Spring Acegi 2.0之后改名为Spring Security 2.0。我们现在讲解的是Spring Security 3.0,相对于2.0而言改动比较大,配置也更加简单了。
Spring Security,这是一种基于Spring AOP和Servlet过滤器[7] 的安全框架。它提供全面 的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权。在 Spring Framework 基础上,Spring Security 充分利用了依赖注入(DI,Dependency Injection)和 面向切面技术。
Spring Security为基于J2EE企业应用软件提供了全面安全服务。 特别是使用领先的J2EE解决方案-spring框架开发的企业软件项目。 如果你没有使用Spring开发企业软件,我们热情的推荐你仔细研究一下。 熟悉Spring-尤其是依赖注入原理-将帮助你更快的掌握Spring Security。<br> 人们使用Spring Security有很多种原因, 不过通常吸引他们的是在J2EE Servlet规范或EJB规范中找不到典型企业应用场景的解决方案。 提到这些规范,特别要指出的是它们不能在WAR或EAR级别进行移植。这样,如果你更换服务器环境, 就要,在新的目标环境进行大量的工作,对你的应用系统进行重新配置安全。 使用Spring Security解决了这些问题,也为你提供了很多有用的,可定制的其他安全特性。
本指南的后面部分提供对框架结构和实现类的深入讨论,了解它们,对你进行复杂的定 制是十分重要的。在这部分,我们将介绍Spring Security 3.0,简要介绍该项目的历 史,然后看看如何开始在程序中使用框架。特别是,我们将看看命名控件配置提供了一 个更加简单的方式,在使用传统的spring bean配置时,你不得不实现所有类。
从内部架构看,采纳 Spring 及基于它的架构能够很大程度解决企业应用的可移植性问 题。事实上,Spring Security确实是基于 Spring 架构的,同一 Spring Security使能应用可以 部署到任意 Java EE 容器中。这一点在如今苛刻的企业部署环境显得格外重要。值得注意的 是,基于 Spring Security 研发的企业应用能够顺利进行各种集成测试工作,包括 CI 工作的 开展。
什么是Spring Security? Spring Security,这是一种基于Spring AOP和Servlet过滤器[7] 的安全框架。它提供全面 的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权。在 Spring Framework 基础上,Spring Security 充分利用了依赖注入(DI,Dependency Injection)和 面向切面技术。
即使是在开源泛滥的Java领域,统一权限管理框架依然是稀缺的,这也是为什么Spring Security(Acegi)已出现就受到热捧的原因,据俺们所知,直到现在也只看到apache社区的jsecurity在做同样的事情。(据小道消息,jsecurity还很稚嫩。) Spring Security(Acegi)支持一大堆的权限功能,然后它又和Spring这个当今超流行的框架整合的很紧密,所以我们选择它。实际上自从Acegi时代它就很有名了。
SpringSecurity3.x出来一段时间了,跟Acegi是大不同了,与2.x的版本也有一些小小的区别,网上有一些文档,也有人翻译SpringSecurity3.x的guide,但通过阅读guide,无法马上就能很容易的实现一个完整的实例。我花了点儿时间,根据以前的实战经验,整理了一份完整的入门教程,供需要的朋友们参考。1,建一个webproject,并导入所有需要的lib,这步就不多讲了。