2012-03-29 60 views
1

我是Jboss和Spring的新手。但要了解PKI 509如何工作并知道如何生成所需的证书。麻烦在于使用基于Spring安全PKI 509登录的Jboss。
这将是一个很好的教程来达到同样的...如何用Spring安全PKI 509登录配置Jboss?

感谢
Nohsib

回答

2

首先,您必须启用JBoss的SSL,使用服务器证书作为密钥库,以及相关联的信任对于签署了服务器证书的CA Cert链,以及用于签署客户端证书的任何链,您希望与您的服务器进行交互。您还需要将clientAuth设置为“true”(客户端必须有证书)或“想要”(允许在客户端没有客户端证书的情况下回退到另一个身份验证方法,如BASIC):

现在你的web应用程序中,你需要配置Spring并启用X509预验证过滤器。这将从servlet请求属性javax.servlet.request.X509Certificate中提取客户端的DN。然后可以提取该DN的一部分(例如CN),然后将其与UserDetailsService实施结合使用以查找(例如在DB中或通过WS呼叫)用户细节。

除此之外,您可以提供基于用户的详细信息,如角色,组,单位部门等授权

对于一个简单的Spring配置可能是这个样子(未经测试,纯粹从我写过这样的东西多次的记忆):

<http:http> 
    <!-- X509 Filter to extract PKI CN field as the users name, which is then 
     passed to the userService to lookup their details (such as roles) --> 
    <http:x509 subject-principal-regex="CN=(.*?)," 
     user-service-ref="userService"/> 

    <!-- filter all traffic to any URL, user must be authenticated and had the specified 
     role in their UserDetails object --> 
    <intercept-url pattern='/**' access='ROLE_USER' /> 
</http:http> 

<!-- Custom user service that calls out to Restful web service to acquire user 
    details information, based upon the PKI Certs CN field --> 
<beans:bean id="userService" 
    class="com.domain.security.user.ws.RestfulUserService"> 
</beans:bean> 

最后,它是一大堆文本可供阅读,但Spring Security的文档非常好,并提供了有关幕后事情的示例和洞察 - 我强烈建议阅读(这是我从中了解到的全部内容!):