我尝试使用 LoginContext 在 WAS Liberty 上进行老式登录:
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());
现在 SSO Cookie 已设置,但在下一个请求时会被删除/重置。
当我在 HttpServletRequest 上使用 login-Method 时,一切看起来都一样,但没有删除 cookie。
有谁知道如何使用用户注册表和 SSO Cookie 在 WAS Liberty 上进行编程登录?
最好的问候,比莉