Jaas Liberty:未在编程登录上设置SSO Cookie吗
我尝试使用LoginContext在WAS Liberty上进行老式登录: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,
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上进行编程登录吗
致以最良好的祝愿,
BillieWAS Liberty中的JAAS登录过程对用户进行身份验证并创建用户主题。一旦主题成功创建,就会创建cookie——在JAAS登录过程之外 正如您确认的那样,HttpServletRequest.login确实创建了cookie。HttpServletRequest.authenticate方法也应该如此。您可以使用这两种方法中的任何一种 如果希望JAAS登录过程创建cookie,可以打开功能请求(RFE) --阿杰