Jaas Liberty:未在编程登录上设置SSO Cookie吗

Jaas Liberty:未在编程登录上设置SSO Cookie吗,jaas,websphere-liberty,ltpa,Jaas,Websphere Liberty,Ltpa,我尝试使用LoginContext在WAS Liberty上进行老式登录: CallbackHandler callbackHandler = WSCallbackHandlerFactory .getInstance().getCallbackHandler("userName", "realmName", "password", request, response,

我尝试使用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方法时,所有的方法看起来都一样,但是cookie没有被删除

有人知道如何使用用户注册表和SSO Cookie在WAS Liberty上进行编程登录吗

致以最良好的祝愿,
Billie

WAS Liberty中的JAAS登录过程对用户进行身份验证并创建用户主题。一旦主题成功创建,就会创建cookie——在JAAS登录过程之外

正如您确认的那样,HttpServletRequest.login确实创建了cookie。HttpServletRequest.authenticate方法也应该如此。您可以使用这两种方法中的任何一种

如果希望JAAS登录过程创建cookie,可以打开功能请求(RFE)

--阿杰