Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Машины за NATом путаются сессии (https://javascript.ru/forum/server/27241-mashiny-za-natom-putayutsya-sessii.html)

abstract 06.04.2012 14:42

Машины за NATом путаются сессии
 
Странная вещь происходит.
Есть две машины клиенты за NATом, есть сервер tomcat6, контроль сессии осуществляется посредством объекта HttpSession. И вот какая ерунда происходит:
Данные отправленные первым пользователем заносятся в базу с идентификаторами второго.
Как запрограммировано:
Пользователь (Объект java) User хранится в объекте HttpSession. С клиента через AJAX отправляются данные без id пользователя или иных идентификаторов.
Данные получает сервлет, извлекает из объекта session объект user (в нем поле id) и кладет эти данные с его id в базу.

Kolyaj 06.04.2012 14:44

Сессия к юзеру как привязывается?

abstract 06.04.2012 14:53

Пользователь на странице вводит логин-пароль-> сервелет проверяет в базе, если пароль логин есть, создает объект User (поля: id, name и тд) потом HttpSession session= request.getSession(); session.putAttribute("user",User) Ну потом каждый раз при запросе session= request.getSession(); а потом извлекаю пользователя и беру его id.

Kolyaj 06.04.2012 15:01

Это всё прекрасно. А сессия к юзеру как привязывается? На более низком уровне: по куке, по айпишнику, еще как?
Выглядит, что по айпишнику, а лучше бы по куке.

abstract 06.04.2012 15:06

Нет, ну естественно по куки. Контроль сессии при помощи HttpSession осуществляется по куки Вот расшифровка запроса от клиента (клиент был тут я):
host=localhost:8080
user-agent=Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0
accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-language=en-us,en;q=0.5
accept-encoding=gzip, deflate
connection=keep-alive
referer=http://localhost:8080/TESTPROG/
cookie=JSESSIONID=2D1CA46027B2C516577DC7C842E3CC58
content-type=application/x-www-form-urlencoded
content-length=50


Часовой пояс GMT +3, время: 05:22.