Редко наша система смешивает зарегистрированных пользователей, и я не могу понять, почему.
Вот сценарий:
2 пользователя входят в систему (A и B), обычно каждый из них имеет свой собственный идентификатор, в какой-то момент один из пользователей (A) берет идентификатор другого пользователя (B) и вносит свой вклад в веб-сайт, как если бы он был B.
Технически, это то, что происходит:
1- 2 пользователя входят в систему: каждый пользователь запрашивает действие «войти» с сервера единого входа (SSO), который работает на PHP, и для каждого пользователя создается сеанс (сеансы хранятся в Memcached-X)
2- У пользователей разные идентификаторы: у каждого пользователя будет другой сеанс на веб-сервере, который работает на Ruby (RoR), а также сохраняет сеансы на Memcached-Y. Для каждой страницы, которую они вводят в RoR, есть проверка iFrame, которая запрашивает аутентификацию от браузера пользователя к SSO.
3- В какой-то момент пользователь A становится B, а B остается как B: файлы журнала SSO показывают, что пользователь A по-прежнему является пользователем A, а пользователь B по-прежнему является пользователем B, в то время как журналы RoR показывают, что пользователь A становится B учитывая, что он все еще имеет тот же идентификатор сеанса. В этот конкретный момент мы проверили ключи, выходящие из memcached RoR, и они вернули правильные значения.
Что происходит? Предоставляет ли SSO неправильные значения для RoR, или RoR все смешивает, или серверы Memcached делают ошибки?
Пожалуйста, помогите, у меня заканчиваются идеи ...
Спасибо.