Пользовательская аутентификация не удалась после обновления до Oracle APEX 18.2

Моя среда: Windows 10 XE 18C Apex 18.2 Ords 18.4

Я обновил Apex 5.1 и моя пользовательская аутентификация больше не работает. Когда я пытаюсь войти в свое приложение 104 на стр. 101, после ввода имени пользователя и пароля и нажатия кнопки "Вход" я получаю следующее сообщение об ошибке:

start l_return = 1 после обновления. Set-Cookie: ORA_WWV_APP_104 = ORA_WWV-FByLiIYz0y3yltgzZGNtjgdA; HttpOnly X-Content-Type-Options: nosniff X-Xss-Protection: 1; mode = block Местоположение:f?p=104:1:12616933237063:::::

Я не совсем уверен, что это сообщение указывает. Если я переключаю схему аутентификации на Application Express Authentication, пользователь аутентифицируется нормально. Внутри моей схемы аутентификации у меня установлены следующие переменные:

Scheme Type = Custom
Authentication Function Name = PKG_USERS.APEX_AUTHENTICATE_USER
Enable Legacy Authentication Attributes = No
Session Not Valid / Go To: = Login Page
Switch In Session = Disabled
Post-Logout URL = Home Page
Session Sharing = Application (No Sharing)

Я протестировал пакет: PKG_USERS.APEX_AUTHENTICATE_USER со следующим тестовым кодом в SQLDeveloper:

declare
p_user              varchar2(512);
p_password          varchar2(512);
p_temp_boolean      boolean;
begin
p_user := '(my username)';
p_password := '(my password)';
p_temp_boolean := PKG_USERS.APEX_AUTHENTICATE_USER(p_user, p_password);
dbms_output.put_line('The return is: ' || sys.diutil.bool_to_int(p_temp_boolean));
end;

Когда я предоставляю правильную комбинацию имени пользователя и пароля, процедура возвращает 1. Когда я предоставляю неправильный пароль, процедура возвращает 0.

Что изменилось с Apex 5.1 на 18, чтобы вызвать ошибку в этой схеме аутентификации?

1 ответ

Решение

Я нашел проблему. Это было связано со страницей входа. Приложение, вероятно, было создано в Apex 3.x. Я создал новое одноразовое приложение в Apex 18.2, а затем скопировал новый стиль страницы входа в перенесенное приложение.

Новые приложения APEX используют страницу 9999 в качестве страницы входа. В новый стиль страницы входа добавлено несколько новых полей. После того как страница 9999 была скопирована из "одноразового" приложения, я удалил псевдоним страницы "LOGIN" со страницы 101 и добавил его на страницу 9999. После этого я смог войти в систему и выйти из нее, используя мою существующую пользовательскую схему аутентификации с нет проблем.

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