CAS:服务 Ticket/CAS-Server 回复为空

CAS: Service Ticket/CAS-Server reply is empty

我使用 RESTful API,当我使用 TGT 在 https://www.mysite.de/cas/v1/tickets/" + tgt 请求 ST 时,我的 CAS 服务器抛出此消息:

2016-10-12 18:07:39,168 DEBUG [org.springframework.webflow.mvc.servlet.FlowHandlerMapping] - <No flow mapping found for request with URI '/cas/v1/tickets/TGT-**********************************************6rXJ4WKxmo-cas01.example.org'>
2016-10-12 18:07:39,168 DEBUG [org.springframework.webflow.mvc.servlet.FlowHandlerMapping] - <No flow mapping found for request with URI '/cas/v1/tickets/TGT-**********************************************6rXJ4WKxmo-cas01.example.org'>
2016-10-12 18:07:39,168 WARN [org.springframework.web.servlet.PageNotFound] - <No mapping found for HTTP request with URI [/cas/v1/tickets/TGT-**********************************************6rXJ4WKxmo-cas01.example.org] in DispatcherServlet with name 'cas'>

当我在控制台中打印出我的回复时,我得到:

Service Ticket: 0♠

0♠ 是我通过这样做得到的响应:

QByteArray replyData = reply->readAll();
QString serviceTicket = QString::fromAscii(replyData.data());
fprintf(stderr, "Service Ticket: %s\n", QString::fromAscii(replyData.data()));

我想我在这里有一个误会。我只是假设回复是 QString 或者至少会以正确的方式转换。是否有可能回复的格式无法像那样转换?如果是,我需要做什么?

如果这不是原因并且回复只是空回复或其他内容,上述 DEBUG 信息可能表明我的问题所在。

我可能必须对 web.xml 进行任何其他更改才能让 REST 在这里工作吗?我所做的一切都来自 this source

编辑: 似乎是 CAS 4.2.6 的错误。我降级到 4.2.5,现在当我通过 RESTful APi

发送加密的 TGT 时,我在 CAS 服务器上收到 NullPointerException

原来这是CAS 4.2.6的bug。转到 war 中的 WEB-INF\lib\cas-server-webapp-support-4.2.6.jar\META-INF\spring\web-ctx-config.xml 并更改此设置:

<bean id="urlPathHelperWeb" class="org.springframework.web.util.UrlPathHelper"
          p:alwaysUseFullPath="true" />

对此:

<bean id="urlPathHelperWeb" class="org.springframework.web.util.UrlPathHelper"
          p:alwaysUseFullPath="false" />