2012-02-05 15 views
1

私はTomcat 7アプリケーションで相互認証を設定しようとしています。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" にする:、私はによって促さています私のserver.xmlには、以下のコネクタを持っていますクライアント証明書のブラウザ。私のサーバーで信頼されている証明書を提供すると、正当に認証されたようです。サーバー側では、request.getUserPrincipal()を呼び出してクライアント証明書のCommon Nameを取得する予定ですが、nullです。 getUserPrincipa()をCNに設定する必要があると仮定して正しいですか?はいの場合、私は何が間違っている/行方不明です。いいえの場合は、サーバー側でCNを取得するにはどうすればよいですか。

ありがとうございました。

答えて

2

ダミーのような間違った場所を探していました。リクエストからすべての証明書情報を取得します。

request.getAttribute(org.apache.catalina.Globals.CERTIFICATES_ATTR); 
関連する問題