Websphere Portal 6.1 用のスタンドアロン カスタム レジストリ、カスタム ログイン ポートレット、およびカスタム プロファイル ポートレットを開発しています。一部の既存ユーザーは、プロファイルの 1 つ以上の必須フィールドを完了していません。
次回これらのユーザーが正常にログインしたときに、サイトの残りの部分へのアクセスを許可する前に、ポータルでユーザーをカスタム プロファイル ポートレットにリダイレクトするにはどうすればよいですか?
Websphere Portal 6.1 用のスタンドアロン カスタム レジストリ、カスタム ログイン ポートレット、およびカスタム プロファイル ポートレットを開発しています。一部の既存ユーザーは、プロファイルの 1 つ以上の必須フィールドを完了していません。
次回これらのユーザーが正常にログインしたときに、サイトの残りの部分へのアクセスを許可する前に、ポータルでユーザーをカスタム プロファイル ポートレットにリダイレクトするにはどうすればよいですか?
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