powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить http-сессию во встроенном приложении Vaadin?
25 сообщений из 25, страница 1 из 1
Как получить http-сессию во встроенном приложении Vaadin?
    #39340170
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело обстоит следующим образом. Есть некий проект, крутящийся под WildFly. В определённый момент времени пользователь вводит данные, они запоминаются в сессии посредством setAttribute. Мне под моё приложение на Vaadin, где этими данными нужно воспользоваться, нарезан на страничке iframe. Так вот, когда я в приложении получаю http-сессию (через getWrappedSession), то и атрибутов в ней этих нет, да и вообще сессия какая-то другая, с другим id.

На форуме Vaadin я нашёл упоминания о том, что Vaadin создаёт какую-то свою сессию. А можно как-то до той, в которую данные заносились, достучаться?
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39340176
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А iframe точно работает в той же HTTP сессии? jsessionid сравнивали?
VaadinSession.getCurrent().getSession() пробовали?
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39340180
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

VaadinSession.getCurrent().getSession() пробовал. Другой id.

> А iframe точно работает в той же HTTP сессии?

Я вывел в консоль id сессии в том месте, где вводятся данные, и в том месте в приложении Vaadin, где пытаюсь данные получить. id разные. Значит и сессии разные. Но почему?
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39340191
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gamychЯ вывел в консоль id сессии в том месте, где вводятся данные, и в том месте в приложении Vaadin, где пытаюсь данные получить. id разные. Значит и сессии разные. Но почему?
Потому что iframe, по какой-то причине не получил доступа к jsessionid в куках. Или его там ещё не было. Предлагаю добавить jsessionid в iframe src явно.
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39340200
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Пожалуйста, подскажите, что именно написать в src?
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39340211
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gamychПожалуйста, подскажите, что именно написать в src?
Что-то вроде такого:

http://host:port/path;jsessionid={id-существующей-сессии}?parameters
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39340911
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

К сожалению не помогает. Да, id сессии тот, что указан в src. Но сам объект HttpSession другой, хотя и с указанным id.
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39341322
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gamychДело обстоит следующим образом. Есть некий проект, крутящийся под WildFly. В определённый момент времени пользователь вводит данные, они запоминаются в сессии посредством setAttribute. Мне под моё приложение на Vaadin, где этими данными нужно воспользоваться, нарезан на страничке iframe. Так вот, когда я в приложении получаю http-сессию (через getWrappedSession), то и атрибутов в ней этих нет, да и вообще сессия какая-то другая, с другим id.

На форуме Vaadin я нашёл упоминания о том, что Vaadin создаёт какую-то свою сессию. А можно как-то до той, в которую данные заносились, достучаться?

Ну дык правильно!
iframe автоматом создает новую сессию.
Что могу сказать.
Избавляйтесь от iFrame...
Ну или передавайте параметры ч/з cookie ;-)
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39341335
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulНу дык правильно!
iframe автоматом создает новую сессию.


Я что-то недопонял, наверное.
Почему iframe создает новую сессию? Вариант только один -- через iframe ходим не туда, где авторизованы, но у ТС же вроде не так.
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39341337
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. SakЯ что-то недопонял, наверное.
Почему iframe создает новую сессию? Вариант только один -- через iframe ходим не туда, где авторизованы, но у ТС же вроде не так.
Да, странное что-то у автора происходит. Даже если iframe использовать на тот же домен, всё равно куки должны подгребаться из той же сессии.

gamychК сожалению не помогает. Да, id сессии тот, что указан в src. Но сам объект HttpSession другой, хотя и с указанным id.
А у вас точно 1 сервер и 1 war модуль?
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39341351
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gamychBlazkowicz,
Пожалуйста, подскажите, что именно написать в src?
- новое приложение
- новое поле Hello World!
- переход на страничку новую№2
- читаем поле выше из новой странички (перекинули через сессию при переходе)
- на каждом шаге в лог вывести номер сессии
Всё
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39341356
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sakmad_nazgulНу дык правильно!
iframe автоматом создает новую сессию.


Я что-то недопонял, наверное.
Почему iframe создает новую сессию? Вариант только один -- через iframe ходим не туда, где авторизованы, но у ТС же вроде не так.

