请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师好,本机调试正常,发布到服务器后,需要验证登录(获取session)的URL都无法正常访问,都被提示登录

本机调试正常,使用natapp域名测试也正常,但是发布到服务器后,所有无需验证登录的URL正常,其他需要验证登录的都会被提示需要登录,所以应该是获取不到session,查看日志也看不到相关的东西。所以想请问下老师,这可能是什么原因,有什么排查的思路?

正在回答 回答被采纳积分+3

2回答

提问者 纪无涯 2017-12-25 14:49:53

老师好,我在本机localhost调试正常,使用natapp调试也正常,所有功能都能正常访问和响应。

项目发布到阿里云服务器后就不正常了,(获取不到session,因此需要验证登录的URL都被拦截了,这也不是系统错误,所以没有日志)

下面是本机测试和服务器测试的访问截图,我自己看的问题是服务器测试时的请求头没有cookie,猜想这就是服务器测试时session获取不到的原因,但是不知道为什么会这样?

下面URL里的${host}变量是我设置的方便切换服务器IP和localhost的。

本机调试的访问截图

登录

https://img1.sycdn.imooc.com//szimg/5a409bf00001658a10130772.jpg

获取用户信息

https://img1.sycdn.imooc.com//szimg/5a409c420001acde09580675.jpg

服务器调试

登录

https://img1.sycdn.imooc.com//szimg/5a409c6900011abc14880889.jpg

获取用户信息

https://img1.sycdn.imooc.com//szimg/5a409c900001af2814690824.jpg

0 回复 有任何疑惑可以回复我~
  • Geely #1
    仔细看了一下,图片但是放不大,但是能看出来是有登录成功的请求的,很简单的一件事,首先登录是否存储session了检查一下。
    还有咱们课程可是讲了远程debug的。你debug一下,先登录,看看session里是否set上,然后在获取session的时候看看那个对象是什么情况。里面是不是空的。然后再发截图上来,debug的内存对象截图,正好练习一下。还有发图你验证一下。。求大图。。。谢谢。。
    回复 有任何疑惑可以回复我~ 2017-12-26 22:18:59
  • 提问者 纪无涯 回复 Geely #2
    抱歉老师,前两天一直高烧,没来得及调试以及回复您,今天解决问题了,感谢老师。下面是我解决问题的过程:
    1. 通过远程debug确定服务器确实获取不到session,且服务器会对每次请求产生新的JSSESIONID,因此问题不在服务端
    2. 确定获取session失败的根本原因是浏览器发送请求时根本就没有把cookie带过去。
    3. 通过Chrome开发者工具看浏览器cookie,发现原来是服务端发送的cookie一直被浏览器忽略了,根本就没有存储下来
    4. 查找cookie被忽略的原因,发现浏览器接收cookie时会检查Cookie的domain,path,secure属性是否与当前URL一致,不一致就会忽略该Cookie
    5. 问题就此解决,因为我是将项目部署到webapps/s3mall,然后将域名s3mall.s3kj.xin反向代理到localhost:8080/s3mall/;上,因此cookie返回来时的path=/s3mall,与请求时的URL不符,所以cookie被浏览器忽略了。
    查找资料的过程还查找了许多session跨域之类的问题,然后发现session这一块就有很多东西还是不清不楚的,这两天虽然看了许多相关东西,但是还是没有建立起相应的概念,希望老师有空可以整理一篇关于session的文章,相信对很多同学会有帮助的
    回复 有任何疑惑可以回复我~ 2017-12-29 15:45:20
  • Geely 回复 提问者 纪无涯 #3
    辛苦同学,take care,早日康复,我仔细看了你的排查步骤!非常赞!!没问题,有时间我好好整理个文章发给大家~~感谢你这个非常非常详细的分享,这个排查思路以及思考深度相当之赞!!
    回复 有任何疑惑可以回复我~ 2017-12-31 11:32:54
Geely 2017-12-24 22:52:29

你好同学,有没有系统的日志,还有你访问的截图,也一起发上来,现在这个线索不好排查。

你如果用natapp来访问的话,这个和服务器没关系呀。

你是在用阿里云还是本机服务呢?


0 回复 有任何疑惑可以回复我~
  • 提问者 纪无涯 #1
    老师,回复里好像不能放图片,所以我把图和相关信息放在回答里了
    回复 有任何疑惑可以回复我~ 2017-12-25 14:51:39
  • Geely 回复 提问者 纪无涯 #2
    没关系的,我看一下,但是图片放不大呀晕。。看不清。。我尽力啊。。。
    回复 有任何疑惑可以回复我~ 2017-12-26 22:17:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信