Я использую RESTful API, и когда я беру TGT, чтобы запросить ST в https://www.mysite.de/cas/v1/tickets/" + tgt
мой сервер 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 работать здесь? Все, что я сделал, было только от этот источник.
РЕДАКТИРОВАТЬ: Похоже, ошибка от CAS 4.2.6. Я понизился до 4.2.5, и теперь я получаю исключение NullPointerException на сервере CAS при отправке зашифрованного TGT через RESTful APi
Оказалось, что это баг с CAS 4.2.6. Идти к 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" />
Других решений пока нет …