当注销发生时,重定向时避免304 HTTP状态

时间:2015-01-08 16:54:54

标签: http spring-security http-headers http-redirect response.redirect

我遇到HttpServletResponse.sendRedirect(...)的问题,我的方案是:

我有一个login.html页面,当用户尝试登录并且凭据错误时服务器抛出异常并且我将用户重定向到同一页面但是使用URL参数以显示来自服务器的错误消息,这是一行:

response.sendRedirect("login.html?error=message")

问题在于: 第一次当我把URL输入应用程序并测试错误的凭据时,这非常有效,错误消息显示但是当我注销呼叫时:

http://localhost/app/j_spring_security_logout

从服务器我赶上注销,我做:

response.sendRedirect("login.html");

并尝试再次使用错误的凭据登录,这不起作用,因为浏览器将重定向捕获为具有304 HTTP代码的NOT MODIFIED RESOURCE,因此login.html页面从缓存重新加载并且消息是未显示,因为登录操作未进入服务器验证凭据。

我尝试使用以下命令更改状态代码:

response.sendRedirect("login.html");

它还没有工作。

有办法避免这种行为吗?

非常感谢!

0 个答案:

没有答案