往LDAP中添加用户

import java.util.Properties;

import javax.naming.ldap.InitialLdapContext;
import javax.naming.NamingException;

import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttribute;
import javax.naming.Context;
import javax.naming.directory.*;
//import org.apache.ldap.common.message.Control;
/*
 * Created on 2006-9-20
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class test {

 private void putAttribute(Attributes attrs, 
   String attrName, String attrValue) {
   if (attrValue != null && attrValue.length() != 0) {
   Attribute attr = 
   new BasicAttribute(attrName, attrValue);
   attrs.put(attr);
   }
   }

 public static void main(String[] args) throws NamingException {
     test s = new test();
     s.doProcess();
    
 }
 public void doProcess() throws NamingException{
  Properties p = new Properties();
   
     p.setProperty("java.naming.factory.initial","com.sun.jndi.ldap.LdapCtxFactory");
     p.setProperty("java.naming.provider.url","ldap://lisa:389");
   
     p.setProperty("java.naming.security.authentication","simple");
     p.setProperty(Context.SECURITY_PRINCIPAL, "CN=administrator,cn=users,dc=lisa,dc=beijing,dc=indigo");
     p.put(Context.SECURITY_CREDENTIALS, "XXXXXX");
     InitialLdapContext ctx = new InitialLdapContext(p,null);
   
    
    

//   添加400个, 设置用户属性 
    
     for(int i=1 ;i<400;i++){
      String uid = "testtesttest"+i;
    String cn= "test" + i;
      Attributes attrs = new BasicAttributes("cn",cn,true);
   Attribute objclass = new BasicAttribute("objectclass");
   objclass.add("top");
   objclass.add("person");
   objclass.add("organizationalPerson");
   objclass.add("inetorgperson");
   attrs.put(objclass);
  
   String givenname = "test"+i;
   putAttribute(attrs, "cn",cn);
   putAttribute(attrs, "givenname", givenname);
   putAttribute(attrs, "sn", "test1");
   putAttribute(attrs, "uid", uid);
   putAttribute(attrs, "userpassword", "12345^a");
   putAttribute(attrs, "mail", "lni@indigo.com");
   putAttribute(attrs,"displayName","中文"+i);
   putAttribute(attrs, "telephonenumber", "111");
   putAttribute(attrs, "facsimiletelephonenumber", "1111");

//   添加用户节点
   ctx.createSubcontext("CN="+cn+",ou=集团公司,dc=lisa,dc=beijing,dc=indigo" , attrs);
         }
    //很奇怪的是, 被添加的用户都是处于禁用状态的, 怎么通过程序来启用用户呢?希望有高手指点.
 }

ldap添加用户的命令可以使用ldapadd命令来实现。通过ldapadd命令,可以向LDAP服务器添加新的用户。具体的命令格式如下所示: ldapadd -x -c -W -D "管理员账号" -f ldif文件路径 其,-x参数表示使用简单认证方式,-c参数表示在执行过程出现错误时继续执行,-W参数表示在执行命令时需要输入管理员账号的密码,-D参数指定管理员账号的DN(Distinguished Name),-f参数指定包含用户信息的ldif文件的路径。 举个例子,假设我们要添加一个名为XiaoMing的用户,设置其家目录为/home/xiaoming,管理员账号为admin,密码为password,那么具体的命令如下: ldap***user.ldif文件包含了用户的信息,其包括了用户的DN以及其他属性的设置。 请注意,执行ldapadd命令之前,需要确保已经正确配置了LDAP服务器和管理员账号的权限。同时,ldif文件用户信息也需要按照LDAP服务器的要求进行正确填写。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [LDAP系列二创建用户](https://blog.csdn.net/xyy511/article/details/90521086)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Ldap添加用户](https://blog.csdn.net/zhxue123/article/details/7481180)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值