У меня есть два приложения, расположенные на том же сервере tomcat7:Использование одной сессии с двумя TOMCAT приложений
Теперь то, что я хочу для того чтобы достигнуть, что writeApplication записывает что-то в сессию, после чего начинается readApplication и считывает эту информацию из сеанса.
В обоих web.xml файлов я вставил:
<session-config>
<session-timeout>720</session-timeout>
<cookie-config>
<name>JSESSIONID</name>
<path>/</path>
<http-only>true</http-only>
</cookie-config>
</session-config>
В writeApplication (простой сервлет) Я пишу в сессию как:
HttpSession session = req.getSession();
session.setAttribute("test", "myString");
Как пожелал JSESSIONID
-Cookie записывается в "/"
, поэтому https://my.application.com/.
В моем readApplication (приложение для GWT) Я хочу, чтобы прочитать эту информацию из сессии с помощью:
HttpSession httpSession = getThreadLocalRequest().getSession();
String myString = (String) httpSession.getAttribute("test");
В этом случае я всегда получаю null
.
Если я пишу что-то со стороны readApplication путь такой же, как и в writeApplication, но если я хочу читать, я не могу получить информацию, которую я добавлял с сервлета.
Не должно ли это работать так?
Моя надежда состояла в том, чтобы избежать этого. В этом случае мне пришлось бы указать параметр с идентификатором записи db в URL-адресе. Как я мог быть уверен, что только тот, кто вызвал * writeApplication *, может прочитать эту информацию из db. – mxlse
@mxlse Играя адвоката дьявола, как Tomcat (или JBoss и т. Д.) Управляют тем же самым, если сеанс должен делиться через два веб-приложения? –
Хорошо, спасибо. Я думаю, что я разрешу его с собственным файлом cookie в моей реализации. – mxlse