powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / @SessionScoped бины
27 сообщений из 27, показаны все 2 страниц
@SessionScoped бины
    #37836221
denis11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что надо делать чтоб @SessionScoped бины уничтожались сразу после закрытия браузера, или всех закладок?

Также в web.xml есть такое:
Код: xml
1.
2.
3.
<session-timeout>
           1
 </session-timeout>



Тобто все сесии жывут одну минуту?
Мне надо чтоб сесии жыли до тех пор, пока хотя одна вкладка приложения открыта, а то сечас если оставить приложение на некоторые время, а потом зделать некоторые действие, то пишет : "View /content/admin/other.xhtml could not be restored."
Я так понял из-за того что никаких действий не произходило, то сесия уничтожылась... А она по идее должна работать пока открыто приложение.

Как это зделать? Это ведь класическая ситуация авторизации на ресурсе, не понимаю, почему так мало инфы по этому... Ведь каждый кто делал логин, пароль на вход в систему сталкивался с этим...
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836281
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis11111Что надо делать чтоб @SessionScoped бины уничтожались сразу после закрытия браузера, или всех закладок?
Вы хотите узнать как отключить timeout сессии, но при этом задаёте вопрос, как уничтожать сессию при закрытии браузера. Из далека зашли.

denis11111Также в web.xml есть такое:
Код: xml
1.
<session-timeout>1</session-timeout>



В любой доке по сервлетам написано что 0 или -1 должно убирать timeout.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836313
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"жИ", "шИ" пиши через "И" - 1-ый класс, наверное.

О том, открыта твоя вкладка или закрыта, сервер не знает (если нет постоянного выделенного сокет-соединения). Именно для этого и существует время жизни сессии, которое ты установил в 1 минуту. Если примитивно, то это время от последнего запроса. Соответственно, минутки 2 ничего не делал - сессия на сервере слетела.

Не скажу гарантийно именно про сессионные бины, но думаю, что это один-в-один сессионные атрибуты, но последние "уничтожаются" при закрытии браузера, но остаются при закрытии вкладки (хотя опять-таки, не помню точно, там не все совершенно одинаково у всех браузеров).

До использования Spring Security этой проблемы тоже коснулся, когда закрытие вкладки не обозначало фактически "отключение юзера от системы", открыл новую - остался на том же месте. Решал тогда это хаком с клиентской стороны - вешал на body событие onbeforeunload="invalidateSession()", POST'ом кидал ajax-запрос на сервер (с rnd-параметром), а на сервере делал session.invalidate(). Жутко некошерно, через одно место, но проверку прошел во всех доступных браузерах нескольких версий, то есть хак работал.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836331
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckДо использования Spring Security этой проблемы тоже коснулся, когда закрытие вкладки не обозначало фактически "отключение юзера от системы", открыл новую - остался на том же месте. Решал тогда это хаком с клиентской стороны - вешал на body событие onbeforeunload="invalidateSession()", POST'ом кидал ajax-запрос на сервер (с rnd-параметром), а на сервере делал session.invalidate(). Жутко некошерно, через одно место, но проверку прошел во всех доступных браузерах нескольких версий, то есть хак работал.
Не проще ли было куки настроить, чтобы они не персистелись между сессиями браузера?
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836352
denis11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruck"жИ", "шИ" пиши через "И" - 1-ый класс, наверное.

О том, открыта твоя вкладка или закрыта, сервер не знает (если нет постоянного выделенного сокет-соединения). Именно для этого и существует время жизни сессии, которое ты установил в 1 минуту. Если примитивно, то это время от последнего запроса. Соответственно, минутки 2 ничего не делал - сессия на сервере слетела.

Не скажу гарантийно именно про сессионные бины, но думаю, что это один-в-один сессионные атрибуты, но последние "уничтожаются" при закрытии браузера, но остаются при закрытии вкладки (хотя опять-таки, не помню точно, там не все совершенно одинаково у всех браузеров).

До использования Spring Security этой проблемы тоже коснулся, когда закрытие вкладки не обозначало фактически "отключение юзера от системы", открыл новую - остался на том же месте. Решал тогда это хаком с клиентской стороны - вешал на body событие onbeforeunload="invalidateSession()", POST'ом кидал ajax-запрос на сервер (с rnd-параметром), а на сервере делал session.invalidate(). Жутко некошерно, через одно место, но проверку прошел во всех доступных браузерах нескольких версий, то есть хак работал.
Спасибо что все розписал)
В рус. языке я пока нуб как и в Джаве.
Spring Security иду посмотрю на этот Spring Security.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836358
denis11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczНе проще ли было куки настроить, чтобы они не персистелись между сессиями браузера?
А если эти куки отключат? Тогда все глюкнет
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836366
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis11111BlazkowiczНе проще ли было куки настроить, чтобы они не персистелись между сессиями браузера?
А если эти куки отключат? Тогда все глюкнет
Это был вопрос к IDVsbruck по поводу того что переоткрытие браузера оставляло клиента в старой сессии. Это возможно только с включенными куками. Другого места для хранения session id между сессиями браузера нет.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836429
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНе проще ли было куки настроить, чтобы они не персистелись между сессиями браузера?
Не все так просто :)
Закрытие вкладки браузера не меняет(-ло) JSESSIONID (говорю про ИЕ, сейчас помню только про него) при открытии после другой вкладки. Поэтому и сессия подымается та же.

