Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

JAVA对接AD域集成 PDF 下载


分享到:
时间:2022-03-09 08:36来源:http://www.java1234.com 作者:转载  侵权举报
JAVA对接AD域集成 PDF 下载
失效链接处理
JAVA对接AD域集成 PDF 下载

本站整理下载:
 
提取码:sn0i 
 
相关截图:
 
主要内容:

package com.eam.util;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.*;
import javax.naming.ldap.*;
import java.io.IOException;
import java.util.*;
public class LDAPAuthentication {
private final String URL = "ldap://ip:端口";//地址,根据对方文档进行修改
private final String BASEDN = "OU=XX 集团,DC=gemdale,DC=com"; //要搜索的上下文
或对象的名称,根据对方文档进行修改
private final String FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";//工厂类,根据
对方文档进行修改
private final String ROOT = "eam_system@gemdale.com";//管理员,根据对方文档进行
修改
private final String PWD = "";//密码,根据对方文档进行修改
private final String SIMPLE = "simple";//认证类型,根据对方文档进行修改
private LdapContext ctx = null;
private final Control[] connCtls = null;
private static int pagesize = 100;
/**
* 创建连接
* @return
* @throws NamingException
*/
public LdapContext connetLDAP() throws NamingException, IOException {
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.SECURITY_PRINCIPAL, ROOT);//用户名
env.put(Context.SECURITY_CREDENTIALS, PWD);//密码
env.put(Context.PROVIDER_URL, URL);//LDAP 的地址:端口
env.put(Context.INITIAL_CONTEXT_FACTORY, FACTORY);//LDAP 工厂类
env.put(Context.SECURITY_AUTHENTICATION, SIMPLE);//认证类型
env.put("java.naming.ldap.attributes.binary","objectGUID");
LdapContext ctxTDS = new InitialLdapContext(env, null);//连接
ctxTDS.setRequestControls(new Control[] { new PagedResultsControl( pagesize,
Control.CRITICAL) });
return ctxTDS;
}
/**
* 获取 user 集合
* @return
*/
public ArrayList<Map<String,String>> listUser() throws NamingException {
ArrayList<Map<String,String>> userlist=new ArrayList<>();
try {
//连接 LDAP
LdapContext ctx = connetLDAP();
//过滤条件
//dc(domain component)表示域名的部分,其格式是将完整的域名分为几部分;
// uid 表示用户 ID;ou(organization unit)表示组织单位;
// cn(common name)表示公共名称;
// 关键字 sn(surname)表示姓;
// dn(distinguished name)表示唯一辨别名,
String filter = "(|(objectclass=user)(uid=*CN*))";
//要获取的字段信息
//对应 EAM 字段:"user_id", "user_code", "user_name", "email",
"phone_code", "mob_code", "company", "dept_name",视自己情况而定
String[] attrPersonArray = { "SamAccountName", "displayName", "mail",
"telephoneNumber", "mobile", "Company", "Department" ,"title"};
SearchControls searchControls = new SearchControls();//搜索控件
searchControls.setSearchScope(2);//搜索范围
searchControls.setReturningAttributes(attrPersonArray);
byte[] cookie = null;
do {
//1.要搜索的上下文或对象的名称;2.过滤条件,可为 null,默认搜索所有
信息;3.搜索控件,可为 null,使用默认的搜索控件
NamingEnumeration<SearchResult> answer = ctx.search(BASEDN, filter,
searchControls);
SearchResult result;// 结果集
Attributes attrs;// 获取 Entry 的属性集
Attribute attr;
Map<String, String> map;
while (answer.hasMoreElements()) {

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