2011-02-08 239 views
1

我正在嘗試使用客戶端密鑰進行客戶端身份驗證的Web應用程序。我想我已經弄清楚了整個信任庫問題,所以我可以讓客戶端實際進行身份驗證。但我不想要求客戶端身份驗證。我只想測試它並啓用功能。Jetty Truststore身份驗證與SSL客戶端身份驗證

我可以使用.wantClientAuth來請求它,但如果它不存在則允許連接。但是我找不到任何屬性來確定請求是否已通過身份驗證。

這應該存在,否則wantClientAuth的目的是什麼。我如何使用它?

+0

這兩種方法都不起作用。我還沒有積極解決這個問題,因爲我能夠找到一種解決方法,包括通過一個單獨的渠道發送客戶授權的通信。我可能會繼續使用該解決方案。 – Arelius 2011-02-24 07:48:38

回答

0

如果您使用了servlet API使用Tim的方法。這裏有一些其他的想法,取決於你的呼叫環境。

握手完成後,你可以調用SSLSession的getCertChain。如果它爲空,那麼客戶端沒有通過客戶端證書進行身份驗證。

見定製方法在這裏:

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

另外,您可以撥打getLocalPrincipal或getLocalCertificates上HttpsURLConnection的。如果它們爲空,那麼就沒有客戶端證書。