У меня есть клиент Java, который использует стандартные веб-службы SharePoint 2010 (sitedata.asmx, permissions.asmx и т. Д.), Написанные с помощью реализации JAX-WS из JDK 6.
Пока аутентификация выполняется с NTLM с использованием пользовательской реализации Authenticator
и подхода Authenticator.setDefault(...)
.
При работе в моей тестовой среде, в которой есть только один сервер SharePoint, он работает нормально. Я вижу все переговоры NTLM, используя WireShark.
Но, если он работает на клиенте с несколькими серверами, балансировкой нагрузки на оборудование и несколькими альтернативными сопоставлениями доступа SharePoint, я получаю ошибку 401 неавторизованной из вызовов веб-службы. У меня не было возможности использовать WireShark для отладки в этой среде.
Я запускаю свой клиент с компьютера с Windows (при настройке клиента), поэтому в соответствии с документацией Java это должно быть хорошо для NTLM. Кроме того, я использовал URL-адрес по умолчанию из SharePoint для доступа к веб-службам (не URL-адреса с балансировкой нагрузки).
Машина, на которой выполняется клиентское приложение, не является сервером SharePoint. На нем настроена встроенная проверка подлинности Windows с NTLM.
Кроме того, из-за политик администрирования SharePoint я не могу получить доступ к центральному администрированию SharePoint или внести какие-либо изменения в конфигурацию (или IIS).
Я хочу спросить, знает ли кто-нибудь, в чем может быть проблема? И, надеюсь, кто-нибудь знает, как это исправить?
Заранее спасибо.
EDIT:
Важно отметить, что одинаковые уровни разрешений были предоставлены в обеих средах.