Как подключить Java-клиент к сервису WCF, используя clientCredentialType = "Basic" - PullRequest
5 голосов
/ 30 января 2010

Мне нужно подключиться с клиента Java к веб-службе WCF , которая имеет следующую конфигурацию привязки :

<basicHttpBinding>
    <binding name="basicHttpBindingSecurity">
        <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Basic"/>
        </security>
    </binding>
</basicHttpBinding>

Я использую JAX-WS . Можете ли вы дать мне фрагмент кода, показывающий, как установить имя пользователя и пароль в клиенте Java?

Я пробовал это:

Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext();
reqContext.put(BindingProvider.USERNAME_PROPERTY, "username");
reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password");

но это не сработало. Я также попробовал это:

Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext();
reqContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://username:password@localhost:8090/MyService");

Все еще безуспешно.

Спасибо, Рафаль

1 Ответ

2 голосов
/ 30 января 2010

Oops! К сожалению ...

Первое решение работает, но я допустил ошибку в конфигурации службы WCF. Так что, если у вас возникла подобная проблема, надоело:

Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext();
reqContext.put(BindingProvider.USERNAME_PROPERTY, "username");
reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password");

С уважением, Рафал

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...