powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите пожалуйста разобраться с SESSION в сервлетах
13 сообщений из 13, страница 1 из 1
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699211
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Описываю ситуацию.
Есть клиентское приложение которое отправляет HTTP запросы томкату в сервлет.
На первом этапе работы клиент должен авторизоваться.
Данные об успешной авторизации я храню в сесси.
Код: java
1.
2.
3.
4.
5.
...
HttpServletRequest req
// если пользователь найден, добавим объект Person в сессию
req.getSession().setAttribute("person", new Person(personId));
...


При обработке последующих запросов я проверяю, авторизован пользователь или нет.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
...
HttpServletRequest req, HttpServletResponse res
// проверим авторизовался пользователь или нет
Person person = (Person) req.getSession().getAttribute("person");
if (person == null) {
 send(new Response(Response.ServerAnswerType.USER_EXPECTED), req, res);
 return;
}
...



Пользователи разделились на две группы, те у которых сессия сохраняется, таймаут у сесси достаточно большой, т.е. программа работает нормально, и те у который сессия "теряется" программа выдаёт сообщение, что нет авторизации приходится перезапускать программу (почему именно такая логика, на спрашивайте, пока так :) это не главный вопрос)

У меня два томката в кластере, сесси между томкатами реплицируются.
В клиентском приложении работа с куками включена, иначе не работало бы у всех пользователей.
Код: java
1.
2.
3.
private void initCookie() {
   CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ORIGINAL_SERVER));
}



Соответственно у меня вопрос, при каких ситуациях создаётся новая сессия, как выстроить логику программы так, чтобы авторизовавшись раз, данные об авторизации хранились в сессии на протяжении всей работы?
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699214
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin,

http://findevelop.blogspot.ru/2013/10/web-spring-security-100.html
тут можно посмотреть
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699216
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Спасибо за ссылку! Посмотрю.
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699227
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin,

1. Пробуй, работает ли аутентификация из коробки прописываемая web.xml.
Там ничего в сессию сохранять не надо.
2. Можно сделать модную не на куках а на токенах.
Тогда сессии не будет. Счас модно в js.
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699229
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяMandarin,

http://findevelop.blogspot.ru/2013/10/web-spring-security-100.html
тут можно посмотреть
автор в стиле прошлого века. На дворе 2013 год.
))
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699230
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ниче не понял про "теряются".
Кластер реплицирует сессии?
Если да, то ничего терятся не должно. Записал в сессию томката1, появится в томкате2.
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699237
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, не получается Person сериализовать?
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699244
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MandarinУ меня два томката в кластере, сесси между томкатами реплицируются jvmRoute для engine установлен? Каждый узел кластера обязан иметь уникальное значение jvmRoute.
Фронтальный балансировщик умеет работать с кластером сервлет-контейнеров вообще и tomcat-ов - в частности?
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699324
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. SakМожет, не получается Person сериализовать?

Класс Person очень простой, проблем с сериализацией быть не должно.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
import java.io.Serializable;

public class Person implements Serializable {

    private final int personId;

    public Person(int personId) {
        this.personId = personId;
    }

    public int getPersonId() {
        return personId;
    }

}
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699325
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovMandarinУ меня два томката в кластере, сесси между томкатами реплицируются jvmRoute для engine установлен? Каждый узел кластера обязан иметь уникальное значение jvmRoute.
Фронтальный балансировщик умеет работать с кластером сервлет-контейнеров вообще и tomcat-ов - в частности?

Это я проверю, но то что сессии реплицируются это видно на "веб морде" томката
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699327
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напомню, такая проблема с потерей сессии возникает не у всех пользователей а стабильно выборочно, т.е. на одном компе возникает постоянно на другом не возникает вообще.
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699362
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MandarinСоответственно у меня вопрос, при каких ситуациях создаётся новая сессия, как выстроить логику программы так, чтобы авторизовавшись раз, данные об авторизации хранились в сессии на протяжении всей работы?меняем вопрос на:
"Почему в кластере данные в сессии не реплицируются?".
Авторизация это следствие.
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с SESSION в сервлетах
    #39699363
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Возможно вы правы, проверю более детально эту версию.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите пожалуйста разобраться с SESSION в сервлетах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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