问题描述
|
我们已将Weblogic服务器配置为在建立与客户端的ssl连接以获取Web服务解决方案时需要客户端证书。 ssl握手可以完美地工作,因为我们已经配置了所有必需的东西。
现在,在连接之后,我们确实收到了一个Soap请求,其中客户ID是此请求Soap的字段之一。
我们需要做的是对照用于连接我们服务器中的客户端证书的通用名称检查此ID,以确保交易。
这对我们来说非常重要,因为这是银行交易,涉及很多资金,我们需要避免欺诈。
因此:是否有办法从使用Weblogic 10.3.3服务器在服务器上运行的Java代码中恢复用于建立2路ssl连接的客户端证书的通用名称?
[]秒
解决方法
可以使用“ 0”方法调用从传入的Servlet请求中读取客户端的证书。当名称为“ 1”的属性创建请求对象的实例以供servlet / webservice处理时,该属性将由Servlet容器填充。
然后可以从X500Principal对象获得证书的DN,该对象是通过“ 2”方法调用从证书对象获得的。这不会提供CN,但会以指定格式为您提供完整的专有名称;可以将其解析为提供CN。
就访问ServletRequest对象而言,可以对JAX-WS Web服务进行编程以读取MessageContext,该MessageContext允许访问基础HttpServletRequest对象。