使用cas做单点登录,在验证ticket的时候,报下面的错误:
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationFailure code='INVALID_TICKET'>
未能够识别出目标 &#;ST--gqQSrEpDwAQlHLdkJIEz-cas01.example.org&#;票根
</cas:authenticationFailure>
</cas:serviceResponse>
原因,serviceTicketExpirationPolicy默认值时间是1.8秒,当登录成功,携带ST返回客户端,客户端带着server和ST去服务器验证,但此时服务器端的ST已经失效。
解决办法:
修改WEB-INF/spring-configuration/ticketExpirationPolicies.xml中的 时间,SECONDS 指明时间单位
<!-- Expiration policies -->
<util:constant id="SECONDS" static-field="java.util.concurrent.TimeUnit.SECONDS"/>
<bean id="serviceTicketExpirationPolicy" class="org.jasig.cas.ticket.support.MultiTimeUseOrTimeoutExpirationPolicy"
c:numberOfUses="" c:timeToKill="" c:timeUnit-ref="SECONDS"/>