升级到 Oracle APEX 18.2 后自定义身份验证失败

Custom Authentication failed after upgrade to Oracle APEX 18.2

我的环境是: Windows 10 XE 18C 顶点 18.2 订单 18.4

我从 Apex 5.1 升级,我的自定义身份验证不再有效。当我尝试登录第 101 页上的应用程序 104 时,输入用户名和密码并按登录后,我收到以下错误消息:

start l_return = 1 更新后.. Set-Cookie:ORA_WWV_APP_104=ORA_WWV-FByLiIYz0y3yltgzZGNtjgdA; HttpOnly X-Content-Type-Options:nosniff X-Xss-Protection:1;模式=块Location:f?p=104:1:12616933237063:::::

我不太确定这条消息是否表明。 如果我将身份验证方案切换为 Application Express 身份验证,则用户身份验证正常。 在我的自定义身份验证方案中,我设置了以下变量:

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)

我在 SQLDeveloper 中使用以下测试代码测试了包:PKG_USERS.APEX_AUTHENTICATE_USER:

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;

当我提供正确的用户名/密码组合时,程序 returns 1. 当我提供错误的密码时,程序 returns 0.

从 Apex 5.1 到 18 有什么变化导致此身份验证方案出错?

我发现了问题。它与登录页面有关。该应用程序可能是在 Apex 3.x 中创建的。我在Apex 18.2做了一个新的throw-away应用,然后把登录页面的新样式复制到迁移后的应用中。

新的 APEX 应用程序使用页面 9999 作为登录页面。新样式的登录页面中添加了一些新字段。从 "throw-away" 应用程序复制第 9999 页后,我从第 101 页删除了 "LOGIN" 的页面别名并将其添加到第 9999 页。之后,我可以使用现有的自定义身份验证登录和注销方案没问题。