2

Eclipse から次のコードを実行しようとすると、常に戻り値が null になります。

    X509Certificate cert[] = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");
System.out.println("cert: " + cert[0]); //always returns null

誰かがこの問題について私を助けてくれますか? クライアント認証値を true に設定する必要があるとどこかで読みましたが、どうすればよいですか? pom.xml と web.xml を使用します (以下に添付)。

web.xml:
<security-constraint>
  <web-resource-collection>
    <web-resource-name>HTTPS<web-resource-name>
    <url-pattern>/*<url-pattern>
  </web-resource-collection>
  <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
</security-constraint>
<login-config>
  <auth-method>CLIENT-CERT</auth-method>
</login-config>

pom.xml:
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
  <httpsPort>8443</httpsPort>
  <keystoreFile>${basedir}/certs/keystore.jks</keystoreFile>
  <keystorePass>changeit</keystorePass>
</configuration>

どんな助けでも本当に感謝しています!!

ありがとう!

4

1 に答える 1

1

デフォルトでは、クライアント認証は false です。このプロパティを使用して true にすることができるはずです。

maven.tomcat.https.clientAuth

詳細については、こちらをご覧ください

このプロパティは、プラグインのバージョン 2.1 でのみ使用できることに注意してください。

于 2013-05-10T18:00:18.853 に答える