我已经根据 Spring Security 的要求使用 SSL 设置、客户端和服务器证书(X.509)提供了码头,到目前为止,这一切似乎都工作正常并通过日志验证。
现在!问题是当我访问安全页面时,客户端(Chrome)正在发送证书并且服务器正在成功接收它,但之后它返回给我一个空用户。有没有人知道这里发生了什么?
我正在提供一些关于我在这里尝试的信息:
环境
Windows/Jetty(版本:8.1.11.v20130520)/Spring Security(3.2.0)
码头中的连接器(版本:8.1.11.v20130520)
<connector implementation="org.eclipse.jetty.server.ssl.SslSocketConnector">
<port>9443</port>
<keystore>src/test/resources/server.jks</keystore>
<needClientAuth>true</needClientAuth>
<keyPassword>password</keyPassword>
<password>password</password>
</connector>
安全配置文件
<sec:x509 subject-principal-regex="CN=(.*?)"
user-service-ref="myUserDetailsService" />
日志提取
09:42:24:214 调试 org.springframework.security.web.authentication.preauth.x509.SubjectDnX509PrincipalExtractor (SubjectDnX509PrincipalExtractor.java:43) - 主题 DN 是 'CN=rod, OU=Spring Security, O=Spring Framework' 09 :42:24:218 调试 org.springframework.security.web.authentication.preauth.x509.SubjectDnX509PrincipalExtractor (SubjectDnX509PrincipalExtractor.java:58) - 提取的主体名称为“”