Аутентификация Oracle не работает?

Я реализовал кнопку LogOut, которая отключает пользователя от веб-страницы. Сервер - это Oracle HTTP сервер.

При нажатии на LogOut выполняется следующая процедура

PROCEDURE log_me_off IS

BEGIN
   -- 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('
   <head>
    <script type = "text/javascript" >
    history.pushState(null, null, ''xna_hpms_ui.log_me_off'');
    window.addEventListener(''popstate'', function(event) {
    history.pushState(null, null, ''xna_hpms_ui.log_me_off'');
    });
    </script>
   </head>
   You have been logged off from the WEBSITE');
   htp.anchor( 'http://www.google.com', 'click here to login a');
   htp.p('<BR>bye');

END;


END;
/

Документ, на который я ссылался: https://docs.oracle.com/cd/B13789_01/server.101/b12303/secure.htm

Проблема:

  1. В Chrome, когда я нажимаю кнопку "Выйти из системы", она выходит из системы пользователя, а после этого, когда пользователь пытается обновить или пытается открыть веб-страницу на новой вкладке, появляется приглашение с запросом учетных данных для входа, если пользователь нажимает кнопку "Отмена" и "Обновить" на вкладке. он автоматически входит в систему. Пока такого поведения нет в IE.

  2. Когда открыто много вкладок, и пользователь нажимает кнопку "Выйти из системы", он выходит из системы с текущей страницы, когда при переходе на другую вкладку, если он щелкает в любом месте, он снова просит веб-страницу ввести учетные данные, а если он нажимает кнопку "Отмена" и обновляет страницу, он снова вошел в систему. без ввода учетных данных.

Пожалуйста, помогите

1 ответ

Решение

Я рекомендую использовать Custom OWA и ваш собственный cookie в качестве средства аутентификации пользователей. Настройте DAD для авторизации схемы с помощью custom_owa. Затем создайте пакет / функцию custom_owa.authorize в своей схеме.

Функция custom_owa.authorize будет вызываться перед доступом к каждой странице. Если он возвращает true, запрос удовлетворяется. Если false, запрос отклонен.

Это дает вам полный контроль над тем, кто и к чему имеет доступ. Итак, что вы делаете, это устанавливаете свой собственный cookie, когда кто-то заходит на ваш сайт. Затем в custom_owa.authorize проверьте cookie и верните соответственно true или false.

Когда кто-то выходит из системы, уничтожьте куки или истекает срок его действия.

Другие вопросы по тегам