【问题标题】:jsf2 navigation issuesjsf2 导航问题
【发布时间】:2012-07-16 07:48:04
【问题描述】:

我有一个使用 jsf2、jboss 6.1 和 seam 3 的应用程序。我想做这样的事情:

如果用户尝试访问应用程序但未通过身份验证,则应将其引导至登录页面。如果用户已经登录,即使他输入了登录 url,他也应该被引导到主页,而不是再次登录。所以我把它放在 faces-config.xml 上

<navigation-rule>
    <navigation-rule>
    <from-view-id>/login.xhtml</from-view-id>
    <navigation-case>
        <if>#{identity.loggedIn}</if>
        <to-view-id>/user/search.xhtml</to-view-id>
        <redirect>
            <view-param>
                <name>cid</name>
                <value>#{userBean.conversation.id}</value>
            </view-param>
        </redirect>
    </navigation-case>
</navigation-rule>
    <from-view-id>*</from-view-id>
    <navigation-case>
        <from-action>#{identity.login}</from-action>
        <if>#{identity.loggedIn}</if>
        <to-view-id>/user/search.xhtml</to-view-id>
        <redirect>
            <view-param>
                <name>cid</name>
                <value>#{userBean.conversation.id}</value>
            </view-param>
        </redirect>
    </navigation-case>
    <navigation-case>
        <from-action>#{identity.login}</from-action>
        <from-outcome>failed</from-outcome>
        <to-view-id>/denied.xhtml</to-view-id>
    </navigation-case>
    <navigation-case>
        <from-outcome>login</from-outcome>
        <to-view-id>/login.xhtml</to-view-id>
        <redirect />
    </navigation-case>
</navigation-rule>

但第一条规则不起作用。如果用户使用 login.xhtml 键入 url,他将停留在页面上。我需要他被重定向。我该怎么做?

谢谢

凯莉

【问题讨论】:

    标签: jsf-2 seam3


    【解决方案1】:

    我认为你必须使用 seam-faces 模块。它与接缝安全性相结合。 你应该看看this part of the doc

    在我的项目中,我没有使用任何导航规则,我的页面配置对象如下所示:

    @ViewConfig
    public interface Pages {
        static enum Configuration {
            @ViewPattern("/pages/*")
            @LoggedIn
            PRIVATE,
    
            @UrlMapping(pattern="/pages/home.xhtml")
            @ViewPattern("/login.xhtml")
            @FacesRedirect(false)
            LOGIN,
    
            @ViewPattern("/*")
            @FacesRedirect
            @LoginView("/login.xhtml")
            ALL;
    
        }
    
    }
    

    This other question 也帮助我做你需要的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 2011-05-09
      相关资源
      最近更新 更多