|
|
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
Дело обстоит следующим образом. Есть некий проект, крутящийся под WildFly. В определённый момент времени пользователь вводит данные, они запоминаются в сессии посредством setAttribute. Мне под моё приложение на Vaadin, где этими данными нужно воспользоваться, нарезан на страничке iframe. Так вот, когда я в приложении получаю http-сессию (через getWrappedSession), то и атрибутов в ней этих нет, да и вообще сессия какая-то другая, с другим id. На форуме Vaadin я нашёл упоминания о том, что Vaadin создаёт какую-то свою сессию. А можно как-то до той, в которую данные заносились, достучаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 17:16 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
А iframe точно работает в той же HTTP сессии? jsessionid сравнивали? VaadinSession.getCurrent().getSession() пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 17:27 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, VaadinSession.getCurrent().getSession() пробовал. Другой id. > А iframe точно работает в той же HTTP сессии? Я вывел в консоль id сессии в том месте, где вводятся данные, и в том месте в приложении Vaadin, где пытаюсь данные получить. id разные. Значит и сессии разные. Но почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 17:41 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
gamychЯ вывел в консоль id сессии в том месте, где вводятся данные, и в том месте в приложении Vaadin, где пытаюсь данные получить. id разные. Значит и сессии разные. Но почему? Потому что iframe, по какой-то причине не получил доступа к jsessionid в куках. Или его там ещё не было. Предлагаю добавить jsessionid в iframe src явно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 17:49 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Пожалуйста, подскажите, что именно написать в src? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 17:55 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
gamychПожалуйста, подскажите, что именно написать в src? Что-то вроде такого: http://host:port/path;jsessionid={id-существующей-сессии}?parameters ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 18:08 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, К сожалению не помогает. Да, id сессии тот, что указан в src. Но сам объект HttpSession другой, хотя и с указанным id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2016, 15:34 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
gamychДело обстоит следующим образом. Есть некий проект, крутящийся под WildFly. В определённый момент времени пользователь вводит данные, они запоминаются в сессии посредством setAttribute. Мне под моё приложение на Vaadin, где этими данными нужно воспользоваться, нарезан на страничке iframe. Так вот, когда я в приложении получаю http-сессию (через getWrappedSession), то и атрибутов в ней этих нет, да и вообще сессия какая-то другая, с другим id. На форуме Vaadin я нашёл упоминания о том, что Vaadin создаёт какую-то свою сессию. А можно как-то до той, в которую данные заносились, достучаться? Ну дык правильно! iframe автоматом создает новую сессию. Что могу сказать. Избавляйтесь от iFrame... Ну или передавайте параметры ч/з cookie ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 06:53 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulНу дык правильно! iframe автоматом создает новую сессию. Я что-то недопонял, наверное. Почему iframe создает новую сессию? Вариант только один -- через iframe ходим не туда, где авторизованы, но у ТС же вроде не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 08:44 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakЯ что-то недопонял, наверное. Почему iframe создает новую сессию? Вариант только один -- через iframe ходим не туда, где авторизованы, но у ТС же вроде не так. Да, странное что-то у автора происходит. Даже если iframe использовать на тот же домен, всё равно куки должны подгребаться из той же сессии. gamychК сожалению не помогает. Да, id сессии тот, что указан в src. Но сам объект HttpSession другой, хотя и с указанным id. А у вас точно 1 сервер и 1 war модуль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 08:47 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
gamychBlazkowicz, Пожалуйста, подскажите, что именно написать в src? - новое приложение - новое поле Hello World! - переход на страничку новую№2 - читаем поле выше из новой странички (перекинули через сессию при переходе) - на каждом шаге в лог вывести номер сессии Всё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 10:05 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
Alexander A. Sakmad_nazgulНу дык правильно! iframe автоматом создает новую сессию. Я что-то недопонял, наверное. Почему iframe создает новую сессию? Вариант только один -- через iframe ходим не туда, где авторизованы, но у ТС же вроде не так. Вопрос не ко мне, а к производителям браузеров :-) Ну как бы исторически сложилось, что iFrame Обрабатывается как новая сессия. А так. Попробуйте переписать приложение в stateless. И все параметры/атрибуты передавать явно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 10:20 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczAlexander A. SakЯ что-то недопонял, наверное. Почему iframe создает новую сессию? Вариант только один -- через iframe ходим не туда, где авторизованы, но у ТС же вроде не так. Да, странное что-то у автора происходит. Даже если iframe использовать на тот же домен, всё равно куки должны подгребаться из той же сессии. А вот это не факт. Сейчас браузеры не хранят cookie в одной куче. А для каждый сессии их изолируют. Думаю, из-за безопасности они еще могут "плевать" на id-сессии. Ну чтобы никто не мог "подменить" сессию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 10:23 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, у куки есть параметры (сессионная \ путь \ время жизни) Какие приложение выставит, такие и будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 10:32 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulА вот это не факт. Сейчас браузеры не хранят cookie в одной куче. А для каждый сессии их изолируют. Думаю, из-за безопасности они еще могут "плевать" на id-сессии. Ну чтобы никто не мог "подменить" сессию. Да, какая нафиг "куча"? Куки привязаны к домену. Какая разница ты их в новой странице берешь или в фрейме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 11:46 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
Вспомнилось. Были похожие проблемы с показом страниц в iframe в IE. Точнее, в TWebBrowser в дельфяной проге. Вылечилось передачей каких-то волшебных значений в заголовке P3P. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 12:15 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Да, 1 сервер и 1 модуль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 17:37 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
gamychДа, 1 сервер и 1 модуль. Не может 1 контейнер сервлетов выдать вам две разные сессии на один jsessionid. Либо там сессия в приципе пустая, поэтому это две разные Map без данных. Либо вы что-то напутали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 17:40 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulИ все параметры/атрибуты передавать явно. Но как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 17:45 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНе может 1 контейнер сервлетов выдать вам две разные сессии на один jsessionid. Либо там сессия в приципе пустая, поэтому это две разные Map без данных. Либо вы что-то напутали. Да там приложение по идиотски построено. Верхнее приложение сделано примерно так. На сервере объявлен WebSocket ServerEndPoint, под браузер загружен html с java- скриптами, и эти балалайки обменивается друг с другом сообщениями, соответственно эти сообщения разбираются в браузере скриптами, на сервере javа-кодом. Две трети кода на отрисовку контролов, если не больше. Мне так не нравится и не хочется. Я в этом общем html нарезал себе iframe, в который хочу поместить свой сервлет, а его морду сделать на Vaadin (потому что его осилил как-то). Но кое-какие данные мне себе из верхнего приложения передать нужно. Соответственно, я влез к ним в websocket, получил там http-сессию и записал в неё нужные мне атрибуты, в расчёте на то, что в своём сервлете их из сессии достану и обработаю. Но не тут-то было, vaadin сессию другую создаёт. B даже если указать id сессии, как Вы мне подсказали, то хоть id у неё и нужный, но данных в ней нет. При этом код, который данные помещает в ту сессию, что я получил в веб-сокете, отрабатывает раньше моего сервлета, это совершенно точно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 17:57 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
gamych, Ах, ещё и WebSocket (в пост призывается вадя)? Тогда всё может оказаться сложнее http://stackoverflow.com/questions/17936440/accessing-httpsession-from-httpservletrequest-in-a-web-socket-serverendpoint А ваше желание перейти на iframe кажется ещё более странным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 18:10 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Я как раз и достучался до http-сессии, как по Вашей ссылке написано. А если не через iframe, то как мне лучше встроиться в готовую html? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 18:17 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
[quot mad_nazgul все параметры/атрибуты передавать явно.[/quot] Вы имеете в виду Код: html 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 18:20 |
|
||
|
Как получить http-сессию во встроенном приложении Vaadin?
|
|||
|---|---|---|---|
|
#18+
gamych, В готовую ничего не трогая? JS естественно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 18:49 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39341357&tid=2123519]: |
0ms |
get settings: |
12ms |
get forum list: |
18ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
56ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
| others: | 262ms |
| total: | 473ms |

| 0 / 0 |
