2012-04-11 3 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

잘 모르겠지만 다음 코드를 사용하여 자격 증명을 추적하는 대안을 찾았습니다. 설명해 드리겠습니다.

다음이 개 기능

날 값을 가지고하는 데 도움이

코드 서버 측에 전체 SOAP 요청을 반환 $sSoapRequest = file_get_contents('php://input'); ... ..

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() 방법을 사용 서버 측의 모든 프로세스.