0

Seam アプリケーションを開発しています。新しく作成されたユーザーには特別なシナリオがあります。ユーザー アカウントが管理者によって作成されると、最初のログイン時にパスワードを変更する必要があるため、ユーザーにパスワードの変更を強制する必要があります。すべてのページで、彼の最初のログインかどうかを制御する必要があります。最初のログインの場合は、パスワード変更ページにリダイレクトする必要があります。

この問題を Seam Framework にうまく実装できませんでした。

これについて何か考えはありますか?

4

2 に答える 2

4

2 つの提案があります。最初の1つ、

ユーザーが初めてログインした場合に返すメソッドを Bean に作成します。次に、pages.xml で、

    <page view-id="*">
.
.

        <navigation from-action="#{identityBean.isFirstLogin()}">
            <rule if-outcome="true">
                <redirect view-id="/changePasswordPage.xhtml"/>
            </rule>
        </navigation>
   </page>

2 つ目は、「org.jboss.seam.security.loginSuccessful」イベントを使用することです。

@Observer("org.jboss.seam.security.loginSuccessful")
public void redirectUserToChangePassword() {

     if ( isFirstLogin() ) {

            Redirect redirect = Redirect.instance();
            redirect.setViewId("/changePassword.xhtml");
            redirect.execute();

     }
}

ただし、Seam セキュリティを使用している場合は、この方法を使用できます。

于 2010-12-16T08:34:13.677 に答える
0

フィルターを実装して、新しく作成されたユーザーを確認し、適切にリダイレクトできます。それに応じてリクエストをフィルタリングするカスタム url-pattern を提供します。

<filter>
    <filter-name>Seam Filter</filter-name>
    <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>Seam Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
于 2010-12-16T07:38:13.877 に答える