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:

如此,即可使用EBS用户、密码进行登录了。
Related Posts
» Filed Under APEX, E-Business Suite
Print This Post
Comments
Leave a Reply
