проверка подлинности http-сервера - PullRequest
1 голос
/ 05 июня 2011

У меня есть приложение сервлета, развернутое на сервере Tomcat 7.0 (назовите его Сервер A).Приложение получит учетные данные пользователя и передаст их на другой сервер (сервер B) для получения данных.

Проблема:

пользователь Алиса с машины 1, вошедшая на сервер А. Сервер А использует учетные данные Алисы для доступа к серверу Б. getPasswordAuthentication () используется для передачи учетных данных Алисы на сервер Б. Впоследствии пользовательБоб с машины 2 вошел на сервер А. Сервер А будет продолжать использовать учетные данные Алисы для доступа к серверу Б. Я заметил, что getPasswordAuthentication () не вызывается для пользователя Боба.

Существует ли способ принудительной аутентификации каждый раз, когда сервер A пытается получить доступ к серверу B?ps: если перезапустить tomcat на сервере A, аутентификация будет выполнена для первого запроса к серверу B после перезапуска.

Ваш отзыв очень важен.

Ответы [ 2 ]

0 голосов
/ 05 июня 2011

вам необходимо явно очистить кэш перед доступом к ресурсам сервера b с помощью AuthCacheValue.setAuthCache(new AuthCacheImpl());

Это потому, что учетные данные кэшируются по умолчанию, и нет конфигурации для настройки поведения кэширования.1005 *

0 голосов
/ 05 июня 2011

Вы не указали, какая схема аутентификации используется.«Базовая HTTP-аутентификация»?Вы также не упомянули, что происходит с файлами cookie, которые возвращает сервер B.

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

...