Ошибка аутентификации из-за тайм-аута сеанса на странице входа в WSO2IS - PullRequest
0 голосов
/ 03 октября 2019

Всякий раз, когда я покидаю страницу входа более чем на одну минуту, а затем пытаюсь войти, я получаю следующую ошибку:

Ошибка аутентификации! Что-то пошло не так во время процесса аутентификации. Пожалуйста, попробуйте войти снова.

И в журналах написано следующее:

TID: [-1234] [] [2019-09-26 11: 15: 46,065] ERROR {org. wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator} - контекст не существует. Возможно, из-за недействительного кэша

Я уже включил постоянство сеанса в файле identity.xml, даже пытался изменить значения

<TimeConfig>
    <SessionIdleTimeout>15</SessionIdleTimeout>
    <RememberMeTimeout>20160</RememberMeTimeout>
</TimeConfig>

. Есть ли файлы, которые могут перезаписать эту опцию? Сейчас тайм-аут сеанса истекает через минуту, и я не могу понять, где это можно изменить.

Ответы [ 2 ]

0 голосов
/ 10 ноября 2019

В WSO2 IS есть два вида сеансов. Сеанс во время потока аутентификации и сеанс, созданный после успешной аутентификации пользователя. Первый идентифицируется с помощью «sessionDataKey», который передается вместе с другими параметрами в потоке, такими как имя пользователя, пароль. Второй тип сеанса идентифицируется с помощью cookie «commonauthId».

«Тайм-аут простоя» говорит о втором типе, как долго будет продолжаться сессия SSO пользователя. Когда мы рассматриваем вашу проблему, она не связана с этим «Тайм-аутом простоя». Там мы должны рассмотреть контекст аутентификации.

Итак, мы должны сосредоточиться на «SessionDataPersist» в файле identity.xml. Убедитесь, что он включен и временное значение равно true. В противном случае временные данные в потоке аутентификации не будут сохранены в БД, и отложенные запросы могут быть неудачными, если кэшированные данные будут вскоре очищены.

<SessionDataPersist>
    <Enable>true</Enable>
    <Temporary>true</Temporary>

Если мы правильно включили временные данные сеанса, он сохранит информацию контекста аутентификации в БД, пока задача DataCleanUp не очистит старые записи из БД.

0 голосов
/ 03 октября 2019

Для суперпользователя «SessionIdleTimeout» читается из identity.xml только при первом запуске сервера. Для других арендаторов это читается из файла конфигурации при создании арендатора. Позже конфигурация сохраняется в базе данных, и изменения в файле конфигурации не будут применены.

Поэтому необходимо обновить значение «Idle Session Time Out» в резидентном провайдере идентификации из консоли управления.

enter image description here

...