|
本帖最后由 simon_hm 于 2018-1-24 15:10 编辑
头段时间做了一个POC,大致实现了通过windows域帐号登录ORACLE EBS,大致步骤如下:
1,python启动一个web服务(涉及到的插件web.py),用户可以访问一个登录网页(新的登录页面替代掉EBS的登录页面)
2,python调用ldap3对输入的用户名和密码进行域验证
3,域验证失败,报错
4,域验证通过
4.1,调用EBS package(客户化自己写逻辑),检查用户名是否生效,如果失效或不存在,报错
4.2,通过4.1校验之后,调用EBS API校验用户名密码:
begin
-- Call the function
:result := fnd_web_sec.validate_login(p_user => :p_user,
p_pwd => :p_pwd);
end;
4.3,如果返回Y,调用登录页面
登录页面内容(ebslogin.html):
$def with (name,pwd)
<html>
<head>
<title>LoginEBS</title>
</head>
<body>
<form action="http://hostname:port/OA_HTML/fndvald.jsp?lang_code=ZHS"
method="post" name="Login" id="Login">
<input type="hidden" name="username" value=$name>
<input type="hidden" name="password" value=$pwd>
</form>
</body>
</html>
4.4,如果返回N,调用EBS API,修改登录用户密码(密码用域验证通过的密码),如果修改密码失败(不符合密码复杂性规则等),返回报错信息
4.5,如果密码修改失败,输出错误信息
4.6,如果密码修改成功,调用登录页面
|
|