2012-04-11 128 views
0

任何一个可以请指教如何解析的NuSOAP头和检查从下面的SOAP请求的NuSOAP:头认证服务器端

<SOAP-ENV:Header> 
    <SOAP-ENV:Header xmlns:wsa="http://admin.example.com"> 
     <Username>testuser</Username> 
     <Password>test123456</Password> 
     <Signature>5595610031002</Signature> 
    </SOAP-ENV:Header> 
    </SOAP-ENV:Header> 

username/password/Signature:我需要解析服务器端这头和验证每个请求的凭证。

回答

2

我不确定,但我发现了使用下面的代码跟踪凭据的替代方法。 让我解释一下。

代码$sSoapRequest = file_get_contents('php://input');返回整个SOAP请求到服务器端...

以下2个功能可以帮助我带出的值..

function doAuthenticate() 
{ 
    $sSoapRequest = file_get_contents('php://input'); 
    if(isset($sSoapRequest)) 
    { 
     $sUsername = hookTextBetweenTags($sSoapRequest, 'Username'); 
     $sPassword = hookTextBetweenTags($sSoapRequest, 'Password'); 
     $sSignature = hookTextBetweenTags($sSoapRequest, 'Signature'); 
     if($sUsername=='testuser' && $sPassword=='test123456' && $sSignature=='5595610031002') 
      return true; 
     else 
      return false; 
    } 
} 
function hookTextBetweenTags($string, $tagname) { 
    $pattern = "/<$tagname ?.*>(.*)<\/$tagname>/"; 
    preg_match($pattern, $string, $matches); 
    return $matches[1]; 
} 

,并使用doAuthenticate()方法服务器端的每个进程。