Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SSL客户端身份验证的Jetty truststore身份验证_Ssl_Clojure_Jetty_Truststore - Fatal编程技术网

使用SSL客户端身份验证的Jetty truststore身份验证

使用SSL客户端身份验证的Jetty truststore身份验证,ssl,clojure,jetty,truststore,Ssl,Clojure,Jetty,Truststore,我正在尝试制作一个web应用程序,使用客户端密钥进行客户端身份验证。我想我已经解决了整个truststore的问题,这样我就可以让客户机真正通过身份验证。但是,我不想要求客户端身份验证。我只是想测试它,如果它被启用了,我就启用它的特性 我可以使用.wantClientAuth来请求它,但如果它不存在,则允许连接。但是我找不到任何属性来确定请求是否已通过身份验证 这应该存在,否则wantClientAuth的目的是什么。如何使用它?我没有在这里运行安装程序来测试它,但不应该 request.get

我正在尝试制作一个web应用程序,使用客户端密钥进行客户端身份验证。我想我已经解决了整个truststore的问题,这样我就可以让客户机真正通过身份验证。但是,我不想要求客户端身份验证。我只是想测试它,如果它被启用了,我就启用它的特性

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


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

我没有在这里运行安装程序来测试它,但不应该
request.getUserPrincipal()
request.getAuthType()
给你想要的


(假设您在工作的上下文中有权访问servlet请求)

如果您正在使用servlet API,请使用Tim的方法。以下是一些其他的想法,具体取决于您的通话环境

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

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


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

我确实有serverlet请求。问题是这两种方法都返回零。这两种方法都不起作用。我还没有积极地解决这个问题,因为我找到了一个解决方法,包括通过一个单独的通道发送客户端授权的通信。我可能会继续使用这个解决方案。