5

总的来说,我是 spring-security 的新手,有点困惑。

我试图将其与此集成的项目使用 X509 证书来识别用于登录应用程序的用户。没有用户名或密码。我们验证证书是好的,并且他们已被授予访问我们的应用程序的权限。

问题是我如何将 spring 集成到其中以使用 X509 证书获得他们的角色?

我见过这个

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

但我不明白这是如何工作的。它仍然需要密码吗?还是它只需要这个主题?

4

2 回答 2

1

但我不明白这是如何工作的。它仍然需要密码吗?还是它只需要这个主题?

我认为这就是它所需要的。我相信该模型是 TLS 协议使用公钥加密技术确定用户/客户端“拥有”证书,归结为用户/客户端知道证书的私钥。假设只有用户知道他自己的私钥,因此可以证明知道密钥的人就是用户。

于 2010-06-08T03:14:21.640 回答
1

至少对于访问您的服务的浏览器,系统会提示用户输入创建 X509 证书时使用的密码。您可以创建没有密码的证书,但这并不安全。

浏览器和您的 servlet 容器将在用户输入密码后处理 SSL 握手,然后如果一切顺利,您可以使用 UserDetailsS​​ervice 实现使用用户拥有的任何角色填充 Principle。

于 2010-06-08T12:00:28.130 回答