如何配置Tomcat在登录后始终直接定向到index.jsp?
时间:2020-03-06 14:43:49 来源:igfitidea点击:
当前Tomcat的登录支持将用户重定向到应用程序确定未登录时的初始位置。
对于这个特定的应用程序,我需要强制它们始终返回到index.jsp
。
我很确定这是WAR的web.xml
中的一个简单配置选项,但是我在google中找不到答案。
解决方案
我们无法在web.xml中进行配置,因为它不是标准的一部分。对于Tomcat(已在6.0.14版上测试),我们可以通过在login.jsp顶部添加下一个代码来强制用户返回index.jsp。它将URL中没有参数名称为" login"的每个请求重定向到/index.jsp?login页面。因为重定向确实具有'login'参数,所以将向用户显示登录页面。
这不是一个安全的解决方案。如果有人请求页面并添加登录参数,则将其重定向。所以:
/ showPerson?id = 1234将重定向到/index.jsp?login
/ showPerson?id = 1234?登录名将不会重定向到/index.jsp?login
在login.jsp之上的代码:
<% if (request.getParameter("login") == null) { response.sendRedirect(request.getContextPath() + "/index.jsp?login"); return; } %>
除了使用'login'参数之外,我们还可以使用Cookie。通过为登录参数创建一个随机值(login = randomvalue)并将该值存储在会话对象中进行比较,可以使其更加安全。
更好的解决方案可能是使用servlet过滤器。
然后,我们可以检查j_username / j_password,并成功登录,然后将它们重定向到我们希望它们进入的位置。