いくつかの手順を実行する必要があります
1) クライアント証明書認証を実行するように tomcat を構成します (server.xml 内)。
<Connector port="8443"
protocol="HTTP/1.1"
SSLEnabled="true"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="100"
keyAlias="tomcat"
debug="0"
scheme="https"
secure="true"
clientAuth="want"
sslProtocol="TLS"
keystoreFile="server.keystore" keystorePass="changeit"
truststoreFile="trust.keystore" truststorePass="changeit"/>
clientAuth 属性に関するhttp://tomcat.apache.org/tomcat-7.0-doc/config/http.htmlからの明確化:
SSL スタックがクライアント証明書を要求するが、クライアント証明書が提示されなくても失敗しないようにする場合は、wantに設定します。
SSL 用に Tomcat を構成する方法について詳しくは、Tomcat 認証を参照してください: http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html
2) 次のコードを使用して hasValidClientCertificate() を実装します。
X509Certificate[] crts = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");
if (crts!= null && crts.length > 0) {
return true;
}
3) ユーザー証明書にアクセスする必要がある場合は、アクセスしてください。
X509Certificate userCert = crts [0];