使用SSL client-auth进行Jetty信任库身份验证

时间:2011-02-08 01:28:21

标签: ssl clojure jetty truststore

我正在尝试使用客户端密钥进行客户端身份验证的Web应用程序。我想我已经找出了整个信任库问题,所以我可以让客户端实际验证。但是我不想要客户端身份验证。我只想测试它并启用功能(如果已启用)。

我可以使用会请求它的.wantClientAuth,但如果它不存在则允许连接。但我找不到任何属性来查明请求是否已经过身份验证。

这应该存在,否则wantClientAuth的目的是什么。我该如何使用它?

2 个答案:

答案 0 :(得分:0)

我没有在这里运行设置,现在就进行测试,但不应该 request.getUserPrincipal()request.getAuthType()给你你想要的东西。

请参阅http://www.docjar.com/docs/api/javax/servlet/http/HttpServletRequest.html

(假设您可以在您正在使用的上下文中访问servlet请求)

答案 1 :(得分:0)

如果您正在使用servlet API,请使用Tim的方法。根据您的调用情况,以下是其他一些想法。

握手完成后,您可以在SSLSession上调用getCertChain。如果它为null,则客户端不会使用客户端证书进行身份验证。

请参阅此处的自定义方法:

http://www.javadocexamples.com/java_source/org/mortbay/jetty/security/SslSocketConnector.java.html

或者,您可以在HttpsURLConnection上调用getLocalPrincipal或getLocalCertificates。如果它们为null,那么就没有客户端证书。