- 浏览: 452632 次
- 性别:
- 来自: 大连
博客专栏
-
《Spring Secur...
浏览量:383484
最新评论
-
蒙奇君杰:
必须感谢一番!!!愿开源的态度为更多的人所拥有,所 认同!
关于对《Spring Security3》一书的翻译说明 -
601235723:
bbjavaeye 写道你好,有个问题请教一下我配了<b ...
《Spring Security3》第四章第一部分翻译下(自定义的UserDetailsService) -
bay0902:
中国互联网的脊梁
Spring Security 3全文下载 -
hdcustc:
项目源码下载 微博网盘里的那个依赖文件损坏了啊 能否提供个可 ...
Spring Security 3全文下载 -
i641878506:
楼主辛苦, 可以提供原书的原项目文件的下载么
Spring Security 3全文下载
文章列表
Spring Security基于bean的高级配置
正如我们在前面几页中看到的那样,基于bean的Spring Security配置尽管比较复杂,但是提供了一定层次的灵活性,如果复杂应用需要超过security XML命名空间风格配置所允许的功能时会用到。
我们将利用这个章节来阐明可用的一些配置选项以及怎么使用。尽管我们不能提供每个可能属性的细节,但是我们鼓励基于在本章和以前章节学到的内容你开始探索并查询Javadoc和Spring Security的源码。你仅仅会受限于对这个框架是如何组织起来的知识和你的想象力。
Session生命周期的调整元素
...
手动配置Spring Security设施的bean
如果你工作要求的环境很复杂而Spring Security的基本功能——尽管非常强大——不能满足所有的要求,你可能最终需要自己从头构建Spring Security的过滤器链以及支持实施。这是在Spring Security参考手册中没有完全提及的部分,但是却难住了很多人。有些人将这种类型的配置成为Spring Security的“另一个宇宙(alternate universe)”。
自己构建并织入所有需要的bean,将为你提供很高的灵活性和自定义功能,这是通过security命名空间的 ...
理解和配置异常处理
Spring
Security使用简单的分发器模式将框架抛出的异常转移到明确的处理行为中,这将会影响用户对安全资源的访问。Spring Security过滤器链中最后几个过滤器之一的o.s.s.web.access.ExceptionTranslationFilter负责检查在认证和授权过程中(在过滤器链的最后一个过滤器即FilterSecurityInterceptor里)抛出的异常并采取适当的行为。
标准的ExceptionTranslationFilter支持分发处理三种常规类型的失败,如下图所示:
我们能够看到Exc ...
Session的管理和并发
Spring Security的一个常见配置就是检测相同的用户以不同的session登录安全系统。这被称为并发控制(concurrency control),是session管理(session management)一系列相关配置功能的一部分。严格来说,这个功能并不是高级配置,但是它会让很多新手感到迷惑,并且最好在你对Sping Security整体功能有所了解的基础上再掌握它。Spring Security的session管理能够以两种不同的方式进行配置——session固化保护(session fixation protection)和并发控制。因为并发 ...
实现自定义的AuthenticationProvider
在很多场景下,你的应用需要跳出Spring
Security功能的边界,可能会需要实现自己的AuthenticationProvider。回忆在第二章中AuthenticationProvider的角色,在整个认证过程中,它接受安全实体请求提供 ...
第六章 高级配置和扩展
到目前为止,我们已经介绍了大多数Spring Security组件的理论以及架构和使用。我们的JBCP Pets商业站点也在逐渐变成一个安全的web应用,我们将会深入讲解一些更有难度的挑战。
在本章的课程中,我们将会:
l 实现我们自己的安全过滤器,解决一个很有趣的问题,即对特定的用户角色用IP过滤的方式增强站点的安全;
l 构建自定义的AuthenticationProvider及需要的支持类;
l 理解和实现反黑客的措施名为session固化防护(session
fixation protection)以及session的并发控制;
...
JavaScript是一种功能强大的语言,起初它只是用于在浏览器中完成一定的Dom操作和特殊效果。随着AJAX和RIA技术的广泛普及,JavaScript发挥了越来越重要的作用,JavaScript的代码量越来越大,对可维护性的要求也越来越高。JavaScript提供了特有的类机制,但是在语法习惯上与传统面向对象的语言有很大的不同,这使得不少的JavaScript开发人员感到困惑,本文将会对JavaScript常见的类功能进行介绍。
1.JavaScript定义类及实例化
在JavaScript的语法中,并没有类似于Class
声明:本文为笔者原创,但首发于InfoQ中文站,详见文末声明
随着AJAX和RIA技术的发展,JavaScript被广泛的使用,并在开发中发挥着越来越重要的作用。JavaScript提供了特有的类机制,但是在语法习惯上与传统面向对象的语言有很大的不同,这使得不少的JavaScript开发人员感到比较迷惑,而dojo作为功能强大的JavaScript类库,有功能完整的类机制实现。本文将通过实例介绍dojo的类机制,这是dojo提供的一种强大和灵活的功能,其dijit UI组件框架也是以此为基础实现的。
1.
使用dojo
方法安全的高级知识
方法安全的表现力不仅局限于简单的角色检查。实际上,一些方法安全的注解能够完全使用Spring表达式语言(SpEL)的强大功能,正如我们在第二章中讨论URL授权规则所使用的那样。这意味着任意的表达式,包含计算、Boolean逻辑等等都可以使用。
使用bean包装类实现方法安全规则
另外一种定义方法安全的形式与XML声明有关,它可以包含在Spring Bean定义中。尽管阅读起来很容易,但是这种方式的方法安全声明在表现性上不如切点,在功能上不如我们已经见过的注解方式。但是,对于一定类型的工程,使用XML声明的方式足以满足你的需求。
...
保护业务层
到目前为止,在本书中我们的关注点都主要在JBCP Pets 应用web层面的安全。但是,在实际的安全系统规划中,对服务方法应该给予同等的重视,因为它们能够访问系统中最重要的部分——数据。
Spring
Security支持添加授权层(或者基于授权的数据处理)到应用中所有Spring管理的bean中。尽管很多的开发人员关注层的安全,其实业务层的俄安全同等主要,因为恶意的用户可能会穿透web层,能够通过没有UI的前端访问暴露的服务,如使用web service。
让我们查看下面的图以了解我们将要添加安全层的位置 ...
使用控制器逻辑进行有条件渲染内容
现在,让我们将刚刚用<authorize>标签实现的例子改成用java代码的方式。为了简洁起见,我们只实现一个例子,但实现基于控制器检查的其它例子是很简单直接的。
添 ...
实现授权精确控制的方法
精确的授权指的是基于用户特定的请求进行授权的应用功能特性。不同于我们在第二章:Spring Security起步、第三章增强用户体验和第四章凭证安全存储中的粗粒度的授权,精确的授权一般指的是对页面中的部分进行选择性显示的功能,而不是限制访问一个完整的页面。现实世界中的应用将会花费可观的时间用在规划精确授权的细节上。
Spring
Security为我们提供了两种方式来实现选择性显示的功能:
l Spring Security的JSP标签库允许通过标准的JSP标签库语法在页面本身添加条件访问声明;
l 在MVC应用的控制层,检查用 ...
第五章 精确的访问控制
到目前为止,我们已经为JBCP Pets站点添加了用户友好的一些功能,包括自定义的登录页以及修改密码、remember me功能。
在本章中,我们将要学习规划应用安全的技术以及用户/组的划分。其 ...
到此,前四章翻译完成,欢迎朋友提些意见!
将Remember me功能迁移至数据库
现在你可能会意识到我们remember me功能的实现,能够在应用重启前很好的使用,但在应用重启时用户的session会被丢失。这对用户来说会不太便利,他们不应该关心JBCP Pets的维护信息。
幸运的是,Spring Security提供了将rememberme token持久化到任何存储的接口o.s.s.web.authentication.rememberme.PersistentTokenRepository,并提供了这个接口的JDBC实 ...
你是否愿意在密码上添加点salt?
如果安全审计人员检查数据库中编码过的密码,在网站安全方面,他可能还会找到一些令其感到担心的地方。让我们查看一下存储的admin和guest用户的用户名和密码值:
用户名
明文密码
加密密码
admin
admin
7b2e9f54cdff413fcde01f330af6896c3cd7e6cd