登录后JSF 2.0重定向到index.jsf

mbu*_*lau 3 java jaas jsf-2 jboss6.x

我们有一个基于JSF(2.0)的Web应用程序,在JBoss 6.1上运行.我们正在使用基于FORM的身份验证与JAAS.

一些用户将"admin/editUser.jsf"这样的链接添加到他们的书签中.如果用户直接访问此页面(不使用应用程序中的导航),则此页面无法正常工作.

问题是:有没有办法在登录后将用户重定向到index.jsf页面,独立于请求的URL?

Bal*_*usC 6

那是不可能的.

如果您使用的是Servlet 3.0(Tomcat 7/Glassfish 3/JBoss 6 /等),那么您最好的选择是使用编程登录HttpServletRequest#login()而不是JAAS表单.

所以,而不是

<form action="j_security_check" method="post">
    ...
    <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

使用

<h:form>
    ...
    <h:commandButton value="Login" action="#{bean.login}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)

public String login() {
    // ...

    request.login(username, password);

    // ...

    return "index.jsf?faces-redirect=true";
}
Run Code Online (Sandbox Code Playgroud)

也可以看看: