ldap组织结构数据同步到mysql
例子,将以下ldap人员结构图同步到mysql表中
mysql部门表和人员表,建表脚本,以及ldap服务连接信息
DROP TABLE IF EXISTS `sys_department`;
CREATE TABLE `sys_department`
(
`dept_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(20) NOT NULL COMMENT '部门名称',
`parent_id` bigint(20) DEFAULT NULL COMMENT '父id',
`strategy_id` bigint(20) DEFAULT NULL COMMENT '策略id',
`level` int NULL COMMENT '层级',
`state` int(11) NOT NULL DEFAULT '1' COMMENT '状态,0:禁用,1:启用',
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
PRIMARY KEY (`dept_id`),
UNIQUE KEY `name` (`name`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT ='部门信息';
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user`
(
`user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键,用户id',
`name` varchar(20) COMMENT '姓名',
`user_name` varchar(20) NOT NULL COMMENT '用户名',
`phone` varchar(20) NOT NULL COMMENT '手机号码',
`email` varchar(100) NOT NULL COMMENT '邮箱',
`strategy_id` bigint(20) COMMENT '策略id',
`uid` varchar(50) COMMENT '虚拟机Uid',
`login_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最近登录时间',
`remark` varchar(200) COMMENT '备注',
`dept_id` bigint(20) COMMENT '部门id',
`password` varchar(64) DEFAULT NULL COMMENT '密码',
`gender` int(1) DEFAULT NULL COMMENT '性别,0:女,1:男',
`head` varchar(200) DEFAULT null comment '头像',
`role_id` int(11) DEFAULT NULL COMMENT '角色id',
`deleted` int(1) DEFAULT NULL COMMENT '逻辑删除,0:未删除,1:已删除',
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
`is_lock` int(2) DEFAULT 0 COMMENT '是否锁定,0:未锁定,1:已锁定',
`is_default_password` int(2) DEFAULT 1 COMMENT '是否是默认密码,0:否,1:是',
`is_use_role` tinyint(1) COMMENT '是否启用账户角色,0:停用,1,启用',
`is_alarm_contact` tinyint(1) DEFAULT '0' COMMENT '是否是告警联系人,0:否,1,是',
`dingtalk_robot` varchar(200) COMMENT '钉钉机器人',
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_name` (`user_name`),
UNIQUE KEY `phone` (`phone`),
UNIQUE KEY `email` (`email`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT ='人员信息';
DROP TABLE IF EXISTS `ldap`;
CREATE TABLE `ldap` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`is_open` tinyint(1) DEFAULT '0' COMMENT '状态,0:关闭,1:打开',
`service_type` int(2) not null default 1 COMMENT '服务类型,1:openlaap,2:Microsoft Active Directory',
`address` varchar(200) not null COMMENT '服务地址',
`port` varchar(20) not null COMMENT '端口号',
`user_name` varchar(200) not null COMMENT '用户名',
`password` varchar(30) not null COMMENT '密码',
`frequency` int(11) DEFAULT 1 COMMENT '同步频率',
PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='ldap服务连接信息';
1.ldap接口,LdapAdapterEntityService类
/**
* ldap接口
*
* @author begoit
*
*/
public interface LdapAdapterEntityService {
/**
* 第三方向中间库添加组织机构 与 用户信息,用于数据同步
*/
@SuppressWarnings("rawtypes")
BaseResponse run();
/**
* 组织机构更新方法入口
*
* @param departMap
*/
void doUpdateDepatmentData(Map<String, Object> departMap);
/*