`

用JAVA刺穿LDAP (一)-- java添加AD用户

 
阅读更多

//建立LDAP服务器的连接

package com.prime.mypackage; 

import java.io.File;
import java.io.FileInputStream; 

import java.util.Hashtable;
import java.util.Properties; 

import javax.naming.Context;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext; 


public class LdapQuery {
/*服务提供者*/
private static String CTX_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory"; 

/*LDAP连接*/
private DirContext dirContext; 

/*参数列表*/
private Hashtable enviroment; 

/**
* 构造函数
*/
public LdapQuery() {
dirContext = null;
enviroment = new Hashtable();
} 

public static void main(String[] args){
LdapQuery lp=new LdapQuery();
try{
lp.init("cn=orcladmin","abc123");
}catch(Exception e){
e.printStackTrace();
}
} 

/**
* 读取配置文件,连接LDAP服务器
* @throws LdapException
*/
public DirContext init(String username, String password)
throws Exception {
try {
Properties config = new Properties();
File f = new File("C:/Projects/Java/ldap.property"); 

if (!f.exists()) {
throw new Exception("没发现配置文件");
} 

FileInputStream configFile = new FileInputStream(f);
config.load(configFile); 

String host = config.getProperty("host");
String port = config.getProperty("port");
configFile.close(); 

enviroment.put(Context.INITIAL_CONTEXT_FACTORY, CTX_FACTORY);
enviroment.put(Context.PROVIDER_URL, "ldap://" + host + ":" + port); 

if (password != null) {
enviroment.put(Context.SECURITY_AUTHENTICATION, "simple");
enviroment.put(Context.SECURITY_PRINCIPAL, username);
enviroment.put(Context.SECURITY_CREDENTIALS, password);
} 

dirContext = new InitialDirContext(enviroment); 

if (dirContext != null) {
System.out.println("Connect"); 

return dirContext;
} 

return null;
} catch (Exception e) {
throw new Exception("LdapQuery.init:" + e.toString());
}
}
}

//做第一个动作 add()
package com.prime.mypackage;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.naming.directory.DirContext;
import java.util.Hashtable;
import java.util.Enumeration;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls ;
import javax.naming.NamingEnumeration;
import javax.naming.directory.SearchResult;
import javax.naming.directory.Attributes ;
import javax.naming.directory.Attribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.ModificationItem;
import java.lang.reflect.Method;
import java.io.BufferedReader;
import java.io.InputStreamReader; 

 

public class LdapAction 
{ 

DirContext ctx=null;
public static void main(String[] args)
{
LdapAction LA=new LdapAction();
LA.add();
}
public LdapAction()
{
LdapQuery query=new LdapQuery();

try{
ctx=query.init("cn=orcladmin","abc123");
}catch(Exception e)
{
e.printStackTrace();
}
}
public void add(){
try{
String newUserName = "test_add";
BasicAttributes attrs = new BasicAttributes();
BasicAttribute objclassSet = new BasicAttribute("objectclass");
BasicAttribute pass=new BasicAttribute("userpassword");
pass.add("123qweasd");
objclassSet.add("top"); 
objclassSet.add("person"); 
objclassSet.add("organizationalPerson"); 
objclassSet.add("inetOrgPerson");
objclassSet.add("orcluser");
objclassSet.add("orcluserV2");
attrs.put(pass);
attrs.put(objclassSet);
attrs.put("sn", newUserName);
attrs.put("uid", newUserName);
attrs.put("cn", newUserName);
ctx.createSubcontext("uid=" + newUserName+",cn=users,dc=dev,dc=daphne,dc=com,dc=cn", attrs); 
}catch(Exception e){
System.out.println("Exception in add():"+e);
}
} 


}

 

 

 

分享到:
评论

相关推荐

    Laravel开发-adldap2-laravel

    `adldap2-laravel` 是一个专门为 Laravel 设计的 LDAP 集成包,它允许开发者轻松地将 Laravel 应用程序与 Active Directory 服务器集成,实现用户登录、权限控制等功能。 **1. Laravel 身份验证系统** Laravel ...

    java使用ldap修改ad域用户密码

    Java 使用 LDAP 修改 AD 域用户密码 本文将详细介绍如何使用 Java 语言通过 LDAP 协议修改 Windows Active Directory 域用户的密码。同时,本文也将对相关概念进行解释,以便读者更好地理解整个过程。 LDAP 概念 ...

    Go-ldap-test-tool一个轻量级的ldap测试工具

    在实际使用中,`shanghai-edu-ldap-test-tool-5896101` 这个文件可能是该工具的一个特定版本或发布包。下载并解压后,通常会包含源代码、可执行文件、文档和示例等内容。开发者可以通过阅读文档了解如何安装、配置和...

    JAVA中使用LDAP进行用户认证

    JAVA中使用LDAP进行用户认证 JAVA中使用LDAP进行用户认证是指在JAVA应用程序中使用轻量级目录访问协议(LDAP)来进行用户身份验证。LDAP是一种基于X.500标准的目录访问协议,但它更简单、更灵活,可以根据需要进行...

    LDAP实现AD域账号验证 - Java/SpringBoot

    在IT行业中, Lightweight Directory Access Protocol (LDAP) 是一种用于存储和检索目录信息的标准协议,而Active Directory (AD) 是微软提供的目录服务,广泛应用于企业环境中进行用户身份验证和权限管理。Java和...

    python_ldap-3.4.4-cp38-cp38-win_amd64.whl.zip

    Python LDAP库提供了一种方便的方式来访问这些目录服务,允许开发人员执行搜索、添加、删除和修改目录条目的操作。 在使用`python_ldap-3.4.4-cp38-cp38-win_amd64.whl`之前,确保你已经安装了Python 3.8,并且拥有...

    python_ldap-3.4.4-cp312-cp312-win_amd64.whl.zip

    Python LDAP库提供了一个接口,允许开发者通过Python代码与LDAP服务器进行通信,执行如搜索、添加、删除、修改和绑定等操作。 3. **CP312**: 这部分表示该轮子文件是为Python 3.12版本编译的。Python的版本号由`cp`...

    AD系统安装配置指南(JAVA-JNDI-LDAP-Exchange).part2.rar

    AD ldap java集成

    JAVA ldap AD 域 免证书 查询 修改 删除 新增 启用 禁用 修改密码

    在这篇文章中,我们将探讨使用 JAVA 实现 LDAP 的 AD 域免证书查询、修改、删除、新增、启用、禁用和修改密码的操作。 首先,让我们了解什么是 LDAP 和 AD 域。LDAP(Lightweight Directory Access Protocol)是一...

    LdapAdmin---LDAP工具

    **LDAP(轻量级目录访问协议)是一种用于访问和管理分布式目录服务的协议,广泛应用于组织内部的身份验证、用户及资源管理。LdapAdmin是一款专为Windows操作系统设计的高效、稳定的LDAP管理工具,它允许管理员便捷地...

    python-ldap windows 预编译包

    在调试工程的时候发现需要django-auth-ldap,但还依赖python_ldap包,在windows上装这些包费老鼻子劲,csdn上找呢又不全,收分还多贵的,因此找到了之后将python3.7-11的包都给大家提供,不好意思挣点分,因为有些...

    python_ldap-3.1.0-cp36-wheel.zip

    Python LDAP库是一个强大的工具,用于在Python环境中与 Lightweight Directory Access Protocol (LDAP) 服务器进行交互。这个`python_ldap-3.1.0-cp36-wheel.zip`压缩包包含了适用于Python 3.6版本的Python LDAP库的...

    spring-ldap-core-1.3.0.RELEASE.jar

    spring-ldap-core-1.3.0.RELEASE.jar

    Adldap2-Laravel:用于Laravel的LDAP身份验证和管理

    使用内置的身份验证驱动程序,轻松地允许LDAP用户登录到您的应用程序并控制哪些用户可以通过和登录。 轻松导入和同步LDAP用户。 可以在首次登录时将用户导入数据库,也可以通过简单的php artisan adldap:import...

    JAVA使用Ldap操作AD域的方法示例

    在本文中,我们将深入探讨如何使用Java通过Ldap与Active Directory (AD)域进行交互。首先,我们需要了解AD域是一个集中式服务,用于管理网络中的用户、计算机和其他资源的身份和权限。Ldap(轻量级目录访问协议)是...

    python_ldap-3.4.4-cp37-cp37m-win_amd64.whl.zip

    该库提供了一组丰富的API,可以用来执行常见的LDAP操作,如搜索、添加、删除、修改和比较记录。 **WHL文件详解** .WHL文件是Python的Wheel格式,它是Python包索引(PyPI)上发布的一种预编译的二进制包。这种格式旨在...

    ldap-connector-4.2.2.jar

    Java 连接ldap需要驱动包,否则JDBC无法访问数据库(无法注册驱动),常用的是ldap-connector

    python_ldap-3.4.4-cp37-cp37m-win32.whl.zip

    Python LDAP库是一个用于Python的轻量级目录访问协议(LDAP)接口,它允许开发者与LDAP服务器进行交互,例如进行用户身份验证、数据检索或管理目录服务。`python_ldap-3.4.4-cp37-cp37m-win32.whl` 是这个库的一个...

    python_ldap-3.3.1-cp37-cp37m-win_amd64

    python_ldap-3.3.1-cp37-cp37m-win_amd64

Global site tag (gtag.js) - Google Analytics