OSB Message-Level Custom Security

本文描述OSB Message-Level Custom Security的实现过程(demo)

1、创建test.wsdl文件,其中包括传递进来用于验证身份的用户名和密码:user,pwd

OSB Message-Level Custom Security_第1张图片

2、创建两个proxyservices:psSyncData.proxy和psStar.proxy

其中psSyncData.proxy主要用于处理业务逻辑和验证身份,psStar.proxy则是为psSyncData.proxy提供验证信息的信息提供者

对于psSyncData.proxy的设置如下:

1)在Message Flow中设置Routing,Routing的service指向psSyncData.proxy;

2)在Request Action中设置两个insert,向header变量中插入两个参数user和pwd,这俩参数会在psSyncData.proxy的security中被引用;

OSB Message-Level Custom Security_第2张图片

psSyncData.proxy需要做设置如下:

1)Service Type选择:Any Type SOAP Service

2)在security tab中,选择Custom User Name and Password并定义User Name/Password XPath,如下图:

3)在Mssage Flow中,调用业务处理所用的businessServices,并将Soap的header替换还原成正确的,否则可能会引起Internal Server Error

 OSB Message-Level Custom Security_第3张图片

以上传入的用户名和密码是用weblogic进行验证的,因此用户名和密码需要预先在weblogic的安全域里设置好。

 

以上为Message -Level Custom Security的简单设置步骤

 

常见报错:

<soapenv:Fault>
  <faultcode>soapenv:Server</faultcode>
  <faultstring>BEA-386101: Missing authentication token</faultstring>
  <detail>

 原因为:在ProxyServices中设置的user和password与soap header中设置token不一致。

如在soap header中设置如下:

<soap:Header 

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

 

<pwd>12345678</pwd>

 

<username>AAB</username>

 

</soap:Header>

在proxyServices中User Name XPath为:./user/text()

user和username不一致导致以上报错。

你可能感兴趣的:(OSB Message-Level Custom Security)