2013-08-30 5 views
1

Я использую Jeresy Client Api для связи с службами Rest. Я хочу обработать 401 ответ с сервера. Всякий раз, когда сервер дает 401 Джерси, есть свое собственное диалоговое окно проверки подлинности, такое как браузер для имени пользователя и пароля.Джерси Клиентский интерфейс аутентификации основного клиента

client.addFilter (новый com.sun.jersey.api.client.filter.HTTPBasicAuthFilter (имя пользователя, пароль));

Есть ли способ скрыть или подавить этот вызов и представить свой настраиваемый диалог.

ответ

0

Я видел этот вопрос до того, как я разрабатывал подключаемый модуль Eclipse, который использовал API-интерфейс Джерси для HTTP-запросов для веб-службы RESTful. Каждый раз, когда веб-служба отвечала кодом состояния 401 HTTP, Eclipse автоматически отображает стандартный диалог проверки подлинности, в котором пользователь должен ввести свое имя пользователя и пароль.

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

Authenticator.setDefault(null);

Если вы делаете это на стадии инициализации вашего приложения, прежде чем использовать Client API-Джерси, чтобы делать какие-либо HTTP-запросы, он должен предотвратить диалог аутентификации по умолчанию из отображается, если возникает ответ HTTP 401.

Для получения более подробной информации, пожалуйста, обратитесь к Authenticator documentation.

Если вы хотите отобразить собственное диалоговое окно проверки подлинности вместо диалогового окна по умолчанию, вы можете реализовать собственный подкласс класса Authenticator, который отображает желаемый диалог. Затем вы можете зарегистрировать его в своей заявке, используя Authenticator.setDefault(customAuthenticator);