我们有一个基于 JSF (2.0) 的 Web 应用程序,在 JBoss 6.1 上运行。我们将基于 FORM 的身份验证与 JAAS 结合使用。
一些用户将类似“admin/editUser.jsf”的链接添加到他们的书签中。如果用户直接访问此页面(不使用应用程序内的导航),此页面将无法正常工作。
问题是:有没有办法在登录后独立于请求的 url 将用户重定向到 index.jsf 页面?
最佳答案
那是不可能的。
如果您使用的是 Servlet 3.0(Tomcat 7/Glassfish 3/JBoss 6/等),那么最好的办法是使用 HttpServletRequest#login()
而不是 JAAS 表单进行编程登录.
所以,而不是
<form action="j_security_check" method="post">
...
<input type="submit" />
</form>
使用
<h:form>
...
<h:commandButton value="Login" action="#{bean.login}" />
</h:form>
与
public String login() {
// ...
request.login(username, password);
// ...
return "index.jsf?faces-redirect=true";
}
另见:
关于java - 登录后 JSF 2.0 重定向到 index.jsf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15134340/