0

我正在为 Websphere Portal 6.1 开发一个独立的定制注册表、定制登录 portlet 和定制配置文件 portlet。一些现有用户尚未填写其个人资料中的一个或多个必填字段。

下次这些用户成功登录时,如何让门户网站将他们重定向到自定义配置文件 portlet ,然后再让他们访问站点的其余部分?

4

1 回答 1

2

看起来 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

于 2009-11-06T13:55:22.063 回答