Как убедить Java Web Start действительно запомнить пароль? - PullRequest
3 голосов
/ 01 сентября 2010

Я использую Java Web Start.Файл находится на http-сервере, который требует имя и пароль (это сервер Windows).Java Start запускает следующее (с отредактированным пользователем и IP):

java web start

То же самое на клиенте MS Windows.Имеется опция «Сохранить этот пароль в вашем списке паролей», которая вообще ничего не делает (как в Mac OS, так и в Windows), при повторном запуске этого веб-приложения java требуется новый пароль.

Isэто баг в JWS?Или что именно происходит?

Ответы [ 3 ]

1 голос
/ 09 августа 2011

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

В моем случае, когда успешный вход в систему происходит с использованием базовой аутентификации HTTP, я отправляю cookie в моем сервлете, который содержит имя пользователя и пароль так же, как заголовок HTTP содержит его, когда используется метод Basic (кодированный BASE64). Web Start хранит этот файл cookie в хранилище файлов cookie Internet Explorer в Windows (в других системах Web Start имеет собственное хранилище файлов cookie). Затем Web Start отправляет этот файл cookie каждый раз, когда к моему домену осуществляется доступ к ресурсу. Вы можете указать очень длительный срок службы куки (например, 10 лет), который, вероятно, в любом случае превзойдет текущую установку ОС.

При последующих запросах я проверяю наличие куки и пытаюсь подтвердить пользователя в соответствии с этим. Если аутентификация Cookie недействительна и не получен заголовок HTTP Authorization (или это также недействительно), я отправляю статус HTTP 401 Unauthorized.

Недостатком является то, что имя пользователя и пароль хранятся на компьютере в виде файла cookie. Пароль передается по сети так же, как при обычной аутентификации HTTP, только в другом заголовке, поэтому вы можете защитить его с помощью HTTPS.

Это также решает проблему отсутствия возможности запоминания пароля в Linux Web Start.

1 голос
/ 07 апреля 2011

У меня просто была такая же проблема.

Оказывается, вам нужно перезапустить браузер, чтобы Java запомнил ваш пароль.

Я также разрешил этот Java-кеш, но я не думаю, что это было решением.

0 голосов
/ 11 октября 2013

Я реализовал идею файлов cookie, проблема в том, как вы можете очистить файл cookie, если хотите? Я имею в виду, хорошо, что cookie является постоянным, но что, если пользователь хочет удалить cookie? Насколько я вижу, консоль Java не имеет возможности сделать это. Очистка веб-кэша запуска, кажется, не делает этого. В Windows, предположительно, IE хранит его, поэтому IE предоставляет интерфейс (сам не проверял). Но на Mac и, вероятно, Linux, я просто не могу узнать, где они хранятся. Попытался просмотреть файлы настроек и попытался удалить всю папку кэша Java, но они все еще где-то хранятся. У кого-нибудь есть идея?

...