gpt4 book ai didi

java - 如何以编程方式将用户帐户添加到 openDS?

转载 作者:行者123 更新时间:2023-12-02 01:59:32 26 4
gpt4 key购买 nike

我需要以编程方式向 openDS 服务器添加一些用户帐户,但即使在查看 openDS wiki 后我也不知道该怎么做。 。有人可以帮助我吗?

最佳答案

下面的代码使用jndi。这只会添加一个带有提供的密码的用户对象。这并不多。但这可能会帮助您入门。

此外,与 opends-sdk 相比,我更愿意坚持使用 jndi。

import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.DirContext;
import javax.naming.directory.Attributes;
import javax.naming.directory.Attribute;
import javax.naming.NamingException;

public class App {

/* Ugly HardCoded stuff */
public static String ldapUri = "ldap://localhost:2389";
public static String admindn = "cn=Directory Manager";
public static String admincred = "password";
public static String usersContainer = "ou=users,dc=example,dc=com";

public static void main(String args[]){

if (args.length != 2) {
System.out.println("Usage: App userName password");
return;
}
String username = args[0];
String password = args[1];

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldapUri);
env.put( Context.SECURITY_PRINCIPAL, admindn );
env.put( Context.SECURITY_CREDENTIALS, admincred );
try {
DirContext ctx = new InitialDirContext(env);

Attributes attrs = new BasicAttributes(true);

Attribute objclass = new BasicAttribute("objectclass");
objclass.add("top");
objclass.add("inetorgperson");

Attribute surname = new BasicAttribute("sn");
surname.add(username);

Attribute pwd = new BasicAttribute("userpassword");
pwd.add(password);

attrs.put(objclass);
attrs.put(surname);
attrs.put(pwd);

ctx.createSubcontext("cn="+username+","+usersContainer, attrs);
ctx.close();


} catch (NamingException e) {
e.printStackTrace();
}


}
}

关于java - 如何以编程方式将用户帐户添加到 openDS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5142375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com