Я пытаюсь подключиться к веб-службе ( WSDL ) из Java , но я получаю сообщение об ошибке, что соединение было сброшено (веб-службанаходится в .NET , который мы не можем контролировать).
Хост веб-службы сообщил нам, что нам не удалось пройти аутентификацию по этой ошибке.
Iпрошел через Axis, Axis2, JAX-WS и даже попытался отправить простое сообщение Java с конвертом SOAP (с SAAJ ) и отправил эти сообщения с помощью Basic Authentication, который, очевидно, не работал.
Я пытался протестировать это через .NET-клиент ( C # ), и это работает нормально, так что это не таккак проблема сети. В проекте .NET я вижу, что был создан файл с именем configuration.scvinfo . Это выглядит так:
<configurationSnapshot>
<behaviors />
<bindings>
<binding digest="...>
<Data name="WS2007FederationHttpBinding_myService">
<security mode="TransportWithMessageCredential">
<message>
<issuer address="issuerAddress" binding="ws2007HttpBinding" bindingConfiguration="bindingAddress" />
<issuerMetadata address="issuerMetadata" />
<tokenRequestParameters>
<trust:SecondaryParameters>
<trust:CanonicalizationAlgorithm>...</trust:CanonicalizationAlgorithm>
<trust:EncryptWith>...</trust:EncryptWith>
<trust:EncryptionAlgorithm>...</trust:EncryptionAlgorithm>
<trust:KeySize>...</trust:KeySize>
<trust:KeyType>...</trust:KeyType>
<trust:KeyWrapAlgorithm>...</trust:KeyWrapAlgorithm>
<trust:SignWith>...</trust:SignWith>
</trust:SecondaryParameters>
</tokenRequestParameters>
</message>
</security>
</Data>
<binding digest="...>
<Data name="https address">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName" establishSecurityContext="false" />
<transport clientCredentialType="None" />
</security>
</Data>
</bindings>
<endpoints>
<endpoint>...</endpoint>
</endpoints>
</configurationSnapshot>
Здесь я вижу привязку как WS2007FederationHttpBinding , а режим безопасности - TransportWithMessageCredential и clientCredentialType как UserName
Теперь я не очень разбираюсь в .NET или о том, как создаются службы, или что означает этот файл, но я думаю, что здесь могут быть некоторые атрибуты, которые я могупреобразовать в Java и использовать его для аутентификации на этом сервере.
Или любая из упомянутых мной библиотек может как-то справиться с этим, или есть другой способ передачи учетных данных ??