Я столкнулся с ситуацией с SSO в Liferay 6.2, где мне нужно очистить / удалить существующий сеанс клиента (браузера) и создать новый для запрошенного пользователя.
Этот сценарий специально для умныхустройства, на которых несколько пользователей (скажем, одного семейства) используют одно устройство для доступа к нашему сайту.
Вариант использования:
- Пользователь A уже имеет сеанс вбраузер.
- Пользователь B запрашивает доступ к сайту с помощью SSO (аналог устройства / браузера).
- Предыдущий сеанс возвращается вместо нового сеанса.
У меня естьуже отлажен с помощью AutoLoginFilter
и обнаружил, что предыдущий сеанс возвращается на основе атрибута j_username
, установленного в сеансе.
Я попытался добавить следующую пользовательскую логику к invalidate
предыдущего сеанса и установить атрибуты сеанса для новогопользователь, но браузер показывает ERR_TOO_MANY_REDIRECTS
- Try clearing your cookies.
if (jUserName != null && !session.isNew()) {
jUserName = null;
try {
session.invalidate();
session = request.getSession(true);
}
catch (Exception e) {
;
}
}
Думал, что проблема может быть решена после сброса связанных куки (программно), но это не помоглоее.
Есть ли еще что-то, чего мне не хватает?