从PHP中的soap标头访问凭据信息

时间:2014-02-28 09:08:11

标签: php soap

我需要从php脚本中的soap标头访问用户名和密码。我可以访问正文信息但无法访问标题信息。 这是SOAp ......

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"        xmlns:sec="http://schemas.xmlsoap.org/ws/2002/04/secext" 
xmlns:met="http://www.example.com/data">
   <soapenv:Header>
      <sec:Security>
         <UsernameToken>
            <Username>ron</Username>            
            <Password>pass</Password>
         </UsernameToken>
      </sec:Security>
   </soapenv:Header>
   <soapenv:Body>
      <met:columnInfo>
         <databaseName>MySQL</adaptorName>        
         <tableName>product</tableName>
      </met:columnInfo>
   </soapenv:Body>
</soapenv:Envelope>

任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:3)

好的找到了解决方案。

$server = new SoapServer($anywsdl);
$server->addFunction(addAllFuntions);
$server->handle();

然后在同一个php脚本中,

function Security($data){   
$UserToken=get_object_vars($data);
foreach($UserToken as $uToken){
    $credentialArray=get_object_vars($uToken);
    echo $credentialArray['Username'];
    echo $credentialArray['Password'];      
}

}

如果Security()函数位于不同的类中,则需要$ server-&gt; setClass($ yourClass)。