Oracle WDB_GATEWAY_LOGOUT не работает в браузере Mozilla
У меня есть приложение PL/SQL, в котором есть кнопка выхода из системы, и при нажатии кнопки выхода из системы выполняется следующий код:
-- Open the HTTP header
owa_util.mime_header('text/html', FALSE, NULL);
-- Send a cookie to logout
owa_cookie.send('WDB_GATEWAY_LOGOUT', 'YES', path=>'/');
-- Close the HTTP header
owa_util.http_header_close;
-- Generate the page
htp.p('You have been logged off from the WEBSITE');
htp.p('<a href="http://myApp/pls" target="_blank">click here to log in</a>');
htp.p('<BR>bye');
Он отлично работает при использовании Internet Explorer, однако, когда я использую mozzila при входе в систему, я все еще вошел в систему как предыдущий пользователь. Кто-нибудь еще был в этой ситуации? Как я могу сделать это для Mozilla?
Я получил этот код со страницы документации Oracle: https://docs.oracle.com/cd/B13789_01/server.101/b12303/secure.htm
Заранее спасибо!
1 ответ
Я нашел, что лучше всего установить и сбросить свой собственный сеансовый файл cookie. Затем используйте owa_custom для проверки файла cookie.
В файле dad.config добавьте:
PlsqlAuthenticationMode CustomOwa
Затем создайте в своей схеме пакет с именем owa_custom и добавьте в него одну функцию: owa_custom.authorize.
owa_custom.authorize будет вызываться перед каждым веб-вызовом. Вы можете проверить файл cookie сеанса, и если вы хотите, чтобы веб-вызов вернул true. Чтобы заблокировать, верните false и пользователь получит 403 запрета.
Затем, если хотите, вы можете написать собственную запрещенную страницу 403 и перенаправить на страницу входа.
Просто знайте, что в 12C mod_plsql уходит, и вам нужно будет использовать Oracle Rest Listener. Там есть такая же функциональность. Вещи просто имеют разные названия.