Я реализовал обходной путь для этой проблемы. Вы можете использовать некоторую аутентификацию на основе файлов 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.