Я пишу решение EAI (интерфейс внешней аутентификации), которое предоставляет страницы входа/выхода для некоторых приложений.
В настоящее время у нас есть балансировщик нагрузки F5, который находится перед двумя обратными прокси-серверами WebSEAL 6.1, которые затем распределяют запросы между двумя приложениями, работающими на WebSphere Application Server 8.0.0.10.
Страницы входа обслуживаются из приложения JSF 2.0.6 и используют сохранение состояния client, поэтому у нас нет тайм-аутов сеанса.
Страницы также используют bean-компоненты с областью запроса, чтобы быть как можно ближе к безгражданским, поскольку я не могу использовать JSF 2.2 для использования реального флага без гражданства.
Мы обнаружили проблему со следующим сценарием и пытаемся найти решение
- Клиент переходит на страницу авторизации в своем браузере. WebSEAL отправляет их на один из серверов WebSphere.
- Затем клиент отправляет форму, но WebSEAL отправляет новый запрос на другой сервер WebSphere.
- Затем клиент сталкивается с ошибкой, но перенаправляется на пустую страницу входа.
Мы используем OmniFaces FullAjaxExceptionHandler для перехвата ошибки View Expired, которая возникает на шаге 2.
Мы также можем воссоздать ошибку, заставив WebSEAL перенаправить трафик между двумя серверами WebSphere и смоделировать сценарий.
Эта проблема, по-видимому, связана с тем, что состояние просмотра с одного сервера WebSphere несовместимо с другим сервером WebSphere, что имеет смысл.
Для наших целей нам действительно нужны только данные отправленной формы, чтобы войти в систему пользователя, состояние просмотра не требуется с нашей стороны.
Есть ли способ сделать состояние просмотра клиента с одного сервера совместимым или работать с другим сервером?
Любая помощь в этом вопросе будет оценена по достоинству.