升级到 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 页。之后,我可以使用现有的自定义身份验证登录和注销方案没问题。
我的环境是: 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 页。之后,我可以使用现有的自定义身份验证登录和注销方案没问题。