2010-02-16 4 views
1

WSE 프록시를 사용하여 PHP에 통신하는 .NET 응용 프로그램을 다시 작성해야했습니다. 내가 단련하고있는 것이 하나 있습니다. 나는 코드를 보았습니다 UsernameToken userNameToken1 = new UsernameToken(sToken_UserName, sToken_Password, PasswordOption.SendPlainText); SOAP 엔벨로프에 보안 헤더를 추가한다고 가정합니다. PHP로 이것을 수행하는 방법을 잘 모르겠습니다. 나는 온라인 어딘가에PHP로 비누 보안 헤더 추가

$token = new stdClass; 
$token->Username = new SOAPVar($username, XSD_STRING, null, null, null, $ns); 
$token->Password = new SOAPVar($password, XSD_STRING, null, null, null, $ns); 

$wsec = new stdClass; 
$wsec->UsernameToken = new SoapVar($token, SOAP_ENC_OBJECT, null, null, null, $ns); 

$headers = new SOAPHeader($ns, 'Security', $wsec, true); 
$client->__setSOAPHeaders($headers); 

있는 다음 코드를 시도하지만 다시 다음과 같은 예외를 얻을 : 내가 잘못 여기서 뭐하는 거지

Uncaught SoapFault exception: [SOAP-ENV:Client] com.sun.xml.wss.XWSSecurityException: Receiver Requirement for nonce has not been met; nested exception is com.sun.xml.wss.XWSSecurityException: com.sun.xml.wss.XWSSecurityException: Receiver Requirement for nonce has not been met 

? 알아야 할 정보가 누락 되었습니까?

답변

2

암호를 일반 텍스트로 보내고 있습니다 (SSL을 사용한다고 가정). 웹 서비스에도 nonce이 필요합니다. 이 같은 문제를 다루는 것으로 보인다으로

이 토론을 참조하십시오 : http://wso2.org/forum/thread/5304

0

나는 PHP와 WS-보안에 대한 다양한 접근을 시도하는 많은 시간을 보냈다.

마지막으로 놀라운 해결책을 간략하게 설명한 research paper by IBM을 우연히 발견했습니다. 우리는 현재 웹 서비스와의 대량 통합을 위해이를 사용하고 있습니다.