2012-05-09 7 views
0

WSセキュリティを使用してJAVAベースのSOAPサービスを呼び出しています。しかし、私がこれらのサービスを呼び出そうとするたびに、それらは無効なセキュリティヘッダーを持つエラーを出します。誰も私にどのようにセキュリティヘッダーを構築し、PHPのzendフレームワークを使用してSOAPリクエストを構築することができますか教えてください。PHPでSOAPリクエストにセキュリティヘッダを追加する方法Zend

答えて

1

あなたのコードを投稿してトラブルシューティングを試みると役に立ちます。それ以外の場合は、コードを一切持たない例です。

Zend Frameworkも使用しており、セキュリティヘッダーをHTTPSサービスに渡す必要がありました。 Zend FrameworkのSOAPセキュリティーヘッダーはかなり開発されたIMOの下にあります。基本的なPHP CURLがはるかに優れており、実装も簡単です。

認証:基本(下記)内では、base64_encodeに気づくでしょう。これは私たちのuserID:passwordを渡す場所です。

function makeRequest($requestData){  
     $str = "site_id=62621&service_name=TestService&fx_request=" . $reqeustData; 
     $strLength = strlen($str); 

     $headers = array(
       "Authorization: Basic " . base64_encode("12321:123456123456321654"), 
       "Content-Type: application/x-www-form-urlencoded", 
       "Content-Length: $strLength", 
      ); 

     $url = 'https://siteName.Here.com/WebServices/AccountingService'; 

     $ch = curl_init($url); 

     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

     curl_setopt($ch, CURLOPT_POST, 1); 

     curl_setopt($ch, CURLOPT_POSTFIELDS, $str); 

     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 80); 

     curl_setopt($ch, CURLOPT_TIMEOUT, 80); 

     $response = curl_exec($ch); 

     if (curl_errno($ch)) { 
      return "Error: " . curl_error($ch); 
     } else { 
      curl_close($ch); 
      return $response; 
     } 
    } 

希望します。


その後、前の回答に--edit、WSSEセキュリティのためにWSSE security--

とWSDLのためのREのコメント、この機能を持っているこのZend Frameworkのクラス

class Zend_Service_DeveloperGarden_Client_Soap extends Zend_Soap_Client 

は、そこにあります私はあなたが探しているものだと信じています

addWsseSecurityTokenHeader 

詳細なdescrについてはこのリンクをご覧くださいiption Class Description on Zend Framework website

そして実際codefile Code File on Zend Framework website

+0

を表示するには、このリンクを参照してくださいが、私は –

+0

おかげでたくさんの男WSSEセキュリティ認証を使用するWSDLファイルを持っていてください! –

関連する問題