Но и на этот случай у меня был хак :) - при открытии страницы или рефреше в рабочем скрипте генерировал уникальное число, которое передавал на сервер. Пара из JSESSIONID и моего ID и составляли уникальный код. Правда, весь проект был построен на динамических страницах (или на флеш, не помню точно который), поэтому такой "хак" работал. В случае стандартного построения сайта с переходами между страницами, понятно, это уже не работало бы. Но на тот момент "дыру" я закрыл.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836443
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам надо тупо сделать timeout сессии 1, и написать javascript, который каждую минуту отсылает легенький ajax-запрос, продляя тем самым сессию. В итоге если закрыть все вкладки - ajax некому будет посылать и сессия благополучно умрет через минуту.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836456
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckНе все так просто :)
Закрытие вкладки браузера не меняет(-ло) JSESSIONID (говорю про ИЕ, сейчас помню только про него) при открытии после другой вкладки. Поэтому и сессия подымается та же.

Так в том-то и мой вопрос. Не проще ли настроить куку, чтобы она не персистилась.
http://en.wikipedia.org/wiki/HTTP_cookie#Session_cookie
Смотри Session cookie и Persistent cookie. Тогда при закрытии страницы, браузер не будет запоминать jsessionid. У вас же по какой-то причине jsessionid сохранялся как Persistent cookie.
Т.е. для чего городить большой workaround с JavaScript и серверными хэндлерами, если просто нужно было поменять параметры кук?
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836483
denis11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл никВам надо тупо сделать timeout сессии 1, и написать javascript, который каждую минуту отсылает легенький ajax-запрос, продляя тем самым сессию. В итоге если закрыть все вкладки - ajax некому будет посылать и сессия благополучно умрет через минуту.

Неплохо), я тоже так думал. но ещё не проверял. Должно работать в принцыпе.
Что-то мне не нравятся все эти костыли хаки и прочее.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836592
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczТак в том-то и мой вопрос. Не проще ли настроить куку, чтобы она не персистилась.
http://en.wikipedia.org/wiki/HTTP_cookie#Session_cookie
Смотри Session cookie и Persistent cookie. Тогда при закрытии страницы, браузер не будет запоминать jsessionid. У вас же по какой-то причине jsessionid сохранялся как Persistent cookie.
Т.е. для чего городить большой workaround с JavaScript и серверными хэндлерами, если просто нужно было поменять параметры кук?
Ага, понятно. Я этого не знал. В принципе, не знаю и сечас ... просто сейчас такой необходимости нет, но все же интересен механизм их установки (в общем-то, можно не отвечать, могу при необходимости посмотреть - главное, что понятна причина ТЕХ проблем).
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836598
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczТ.е. для чего городить большой workaround с JavaScript и серверными хэндлерами, если просто нужно было поменять параметры кук?На втором десятке объяснений, что должен поменять пользователь и как ему сделать это в его браузере - начинаешь ценить server-side решения :)
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836599
denis11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочется уточнить один нюанс:
Зделал я на странице Аякс-запрос к серверу, теперь сесия не уничтожается, что уже хорошо.
Но я заметил что-то странное...
В меня есть такие анотации:
@PostConstruct - метод под этой анотацией срабатывает перед созданием экземпляра класа(сесии)
@PreDestroy - Здесь метод срабатывает сразу перед уничтожением сесии.

