目录:

1.定位问题

2.问题产生的原因

3.解决问题

一 定位问题

  首先,如下图所示:输入到地址栏的地址被302重定向到单点登录地址,地址由Response Headers中的参数Location所指定,勾选Preserve log,保存跳转之前的请求轨迹。

  接下来,如下图所示:浏览器访问带 ?service=*** 的单点登录地址来请求登录页,在返回的Response Headers中有参数Set-Cookie,在本地cookie中设置了CASTGC,设置了cookie的有效时间。问题就出在了这个地方,如果浏览器本地禁止了写cookie操作,那么set-cookie并不会成功;那么会话的jsessionid信息会通过url重写的方式,传送到CAS 服务端,来保持通话。

二 问题产生的原因

  通过Preserve log对上一步提交流程的跟踪发现,定位到问题产生的原因在于:客户端禁用cookie的情况下重写URL。重写URL是用封号将jsessionid紧跟在请求地址之后,在访问参数之前的动作。

  对于客户端禁用cookie,除了重写URL,还有表单隐藏字段的方法来传递sessionid。

三 解决问题

  在web.xml中添加如下配置文件:

<session-config>
  <tracking-mode>COOKIE</tracking-mode>
</session-config>

 四 问题补充

  内存cookie和硬盘cookie:内存cookie没有expires属性,关闭浏览器后再重新打开页面,就会丢失。硬盘cookie设置了expires属性,此时cookie将保存到硬盘上。

  如何禁用URL重写,参考:https://fralef.me/tomcat-disable-jsessionid-in-url.html

最新文章

  1. System.Dynamic.ExpandoObject 类型的简单使用
  2. 禁止盗链,强制回登录页面web.config配置
  3. 在repeart中获取行数据
  4. 阿里云nat mysql配置
  5. Remoting的入门教程
  6. [国嵌攻略][148][MTD系统架构]
  7. VLAN 模式下的 OpenStack 管理 vSphere 集群方案
  8. day9(Hash、字典)
  9. Spring Boot 集成Swagger
  10. 【CSA35G】【XSY3318】Counting Quests DP 拉格朗日反演 NTT
  11. MySql+EF &lt;二&gt;
  12. DDD 学习记录
  13. 自学python 1.
  14. GCC编译器原理(一)04------GCC 工具:nlmconv、nm、objcopy、objdump和 ranlib
  15. Hibernate 补充 ManyToOne、OneToMany、OneToOne的使用例
  16. 理解 Python 的执行方式,与字节码 bytecode 玩耍 (上)
  17. C. A Mist of Florescence
  18. Web Deploy远程部署配置图解
  19. SQL Server占用服务器内存过高
  20. cookie 常用的几种方法

热门文章

  1. Java 基础 集合框架
  2. 用python实现ARP欺骗
  3. Docker 常用命令(二)
  4. JAVA中static的作用
  5. centos安装系统全过程
  6. AsyncHttpSupport并发发送请求
  7. MySQL出现Access denied for user ‘root’@’localhost’ (using password:YES)
  8. phpStorm中如何不让其自动添加封闭大括号?
  9. CMD 命令2
  10. (原)faster rcnn的tensorflow代码的理解