代码之家  ›  专栏  ›  技术社区  ›  blockhead

使用php添加soap安全标头

  •  1
  • blockhead  · 技术社区  · 14 年前

    有一件事我正在努力解决。我看到密码了 UsernameToken userNameToken1 = new UsernameToken(sToken_UserName, sToken_Password, PasswordOption.SendPlainText);

    $token = new stdClass;
    $token->Username = new SOAPVar($username, XSD_STRING, null, null, null, $ns);
    $token->Password = new SOAPVar($password, XSD_STRING, null, null, null, $ns);
    
    $wsec = new stdClass;
    $wsec->UsernameToken = new SoapVar($token, SOAP_ENC_OBJECT, null, null, null, $ns);
    
    $headers = new SOAPHeader($ns, 'Security', $wsec, true);
    $client->__setSOAPHeaders($headers);
    

    Uncaught SoapFault exception: [SOAP-ENV:Client] com.sun.xml.wss.XWSSecurityException: Receiver Requirement for nonce has not been met; nested exception is com.sun.xml.wss.XWSSecurityException: com.sun.xml.wss.XWSSecurityException: Receiver Requirement for nonce has not been met
    

    我做错了什么?是否有我需要知道的缺失信息?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Don    14 年前

    您发送的是纯文本密码(我想是通过SSL?),但web服务也需要 nonce

    请参阅此讨论,因为它似乎正在处理相同的问题: http://wso2.org/forum/thread/5304

        2
  •  0
  •   Eric J.    14 年前

    我花了很多时间尝试使用PHP实现WS-Security的各种方法。

    最后我偶然发现了这个 research paper by IBM 这概括了一个出色的解决方案。我们现在使用它与web服务进行大规模集成。