-
-
杨思怡 初学数据Lv2
发表于2020-10-26 11:04
楼主
本帖最后由 杨思怡 于 2021-3-10 11:51 编辑
1.场景
当使用第三方机构库时,因为不是从ABI系统进行用户的增删改处理,无法触发角色自动匹配事件。导致需要在角色处进行重新保存角色。
2.解决方案
将附件中的补丁加入至war包中web-inf/lib中的eacl开头的jar包对应的com/esen/eacl/user/userthirdimpl/ThirdUserUpdate.class
eacl-1.2.2-SNAPSHOT (1).zip
(4.11 KB, 下载次数: )
2.1添加角色自动匹配计划任务
2.1.1添加执行脚本任务
2.1.2输入要执行的脚本
复制代码
Calendar.getInstance().getTimeInMillis()-60*60*1000,该参数为获取当前时间的前一个小时
2.1.3设置执行周期,此处设置周期是只会执行一次。
2.1.4禁用掉此计划任务
2.2添加停止匹配计划任务
计划任务的1、3、4步骤同2.1的步骤
脚本调整为如下:
复制代码
2.3配置第三方机构库后或启动服务器后,启动计划任务
点击立即运行启动计划任务
启动后,第三方库的用户信息有变更,ABI系统会自动匹配角色,只需执行一次即可。
2.4使用非第三方机构库时执行停止匹配计划任务
点击立即运行 停止任务
上述自动匹配的任务 会自动停止,且不会再匹配。
3.注意事项
3.1匹配LASTMODIFYTIME_字段需要在第三方库表的用户表里新增这个字段
在配置时最好也加上
3.2添加的新用户时LASTMODIFYTIME_这个插入的必须是最新时间
否则角色匹配脚本可能会无法查到对应用户从而无法进行赋权操作。
1.场景
当使用第三方机构库时,因为不是从ABI系统进行用户的增删改处理,无法触发角色自动匹配事件。导致需要在角色处进行重新保存角色。
2.解决方案
将附件中的补丁加入至war包中web-inf/lib中的eacl开头的jar包对应的com/esen/eacl/user/userthirdimpl/ThirdUserUpdate.class

2.1添加角色自动匹配计划任务
2.1.1添加执行脚本任务

2.1.2输入要执行的脚本
- import com.esen.ecore.spring.SpringContextHolder;
- import com.esen.eacl.user.userthirdimpl.ThirdUserUpdate;
- SpringContextHolder.getBean(ThirdUserUpdate.class).startSchedule(30,"select userid_ from ABI52_EACL_USER where LASTMODIFYTIME_ >? and LASTMODIFYTIME_<=?",Calendar.getInstance().getTimeInMillis()-60*60*1000);
startschedule相关参数
参数 | 示例 | 说明 |
time | 30 | 间隔30s进行一次自动同步任务 |
sql | "select userid_ from ABI52_EACL_V_USER where LASTMODIFYTIME_ >? and LASTMODIFYTIME_<=?" | 查出在指定事件段内有变更的用户(返回的结果集 只包含用户id)ABI52_EACL_V_USER 第三方用户表LASTMODIFYTIME_ 用户最后修改时间userid_ 用户id |
Calendar.getInstance().getTimeInMillis()-60*60*1000,该参数为获取当前时间的前一个小时

2.1.3设置执行周期,此处设置周期是只会执行一次。

2.1.4禁用掉此计划任务

2.2添加停止匹配计划任务
计划任务的1、3、4步骤同2.1的步骤
脚本调整为如下:
- import com.esen.ecore.spring.SpringContextHolder;
- import com.esen.eacl.user.userthirdimpl.ThirdUserUpdate;
- SpringContextHolder.getBean(ThirdUserUpdate.class).stopSchedule();

2.3配置第三方机构库后或启动服务器后,启动计划任务
点击立即运行启动计划任务

启动后,第三方库的用户信息有变更,ABI系统会自动匹配角色,只需执行一次即可。
2.4使用非第三方机构库时执行停止匹配计划任务
点击立即运行 停止任务

上述自动匹配的任务 会自动停止,且不会再匹配。
3.注意事项
3.1匹配LASTMODIFYTIME_字段需要在第三方库表的用户表里新增这个字段

在配置时最好也加上

3.2添加的新用户时LASTMODIFYTIME_这个插入的必须是最新时间

否则角色匹配脚本可能会无法查到对应用户从而无法进行赋权操作。