【问题标题】:SEAM pages.xml conditional redirectSEAM pages.xml 条件重定向
【发布时间】:2013-03-08 13:02:17
【问题描述】:

我正在使用 SEAM 2.2.2 (JBoss AS6),尝试实现以下导航逻辑:

我有 3 种用户类型:用户、客户、管理员

对于每种类型,我都使用以下页面规则...

<page login-required="true" view-id="/admin/*">
    <restrict>#{s:hasRole('admin')}</restrict>
    <navigation from-action="#{identity.logout}">
        <end-conversation/>
        <redirect view-id="/admin-login"/>
    </navigation>
</page>

在用户注销时将其转发到登录页面

<exception class="org.jboss.seam.security.NotLoggedInException" log="false">
    <redirect view-id="/index.xhtml"/>
</exception>
<exception class="org.jboss.seam.security.AuthorizationException" log="false">
    <end-conversation/>
    <redirect view-id="/index.xhtml"/>
</exception>

退回未登录的用户。但是,我不想将他们重定向到索引页面,而是将他们重定向到各自的登录页面,例如,如果我尝试访问 /admin/somePage.xhtml 而不登录在,我被重定向到 /admin-login 页面

我想我需要以某种方式获取请求的页面作为 pages.xml 中的参数,但是查看了文档后我什么也看不到

类似下面的东西(例如)...

<exception class="org.jboss.seam.security.NotLoggedInException" log="false">
    <rule if="#{requestedPage}='/admin/*'">
        <redirect view-id="/admin-login"/>
    </rule>
</exception>

更新:

我也尝试了以下,

    <page login-required="true" view-id="/admin/*">
        <restrict>#{s:hasRole('admin')}</restrict>
        <rule if="#{!s:hasRole('admin')}">
            <redirect view-id="/admin-login"/>
        </rule>
        <navigation from-action="#{identity.logout}">
            <end-conversation/>
            <redirect view-id="/admin-login"/>
        </navigation>
    </page>

但是 org.jboss.seam.security.NotLoggedInException 会覆盖它并转发到 index.xhtml。

在谷歌搜索之后,我在这里发现了同样的问题:https://community.jboss.org/thread/191214 有一个(不理想的)解决方案,如果有人可以描述一个更好的解决方案,请告诉我,否则我会使用这个解决方案。

【问题讨论】:

  • 我错过了什么吗?为什么不能在相关的page.xml中添加合适的逻辑呢?因此,如果用户未登录,/admin/somePage.page.xml 将正确重定向到 /admin-login.xhtml。
  • 嗨@gebuh,是的,但我没有每个页面都有单独的 pages.xml,而且登录所需的属性会覆盖它,我在这里发现了同样的问题:community.jboss.org/thread/191214

标签: jboss seam seam2


【解决方案1】:

好的,我在这里https://community.jboss.org/thread/191214 发现了同样的问题,并使用了线程末尾提供的解决方案,似乎效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多