Короткая версия:
Если функция wwv_flow_custom_auth_std.is_session_valid (или apex_custom_auth_std.is_session_valid) возвращает TRUE, возможно ли, что сеанс истек, но еще жив? Если так, как вы можете проверить, истек ли сеанс?
Длинная версия:
Я создал систему единого входа для наших приложений Oracle APEX, примерно на основе этого руководства:
http://www.oracle.com/technology/oramag/oracle/09-may/o39security.html
Единственное отличие состоит в том, что мой основной вход в систему единого входа находится в Perl, а не в другом приложении APEX. Он устанавливает файл cookie единого входа, и приложение может проверить, является ли оно допустимым с помощью процедуры базы данных.
Я заметил, что когда я приезжаю утром, вся система не работает. Я перезагружаю страницу из приложения APEX, затем она отправляет меня на страницу единого входа, потому что сеанс истек, я вхожу в систему и возвращаюсь на свою исходную страницу приложения APEX. Это обычно работает, кроме первой вещи по утрам. Похоже, сессия APEX истекла. В этом случае кажется, что он находит сеанс, но затем отказывается его использовать и отправляет меня обратно на страницу входа.
Я старался изо всех сил отследить проблему. Функция "wwv_flow_custom_auth_std.is_session_valid" возвращает true, поэтому я предполагаю, что сеанс действителен. Но ничего не работает, пока я не удаляю куки сессии APEX. Тогда я могу легко войти обратно.
Кто-нибудь знает, есть ли другой вызов, который сообщит мне, истек ли сеанс или нет?
Спасибо