我有一个用Java编写的SOAP Web服务,在Oracle Weblogic上运行。我需要获取应由客户端连接提供的证书,并提取一些信息(IssuerDN)。我该怎么做呢?
编辑:我认为我坚持的第一件事是如何获得输入流/连接?那我怎么拿到证书?
答案 0 :(得分:1)
这取决于您正在运行的实现。在某些情况下,请求证书可以放在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服务容器实现的供应商的支持。