У меня получилось, извините, если кто-то тоже пишет ответ.Когда у меня есть CASTGC и JSessionId, я создаю новый запрос GET с:
URL: https://cas.server.a/cas/login?service=https://service.a/resource
Cookie: JSESSIONID=A89...;CASTGC=TGT-27681...-cas;
Я не знаю, почему он не работает при первом входе в систему, чтобы получить CASTGC Cookie, чтобыПодводя итог, можно выделить три запроса: первый для получения lt, второй для получения CASTGC Cookie и последний для получения услуги.
- Спасибо за ответ, чтобы сэкономить время для других, этошаги, которые я сделал для Jasig CAS:
шаг 1, HTTP POST, чтобы получить lt
URL: https://cas.server.a/cas/login
шаг 2, передача свойства, чтобы получить lt и поместить его в свойство lt:
source //input[@name="lt"]/@value, from XML formatted response
destination: project property lt
шаг 3, Groovy Script для получения файла cookie JSessionId и помещения его в свойство Cookie1:
def headerValue = testRunner.testCase.getTestStepByName("step-1").httpRequest.response.responseHeaders["Set-Cookie"]
context.testCase.setPropertyValue('Cookie1', headerValue[0]);
шаг 4, HTTP POST для получения CGT
URL: https://cas.server.a/cas/login
username: redacted
password: redacted
lt: ${#TestCase#lt}
_eventId: submit
шаг 5,Groovy-скрипт для получения CGT-cookie
def headerValue = testRunner.testCase.getTestStepByName("step-4").httpRequest.response.responseHeaders["Set-Cookie"]
context.testCase.setPropertyValue('Cookie2', headerValue[1]);
шаг 6, HTTP POST для получения билета на сервис
URL: https://cas.server.a/cas/login?service=https://service.a/resource
cookie:${#TestCase#Cookie1};${#TestCase#Cookie2}
not allowed redirects
step7, Groovy-скрипт для получения сервисного билета и помещения его в свойство тестового набора 'ST'
def headerValue = testRunner.testCase.getTestStepByName("step-6").httpRequest.response.responseHeaders["Location"]
def ticket=headerValue[0];
context.testCase.setPropertyValue('ST',ticket.substring(ticket.indexOf("ticket")));
шаг 8, используйте ST, в моем случае это был вызов testLinkAPI
def ST=context.testCase.getPropertyValue('ST');
def URL="https://service.a/testlink/lib/api/xmlrpc/v1/xmlrpc.php?" + ST;
cookie: ${#TestCase#Cookie1};${#TestCase#Cookie2}