Security 在Seam框架中加载页面时重定向其他页面

Security 在Seam框架中加载页面时重定向其他页面,security,jsf,seam,seam2,Security,Jsf,Seam,Seam2,我正在开发Seam应用程序。对于新创建的用户,有一个特殊的场景。当管理员创建用户帐户时,他应该在第一次登录时更改密码,因此我应该强制用户更改密码。在每个页面中,我必须控制他是否第一次登录,如果是第一次登录,我应该重定向他以更改密码页面 我无法在Seam框架中成功实现这个问题 你对此有什么想法吗 您可以实现一个过滤器&可以在那里检查新创建的用户,然后可以适当地重定向他们。提供自定义url模式以相应地筛选请求 <filter> <filter-name>Seam Fi

我正在开发Seam应用程序。对于新创建的用户,有一个特殊的场景。当管理员创建用户帐户时,他应该在第一次登录时更改密码,因此我应该强制用户更改密码。在每个页面中,我必须控制他是否第一次登录,如果是第一次登录,我应该重定向他以更改密码页面

我无法在Seam框架中成功实现这个问题


你对此有什么想法吗

您可以实现一个过滤器&可以在那里检查新创建的用户,然后可以适当地重定向他们。提供自定义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>

接缝过滤器
org.jboss.seam.servlet.SeamFilter
接缝过滤器
/*

您可以实现一个过滤器,可以在那里检查新创建的用户,然后可以适当地重定向他们。提供自定义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>

接缝过滤器
org.jboss.seam.servlet.SeamFilter
接缝过滤器
/*

我有两个建议。第一,

在bean中创建一个方法,该方法在用户首次登录时返回。然后在pages.xml中

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

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

但是,如果使用seam安全性,则可以使用此方法。

我有两个建议。第一,

在bean中创建一个方法,该方法在用户首次登录时返回。然后在pages.xml中

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

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

但是,如果使用seam安全性,则可以使用此方法。

这不是一个好方法。此筛选器将始终应用于所有用户的所有请求。这不是一个好方法。此筛选器将始终应用于所有用户的所有请求。第一个看起来不错,但它在每个请求中都运行,对吗?观察者方法不安全,用户可以更改URL并进入站点,而无需更改密码。我不想让他在不改变密码的情况下进入。Firstthumb,你考虑使用激活链接代替你的场景吗?您向用户发送激活链接并禁用登录,直到用户获得密码。所以没有人能去任何地方。但这次您必须检查用户是否登录。另一方面,我看不出检查用户是否登录和首次登录之间有什么区别。第一个看起来不错,但它在每个请求中都会运行,对吗?观察者方法不安全,用户可以更改URL并进入站点,而无需更改密码。我不想让他在不改变密码的情况下进入。Firstthumb,你考虑使用激活链接代替你的场景吗?您向用户发送激活链接并禁用登录,直到用户获得密码。所以没有人能去任何地方。但这次您必须检查用户是否登录。另一方面,我看不出检查用户是否登录与首次登录之间有什么区别。