Правильно ли использовать Amazon SimpleDB WSDL для SOAP без WS-Security? - PullRequest
0 голосов
/ 09 мая 2009

Документация SimpleDB включает этот пример запроса для метода ListDomains. Обратите внимание, что есть подэлементы Signature, Timestamp, AWSAccessKeyId и Version:

  <SOAP-ENV:Body>
    <ListDomainsRequest xmlns=" http://sdb.amazonaws.com/doc/2007-11-07">
      <Signature>SZf1CHmQnrZbsrC13hCZS061ywsEXAMPLE&lt;</Signature>
      <Timestamp>2009-02-16T17:39:51.000Z</Timestamp>
      <AWSAccessKeyId>1D9FVRAYCP1VJS767E02EXAMPLE</AWSAccessKeyId>
      <Version>2007-11-07</Version>
      <Action>ListDomains</Action>
    </ListDomainsRequest>
  </SOAP-ENV:Body>

WSDL использует это определение для ListDomains:

<xs:element name="ListDomains">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="MaxNumberOfDomains" type="xs:int" minOccurs="0"/>
            <xs:element name="NextToken" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
...
<wsdl:operation name="ListDomains">
    <soap:operation soapAction="ListDomains"/>
    <wsdl:input>
        <soap:body use="literal"/>
        </wsdl:input>
        <wsdl:output>
            <soap:body use="literal"/>
        </wsdl:output>
    </wsdl:operation>

Информация о подписи, метке времени, AWSAccessKeyId и версии отсутствует в определении ListDomains.

Служба поддержки AWS уже исследовала это и говорит, что это так:

"WSDL будет продолжать охватывать только элементы уровня приложения, так как это более чистый подход долгосрочный «SOAP с WS-Security» модель конверта / тела. "

Правильный ли пример запроса? Импорт WSDL, например, в Delphi, не генерирует код для элементов авторизации.

1 Ответ

0 голосов
/ 09 мая 2009

Что ж, может показаться, что элементы авторизации действительно не являются частью WSDL, что немного странно ...

Еще смешнее - документы Amazon говорят о предоставлении этой информации в заголовке SOAP, - однако в их примере она явно помещается в элемент <SOAP-ENV:Body> ....

Что произойдет, если вы вручную добавите эти дополнительные элементы либо в код Delphi, либо в сам WSDL? Можете ли вы настроить его так, чтобы сервис SimpleDB был им доволен?

Марк

...