我有一个带有自定义 JSF 登录 portlet 的 JSF portlet 应用程序,它使用portletservice/com.ibm.portal.portlet.service.login.LoginHome
来登录用户,
成功登录后,我尝试以下代码:
WSSubject.getRunAsSubject(),
它给了我,Subject:Principal: /UNAUTHENTICATED
但是,如果我使用门户登录原始 portlet 登录到门户,并测试相同的代码,它会给我Subject:Principal: defaultWIMFileBasedRealm/wpsadmin
谁能告诉我问题出在哪里,我是否需要任何额外的配置,我需要 Run-as 主题来传播生成的 LTPA 令牌。
更新1:
LoginService loginService = (LoginService) loginHome.getLoginService(getRequestWrapper().getPortletRequest() ,getResponseWrapper().getPortletResponse());
Map<String,Object> contextMap = new HashMap<String,Object>();
contextMap.put(LoginService.DO_RESUME_SESSION_KEY, new Boolean(true));
loginService.login(getUserID(), getUserPassword().toCharArray(), contextMap, null);