SOAP KeyInfo无法通过IIS服务器识别,客户端是java

时间:2015-04-10 10:08:56

标签: java .net web-services soap spring-ws


从java Spring中消费.Net Web服务时出现以下错误 Web Service使用基于证书的身份验证。 我尝试使用HTTPS本地工作的java(服务器)到java(客户端),没有https
甚至.Net Side Server和客户端工作。

    org.springframework.ws.soap.client.SoapFaultClientException: Referenced security token could not be retrieved ---> 
WSE590: Failed to resolve the following Key Info 
    <KeyInfo Id="KI-A65A1CE3CB2EB7AE6114286591136763" xmlns="http://www.w3.org/2000/09/xmldsig#">
        <wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <ds:X509Data xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                <ds:X509IssuerSerial>
                    <ds:X509IssuerName>CN=VXX,OU=NXX,O=iXXX,L=Cty,ST=MH,C=IN</ds:X509IssuerName>
                    <ds:X509SerialNumber>1711043036</ds:X509SerialNumber>
                </ds:X509IssuerSerial>
            </ds:X509Data>
        </wsse:SecurityTokenReference>
    </KeyInfo>.

我正在使用org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor
拦截请求和响应。 我不明白.Net方面发生的事情是由其他团队开发的。
但是.Net团队告诉请求未达到applcation,IIS服务器本身无法处理此问题。


请查找.Net客户端呼叫代码段。

// TODO: Replace with a valid path to your certificate
   string certPath = @"C:\mypath\certClient1.cer";
   Secured.TSRService objsecserv = new Secured.TSRService();

   objsecserv.Url = @"https://xyz/service.asmx";
   //objsecserv.Url = @"http://xyz:97/service.asmx";

   objsecserv.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certPath));
    objsecserv.Timeout = Timeout.Infinite;
    string strresult1 = objsecserv.GetCertDetails();

    rtxtresult.Text = strresult1;


这是我的java端代码片段

<bean id="countryWsClSecInterId" class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor">
    <property name="securementActions" value="Timestamp Signature" />  <!-- Encrypt -->
    <!--    Key alias for signature -->
    <property name="securementUsername" value="client" />
    <property name="securementPassword" value="mypasswd" />
    <property name="securementSignatureCrypto" ref="countryCrypto"/>
    <property name="securementEncryptionCrypto" ref="countryCrypto"/>
    <!-- Key alias for encryption -->
    <property name="securementEncryptionUser" value="server"/>  
    <!-- Validation config -->
    <property name="validationActions" value="Signature" />
    <property name="validationSignatureCrypto" ref="countryCrypto"/>
</bean>

请指导我,我搜索了很多并根据但没有任何效果进行了修改。

0 个答案:

没有答案