我有一个用 Java 制作的 SOAP Web 服务,在 Oracle Weblogic 上运行。我需要获取客户端连接应提供的证书,并提取一些信息(IssuerDN)。我该怎么办?
编辑:我认为我遇到的第一件事是如何获取输入流/连接?那么我如何获得证书呢?
最佳答案
这取决于您正在运行的实现。在某些情况下,请求证书可能会放在 SOAPMessageContext 上。如果是这种情况,您可以实现 SOAPhandler 来获取请求中使用的证书。
例如,在 IBM Websphere 的基于 Axis2 的 JAX-WS 实现中,以下代码将检索证书:
public X509Certificate getRequestCertificate(SOAPMessageContext aMessageContext) {
return ((java.security.cert.X509Certificate) aMessageContext.get("com.ibm.xml.soapsec.RequestCert"));
}
注意,请注意以下事项。 Web 服务容器实现的供应商可能不支持上面的代码。
关于Java WSDL Web 服务获取客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18584150/