2012-03-22 7 views
0

그래서 기본 Auth Soap 1.2를 사용하는 서비스를 만들었습니다. 구성 :또 다른 MessageSecurityException 문제

<customBinding> 
    <binding name="MyHttpBinding"> 
     <security authenticationMode="UserNameOverTransport" securityHeaderLayout="Strict" 
     allowInsecureTransport="false"> 
     <secureConversationBootstrap /> 
     </security> 
     <textMessageEncoding messageVersion="Soap12" /> 
     <httpsTransport maxReceivedMessageSize="6553600" authenticationScheme="Basic" maxBufferSize="6553600" /> 
    </binding> 
    </customBinding> 

나는 여러 클라이언트 (WCF 및 Java)를 호출하고 있습니다. WCF 클라이언트와 나는 어떤 문제가 없지만, 자바 클라이언트와 I는 서버 측에서 다음과 같은 예외를 얻을 :

System.ServiceModel.Security.MessageSecurityException 보안 프로세서가 메시지의 보안 헤더를 찾을 수 없습니다. 이 은 메시지가 보안되지 않은 오류이거나 통신 당사자 간의 바인딩 불일치가 이므로 발생할 수 있습니다. 서비스가 보안을 위해 구성되었고 클라이언트가 보안을 사용하지 않는 경우 이 발생할 수 있습니다.

이 문제를 해결하는 방법은 무엇입니까? 시스템에서 기본 인증을 사용해야하며 비누 1.2 (즉 사용자 지정 바인딩)을 사용해야합니다. 호출 Java 클라이언트를 제어 할 수 없지만 기본 Auth를 사용하여 서비스를 호출하고 있음을 확신합니다.

제안 사항?

답변

1

저는 Java 전문가가 아니지만, 알고있는 한 Java 클라이언트는 SOAP 1.2를 즉시 구현할 수 없습니다. 자바 클라이언트는 1.2 SOAP 메시지에서 필요한 정책/보안 헤더를 보충하기 위해 외부 라이브러리가 필요합니다.

내 Java 클라이언트가 Metro 라이브러리를 사용하여 WCF 서비스를 사용하도록 지시했습니다. (당신과 비슷한 바인딩을 사용하고 있습니다.) Metro 라이브러리를 포함하는 방법은 다음과 같습니다.

interoperability의 MSDN 링크는 다음과 같습니다.

희망이 도움이됩니다.

0

사용자 이름 토큰을 서버에 보내도록 Java 클라이언트를 구성해야합니다. Fiddler를 켜고 작동중인 비누 (wcf 클라이언트)를 비 작동중인 비누 (java)와 비교하십시오.