Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从客户端x509证书检索主体_Java_Spring_Ssl_Spring Security_X509 - Fatal编程技术网

Java 无法从客户端x509证书检索主体

Java 无法从客户端x509证书检索主体,java,spring,ssl,spring-security,x509,Java,Spring,Ssl,Spring Security,X509,我在web应用程序中使用Spring安全性,并使用x509证书进行身份验证 <x509 subject-principal-regex="CN=[^,]* ([^,]*),.*$" user-service- ref="MyAuthService" /> 一切正常,我可以检索我的主体并在Java类中获取它。 当环境发生基础架构级别的更改(服务器迁移和安全更改等)时,我的问题就开始了。我无法再检索此信息。 我想做的是调试我从x509证书中获得的头/主题,以便查看是否需要更改正则

我在web应用程序中使用Spring安全性,并使用x509证书进行身份验证

<x509 subject-principal-regex="CN=[^,]* ([^,]*),.*$" user-service- ref="MyAuthService"  />

一切正常,我可以检索我的主体并在Java类中获取它。 当环境发生基础架构级别的更改(服务器迁移和安全更改等)时,我的问题就开始了。我无法再检索此信息。 我想做的是调试我从x509证书中获得的头/主题,以便查看是否需要更改正则表达式以检索主体。
但我不知道如何在春季安全中做到这一点。如何在应用程序级别记录x509证书的完整标题/主题。我使用的是spring security 3.1

如果您希望在处理证书时看到证书的更多细节,那么值得注意的是,实现这些过滤器的spring代码确实实现了调试日志记录。例如,X509AuthenticationFilter在X509Certificate对象上记录toString()的结果:

logger.debug("X.509 client authentication certificate:" + certs[0]);
同样,SubjectDNX509TruncipalExtractor记录从证书中提取的subjectDN及其确定的用户名

在这种情况下,如果您使用的是Log4J,那么可以通过将以下内容放入Log4J.xml配置文件中,将这些内容放入日志文件中

<logger name="org.springframework.security.web.authentication.preauth.x509">
    <level value="debug" />
</logger>


其他日志框架将有类似的机制来支持特定类或包的调试日志记录。

我个人很想和基础设施/安全团队谈谈,并要求他们正确地整理他们的标准。)