CAS: служебный билет / CAS-ответ сервера пуст

#c #rest #cas

#c #отдых #cas

Вопрос:

Я использую 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: %sn", QString::fromAscii(replyData.data()));
  

Я думаю, у меня здесь недопонимание. Я просто предполагаю, что ответ является QString или, по крайней мере, будет преобразован правильно. Возможно ли, что ответ имеет формат, который просто не может быть преобразован таким образом? Если да, что мне нужно сделать?

Если это не причина, и ответ — это просто пустой ответ или что-то в этом роде, вышеупомянутая DEBUG информация может указывать на то, в чем моя проблема.

Может быть, мне нужно внести какие-либо другие изменения web.xml в, чтобы заставить REST работать здесь? Все, что я делал, было только из этого источника.

РЕДАКТИРОВАТЬ: похоже на ошибку из CAS 4.2.6. Я понизил рейтинг до 4.2.5, и теперь я получаю исключение NullPointerException на сервере CAS, когда я отправляю зашифрованный TGT через RESTful API

Ответ №1:

Оказалось, что это ошибка из CAS 4.2.6. Перейдите WEB-INFlibcas-server-webapp-support-4.2.6.jarMETA-INFspringweb-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" />