ldap组织结构数据同步到mysql

本文介绍了如何将LDAP的组织结构数据同步到MySQL数据库中,包括示例中的人员结构图,以及涉及的MySQL部门表和人员表建表脚本,ldap服务连接信息,详细讲述了ldap接口、LdapAdapterEntityService类、LdapAdapterEntityServiceImpl的实现以及LdapController的相关操作,最终实现了数据的同步。
摘要由CSDN通过智能技术生成

                          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);

	/*
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值