Диалог нежелательного входа в систему при запуске приложения из JNLP - PullRequest
3 голосов
/ 12 июля 2011

Я создаю приложение, используя библиотеку OpenCmis для связи с репозиториями Cmis.Библиотека сама вызывает службы REST, используя объект HttpUrlConnection.Так что у меня нет доступа к объекту подключения.Аутентификация выполняется напрямую транспортным протоколом: сервер возвращает «ошибку http 401 Unauthorize», если предоставленные учетные данные неверны, библиотека перехватывает исключение, вызывает CmisSomethingException, приложение управляет им и все работает нормально.

Все работает нормально, пока я не попытался протестировать приложение вне моей среды разработки.Приложение запускается из JNLP, и когда я использую его оттуда ... некоторая внутренняя обработка Java, кажется, опережает обработку библиотеки, улавливает ошибку 401 и выдает диалоговое окно входа в систему Java с запросом учетных данных.

Хорошо работает, если пользователь вводит правильное имя пользователя и пароль.Диалог входа в систему повторно отображается, если учетные данные неверны.И, наконец, ошибка 401, наконец, перехватывается библиотекой (и передается приложению), если пользователь отменяет диалоговое окно входа в систему.

Внешний вид, функциональные возможности и отзывы, предоставляемые этим диалогом пользователюэто не то, что мы хотим.

Кто-нибудь теперь знает, как "обойти / избавиться" от этого диалога при использовании приложения из Java, веб-запуска ???

Спасибо

Джефф

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Посмотрите на java.net.Authenticator и метод setDefault (java.net.Authenticator) .

Чтобы подвести итог, добавьте эту строку кода вначало помогло:

Authenticator.setDefault(new Authenticator());
0 голосов
/ 12 июля 2011

если вы не можете его найти, попробуйте установить точку останова в конструкторе JDialog и запустить JNLP с включенной удаленной отладкой . Это должно дать вам представление о том, кто отображает диалоговое окно, которое может дать вам представление о том, почему это происходит.

...