2016-03-07 71 views
0

我试图手动构建一个SOAP请求到一个地址验证webservice,需要设置一个SOAP <Security>标头。但我似乎无法做到。我使用的技术堆栈(Salesforce)迫使我自己形成XML。构建wsse的SOAP安全标题:UserToken

从WSDL:

<s0:Policy s1:Id="derm.service.common.esb.wspolicy.UNT.1"> 
     <wssp:Identity xmlns:wssp="http://www.bea.com/wls90/security/policy"> 
      <wssp:SupportedTokens> 
       <wssp:SecurityToken TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wssusername-token-profile-1.0#UsernameToken"> 
       <wssp:UsePassword Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-usernametoken-profile-1.0#PasswordText" /> 
       </wssp:SecurityToken> 
      </wssp:SupportedTokens> 
     </wssp:Identity> 
    </s0:Policy> 

完整WSDL:http://pastebin.com/Z5VswYNF

根据从WSDL链接的文档(http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf)我检索这个例子:

<wsse:Security> 
    <wsse:UsernameToken> 
    <wsse:Username>REDACTED_PLAINTEXT_USERNAME</wsse:Username> 
    <wsse:Password>REDACTED_PLAINTEXT_PASSWORD</wsse:Password> 
    </wsse:UsernameToken> 
</wsse:Security> 

更换用的值用户名/密码我已经提供并解除了文档中的示例请求不起作用。与Security头

样品要求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:soap="information.qld.gov.au/service/Addressing/ValidationService/2/soap"> 
<soapenv:Header> 
    <wsse:Security> 
     <wsse:UsernameToken> 
     <wsse:Username>REDACTED_PLAINTEXT_USERNAME</wsse:Username> 
     <wsse:Password>REDACTED_PLAINTEXT_PASSWORD</wsse:Password> 
     </wsse:UsernameToken> 
    </wsse:Security> 
</soapenv:Header> 
<soapenv:Body> 
<soap:ParseValidAddress> 
<soap:addressString>867 Main Street Woolloongabba Queensland</soap:addressString> 
<soap:postcodeOption>Include</soap:postcodeOption> 
<soap:meshblockOption>Exclude</soap:meshblockOption> 
</soap:ParseValidAddress> 
</soapenv:Body> 
</soapenv:Envelope> 

一切我试图得到一个一般性错误消息

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
     <soap:Fault> 
     <faultcode>soap:Client</faultcode> 
     <faultstring>The requested operation was rejected. Please consult with your administrator.Your support ID is: REDACTED_SUPPORT_ID</faultstring> 
     <detail/> 
     </soap:Fault> 
    </soap:Body> 
</soap:Envelope> 

我还试图从其他地方stackexchange如下:

<wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:SOAP-ENV="SOAP-ENV"> 
    <wsse:UsernameToken wsu:Id="UsernameToken-1" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
     <wsse:Username>oneview</wsse:Username> 
     <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">oneview123</wsse:Password> 
    </wsse:UsernameToken> 
    </wsse:Security> 

我在做什么错?

回答