`
xyz20003
  • 浏览: 289968 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论
文章列表
Chapter 19. CAS认证 19.1. 概述 JA-SIG开发了一个企业级的单点登录系统,叫做CAS。 与其他项目不同,JA-SIG的中心认证服务是开源的,广泛使用的,简单理解的,不依赖平台的,而且支持代理能力。 Spring Security完全支持CAS,提供一个 ...
X.509认证 18.1. 概述 X.509证书认证最常见的使用方法是使用SSL验证服务器的身份,通常情况是在浏览器使用SSL。 浏览器使用一个它维护的可信任的证书权限列表,自动检测服务器发出的证书(比如数字签名)。 你也可以使用SSL进行“mutual authentication”相互认证;服务器会从客户端请求一个合法的证书,作为SSL握手协议的一部分。 服务器将验证客户端,通过检测它被签在一个可接受的权限里的认证。 如果已经提供了一个有效的证书,就可以从程序的servlet API里获得。 Spring Security X.509模块确认证书,使用过滤器,传递一个配置好的X.509认 ...
匿名认证 17.1. 概述 有时,特别是在web请求URI安全的情况里,为每个安全对象的调用都分配一个配置属性更方便。 不同的是,有时默认需要一个ROLE_SOMETHING更好一些,这个规则只允许一些特定例外,比如登录,注销,系统的首页。 也有需要匿名认证的其他情况,比如审核拦截器查询SecurityContextHolder来确定哪个主体可以使用对应的操作。 如果它们能确定SecurityContextHolder里总是包含一个Authentication对象,而不可能是null,这些类就可以得到更多的鲁棒性。 17.2. 配置 Spring Security提供三个类来一起提供匿名认证 ...
预认证场景 有的情况下,你需要使用Spring Security进行认证,但是用户已经在访问系统之前,在一些外部系统中认证过了。 我们把这种情况叫做“预认证”场景。 例子包括X.509,Siteminder和应用所在的J2EE容器进行认证。 在使用预认证的使用,Spring Security必须    1.       定义使用请求的用户    2.       从用户里获得权限 细节信息要依靠外部认证机制。 一个用户可能,在X.509的情况下由认证信息确定,或在Siteminder的情况下使用HTTP请求头。 对于容器认证,需要调用获得HTTP请求的getUserPrincipal( ...
Java认证和授权服务(JAAS)供应器 15.1. 概述 Spring Security提供一个包,可以代理Java认证和授权服务(JAAS)的认证请求。 这个包的细节在下面讨论。 JAAS的核心是登录配置文件。 想要了解更多JAAS登录配置文件的信息,可以查询Sun公司的JAAS参考文档。 我们希望你对JAAS有一个基本了解,也了解它的登录配置语法,这才能更好的理解这章的内容。 15.2. 配置 这个 JaasAuthenticationProvider 通过JAAS认证用户的主体和证书。 让我们假设我们有一个JAAS登录配置文件,/WEB-INF/login.conf,里边的内容如 ...
Remember-Me认证 14.1. 概述 记住我(remember-me)或持久登录(persistent-login)认证,指的是网站可以在不同会话之间记忆验证的身份。 通常情况是发送一个cookie给浏览器,在以后的session里检测cookie,进行自动登录。 Spring Security为remember-me实现提供了必要的调用钩子,并提供了两个remember-me的具体实现。 其中一个使用散列来保护基于cookie标记的安全性,另一个使用了数据库或其他持久化存储机制来保存生成的标记。 注意,两个实现方式,都需要UserDetailsService。 如果你使用了认证提供 ...
摘要式认证 13.1. 概述 Spring Security提供了一个 DigestProcessingFilter,它可以处理HTTP头部中的摘要认证证书。 摘要认证在尝试着解决许多基本认证的缺陷,特别是保证不会通过纯文本发送证书。 许多用户支持摘要式认证,包括FireFox ...
基本认证机制 12.1. 概述 Spring Security提供一个BasicProcessingFilter,它可以处理HTTP头部中的基本认证证书。 它可以用来像对待普通用户代理一样(比如IE和Navigator)认证由Spring远程协议的调用(比如Hessian和Burlap)。 HTTP基本认证的执行标准定义在RFC 1945,11章,BasicProcessingFilter符合这个RFC。 基本认证是一个极具吸引力的认证方法,因为它在用户代理发布很广泛,实现也特别简单(只需要对username:password进行Base64编码,再放到HTTP头部里)。 12.2. 配置 ...
表单认证机制 11.1. 概述 HTTP表单认证,使用AuthenticationProcessingFilter来处理一个登录表单。 这是系统认证最终用户的最常见的一种方法。 基于表单认证与DAO和JAAS认证提供器是完全兼容的。 11.2. 配置 登录表单包含j_username 和 j_password 输入框,然后将数据发送到过滤器监听的一个URL(默认是/j_spring_security_check)。 你应该把AuthenticationProcessingFilter添加到你的application context中: <bean id="authentic ...
LDAP认证 10.1. 综述 LDAP通常被公司用作用户信息的中心资源库,同时也被当作一种认证服务。 它也可以为应用用户储存角色信息。 这里有很多如何对LDAP服务器进行配置的场景,所以Spring Security的LDAP提供器也是完全可配置的。 它使用为验证和角色检测提供了单独的策略接口,并提供了默认的实现,这些都是可配置成处理绝大多数情况。 你还是应该熟悉一下LDAP,在你在Spring Security使用它之前。 下面的链接提供了很好的概念介绍,也是一个使用免费的LDAP服务器建立一个目录http://www.zytrax.com/books/ldap/的指南。 我们也应该熟 ...
DAO认证提供器 9.1. 综述 Spring Security包含了一个产品级别的AuthenticationProvider实现,叫做DaoAuthenticationProvider。 这个认证提供器兼容所有生成UsernamePasswordAuthenticationToken的验证机制,它可能是框架里最常用到的提供器。 与其他认证提供器一样,DaoAuthenticationProvider通过一个UserDetailsService来获得用户名,密码和GrantedAuthority[]。 与其他认证提供器不同的是,这个认证提供器需要获得一个密码,它会根据认证请求对象里的密码来判 ...
8.1. 机制,供应者和入口 如果你使用Spring Security提供的认证方式,你通常需要配置一个web过滤器,AuthenticationProvider 和 AuthenticationEntryPoint。 在这章里,我们将要研究一个应用例子,它要支持基于表单的认证(比如,把一个非常好的HTML页面展现给用户,让他们进行登录)和基本认证(比如一个web服务或类似可访问的被保护资源)。 在web.xml里,这个程序需要单独的Spring Security过滤器来使用FilterChainProxy。 几乎所有Spring Security程序都有这样一个入口,看起来像这样: &l ...
信道安全 7.1. 总述 为了在你的程序中协调认证与验证的要求,Spring Security也可以让未认证的web请求携带一些属性。 这些属性可能包括特定的传输类型,拥有特定的 HttpSession 属性设置,或其他。 最常见的需求是,让你的web请求使用特定的传输协议发送,比如HTTPS。 威胁传输安全的一个重要因素是会话劫持。你的web容器通过用户代理发送cookie或URL重写,使用jsessionid,来管理HttpSession。 如果jsessionid使用HTTP发送,会话标识符很可能在用户通过验证过后,被其他人拦截,再去模拟用户访问。 这是因为大多数web容器,为给定的用 ...
支持的基础设施 这章里讨论一些Spring Security中用到的基础设施。 如果这个功能跟安全没有直接关系,但是还是包含在Spring Security中了,我们就在这章里讨论它。 6.1. 国际化 Spring Security支持异常信息的国际化,最终用户会很喜 ...
技术概述 5.1. 运行环境 Spring Security可以运行在标准的Java 1.4运行环境下。 它也支持Java 5.0,不过这部分代码单独打包起来,放到发布的,文件名是"tiger"前缀的JAR文件里。 因为Spring Security的目标是自己容器内管理,所以不需要为你的Java运行环境进行什么特别的配置。 特别是,不需要特别配置一个Java Authentication and Authorization Service (JAAS)政策文件,也不需要把Spring Security放到server的classLoader下。 上面这些设计,确保了发布 ...
Global site tag (gtag.js) - Google Analytics