基于IBM Cloud Client证书的身份验证:云端的客户端证书详细信息

时间:2018-02-22 21:40:08

标签: ibm-cloud websphere-liberty client-certificates

我在IBM云上部署了自由应用程序。我已经设置了自定义域并选择了#34;请求客户端证书"这样客户端就必须通过TLS发送证书才能访问应用程序。我看到客户端身份验证确实有效,但我的应用程序中没有获得任何客户端证书信息。这使得客户端证书身份验证有点无用,因为我想知道访问我的应用程序的客户端的ID。任何帮助/指示赞赏。

我查看了请求的属性。在请求_com.ibm.websphere.servlet.uri_non_decoded_中传递了两个属性,其值为 / dummyRelPath 和_javax.servlet.request.cipher_suite_,其值为 ECDHE-RSA-AES256-GCM-SHA384 < / em>请求中没有传递名称​​ javax.servlet.request.X509Certificate 的属性。

1 个答案:

答案 0 :(得分:0)

的作用:

X509Certificate[] certs = (X509Certificate[]) 
      request.getAttribute("javax.servlet.request.X509Certificate");`

不退还任何证书?

在bluemix上的云代工厂中,您的客户端应该使用DataPower代理进行握手。该代理添加了一个自定义标头来指示所提供的TLS客户端证书,然后它通过CF gorouter传递,然后最终传递给JVM。

然后,WebSphere Liberty通过上面的API表示它。

这是通过$ WSCC请求标头传递的。如果API返回null,那么最有可能的是标头被删除或者从未被基础设施设置,而不是一直在那里,并且API神秘地失去了对它的追踪。您可以转储请求标头,特别是寻找这个标头,也许某些东西会突出(一些意外的跳/代理)。