1
我想在Tomcat 7應用程序上設置相互認證。我server.xml中有以下接口:Tomcat 7上的相互認證和request.getUserPrincipal()
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8443"
enableLookups="true"
acceptCount="100"
connectionTimeout="20000"
useURIValidationHack="false"
disableUploadTimeout="true"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="servercert.jks"
keystorePass="password"
truststoreFile="truststore.jks"
truststorePass="password"
clientAuth="true"
sslProtocol="TLS" />
當我嘗試使用類似的URL打一個Struts動作爲 「https:// TESTSERVER:8443/MyApp的/ LoadUser.do」,我被提示瀏覽器獲取客戶端證書。當我提供我的服務器信任的證書時,它似乎可以正常驗證。在服務器端,我期望通過調用request.getUserPrincipal()來獲取客戶端證書的公用名,但它只是空。我是否認爲getUserPrincipa()應該設置爲CN?如果是的話,我做錯了什麼/失蹤。如果不是,我如何在服務器端檢索CN?
謝謝。