首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sabre无会话身份验证

Sabre无会话身份验证
EN

Stack Overflow用户
提问于 2018-01-27 23:23:33
回答 1查看 250关注 0票数 0

我正在尝试获取无会话令牌。下面是xml,但它不能工作,这是一个抛出的错误。它正在给出错误。有几个东西丢失了,我不确定要传递什么,例如sec:BinarySecurityToken,SabreAth,mes:Role。

代码语言:javascript
运行
复制
<StackTrace>com.sabre.universalservices.base.exception.InvalidEbXMLException: errors.xml.USG_EBXML_FIELD_TOO_LONG</StackTrace>

请求XML

代码语言:javascript
运行
复制
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:mes="http://www.ebxml.org/namespaces/messageHeader" xmlns:web="http://webservices.sabre.com">
   <soapenv:Header>
      <sec:Security>
         <!--Optional:-->
         <sec:UsernameToken>
            <!--Optional:-->
            <sec:Username>123</sec:Username>
            <!--Optional:-->
            <sec:Password>mypass</sec:Password>
            <!--0 to 2 repetitions:-->
            <sec:NewPassword>mypass</sec:NewPassword>
            <!--Optional:-->
            <Organization>org1</Organization>
            <!--Optional:-->
            <Domain>AAA</Domain>
         </sec:UsernameToken>
         <!--Optional:-->
         <sec:SabreAth>?</sec:SabreAth>
         <!--Optional:-->
         <sec:BinarySecurityToken>?</sec:BinarySecurityToken>
      </sec:Security>
      <mes:MessageHeader mes:id="?" mes:version="?">
         <mes:From>
            <!--1 or more repetitions:-->
            <mes:PartyId mes:type="?">sastaticket.pk</mes:PartyId>
            <!--Optional:-->
            <mes:Role>?</mes:Role>
         </mes:From>
         <mes:To>
            <!--1 or more repetitions:-->
            <mes:PartyId mes:type="?">https://sws-crt.cert.havail.sabre.com</mes:PartyId>
            <!--Optional:-->
            <mes:Role>?</mes:Role>
         </mes:To>
         <mes:CPAId>?</mes:CPAId>
         <mes:ConversationId>1234</mes:ConversationId>
         <mes:Service mes:type="?">Session</mes:Service>
         <mes:Action>TokenCreateRQ</mes:Action>
         <mes:MessageData>
            <mes:MessageId>?</mes:MessageId>
            <mes:Timestamp>2018-01-28T00:00:00</mes:Timestamp>
            <!--Optional:-->
            <mes:RefToMessageId>?</mes:RefToMessageId>
            <!--Optional:-->
            <mes:TimeToLive>2018-01-28T00:00:00</mes:TimeToLive>
            <!--Optional:-->
            <mes:Timeout>2018-01-28T00:00:00</mes:Timeout>
         </mes:MessageData>
         <!--Optional:-->
         <mes:DuplicateElimination>?</mes:DuplicateElimination>
         <!--Zero or more repetitions:-->
         <mes:Description xml:lang="?">?</mes:Description>
         <!--You may enter ANY elements at this point-->
      </mes:MessageHeader>
   </soapenv:Header>
   <soapenv:Body>
      <web:TokenCreateRQ Version="?"/>
   </soapenv:Body>
</soapenv:Envelope>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-29 13:00:25

您似乎在MessageData节点中发送了太多信息。如果您遵循Dev Studio中的示例Sabre,那么只有MessageId和TimesStamp能够成功。对于Sabre WS,有时并非所有可选节点都是必需的,在这种情况下,您发送的是不需要的额外信息。

您将想要删除以下内容:

代码语言:javascript
运行
复制
 <mes:TimeToLive>2018-01-28T00:00:00</mes:TimeToLive>
 <mes:Timeout>2018-01-28T00:00:00</mes:Timeout>

只要像这样做就可以了:

代码语言:javascript
运行
复制
 <mes:MessageData>
    <mes:MessageId>?</mes:MessageId>
    <mes:Timestamp>2018-01-28T00:00:00</mes:Timestamp>
 </mes:MessageData>

还要注意Domain,它应该是AA或DEFAULT,但不是"AAA“。

由于您没有令牌,因此还必须删除此节点:

代码语言:javascript
运行
复制
<sec:BinarySecurityToken>?</sec:BinarySecurityToken>

该服务与已有令牌的服务略有不同。

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

https://stackoverflow.com/questions/48477243

复制
相关文章

相似问题

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