首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SOAP中介Wso2 ESB

SOAP中介Wso2 ESB
EN

Stack Overflow用户
提问于 2012-09-06 10:08:34
回答 2查看 1.2K关注 0票数 0

你好,我有以下消息:

代码语言:javascript
复制
 <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
      <soapenv:Header>
         <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="true">
            <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-11">
               <wsu:Created>2012-09-06T09:59:04.031Z</wsu:Created>
               <wsu:Expires>2012-09-06T10:04:04.031Z</wsu:Expires>
            </wsu:Timestamp>
            <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-12">
               <wsse:Username>admin</wsse:Username>
               <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">admin</wsse:Password>
            </wsse:UsernameToken>
         </wsse:Security>
      </soapenv:Header>
      <soapenv:Body />
   </soapenv:Envelope>

我想使用一个XPath从传入的消息中获取用户名<wsse:Username>admin</wsse:Username>

有什么建议吗?

编辑:

我试过这个:

代码语言:javascript
复制
<inSequence xmlns="http://ws.apache.org/ns/synapse">
   <property xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" name="p1" expression="$header/wsse:Username" scope="default" />
   <log>
      <property name="output*********" expression="get-property('p1')" />
   </log>
</inSequence>

但是它没有输出用户名:

代码语言:javascript
复制
MessageID: urn:uuid:68f95493-7dfd-416a-b
455-f77f4fd5c9c5, Direction: request, output********* =
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-08 04:05:14

努维奥

您可以使用表达式"$ header /wsse: Security“,其中"wsse”前缀为Security元素所携带的名称空间。下面是如何将其保存到Synapse message context属性中。

代码语言:javascript
复制
<property xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" name="Security" expression="$header/wsse:Security" />

FYI,您可以使用语法"$ header /header_name“来提取SOAP消息中存在的任何SOAP标头元素。

希望这能有所帮助!

干杯,普拉巴思

票数 1
EN

Stack Overflow用户

发布于 2013-01-24 06:52:45

否则,您可以选择使用这个xpath:"//wsse:Username/text()",我认为它会帮助您,我也是这个wso2工具的新手。

希望这能载你..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12297694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档