我的 Web 应用程序中有一个 REST api,我可以在其中获取另一个 Web 应用程序生成的 CAS 票证。
该网络应用实习生使用
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)
为什么我的票不被识别?
cas验证票证的方式是:
您遇到的问题可能由多种原因引起:
检查生成的 serviceUrl ,因此更改包 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