Spring HTTPS正在切换到HTTP:我想根据用户使用HTTPS或HTTP作为站点

时间:2011-05-18 16:18:31

标签: java spring http tomcat https

我使用的是Spring 3,Java和Tomcat。我们正在使用允许HTTPS或HTTP请求的负载均衡器。问题是,一旦提交登录页面,HTTPS请求就会转换为HTTP。

锁定永远不会显示在浏览器底栏中。我需要整个站点使用HTTPS或HTTP,具体取决于原始请求。

我尝试在security-config.xml中设置频道安全性,如下所示:

intercept-url pattern="/**" access="ROLE_USER" requires-channel="any"

但没有运气。如果我设置requires-channel =“https”,那么我必须为整个网站使用HTTPS,但我想让用户决定。

感谢您的帮助。我搜索了几天但找不到解决方案。

1 个答案:

答案 0 :(得分:1)

这就是我所做的,虽然我一直试图强迫https:

  1. 创建一个自定义标头,负载均衡器将附加到请求中,表示它以https形式出现。
  2. 编写一个servlet包装器来覆盖isSecure()方法,像往常一样查找https端口,但也可以选择查找负载均衡器添加的标头。
  3. 在过滤器链中应用带过滤器的包装。
  4. 这样,请求被视为安全,并且不会发送重定向到http。