现象描述
项目中仅在登录时使用https连接进行登录请求,登录成功会使用http访问服务器的其它资源。也就说从https连接切换到http。输入正确的用户和密码后总是跳转到登录页面,并没有跳转到主页面。debug了一下程序,发现在跳转到主页时,程序认为 request.getSession("userInfo") 获取的用户信息为 null,用户没有登录。而不适用https连接请求登录,输入正确的用户名和密码后就可以正确进入主页。也就是说https->http session信息没有了。我们项目使用的是tomcata 7,JDK 7,Spring 4.1。
原因分析
如果需要很好的理解上述现象的原因,需要对Cookie和session机制有一定的了解。这里有一篇资料(
http://www.cnblogs.com/fnng/archive/2012/08/14/2637279.html),不理解Cookie和session机制的可以参考一下。
百度了一下出现上述现象的原因。发现在使用https连接请求登录时,Set-Cookie属性值中包含