2012-09-26 2 views
1

HTTPS를 통한 WS-Security 인증서 서명을 사용하는 WSDL에 연결하려고합니다.WSO2 WSF/PHP - WSDL 보안 인증서 서명

보내는 메시지 만 서명되고 이진 보안 토큰을 사용합니다 (WSO2에서이 특정 옵션을 찾을 수 없으므로 아래 코드에서 올바른 옵션을 사용하고 있는지 확실하지 않습니다).

나는 WS02 WSF/PHP 샘플에서 코드를보고 WDSL 클라이언트 예제와 서명 예제를 결합했다.

코드 : 난 아무데도이 온라인과 같은 서비스에 연결하는 예를 찾을 수 없어으로 어떤 도움이 많이 주시면 감사하겠습니다

$my_cert = ws_get_cert_from_file("./keys/cert.pem"); 
$my_key = ws_get_key_from_file("./keys/key.pem"); 

$sec_array = array("sign"=>TRUE, 
        "algorithmSuite" => "Basic256Rsa15", 
        "securityTokenReference" => "EmbeddedToken"); //Is this correct for Binary Security Token? 

$policy = new WSPolicy(array("security"=>$sec_array)); 

$sec_token = new WSSecurityToken(array("privateKey" => $my_key, 
             "certificate" => $my_cert)); 

$client = new WSClient(array("wsdl"=>"https://.../Informationservice.WSDL", 
          "useWSA" => TRUE, 
          "policy" => $policy, 
          "securityToken" => $sec_token)); 

$proxy = $client->getProxy(); 

$return_val = $proxy->StreetTypes(); 

. 대부분의 서비스는 인증서가 아닌 사용자 이름과 암호로 서명하는 것으로 보이며 WSDL 및 인증서 서명을 찾을 때 전혀 찾지 못합니다.

답변

0

https 끝점으로 설정된 "끝"끝점에서 작동하려면 https에 대한 CACert 옵션을 지정해야합니다. 또한 wsdl 모드와 관련된 몇 가지 알려진 문제가 있으므로 nonwsdl 모드를 사용하십시오.