【问题标题】:APEX authentication function in custom schema doesn't work自定义架构中的 APEX 身份验证功能不起作用
【发布时间】:2014-10-09 04:53:30
【问题描述】:

在登录处理部分的方案设置页面中,字段身份验证功能设置为AUTORYZACJA(功能名称)

字段注销 URL:wwv_flow_custom_auth_std.logout?p_this_flow=&APP_ID.&p_next_flow_page_sess=4155:PUBLIC_PAGE

这是我的功能:

create or replace FUNCTION AUTORYZACJA (p_username in VARCHAR2, p_password in VARCHAR2)
return BOOLEAN
is
v_pwd_baza varchar2(4000);
v_liczba number;
begin
select count(*) into v_liczba from UZYTKOWNICY where upper(login) = upper(p_username);
if v_liczba > 0 then
select password into v_pwd_baza from UZYTKOWNICY where upper(login) = upper(p_username);
if p_password = v_pwd_baza then
return true;
else
return false;
end if;
else
return false;
end if;
end;

使用带有此功能的架构进行日志记录不起作用。错误是“无效的登录凭据”。我不知道该怎么办。

感谢您对这种情况的帮助。

【问题讨论】:

  • 显然,你的函数必须运行良好,所以还有别的东西。您是否通过了有效的登录凭据?如果我是你,我会使用数据库身份验证而不是你自己的身份验证。
  • 考虑重构你的过程,比如this
  • 是的,我已经通过了有效的凭据。选择功能正常工作。我正在创建的项目由用户和用户组组成,我必须以允许在组之间移动用户的方式创建它,并且每个组都有不同的选项卡集可见。是否有另一种方法来实施这种解决方案?
  • 我已将功能更改为由您重构,但 APEX 仍然拒绝凭据
  • 可能是应用程序设置、页面或 APEX 有问题?

标签: function login plsql authorization oracle-apex


【解决方案1】:

您还应该始终使用散列密码,不要以纯文本形式存储它们。 看到类似http://apexawy.blogspot.com.au/2011/07/custom-authentication-scheme.html

您收到的 ora-06553 是因为您试图在 SQL 中引用布尔值(返回值) - SQL 不知道布尔值。您需要使用类似的东西进行测试

begin
  if autoryzacja('login','password') then 
    dbms_output.put_line('true');
  else
    dbms_output.put_line('false');
  end if;
end;
/

【讨论】:

    【解决方案2】:

    向您的函数添加调试日志记录。这应该向您显示问题发生在哪里。

    如果您使用的是 apex 4.1,请使用如下语句:

    apex_debug_message.log_message('username is: ' || p_username || 
        ' and password is ' || p_password);
    

    对于 apex 4.2,使用:

    apex_debug.message('username is: ' || p_username || ' and password is ' 
      || p_password);
    

    像这样在函数开头的语句,加上你分配值的每个地方,每个 if 应该告诉你哪里出了问题。

    然后点击开发者工具栏上的debug,尝试登录。失败后单击查看调试,您应该会在日志中看到您的调试消息。

    【讨论】:

      猜你喜欢
      • 2020-08-05
      • 2019-01-18
      • 2019-03-26
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多