• 关于cas登录,服务端重定向客户端url后跟ticket校验失败案例


    事情是这样的,cas服务端集成了不同的客户端,现在A客户端在登录后,登出时,cas服务端日志如下:

     其中TGT-84是一次正常的登录,登出。

    我们要关注的是TGT-85的,首先红框内的打印,记录了正常的登录,然后客户端A登出后,再次登录,下面就报ERROR

    分析可得,是CentralAuthenticationServiceImpl.class里对serviceTicket和service做校验时不通过。对比报错就是serviceTicket是以Action结尾的,而客户端的请求service在Action后跟了JSESSIONID串。找到问题所在,就继续分析。

    以下内容摘自网络

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

    在客户端的web.xml里面添加如下配置:其中session-timeout用来设置超时时间,单位:分。

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

    重启后,再次操作:发现JSESSIONID已经被写入Cookie

    问题解决。

  • 相关阅读:
    Git.GitHub浅析
    十招让你的Powerpoint脱胎换骨
    UML用例图
    matlab 矩阵变换
    matlab实现主成分分析 princomp函数
    搭建顶级域名下的个人博客网站
    文本溢出(单行、多行)
    CSS入门级常识
    总结一下各种居中(内联元素、块级元素、浮动元素、绝对定位元素)*(水平、垂直)
    块级元素和内联元素的宽高是如何确定的
  • 原文地址:https://www.cnblogs.com/justtodo/p/12896120.html
Copyright © 2020-2023  润新知