【发布时间】:2015-09-29 00:15:00
【问题描述】:
我有两个 Java 应用程序在 Tomcat 上作为 servlet 运行。
应用程序 A 在另一个应用程序 B 上创建会话。然后应用程序 A 使用会话 cookie 登录到应用程序 B。此 cookie 存储在会话变量中并用于后续登录:
HttpSession session = request.getSession(false);
String cookieValue = session.getAttribute(sessionAttributeName);
HttpHeaders headers = new HttpHeaders();
headers.add("Cookie", cookieValue);
restTemplate.exchange(uri, HttpMethod.GET, new HttpEntity<>(headers), ProviderCostTOErrorWrapper.class);
这很好用。但我需要能够使用 REST 客户端(我使用 PostMan)登录到应用程序 B。
所以我创建了一个服务来获取存储在应用程序 A 会话中的应用程序 B 的会话 cookie。它看起来像这样:
JSESSIONID=BF5C58B08062C84C648BA4DBE3A776BE; Path=/treatment/; HttpOnly
但是当我登录到应用程序 b 并检查会话对象时,它有一个完全不同的 id:
03A85C79914839E4F6D60B343B3535C4
它也有不同的创建时间。
任何想法我做错了什么?
【问题讨论】:
标签: java session tomcat http-headers