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

标签 java jsf-2 jboss6.x jaas

我们有一个基于 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/

相关文章:

java - 处理来自数据库的空字符串的最佳实践(在 Java 中)

multithreading - 卡在 UIComponent.popComponentFromEL 的线程

java - 在 JBoss EAP 中使用自定义 JGroups 模块

java - Angular 2 应用程序部署在 JBOSS 6.4 eap 上,以 java 服务作为后端

java - 在 Java 中使用 Arrays.sort() 时出现错误

java - 我可以为父表的外键列定义不同的类型吗?

java - 在 Eclipse PDE 中导入并安装所需的插件包

jsf - 避免在记录编辑期间发生错误时更新数据表(JSF + Primefaces)

ajax - 如何通过 f :ajax when losing focus of second field? 验证两个密码字段

dependency-injection - JBoss 6 : Injecting EJB into servlet