Ошибка аутентификации при вызове веб-службы SharePoint (клиент JAX-WS) - PullRequest
2 голосов
/ 14 сентября 2011

Мне нужно вызвать службу списков SharePoint 2010 из клиента Java.

Я использовал NetBeans для генерации классов JAX-WS из WSDL.

И расширенный java.net.Authenticator для управления аутентификацией в SharePoint:

static final String user = "XXXXXXXX\\Administrateur"; // your account name
static final String pass = "mypassw"; // your password for the account

static class MyAuthenticator extends Authenticator {
        public PasswordAuthentication getPasswordAuthentication() {
            System.out.println("Feeding username and password for " + getRequestingScheme());
            return (new PasswordAuthentication(user, pass.toCharArray()));
        }
    }

Вызов веб-службы с JAX-WS:

Authenticator.setDefault(new MyAuthenticator());

com.nm.Lists service = new com.nm.Lists();

com.nm.ListsSoap port = service.getListsSoap12();

String pageUrl = "http://xxxxxxx/testPushFile.txt";
String comment = "no comment";
String checkinType = "1";

boolean result = port.checkInFile(pageUrl, comment, checkinType);

Я все ещеполучаю ошибку:

Exception in thread "main" javax.xml.ws.WebServiceException: java.io.IOException: Authentication failure
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.readResponseCodeAndMessage(HttpClientTransport.java:201)

Поскольку она не работает, я попытался:

  • , чтобы установить пользователя без домена

  • для установки домена в качестве системного свойства: System.setProperty("http.auth.ntlm.domain", "XXXXXXXX");

  • для проверки подлинности «по старинке»:

     <code> 
    ((BindingProvider) port).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, user);<br>
    ((BindingProvider) port).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, pass); 

Есть идеи, в чем проблема с аутентификацией?

Спасибо

1 Ответ

1 голос
/ 30 ноября 2011

Я возвращаюсь, чтобы дать решение.Вот что я сделал, чтобы заставить аутентификацию веб-службы работать:

  • Я включил базовую аутентификацию в IIS Manager для своего сайта SharePoint,
  • Я использовал учетные данные пользователя, которые были зарегистрированы вДомен Windows
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...