NetBeans Basic Http Auth Jax-WS - PullRequest
       28

NetBeans Basic Http Auth Jax-WS

5 голосов
/ 18 декабря 2009

как я могу получить доступ к веб-сервису через обычную http-аутентификацию? Я использую встроенные функции клиента NetBeans. Но когда я пытаюсь получить доступ к веб-службе, я получаю исключение с сообщением об ошибке аутентификации 401.

Как я могу передать правильное имя пользователя и пароль?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 21 января 2010

Вы можете использовать класс BindingProvider или WSBindingProvider для доступа к веб-службе с помощью обычной http-аутентификации. Код выглядит следующим образом.

XxxService service = new XxxService();
Xxx port = service.getXxxPort();

Map<String, Object> reqContext = ((BindingProvider)port).getRequestContext();
reqContext.put(BindingProvider.USERNAME_PROPERTY, "username");
reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password");
3 голосов
/ 19 апреля 2011

Вы также можете предоставить свой собственный Аутентификатор. Таким образом, он будет работать, даже если сам WDSL защищен базовой HTTP-аутентификацией.

@WebServiceRef(wsdlLocation = "https://laka/sito?wsdl")
static XxxService service;

public static void main(String[] args) {

    Authenticator.setDefault(new Authenticator() {
        @Override
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication("user", "password".toCharArray());
        }
    });

    service = new XxxService();
    Xxx port = service.getXxxPort();

    // invoke webservice and print response
    XxxResponse resp = port.foo();
    System.out.println(resp.toString());

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