目前,当应用程序发现用户未登录时,Tomcat的登录支持会将用户重定向回原来的位置。

对于这个特定的应用程序,我需要强制它们总是返回 index.jsp

我很确定这是WAR的 web.xml 中的一个简单配置选项,但我没有在google中找到答案。

有帮助吗?

解决方案

更好的解决方案可能是使用servlet过滤器。 然后,您可以检查j_username / j_password,并成功登录并将它们重定向到您希望它们前往的位置。

其他提示

这是你无法在web.xml中配置的东西,因为它不是标准的一部分。对于Tomcat(在6.0.14版本上测试),您可以通过在login.jsp之上添加下一个代码来强制用户返回index.jsp。它会将每个没有参数且名称为“login”的请求重定向到/index.jsp?login页面。由于重定向确实具有'login'参数,因此将向用户显示登录页面。

这不是一个安全的解决方案。如果有人请求页面并添加登录参数,他将被重定向。所以:

/ showPerson?id = 1234将重定向到/index.jsp?login

/ showPerson?id = 1234?login不会重定向到/index.jsp?login

login.jsp上的代码:

<%
if (request.getParameter("login") == null) {
    response.sendRedirect(request.getContextPath() + "/index.jsp?login");
    return;
}
%>

您可能可以使用Cookie,而不是使用'login'参数。您可以通过为login参数(login = randomvalue)创建随机值并将值存储在会话对象中进行比较来使其更安全。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top