用户request.getHeader(“Referer”)的可靠性如何;

时间:2012-05-27 12:41:10

标签: java spring java-ee spring-mvc spring-security

我正在使用Spring-MVC应用程序,并且必须处理一个用例,在成功登录我的应用程序后,我必须将用户重定向到他/她来自的位置。

我遇到了使用HTTP Referer标头,如

final String refer = request.getHeader("Referer");

但在做了一些R& D之后我遇到了各种各样的线程,说Referer不可靠,并且防火墙和浏览器可以阻止它,这可能会使我的应用程序无法正常工作。

还有其他方法可以达到这个目的吗?或者在春天,我如何获得有关用户来自哪里的位置(URL)的信息,以便我可以将其保存在某个地方,并且可以在用户成功登录后检索它。我在Spring安全性中看到了类似的功能。

1 个答案:

答案 0 :(得分:0)

嗯,实际上很简单:

  • 未经身份验证的用户尝试访问您应用中的受保护资源
  • 安全过滤器拦截请求
  • 过滤器将访问的受保护资源的URL存储在会话属性
  • 过滤器转发到登录屏幕
  • 登录成功后,将从会话中检索URL,并将用户重定向到此URL

我只会这样做是使用GET请求访问受保护资源。另一种变体是将受保护资源的URL存储在登录表单的隐藏字段中。