我正在使用Seam 3和JBoss 7开发一个站点。我正在使用Seam安全性和JSF。该网站的首页有登录控件。当用户输入他的凭证时,他被重定向到他的用户页面“/ MySC”。
但是如果登录用户只输入域根“/”,他就会进入首页。我想要的是,当用户登录时,他应该无法再次访问首页。如果他要求转到首页或在位置栏中输入域根,我希望他被重定向到“/ MySC”。我怎么能这样做?
答案 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>