`
lengyun3566
  • 浏览: 446588 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
D59180b9-02f1-3380-840c-ea34da46143c
《Spring Secur...
浏览量:379171
社区版块
存档分类
最新评论
文章列表
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
Global site tag (gtag.js) - Google Analytics