0

我在我的一个应用程序中使用 CAS 身份验证。CAS 版本 jar 是 - cas-client-core-3.1.10.jar。在使用我正确的凭据时,它给了我以下异常-

org.jasig.cas.client.validation.TicketValidationException: No valid assertions from the SAML response found.
org.jasig.cas.client.validation.TicketValidationException: No valid assertions from the SAML response found.
at org.jasig.cas.client.validation.Saml11TicketValidator.parseResponseFromServer(Saml11TicketValidator.java:97)
at org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:188)

想知道这个异常的原因是什么?在检查 Saml11TicketValidator.java 的来源时,我没有看到此错误消息出现的确切情况。知道这条消息表示什么吗?

4

3 回答 3

2

我得到了这个问题的解决方案。实际问题出在我系统的时钟速度上。我系统的当前时间戳不在 CAS 的 BEFORE 和 AFTER 时间戳之间。并且可配置参数的值 - 'tolerance'(由 CAS 提供)也没有帮助。所以我将公差参数配置为一个巨大的长值(即 75000)。通过这个,我能够绕过 CAS 抛出的 TicketValidationException。

于 2012-08-02T08:33:36.360 回答
1

为了澄清munna 的响应,我遇到了同样的问题,并通过将容差参数添加到使用 CAS 客户端的应用程序中的 web.xml 来解决它:

<init-param>
    <!--
        Adjust to accommodate clock drift between client/server.
        Increasing tolerance has security consequences, so it is
        preferable to correct the source of clock drift instead.
    -->
    <param-name>tolerance</param-name>
    <param-value>5000</param-value>
</init-param>

有关 Saml11TicketValidationFilter 的完整示例,请参见https://wiki.jasig.org/display/CASC/Saml11TicketValidationFilter+Example

于 2017-01-18T20:05:43.607 回答
0

是的,实际上我也有同样的错误......这是问题,因为 CAS 服务器时间不同。

现在通过设置时间戳解决问题

于 2014-02-04T10:38:13.467 回答