我使用SEAM 2.2.2(JBoss的AS6),試圖執行以下導航邏輯:SEAM pages.xml中有條件重定向
我有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,我重定向到/管理員登錄頁面
我想我需要以某種方式獲得所需的頁面在pages.xml參數,而是通過文檔說完看着我不能看到任何
類似下面(作爲一個例子)...
<exception class="org.jboss.seam.security.NotLoggedInException" log="false">
<rule if="#{requestedPage}='/admin/*'">
<redirect view-id="/admin-login"/>
</rule>
</exception>
UPDATE:
我也曾嘗試以下,
<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 2013-03-09 00:57:46
嗨@gebuh,是的,但我沒有爲每一個頁面一個單獨的pages.xml中,再加上登錄要求的屬性將覆蓋它,我發現了同樣的問題在這裏:https://community.jboss.org/thread/191214 – DaveB 2013-03-09 11:48:47