APEX与EBS登录权限集成

Posted on September 28, 2009

APEX的访问权限主要分为两种:Authentication和Authorization,简单来说,前者控制登录权限,一次登录各处可用;后者控制各页面或模块的权限。事实上,APEX应用中甚至无需管理用户数据,你所需要的是管理逻辑上的权限,而不需要存储权限数据本身,如此,登录权限的管理便可以非常灵活。

而EBS的权限控制稍微复杂一点,但是从登录权限来看却简单许多,主要是通过包FND_WEB_SEC来进行验证,如:

SQL> set serveroutput on
SQL> exec dbms_output.put_line(fnd_web_sec.validate_login('ZEENO', 'PW123'));

Y

PL/SQL procedure successfully completed

只需要调用该过程,即可直接使用EBS的用户登录了。如果APEX和EBS分处不同的数据库中,则可以使用远程过程调用方式:

fnd_web_sec.validate_login@DBLINK('ZEENO', 'PW123');

首先,APEX本地库中创建验证函数:

CREATE FUNCTION ebs_auth(p_username IN VARCHAR2,
                         p_password IN VARCHAR2) RETURN BOOLEAN AS
BEGIN
  -- 使用EBS远程验证
  IF fnd_web_sec.validate_login@dblink(p_username, p_password) = 'Y' THEN
    RETURN TRUE;
  ELSE
    RETURN FALSE;
  END IF;
END ebs_auth;

按照规范,需要添加p_username和p_password两个参数。

接下来,在APEX中创建新的Authentication Scheme,一切按正常方式进行,所需要改动的,是将上面的验证函数添加到Authentication Function:
2009-09-28_133836

如此,即可使用EBS用户、密码进行登录了。

Related Posts

  1. APEX 4 中的文件上传功能
  2. APEX:在系统后台跑PL/SQL
  3. RF.jsp (Run Function)
  4. 会计科目API
  5. 破解 Oracle E-Business Suite 用户密码

» Filed Under APEX, E-Business Suite Print This Post Print This Post

Comments

Leave a Reply