В моем приложении Java EE возникла проблема с сеансами. Различные пользователи могут войти в приложение, и указанный пользователь может видеть данные, для которых он авторизован. Он не должен быть в состоянии видеть другие пользовательские данные. Для дифференциации пользователей мы используем Client_ID
. Как только пользователь входит в систему, мы выбираем этот Client_ID
из базы данных и устанавливаем его в сеанс, например:
session.setAttribute("Client_ID",user.getClient_ID())
Мы получаем доступ к этому значению сеанса по всему приложению и извлекаем соответствующие данные для этого Client_ID
. Это прекрасно работает, когда пользователи работают в одном браузере, но проблема в следующем:
Предположим, есть SuperAdmin, которому нужно посмотреть всех клиентов под ним. SuperAdmin регистрируется как client_1
и снова как client_2
. SuperAdmin вошел в систему оба раза с использованием одного и того же браузера. Когда я обновляю браузер client_1
, я вижу детали client_2
, чего не должно быть.
Я думаю, что наше приложение использует один и тот же сеанс для двух разных входов в систему в одном браузере. Что бы решить эту проблему? Я должен увидеть правильные данные для конкретного клиента при обновлении страницы.