我有一个用 Java 制作的 SOAP Web 服务,在 Oracle Weblogic 上运行。我需要获取应该由连接的客户端提供的证书,并提取一些信息(IssuerDN)。我该怎么办?
编辑:我认为我坚持的第一件事是如何获得输入流/连接?那我怎么拿到证书呢?
我有一个用 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 服务容器实现的供应商可能不支持上述代码。