簡體   English   中英

無法從客戶端x509證書檢索主體

[英]Cannot retrieve the principal from the client x509 certificate

我在Web應用程序中使用Spring安全性,並在使用x509證書進行身份驗證。

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

一切正常,我可以檢索我的主體並將其放入Java類中。 當環境上的基礎結構級別發生更改(服務器遷移和安全更改等)時,我的麻煩就開始了。 我不再能夠檢索此信息。 我想做的是調試從x509證書中獲取的標頭/主題,以查看是否需要更改正則表達式來檢索主體。 但是我不知道如何在春季安全中做到這一點。 我怎么說:在應用程序級別記錄來自x509證書的完整標題/主題。 我正在使用Spring Security 3.1

如果您希望在處理證書時看到更多詳細信息,則值得注意的是,實現這些過濾器的Spring代碼確實實現了調試日志記錄。 例如,X509AuthenticationFilter將toString()的結果記錄在X509Certificate對象上:

logger.debug("X.509 client authentication certificate:" + certs[0]);

同樣,SubjectDnX509PrincipalExtractor記錄它從證書中提取的subjectDN和它確定的用戶名。

在這種情況下,如果您使用的是Log4J,則可以通過將以下內容放入log4j.xml配置文件中來在日志文件中獲取它們。

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

其他日志記錄框架將具有類似的機制,用於啟用特定類或程序包的調試日志記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM