【问题标题】:not recognized cas ticket不承认 CAS 票
【发布时间】:2023-04-02 19:59:01
【问题描述】:

我的 Web 应用程序中有一个 REST api,我可以在其中获得另一个 Web 应用程序生成的 CAS 票证。

那个 webapp 实习生使用cas20proxyticketvalidator 来验证票证。因此,我还在自定义过滤器中使用Cas20ProxyTicketValidator 来验证票证。

但它总是给我以下错误:

ticket = ST-148008-jWXKeEdHkxmuktvYqXF6-cas
org.jasig.cas.client.validation.TicketValidationException:
                ticket 'ST-148008-jWXKeEdHkxmuktvYqXF6-cas' not recognized

        at org.jasig.cas.client.validation.Cas20ServiceTicketValidator.parseResponseFromServer(Cas20ServiceTicketValidat
or.java:86)
        at org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java
:217)

为什么我的票无法识别?

【问题讨论】:

    标签: single-sign-on cas


    【解决方案1】:

    cas 验证票证的方式是:

    1. 您的客户端(或其他 Web 应用程序)向中继请求票证 特定服务的服务器,例如案例 http%3A%2F%2Fwww.mywebapp.com
    2. cas 服务器生成一行,存储用户的 ssoguid、服务和票证。它将票证返回给客户端(或 其他网络应用)
    3. 客户端(或其他 web 应用程序)将票证发送到您的服务器
    4. 然后,您的服务器向 cas 服务器的 serviceValidate 端点发送一个请求,其中包含票证和服务, http%3A%2F%2Fmywebapp.com
    5. cas 服务器使用票证和服务对来查找它生成的行。如果它找到该行: a) 检查是否 通过向该 url 发送请求,服务是真实的 b) 删除该行 在此验证检查后使票证无效 c) 它返回 附加到您服务器的票证的用户。现在票可以 不会再次验证。

    您遇到的问题可能有几个原因:

    1. 票已经被验证(我不认为那是 适合您)
    2. 您在生成票证时发送的服务与您发送到 serviceValidate 端点的服务不同(它们必须 相同)。 (我猜这是你的问题 体验,特别是如果另一个 web 应用程序生成了票证。这 cas 服务器将有 http%3A%2F%2Fotherwebapp.com 存档但会 正在尝试使用 http%3A%2F%2Fmywebapp.com 查找一行,其中 不存在,因为您没有创建它)
    3. 发送的服务可以 中继服务器不联系(我不太确定 有关其工作原理或检查完成时间的详细信息,但 建议您使用可以联系到的服务)

    【讨论】:

      【解决方案2】:

      检查 serviceUrl generated,因此更改包 org.jasig 的日志级别。

      使用SpringBoot,在application.properties中添加

      logging.level.org.jasig=DEBUG
      

      在控制台中

      org.jasig.cas.client.util.CommonUtils : serviceUrl generated: https://xxx
      

      在 application.properties 中验证并调整您的 cas.client-host-url

      ## CAS[2.0]
      cas.server-url-prefix=https://cashost.com/cas
      cas.server-login-url=https://cashost.com/cas/login
      cas.client-host-url=xxx
      cas.validation-type=CAS
      

      注意 cas.client-host-url,url 末尾不要有斜线。

      修改.properties后不要忘记mvn clean package

      【讨论】:

        猜你喜欢
        • 2013-01-29
        • 2016-11-18
        • 1970-01-01
        • 2014-05-11
        • 1970-01-01
        • 2012-02-08
        • 2016-03-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多