`
xyz20003
  • 浏览: 292825 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

(翻译)Spring Security-2.0.x参考文档“X.509认证”

阅读更多
X.509认证
18.1. 概述

X.509证书认证最常见的使用方法是使用SSL验证服务器的身份,通常情况是在浏览器使用SSL。 浏览器使用一个它维护的可信任的证书权限列表,自动检测服务器发出的证书(比如数字签名)。

你也可以使用SSL进行“mutual authentication”相互认证;服务器会从客户端请求一个合法的证书,作为SSL握手协议的一部分。 服务器将验证客户端,通过检测它被签在一个可接受的权限里的认证。 如果已经提供了一个有效的证书,就可以从程序的servlet API里获得。 Spring Security X.509模块确认证书,使用过滤器,传递一个配置好的X.509认证提供器,允许任何复杂的特定程序检测使用。 它也可以为应用程序的用户映射证书,并使用标准的Spring Security基础设施读取用户的已授予权限集合。

你应该很熟悉使用证书,在使用Spring Security之前为你的servlet容器启动客户端认证。 大多数工作都是创建和安装合适的证书和密匙。 比如,如果你使用tomcat,可以阅读这里的教程http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html。 在你把它用在Spring Security里之前,先知道它是怎么工作,是很重要的。
18.2. 把X.509认证添加到你的web系统中

启用X.509客户端认证非常直观。 只需要把<x509/>元素添加到你的http安全命名空间配置里。

<http>
...
    <x509 subject-principal-regex="CN=(.*?)," user-service-ref="userService"/>
...
</http>
           

这个元素有两个可选属性:

    *

      subject-principal-regex。这是一个正则表达式,用来从证书主体名称里获得用户名。默认值已经写在上面了。这个用户名会传递给UserDetailsService来获得用户的认证信息。
    *

      user-service-ref。这是X.509需要用到的一个UserDetailsService的bean的id。如果你的application context里只定义了一个bean,就不需要使用它。

subject-principal-regex应该包含一个单独的组。 比如默认的表达式"CN=(.*?),"匹配普通的名字字段。 所以,如果证书主题名是"CN=Jimi Hendrix, OU=...",就会得到一个名叫"Jimi Hendrix"的用户。 这个匹配是大小写不敏感的。 所以"emailAddress=(.?),"也会匹配"EMAILADDRESS=jimi@hendrix.org,CN=...",得到一个"jimi@hendrix.org"用户名。 如果客户端给出一个证书,并成功获得了一个合法用户名,然后在安全环境里应该有一个有效的Authentication对象。 如果没有找到证书,或没有找到对应的用户,安全环境会保持为空。 这说明你可以很简单的和其他选项一起使用X.509认证,比如基于表单登录。
18.3. 为tomcat配置SSL

在Spring Security项目的samples/certificate目录下,有几个已经生成好的证书。 如果你不想自己去生成,就可以使用们启用SSL做测试,。 server.jks文件包含了服务器证书,私匙和签发证书颁发机构证书。 这里还有一些客户端证书文件,提供给例子程序的用户。 你可以把他们安装到你的浏览器,启动SSL客户端认证。

要运行支持SSL的tomcat,把 server.jks 文件放到tomcat的 conf 目录下,然后把下面的连接器添加到 server.xml 文件中

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true"
            clientAuth="true" sslProtocol="TLS"
            keystoreFile="${catalina.home}/conf/server.jks"
            keystoreType="JKS" keystorePass="password"
            truststoreFile="${catalina.home}/conf/server.jks"
            truststoreType="JKS" truststorePass="password"
/>
               

clientAuth 也可以设置成 want,如果你希望客户端没有提供证书的时候SSL链接也能成功。 客户端不提供证书的话,就不能访问Spring Security的任何安全对象,除非你使用了非X.509认证机制,比如表单认证。
分享到:
评论

相关推荐

    Spring Security 2.0.x完全中文参考文档

    ### Spring Security 2.0.x完全中文参考文档 #### 序言 本文档旨在为用户提供一份详尽且全面的Spring Security 2.0.x版本的中文指南,它不仅覆盖了核心概念、配置方法以及实际应用案例,还深入探讨了安全框架的...

    Spring Security参考文档2.0.x.chm

    Spring Security参考文档2.0.x.chm,

    Spring Security 2.0.x中文参考文档.pdf

    NULL 博文链接:https://ReturnOfKing.iteye.com/blog/255089

    spring-framework-5.0.8.RELEASE官方完整包加官方文档

    6. **Spring Security**:5.0版本的Spring Security提供了新的安全特性和改进,如支持OAuth2.0、JWT(JSON Web Tokens)等,强化了认证和授权流程。 7. **Reactor升级**:Spring 5使用了Reactor 3.x作为其响应式...

    Spring Security 2.0.x 参考文档

    博文链接:https://antgreen.iteye.com/blog/241206

    spring-security-reference.pdf

    Spring Security是一个功能强大且高度可定制的认证和访问控制框架,它是针对Java应用程序的安全性需求而设计的。...开发者可以通过阅读官方参考文档来掌握如何在项目中应用和配置Spring Security,实现所需的安全功能。

    Spring Security最新文档(英文)

    4. **示例应用程序**:文档提供了多个示例应用程序,如教程示例、LDAP示例、OpenID示例、CAS示例、JAAS示例和预认证示例,以帮助开发者了解如何在不同场景下应用Spring Security。 5. **Servlet应用程序**:这部分...

    Spring-Security2.0 和 3.0中文文档

    Spring Security 2.0 提供了基础的认证和授权功能,而3.0进一步强化了模块化设计。这使得开发者可以根据项目需求选择合适的组件,如Web安全模块、方法安全模块和密码存储模块等。 2. **表达式式访问控制...

    Spring Security 2.0 中文参考文档

    **Spring Security 2.0 知识点详解** Spring Security 是一个强大且高度可定制的权限访问控制框架,主要用于Java应用程序的安全性管理。在2.0版本中,它提供了全面的解决方案来保护Web应用程序免受各种安全威胁。...

    Spring Security 参考手册 中文版

    Spring Security 2.0.x 参考手册 中文版

    spring-framework-4.3.6.RELEASE-文档&约束

    文档可能包括用户指南、开发者参考、API文档和各种教程。对于开发者来说,这是一个宝贵的资源,帮助他们理解和学习如何利用Spring来构建企业级Java应用程序。 5. **schema**:这部分可能包含了Spring的XML配置文件...

    activiti6-springboot2.0-demo.zip

    本项目"activiti6-springboot2.0-demo.zip"就是一个实例,展示了如何将 Activiti 6 集成到 SpringBoot 2.0 的环境中,并实现流程高亮显示、在线Web设计器集成以及相关的Java代码和参考文档。 一、Activiti 6 知识点...

    spring-boot-2.0.0.RELEASE.zip

    - **安全控制**:通过Spring Security,可以方便地实现用户认证和授权,保护应用的安全。 - **微服务架构**:结合Spring Cloud,可以构建完整的微服务生态系统,包括服务注册与发现、配置中心、熔断机制等。 4. ...

    Spring-Secutity-5.0.3

    Spring Security是Java平台上一个强大的安全框架,主要...Spring Security是一个功能丰富且不断进化的安全框架,每个版本的更新都会增加新的特性和改进现有功能,因此建议开发者参考官方文档进行深入学习和实际应用。

    apache-cxf-3.1.6.zip官网完整包

    通过阅读官方文档、API参考和示例,您可以更深入地学习如何使用Apache CXF创建和部署Web服务,以及如何利用其与Spring的集成来构建健壮的服务端应用。同时,持续关注Apache CXF的更新,以便及时获取最新的特性和改进...

    spring2.0 security

    《Spring Security 2.0深度解析》 Spring Security是一款强大的安全框架,用于处理Java应用程序的安全需求,特别是...在实际开发中,可以参考博客链接中的内容,结合官方文档,逐步探索和掌握Spring Security的精髓。

    spring security 优秀中文资料+例子(包含多个中文资料,很全)

    "Spring+Security+2.0.x+参考文档.pdf" 和 "spring+security+参考文档.pdf" 是官方或非官方的Spring Security参考文档,它们包含了详尽的技术细节和使用示例。这些文档可以帮助你了解Spring Security的所有功能,...

    security-enterprise-FrontBackSplit_2.3.0.zip

    4. **文档**:提供详细的安装指南、API参考、使用示例等,帮助开发者理解和使用这个框架。 5. **测试用例**:用于验证框架功能的正确性,通常包括单元测试和集成测试。 6. **构建脚本**:如Maven的pom.xml或npm的...

Global site tag (gtag.js) - Google Analytics