如何通过用户登录重定向页面请求

时间:2011-09-06 00:32:17

标签: jsf seam jboss7.x seam3

我正在使用Seam 3和JBoss 7开发一个站点。我正在使用Seam安全性和JSF。该网站的首页有登录控件。当用户输入他的凭证时,他被重定向到他的用户页面“/ MySC”。

但是如果登录用户只输入域根“/”,他就会进入首页。我想要的是,当用户登录时,他应该无法再次访问首页。如果他要求转到首页或在位置栏中输入域根,我希望他被重定向到“/ MySC”。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

我建议小一点重新设计页面结构:将首页/start设为允许经过身份验证的用户可以查看的页面,如果用户尚未通过身份验证,则重定向到/login

这种设计不仅在关注点分离方面更加清晰(允许您将身份验证逻辑捆绑在一个不同的文件夹中),它还解决了混合上下文根和身份验证页面的问题。

答案 1 :(得分:0)

您可以使用功能非常强大的SEAM导航规则。 你在page.xml中声明它... 你可以在那里声明条件导航规则。

<page view id="/view.xhtml">
      <navigation from-action="#{user.login}">
           <rule if-outcome="successfull"><redirect view-id="/MySC.xhtml"/>
           <message severity="Info">
                Your login is successfull!.
           </message>
      </navigation>
</page>