У меня есть WebClient, который отправляет объект JSON с учетными данными для входа на удаленный сервер. Затем удаленный сервер возвращает cookie. После чего мне нужно отправить данные на этот удаленный сервер вместе с cookie. Однако я не могу понять, как повторно использовать куки в POST.
Насколько я могу судить, ответ при входе в систему дает следующую структуру MultiValueMap<String, ResponseCookie>
, однако код для установки cookie на POST требует MultiValueMap<String, String>
или просто cookie(String, String)
.
Полагаю, мне не хватает какой-то конвертерной магии, но что?
Мне даже нужно вернуть весь файл cookie?
печенье выглядит так;
{SSO_Sticky_Session-47873-loadBalancedAdminGrp=[SSO_Sticky_Session-47873-loadBalancedAdminGrp=BNAMAKAKJABP; Path=/; HttpOnly], AUTH_TOKEN=[AUTH_TOKEN=v0l3baVZejIKjdzA1KGpkz4ccnosE6rKLQig1D2bdb-voFmVrF_aaYgzWl3Yc8QK; Path=/], uid=[uid=sjzipQdBtU30OlVbPWtDK2625i24i6t6g3Rjl5y5XcI=; Path=/], __cfduid=[__cfduid=dd872f39fd1d3bfe2a5c7316cd9ff63cd1554623603; Path=/; Domain=.aDomain.net; Max-Age=31535999; Expires=Mon, 6 Apr 2020 07:53:23 GMT; HttpOnly], JSESSIONID=[JSESSIONID=A264A713AD060EE12DA8215AEF66A3C0; Path=/aPath/; HttpOnly]}
Мой код указан ниже. Я удалил тип контента для краткости;
WebClient webClient = WebClient.create("https://remoteServer");
MultiValueMap<String, ResponseCookie> myCookies;
webClient
.post()
.uri("uri/login")
.body(Mono.just(myLoginObject), MyLogin.class)
.exchange()
.subscribe(r ->
System.err.println("Received:" + r.cookies());
myCookies = r.cookies();
);
webClient
.post()
.uri("/uri/data")
.cookies(????) // what goes here ??
.body(....)
.exchange();