LdapService.java 4.54 KB
/*
 *
 * Copyright (c) 2001-2017 泛微软件.
 * 泛微协同商务系统,版权所有.
 * 
 */
package org.jasig.cas.adaptors.ldap;


import org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * <p>Title: ${file_name}</p>
 * <p>Description: </p>
 *
 * @author SJZ
 * @version 1.0
 * @date 2017/6/20
 */
public class LdapService extends QueryDatabaseAuthenticationHandler {

    public LdapService( ) {
    }

    /**
     * 获取指定OA数据与LDAP数据的对应关系-by OAID DATATYPE
     *
     * @param oaId     OA保存的ID
     * @param dataType 数据类型(1:分部,2:部门,3:人员)
     * @return
     */
    public List<LdapSyncDataBean> getSyncDatasByOAIDDataType(String oaId, String dataType, SimpleJdbcTemplate jdbcTemplate) {

        List<Map<String, Object>> list = jdbcTemplate.queryForList(SQL_SELECT_LDAP_SYNC_DATA_OAID_BY_LDAPOAID, oaId, dataType);
        if (list != null && list.size() > 0) {
            List<LdapSyncDataBean> l = new ArrayList<>();
            for (Map<String, Object> map : list) {
                LdapSyncDataBean ldapSyncDataBean = new LdapSyncDataBean();
                ldapSyncDataBean.setDataType(map.get("DATATYPE").toString());
                ldapSyncDataBean.setLdapId(map.get("LDAPID").toString());
                ldapSyncDataBean.setOaId(map.get("OAID").toString());
                ldapSyncDataBean.setRdn(map.get("RDN").toString());
                ldapSyncDataBean.setSyncType(map.get("SYNCTYPE").toString());
                ldapSyncDataBean.setUuid(map.get("UUID").toString());

                l.add(ldapSyncDataBean);
            }

            return l;

        }
        return null;
    }

    /**
     * 根据LDAPID查询LDAP 基础信息
     *
     * @param ldapId LDAP标识
     * @return 返回LDAP基础信息对象,不存在返回NULL
     */
    public LdapBaseBean queryByLdapId( String ldapId,SimpleJdbcTemplate jdbcTemplate ) {
        if (ldapId != null && !ldapId.isEmpty()) {

            Map<String, Object> map = jdbcTemplate.queryForMap(SQL_SELECT_LDAP_ID, ldapId);
            if (map != null ) {
                LdapBaseBean ldapBaseBean = new LdapBaseBean();
                ldapBaseBean.setBaseDomain(map.get("BASEDOMAIN").toString());
                ldapBaseBean.setCreateDate(map.get("CREATEDATE").toString());
                ldapBaseBean.setCreateTime(map.get("CREATETIME").toString());
                ldapBaseBean.setFactoryClass(map.get("FACTORYCLASS").toString());
                ldapBaseBean.setIp(map.get("IP").toString());
                ldapBaseBean.setIsAdAccount(Integer.parseInt( map.get("ISADACCOUNT").toString()));
                ldapBaseBean.setIsAuth(Integer.parseInt( map.get("ISAUTH").toString()));
                ldapBaseBean.setIsPull(Integer.parseInt( map.get("ISPULL").toString()));
                ldapBaseBean.setIsPush(Integer.parseInt( map.get("ISPUSH").toString()));
                ldapBaseBean.setIsSSO(Integer.parseInt( map.get("ISSSO").toString()));
                ldapBaseBean.setIsUsed(Integer.parseInt( map.get("ISUSED").toString()));
                ldapBaseBean.setKeystorePassword(map.get("KEYSTOREPASSWORD").toString());
                ldapBaseBean.setKeystorePath(map.get("KEYSTOREPATH").toString());
                ldapBaseBean.setLdapId(map.get("LDAPID").toString());
                ldapBaseBean.setLdapName(map.get("LDAPNAME").toString());
                ldapBaseBean.setLdapPassword(map.get("LDAPPASSWORD").toString());
                ldapBaseBean.setLdapType(map.get("LDAPTYPE").toString());
                ldapBaseBean.setLdapUser(map.get("LDAPUSER").toString());
                ldapBaseBean.setModifyDate(map.get("MODIFYDATE").toString());
                ldapBaseBean.setModifyTime(map.get("MODIFYTIME").toString());
                ldapBaseBean.setPassingCert(Integer.parseInt( map.get("passingCert").toString()));
                ldapBaseBean.setPort(map.get("PORT").toString());
                ldapBaseBean.setProtocol(map.get("PROTOCOL").toString());

                return ldapBaseBean;
            }

        }
        return null;
    }


    /**
     * SQL 查询LDAP同步数据对应关系-LDAPID OAID
     */
    public final static String SQL_SELECT_LDAP_SYNC_DATA_OAID_BY_LDAPOAID = " SELECT * FROM LDAP_SYNC_DATA WHERE OAID = ? AND DATATYPE = ? ";

    /**
     * SQL 根据ID查询LDAP信息
     */
    public final static String SQL_SELECT_LDAP_ID = "SELECT * FROM LDAP_SETTING WHERE LDAPID = ?";




}