我正在为 Websphere Portal 6.1 开发一个独立的定制注册表、定制登录 portlet 和定制配置文件 portlet。一些现有用户尚未填写其个人资料中的一个或多个必填字段。
下次这些用户成功登录时,如何让门户网站将他们重定向到自定义配置文件 portlet ,然后再让他们访问站点的其余部分?
我正在为 Websphere Portal 6.1 开发一个独立的定制注册表、定制登录 portlet 和定制配置文件 portlet。一些现有用户尚未填写其个人资料中的一个或多个必填字段。
下次这些用户成功登录时,如何让门户网站将他们重定向到自定义配置文件 portlet ,然后再让他们访问站点的其余部分?
看起来 Websphere Portal 6.1 带有一个 API,用于通过一系列过滤器发送身份验证请求。我找到了一篇描述开发人员作品 API 的文章(' Websphere Portal 中的新安全 API ')。
特别是,com.ibm.portal.auth.ExplicitLoginFilter 接口允许您在身份验证序列期间插入,并在验证用户凭证后动态更改系统重定向的位置。这是一个存根示例:
public class CustomLoginFilter implements ExplicitLoginFilter {
public void login(HttpServletRequest req, HttpServletResponse resp,
String userId, char[] password,
FilterChainContext portalLoginContext, Subject subject,
String realm, ExplicitLoginFilterChain chain)
throws LoginException, WSSecurityException,
com.ibm.portal.auth.exceptions.LoginException {
//Validate the user's credentials.
chain.login(req, resp, userId, password, portalLoginContext, subject, realm);
//Redirect to profile portlet if required profile fields are incomplete.
if(incompleteProfile(userId)) {
portalLoginContext.setRedirectURL(getURLForProfilePortlet());
}
}
//Other methods...
}
ExplicitLoginFilter 及其依赖项位于以下 jar 文件中,您必须在编译代码时将其添加到类路径中:
从您的 Websphere Portal 根目录开始...
/base/wp.auth.base/shared/app/wp.auth.base.jar
/base/wp.base/shared/app/wp.base.jar