JSF验证用户状态

时间:2011-12-30 07:27:16

标签: java jsf

用户成功登录后,我通常会将一些信息放在会话对象上。然后我会使用一个应用于所有页面的过滤器来检查是否有用户登录。

如何使用JSF 2.0实现这样的目标?

1 个答案:

答案 0 :(得分:1)

您可以将所有需要登录的页面放到子文件夹中,并将login.xhtml保留在根目录下。

您可以将您的用户保持在会话范围内,并且可以使用名为identity的类 然后将这些声明添加到pages.xml。

因此,如果用户登录,您无需在任何地方进行检查。

<page view-id="*">
    <navigation>
        <rule if-outcome="home">
            <redirect view-id="/base/home.xhtml"/>
        </rule>
    </navigation>

    <navigation from-action="#{identity.logout}">            
        <rule if="#{not identity.loggedIn}">
            <redirect view-id="/login.xhtml"/>
        </rule>            
    </navigation>
</page> 

<page view-id="/modul*" login-required="true"></page>
<page view-id="/popup*" login-required="true"></page>