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

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

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

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

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

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

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

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

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

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


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

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


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

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

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


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


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

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

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

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

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

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

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


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