Spring Security3
ggmmsoo
这个作者很懒,什么都没留下…
展开
-
《Spring Security3》第二章第三部分翻译(中)
请求是怎样被授权的?在Spring Security的默认过滤器链中,最后一个servelt过滤器是FilterSecurityInterceptor,它的作用是判断一个特定的请求是被允许还是被拒绝。在FilterSecurityInterceptor被触发的时候,安全实体已经经过了认证,所以系统知道他们是合法的用户。(其实也有可能是匿名的用户,译者注)。请记住的一点是,Authenticat转载 2014-12-17 14:05:51 · 368 阅读 · 0 评论 -
《Spring Security3》第八章第一部分翻译(OpenID与Spring Security)
第八章 对OpenID开放 OpenID是很流行的可信任身份管理方式,它允许用户通过一个单独的可信任提供者(provider)管理其身份信息。这个便利的功能为用户提供了安全的方式即使用可信任的OpenID提供者来存储器密码和个人信息,并可以随意的基于请求获取其个人信息。另外,启用OpenID功能的站点能够确信用户提供的OpenID凭证信息就是他们所说的人。 在本章中,我们将会:转载 2015-01-29 17:13:21 · 905 阅读 · 0 评论 -
《Spring Security3》第四章第三部分翻译下(密码加salt)
你是否愿意在密码上添加点salt? 如果安全审计人员检查数据库中编码过的密码,在网站安全方面,他可能还会找到一些令其感到担心的地方。让我们查看一下存储的admin和guest用户的用户名和密码值: 用户名明文密码加密密码adminadmin7b2e9f54cdff413fcde01f3转载 2014-12-22 11:51:25 · 791 阅读 · 0 评论 -
《Spring Security3》第四章第四部分翻译(Remember me后台存储和SSL)附前四章doc文件
到此,前四章翻译完成,欢迎朋友提些意见! 将Remember me功能迁移至数据库 现在你可能会意识到我们remember me功能的实现,能够在应用重启前很好的使用,但在应用重启时用户的session会被丢失。这对用户来说会不太便利,他们不应该关心JBCP Pets的维护信息。 幸运的是,Spring Security提供了将remember转载 2014-12-22 15:56:49 · 499 阅读 · 0 评论 -
《Spring Security3》第五章第二部分翻译上(实现授权精确控制的方法——页面级权限)
实现授权精确控制的方法 精确的授权指的是基于用户特定的请求进行授权的应用功能特性。不同于我们在第二章:Spring Security起步、第三章增强用户体验和第四章凭证安全存储中的粗粒度的授权,精确的授权一般指的是对页面中的部分进行选择性显示的功能,而不是限制访问一个完整的页面。现实世界中的应用将会花费可观的时间用在规划精确授权的细节上。 Spring Security转载 2014-12-23 13:03:39 · 414 阅读 · 0 评论 -
《Spring Security3》第五章第三部分翻译(保护业务层)
保护业务层 到目前为止,在本书中我们的关注点都主要在JBCP Pets 应用web层面的安全。但是,在实际的安全系统规划中,对服务方法应该给予同等的重视,因为它们能够访问系统中最重要的部分——数据。 Spring Security支持添加授权层(或者基于授权的数据处理)到应用中所有Spring管理的bean中。尽管很多的开发人员关注层的安全,其实业务层的俄安转载 2014-12-23 16:42:48 · 382 阅读 · 0 评论 -
《Spring Security3》第五章第一部分翻译(重新思考应用功能和安全)
第五章 精确的访问控制 到目前为止,我们已经为JBCP Pets站点添加了用户友好的一些功能,包括自定义的登录页以及修改密码、remember me功能。 在本章中,我们将要学习规划应用安全的技术以及用户/组的划分。其次,我们学习两种实现精确访问控制的实现方式——这会影响应用中页面的授权。然后,我们会了解Spring Security如何通过使用方法注解和AOP的方式来实现业务层转载 2014-12-23 11:50:13 · 370 阅读 · 0 评论 -
《Spring Security3》第五章第二部分翻译下(实现授权精确控制的方法——页面级权限)
使用控制器逻辑进行有条件渲染内容 现在,让我们将刚刚用标签实现的例子改成用java代码的方式。为了简洁起见,我们只实现一个例子,但实现基于控制器检查的其它例子是很简单直接的。添加有条件显示的Log In链接 为了替代Spring Security的标签,我们假设在模型数据中有一个Boolean变量来标示是否显示显示“Log in”链接,而这个变量可转载 2014-12-23 15:14:52 · 501 阅读 · 0 评论 -
《Spring Security3》第六章第二部分翻译(自定义AuthenticationProvider)
实现自定义的AuthenticationProvider在很多场景下,你的应用需要跳出Spring Security功能的边界,可能会需要实现自己的AuthenticationProvider。回忆在第二章中AuthenticationProvider的角色,在整个认证过程中,它接受安全实体请求提供的凭证(即Authentication对象或authentication token)并校验其正转载 2015-01-14 11:25:52 · 554 阅读 · 0 评论 -
《Spring Security3》第六章第三部分翻译(Session的管理和并发)
Session的管理和并发Spring Security的一个常见配置就是检测相同的用户以不同的session登录安全系统。这被称为并发控制(concurrency control),是session管理(session management)一系列相关配置功能的一部分。严格来说,这个功能并不是高级配置,但是它会让很多新手感到迷惑,并且最好在你对Sping Security整体功能有所了解的基转载 2015-01-14 14:30:14 · 530 阅读 · 0 评论 -
《Spring Security3》第五章第四部分翻译(方法安全的高级知识和小结)
方法安全的高级知识方法安全的表现力不仅局限于简单的角色检查。实际上,一些方法安全的注解能够完全使用Spring表达式语言(SpEL)的强大功能,正如我们在第二章中讨论URL授权规则所使用的那样。这意味着任意的表达式,包含计算、Boolean逻辑等等都可以使用。使用bean包装类实现方法安全规则 另外一种定义方法安全的形式与XML声明有关,它可以包含在Spring Bea转载 2014-12-26 11:45:16 · 423 阅读 · 0 评论 -
《Spring Security3》第六章第一部分翻译(自定义安全过滤器)
第六章 高级配置和扩展到目前为止,我们已经介绍了大多数Spring Security组件的理论以及架构和使用。我们的JBCP Pets商业站点也在逐渐变成一个安全的web应用,我们将会深入讲解一些更有难度的挑战。在本章的课程中,我们将会:l 实现我们自己的安全过滤器,解决一个很有趣的问题,即对特定的用户角色用IP过滤的方式增强站点的安全;l 构建自定义的Authenticat转载 2014-12-26 16:25:38 · 437 阅读 · 0 评论 -
《Spring Security3》第六章第五部分翻译(手动配置Spring Security设施的bean)
手动配置Spring Security设施的bean 如果你工作要求的环境很复杂而Spring Security的基本功能——尽管非常强大——不能满足所有的要求,你可能最终需要自己从头构建Spring Security的过滤器链以及支持实施。这是在Spring Security参考手册中没有完全提及的部分,但是却难住了很多人。有些人将这种类型的配置成为Spring Securi转载 2015-01-19 16:48:02 · 377 阅读 · 0 评论 -
《Spring Security3》第六章第四部分翻译(异常处理)
理解和配置异常处理 Spring Security使用简单的分发器模式将框架抛出的异常转移到明确的处理行为中,这将会影响用户对安全资源的访问。Spring Security过滤器链中最后几个过滤器之一的o.s.s.web.access.ExceptionTranslationFilter负责检查在认证和授权过程中(在过滤器链的最后一个过滤器即FilterSecurityInte转载 2015-01-19 15:50:11 · 432 阅读 · 0 评论 -
《Spring Security3》第六章第六部分翻译(Spring Security基于bean的高级配置)
Spring Security基于bean的高级配置 正如我们在前面几页中看到的那样,基于bean的Spring Security配置尽管比较复杂,但是提供了一定层次的灵活性,如果复杂应用需要超过security XML命名空间风格配置所允许的功能时会用到。 我们将利用这个章节来阐明可用的一些配置选项以及怎么使用。尽管我们不能提供每个可能属性的细节,但是我们鼓励基于在本转载 2015-01-20 15:47:14 · 493 阅读 · 0 评论 -
《Spring Security3》第六章第七部分翻译(认证事件处理与小结)
认证事件处理 有一个重要的功能只能通过基于bean的配置就是自定义处理认证事件。认证事件使用了Spring的时间发布机制,它基于o.s.context.ApplicationEvent事件模型。Spring事件模型使用并不广泛,却能够很有用处——特别在认证系统中——如当你想绑定特定行为到认证领域的行动上去的时候。 事件是典型的订阅-发布模式,通知订阅者是Sp转载 2015-01-21 10:51:12 · 376 阅读 · 0 评论 -
《Spring Security3》第七章第一部分翻译(访问控制列表ACL)
第七章 访问控制列表(ACL)在本章中,我们将会介绍访问控制列表这个复杂话题,它能够提供域对象实例层次授权的丰富模型。Spring Security提供了强大的访问控制列表,但是复杂且缺少文档,它能够很好的满足小到中型规模的实现。在本章的内容中,我们将会:l 理解访问控制列表的概念模型;l 了解Spring Security ACL模型中的关于访问控制列表的术语和应用;转载 2015-01-22 12:32:32 · 597 阅读 · 0 评论 -
《Spring Security3》第七章第三部分翻译(ACL的注意事项)
典型ACL部署所要考虑的事情 实际部署Spring ACL到业务应用是很复杂的。我们总结了Spring ACL要注意的事情,它们在大多数Spring ACL实现场景中都存在。关于ACL的伸缩性和性能模型 对于小型和中型应用,添加ACL功能是很容易的,尽管它增加数据库存储和影响运行时性能,这个影响可能不会那么明显。但是,取决于ACL和ACE建模的粒度,在中转载 2015-01-29 16:41:57 · 446 阅读 · 0 评论 -
《Spring Security3》第四章第三部分翻译上(配置安全的密码)
配置安全的密码 我们回忆第一章:一个不安全应用的剖析中,审计人员认为密码以明文形式进行存储是最高优先级的安全风险。实际上,在任何安全系统中,密码安全都是保证已经经过认证的安全实体是真实可靠的重要方面。安全系统的设计人员必须保证密码存储时,任何恶意的用户想要进行破解都是非常困难的。 在数据库存储时,需要遵守以下的准则:l 密码不能以明文的形式进行存储(简转载 2014-12-19 13:43:31 · 447 阅读 · 0 评论 -
《Spring Security3》第三章第二部分翻译(退出功能的实现)
理解退出功能术语退出(Logout)指的是用户使其安全session失效的一种操作。一般来说,用户在退出后,将会被重定向到站点的非安全保护的界面。让我们在站点的页头部分添加一个“Log Out”的链接,并再次访问站点以了解其如何实现功能的。在站点页头上添加“Log Out”链接正如我们在第二章中讨论的那样,Spring Security将会监视一些特殊的URL,这些URL将会触发过滤器转载 2014-12-17 17:15:27 · 355 阅读 · 0 评论 -
《Spring Security3》第三章第一部分翻译
第三章 增强用户体验 在本章中,我们将对JBCP Pets在线商店增加一些功能,这些新功能能够为用户提供更愉悦和可用的用户体验,同时提供一些对安全系统很重要的功能。在本章中,我们将要:l 按照你的意愿自定义登录和退出页面,并将它们与标准的Spring web MVC的控制器相关联;l 使用remember me功能为用户提供便利,并理解其背后的安全含义;l 构建用户账转载 2014-12-17 15:18:15 · 400 阅读 · 0 评论 -
《Spring Security3》第一章第二部分翻译
应用所使用的技术我们使用了一些每个Spring程序员都会遇到的技术和工具,以使得示例应用很容易的运行起来。尽管如此,我们还是提供了补充的起步资料信息在附录:参考资料。我们建立使用如下的IDE以提高开发的效率并使用本书的示例代码:l Eclipse 3.4或3.5 Java EE版本可以在以下地址获得:http://www.eclipse.org/downloads/l Sp转载 2014-12-17 11:39:34 · 425 阅读 · 0 评论 -
《Spring Security3》第二章第三部分翻译(上)
安全的复杂之处:安全web请求的架构 借助于SpringSecurity的强大基础配置功能以及内置的认证功能,我们在前面讲述的三步配置是很快就能完成的;它们的使用是通过添加auto-config属性和http元素实现的。 但不幸的是,应用实现的考量、架构的限制以及基础设施集成的要求可能使你的Spring Security实现远较这个简单的配置所提供的复杂。很转载 2014-12-17 11:42:43 · 422 阅读 · 0 评论 -
《Spring Security3》第一章第一部分翻译
第一章 一个不安全应用的剖析毫无疑问,安全是任何一个写于21世纪的web工程中最重要的架构组件之一。在这样一个时代,计算机病毒、犯罪以及不合法的员工一直存在并且持续考验软件的安全性试图有所收益,因此对你负责的项目综合合理地使用安全是至关重要的一个元素。 本书的写作遵循了这样的一个开发模式,这个模式我们感觉提供了一个有用的前提来解决复杂的话题——即使用一个基于Spring3的web转载 2014-12-17 11:31:29 · 341 阅读 · 0 评论 -
《Spring Security3》第二章第二部分翻译
三步之内使我们的应用变得安全 尽管SpringSecurity的配置可能会很难,但是它的作者是相当为我们着想的,因为他们为我们提供了一种简单的机制来使用它很多的功能并可以此作为起点。以这个为起点,额外的配置能够实现应用的分层次详细的安全控制。 我们将从我们不安全的在线商店开始,并且使用三步操作将它变成一个拥有基本用户名和密码安全认证的站点。这个认证仅仅是为了转载 2014-12-17 11:41:35 · 360 阅读 · 0 评论 -
《Spring Security3》第二章第三部分翻译(下)附前两章doc文档
关注这个系列的同学们有福了,我把前两章翻译的doc文档上传了,欢迎传播。有谬误之处,请不吝指正。 使用Spring表达式语言配置访问控制 基于角色标准投票机制的标准实现是使用RoleVoter,还有一种替代方法可用来定义语法复杂的投票规则即使用Spring表达式语言(SpEL)。要实现这一功能的直接方式是在配置元素上添加use-expressions属性:转载 2014-12-17 14:53:27 · 495 阅读 · 0 评论 -
关于对《Spring Security3》一书的翻译说明
原文地址:http://lengyun3566.iteye.com/blog/1068998最近阅读了《Spring Security3》一书,颇有收获(封面见图片)。因此将其部分内容翻译成中文,对于电子版内容,本人放弃一切权利。在翻译之前,本人曾发邮件征询原作者的意见,如今已是半月有余,未见其回复。因为非盈利为目的,所以斗胆将内容发布于博客之上。这是我第一转载 2014-12-17 11:30:40 · 566 阅读 · 0 评论 -
《Spring Security3》第七章第二部分翻译(高级ACL)(下)
支持ACL的Spring表达式语言 SpEL对ACL系统的支持仅限于方法安全,通过使用hasPermission SpEL方法。典型情况下,这种类型的访问检查会与引用一个或多个传入参数(进行@PreAuthorize检查)或集合过滤(进行@PostAuthorize检查)联合使用。 遗憾的是,启用ACL方法安全配置需要我们配置所有的方法安全以明确的Spring Bean转载 2015-01-27 14:46:19 · 504 阅读 · 0 评论 -
《Spring Security3》第二章第一部分翻译
第二章 Spring Security起步在本章中,我们将要学习SpringSecurity背后的核心理念,包括重要的术语和产品架构。我们将会关注配置Spring Security的一些方式以及对应用的作用。最重要的是为了解决工作中的问题,我们要开始使得JBCP Pets的在线商店系统变得安全。我们将会通过分析和理解认证如何保护在线商店的适当区域来解决在第一章:一个不安全应用的剖析中审计转载 2014-12-17 11:40:49 · 374 阅读 · 0 评论 -
《Spring Security3》第四章第一部分翻译上(数据库管理信息)
这次上传的部分内容是入门级的,比较简单,但是本章整体的功能还是非常重要的。 第四章 凭证安全存储到现在为止,我们已经将JBCP Pets站点做了一些用户友好性方面的升级,包括一个自定义的登录页、修改密码以及remember me功能。 在本章中,我们将会把到目前为止都在使用的内存存储转移到数据库作为后台的认证存储。我们将会介绍默认的Spring Security数据库转载 2014-12-18 15:33:05 · 350 阅读 · 0 评论 -
《Spring Security3》第三章第四部分翻译(修改密码)
实现修改密码管理现在我们将要对基于内存的UserDetailsService进行简单的扩展以使其支持用户修改密码。因为这个功能对用户名和密码存于数据库的场景更有用,所以基于o.s.s.core.userdetails.memory.InMemoryDaoImpl扩展的实现不会关注存储机制,而是关注框架对这种方式扩展的整体流程和设计。在第四章中,我们将通过将其转移到数据库后台存储来进一步扩展我们转载 2014-12-18 13:11:22 · 541 阅读 · 0 评论 -
《Spring Security3》第四章第一部分翻译下(自定义的UserDetailsService)
实现自定义的JDBC UserDetailsService正如在前面章节中的那个练习,我们将以基本的JdbcDaoImpl作为起点,将其进行扩展以支持修改密码功能。创建一个自定义的JDBC UserDetailsService在com.packtpub.springsecurity.security包下创建如下的类: Java代码 public class转载 2014-12-18 16:31:03 · 603 阅读 · 0 评论 -
《Spring Security3》第三章第三部分翻译下(Remember me安全吗?)
Remember me是否安全?对我们精心保护的站点来说,为了用户体验而添加的任何与安全相关的功能,都有增加安全风险的潜在可能。按照其默认方式,Remember me功能存在用户的cookie被拦截并被恶意用户重用的风险。下图展现了这种情况是如何发生的: 使用SSL(第四章进行讨论)以及其他的网络安全技术能缓解这种类型攻击的风险,但是要注意的是还有其他技术如跨站脚本攻击(转载 2014-12-18 11:07:57 · 400 阅读 · 0 评论 -
《Spring Security3》第三章第三部分翻译上(Remember me功能实现)
Remember me对于经常访问站点的用户有一个便利的功能就是remember me。这个功能允许一个再次访问的用户能够被记住,它通过在用户的浏览器上存储一个加密的cookie来实现的。如果Spring Security能够识别出用户提供的remember me cookie,用户将不必填写用户名和密码,而是直接登录进入系统。 与到目前为止我们介绍的其它功能不同,remember m转载 2014-12-18 10:25:12 · 435 阅读 · 0 评论 -
《Spring Security3》第四章第二部分翻译(JdbcDaoImpl的高级配置)
JdbcDaoImpl的高级配置JdbcDaoImpl拥有众多的可配置选项使其可以在已存在的schema中使用,或对其功能进行更复杂地调整。在很多场景下,很可能我们只需调整内置UserDetailsService类的配置而不需要写自己的代码。 有一个很重要的功能就是在用户(User)和权限(GrantedAuthority)之间添加一个隔离层(a level of indirectio转载 2014-12-19 10:22:02 · 568 阅读 · 0 评论 -
《Spring Security3》第七章第二部分翻译(高级ACL)(上)
高级ACL话题 一些高级的话题在我们配置ACL环境时略过了,包括处理ACE许可授权,在运行时根据GrantedAuthority确定某种类型的ACL变化是否允许。既然现在我们已经有了一个运行环境,那我们要开始了解这些更高级的话题。Permission如何工作 许可授权(permission)只不过是简单的逻辑标识符用一个整数的二进制位来表示。一个访问控制转载 2015-01-22 15:41:17 · 449 阅读 · 0 评论