Вопрос не ко мне, а к производителям браузеров :-)
Ну как бы исторически сложилось, что iFrame Обрабатывается как новая сессия.

А так. Попробуйте переписать приложение в stateless.
И все параметры/атрибуты передавать явно.
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39341357
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczAlexander A. SakЯ что-то недопонял, наверное.
Почему iframe создает новую сессию? Вариант только один -- через iframe ходим не туда, где авторизованы, но у ТС же вроде не так.
Да, странное что-то у автора происходит. Даже если iframe использовать на тот же домен, всё равно куки должны подгребаться из той же сессии.


А вот это не факт.
Сейчас браузеры не хранят cookie в одной куче.
А для каждый сессии их изолируют.
Думаю, из-за безопасности они еще могут "плевать" на id-сессии.
Ну чтобы никто не мог "подменить" сессию.
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39341360
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
у куки есть параметры (сессионная \ путь \ время жизни)
Какие приложение выставит, такие и будут.
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39341378
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulА вот это не факт.
Сейчас браузеры не хранят cookie в одной куче.
А для каждый сессии их изолируют.
Думаю, из-за безопасности они еще могут "плевать" на id-сессии.
Ну чтобы никто не мог "подменить" сессию.
Да, какая нафиг "куча"? Куки привязаны к домену. Какая разница ты их в новой странице берешь или в фрейме?
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39341387
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вспомнилось. Были похожие проблемы с показом страниц в iframe в IE. Точнее, в TWebBrowser в дельфяной проге.
Вылечилось передачей каких-то волшебных значений в заголовке P3P.
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39343745
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,


Да, 1 сервер и 1 модуль.
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39343751
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gamychДа, 1 сервер и 1 модуль.
Не может 1 контейнер сервлетов выдать вам две разные сессии на один jsessionid. Либо там сессия в приципе пустая, поэтому это две разные Map без данных. Либо вы что-то напутали.
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39343755
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgulИ все параметры/атрибуты передавать явно.
Но как?
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39343766
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczНе может 1 контейнер сервлетов выдать вам две разные сессии на один jsessionid. Либо там сессия в приципе пустая, поэтому это две разные Map без данных. Либо вы что-то напутали.
Да там приложение по идиотски построено.

Верхнее приложение сделано примерно так. На сервере объявлен WebSocket ServerEndPoint, под браузер загружен html с java- скриптами, и эти балалайки обменивается друг с другом сообщениями, соответственно эти сообщения разбираются в браузере скриптами, на сервере javа-кодом. Две трети кода на отрисовку контролов, если не больше. Мне так не нравится и не хочется. Я в этом общем html нарезал себе iframe, в который хочу поместить свой сервлет, а его морду сделать на Vaadin (потому что его осилил как-то). Но кое-какие данные мне себе из верхнего приложения передать нужно. Соответственно, я влез к ним в websocket, получил там http-сессию и записал в неё нужные мне атрибуты, в расчёте на то, что в своём сервлете их из сессии достану и обработаю. Но не тут-то было, vaadin сессию другую создаёт. B даже если указать id сессии, как Вы мне подсказали, то хоть id у неё и нужный, но данных в ней нет. При этом код, который данные помещает в ту сессию, что я получил в веб-сокете, отрабатывает раньше моего сервлета, это совершенно точно.
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39343787
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gamych,

Ах, ещё и WebSocket (в пост призывается вадя)?
Тогда всё может оказаться сложнее
http://stackoverflow.com/questions/17936440/accessing-httpsession-from-httpservletrequest-in-a-web-socket-serverendpoint
А ваше желание перейти на iframe кажется ещё более странным
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39343796
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Я как раз и достучался до http-сессии, как по Вашей ссылке написано.

А если не через iframe, то как мне лучше встроиться в готовую html?
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39343800
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot mad_nazgul все параметры/атрибуты передавать явно.[/quot]

Вы имеете в виду
Код: html
1.
<iframe src="url?paramName=paramValue"></iframe>

?
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39343818
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gamych,
В готовую ничего не трогая?
JS естественно.
...
Рейтинг: 0 / 0
Как получить http-сессию во встроенном приложении Vaadin?
    #39343825
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gamych,
Ваде в личку напиши.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить http-сессию во встроенном приложении Vaadin?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]