Перенаправление другой страницы при загрузке страницы в Seam Framework - PullRequest
0 голосов
/ 16 декабря 2010

Я занимаюсь разработкой приложения Seam. Существует специальный сценарий для вновь созданных пользователей. Когда учетная запись пользователя создается администратором, он должен сменить пароль при первом входе в систему, поэтому я должен заставить пользователя сменить его пароль. На каждой странице я должен контролировать, будет ли его первый логин или нет. Если это первый логин, я должен перенаправить его на страницу смены пароля.

Мне не удалось реализовать эту проблему в Seam Framework.

У вас есть идеи по этому поводу?

Ответы [ 2 ]

4 голосов
/ 16 декабря 2010

У меня есть два предложения.Первый,

Создает метод в bean-компоненте, который возвращается, если пользователь вошел в систему в первый раз.Затем в вашем файле pages.xml

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

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

Вторым является использование события '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();

     }
}

Но вы можете использовать этот метод, если вы используете безопасность шва.

0 голосов
/ 16 декабря 2010

Вы можете внедрить фильтр и можете проверять наличие новых пользователей, а затем перенаправлять их соответствующим образом. Укажите собственный шаблон URL для соответствующей фильтрации запросов.

<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>
...