Я попытался выполнить старомодный вход в WAS Liberty, используя LoginContext:
CallbackHandler callbackHandler = WSCallbackHandlerFactory
.getInstance().getCallbackHandler("userName",
"realmName", "password", request,
response, null);
LoginContext loginContext = new LoginContext("system.WEB_INBOUND",
callbackHandler);
loginContext.login();
System.out.println(loginContext.getSubject());
WSSubject.setRunAsSubject(loginContext.getSubject());
Код выполняется успешно, и пользователь аутентифицируется, но только для этого конкретного запроса. Я обнаружил, что SSO Cookie (Ltpa) не установлен, поэтому я попытался установить его вручную:
response.addCookie(WebSecurityHelper.getSSOCookieFromSSOToken());
Теперь cookie SSO установлен, но удаляется/сбрасывается при следующем запросе.
Когда я использую метод входа в систему для HttpServletRequest, все выглядит одинаково, но файл cookie не удаляется.
Кто-нибудь знает, как выполнить программный вход в WAS Liberty с помощью реестра пользователей и файлов cookie SSO?
С уважением, Билли