| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > проблема HttpSession в glassfish |
| Автор: temonix 20.7.2008, 11:52 | ||||||
Мы используем HttpSession для авторизации и аутификации клиентов. Все достаточно хорошо работает. Но в последнее время начала появляться ошибка. Если несколько клиентов работает за натом ( под одним ip ), то в случае, когда идут параллельно 2 запроса, HttpSession выдает данные не соответствующие пользователю. Конкретный пример:
где person - POJO объект ( отсоединенный от JPA контейнера, т.к. выполняется этот код в сервлете ), getSessionParam - наследованный метод
Как видно, никаких разделяемых ресурсов здесь нет.
Требуется для обновления информации о персоне, которая меняется от запроса к запросу Тем не менее метод getSessionParam( request, "person" ) возвращает не своего персона, тогда как GET параметры идут правильные. Это приводит к тому, что транзакция идет не под именем человека, который ее проводит. Это проблема glassfish ? Если так, то мы эту проблему решим хранением в cookie id персоны и сравнением при каждом запросе. Это костыль, не хочется делать Это проблема в нашем коде ? Куда копать? |
| Автор: jokodzuma 20.7.2008, 14:32 |
| 1. описанная ситуация происходит когда пользователь уже авторизовался? 2. может, это не в тему, но все же: http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-CGI-Variables.html http://coding.derkeiler.com/Archive/Perl/comp.lang.perl.misc/2006-06/msg01562.html т.е. что-то вроде request.getHeader("HTTP_X_FORWARDED_FOR") |
| Автор: jokodzuma 21.7.2008, 16:13 | ||
или сюда -> HttpServletResponse.encodeURL(String) |