Так вот, метод @PreDestroy зрабатывает полюбому через 1 мин (как и указано в <session-timeout>), и заметте, сесия завдяки Аякс запросу не уничтожается, как я уже писал.
Тож в меня есть подозрание что @PreDestroy привязан к параметру <session-timeout>, а не к сомому событию уничтожения сесии.
Правильно?
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836654
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovBlazkowiczТ.е. для чего городить большой workaround с JavaScript и серверными хэндлерами, если просто нужно было поменять параметры кук?На втором десятке объяснений, что должен поменять пользователь и как ему сделать это в его браузере - начинаешь ценить server-side решения :)
Сервер просит браузер создать печеньки с определенными параметрами. Пользователю ничего объяснять не нужно.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836906
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczСервер просит браузер создать печеньки с определенными параметрами. Пользователю ничего объяснять не нужно.Насколько я понимаю, нигде не расписано, живут http-only куки только в конкретном табе, только в конкретном окне или как-то ещё.
Собственно, расписать это и невозможно, т.к. в рамках одной сессии может быть открыто несколько окон, которые браузер волен "переотобразить" на закладки.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37836973
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovНасколько я понимаю, нигде не расписано, живут http-only куки только в конкретном табе, только в конкретном окне или как-то ещё.
Собственно, расписать это и невозможно, т.к. в рамках одной сессии может быть открыто несколько окон, которые браузер волен "переотобразить" на закладки.
Зачем вы HttpOnly сюда приплели? Вопрос только про Session/Persistent, которым сто лет в обед.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37838493
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczВопрос только про Session/Persistent, которым сто лет в обед.Выделено мною:Session cookie
A session cookie only lasts for the duration of users using the website.
A web browser normally deletes session cookies when it quitsОбъясните мне, глупому, каким образом из этого описания следует, что:
1. Браузер всегда удалит сеансовую куку?
2. Удалит сеансовую куку, если будет закрыто окно/таб "этого сайта", но при этом будут открыты другие окна/табы браузера?
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37839235
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovBlazkowiczВопрос только про Session/Persistent, которым сто лет в обед.Выделено мною:Session cookie
A session cookie only lasts for the duration of users using the website.
A web browser normally deletes session cookies when it quitsОбъясните мне, глупому, каким образом из этого описания следует, что:
1. Браузер всегда удалит сеансовую куку?
2. Удалит сеансовую куку, если будет закрыто окно/таб "этого сайта", но при этом будут открыты другие окна/табы браузера?

Браузер просто "не сохранит" куку. А не "удалит".
По закрытию tab, обычно, куку не имеет смысла удалять. Во-первых если юзер закрывает таб, а не браузер и отрывает новый таб, это почти наверняка тот же самый юзер. Во-вторых табов на один сайт много. "удалять" по закрытию таба никто ничего не будет. Просто когда все табы сайта закрыты, то и найти куку уже негде, т.к. она хранилась только в памяти.

Выделать в wikipedia ничего не нужно. Это не официальная документация. Почитайте RFC или ткните носом в то что, например IE6 всегда персистит любые куки не зависимо от параметров. Это будет другой разговор.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37839318
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, кстати, понял, чем пинг, всё же, лучше чем Session Cookie. Можно раньше заэкспарить сессию. Тогда если злоумышленик перехватит sessionid, то он не сможет ей долго пользоваться. С другой стороны, если атака целенаправленая, то злоумышленик может и сам пинги посылать. На клиенте эта фича легко обнаруживается.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37840088
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczЭто будет другой разговор.Если я закрываю "морскую обезьяну" с несколькими табами - браузер спрашивает сохранять ли ему открытые вкладки.
Экспериментировать лень, но вопрос: "А что будет с куками?" - остаётся.

P.S. RFC, по большому счёту, такая же википедия.
Появилась раньше, формализована лучше, но, в общем и целом, никого ни к чему не обязывает.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37840106
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё-таки не поленился - зарегистрировался ещё на двух сайтах, закрыл браузер с сохранением открытых вкладок.
Посмотрел, что в процессах его нет и запустил заново - авторизованные сессии на всех трёх сайтах никуда не потерялись, действия совершаются без ошибок.
Закрыл без сохранения - форум, естественно, попросил предъявить логин и пароль.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37840198
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, переводите спор в практическое русло: хочется все-таки определиться, выражаясь примитивно, как делать разделение кук на те, которые должны храниться, и те, от которых хочется избавиться при закрытии табов.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37840205
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckТак, переводите спор в практическое русло: хочется все-таки определиться, выражаясь примитивно, как делать разделение кук на те, которые должны храниться, и те, от которых хочется избавиться при закрытии табов.
4.2.3 Controlling Caching
http://www.ietf.org/rfc/rfc2109.txt
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37840228
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckкак делать разделение кук на те, которые должны храниться, и те, от которых хочется избавиться при закрытии табов.Никак.
Что браузер (с)делает с сессией при закрытии вкладки - личное дело браузера.
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37840234
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz http://www.ietf.org/rfc/rfc2109.txt
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Internet Engineering Task Force (IETF)                          A. Barth
Request for Comments: 6265                                 U.C. Berkeley
Obsoletes: 2965                                               April 2011
Category: Standards Track

Network Working Group                                         D. Kristol
Request for Comments: 2965        Bell Laboratories, Lucent Technologies
Obsoletes: 2109                                              L. Montulli
Category: Standards Track                             Epinions.com, Inc.
                                                            October 2000
...
Рейтинг: 0 / 0
@SessionScoped бины
    #37840258
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

OK
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / @SessionScoped бины
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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