当前版本: apacheds-2.0.0.AM26
1. 声明当前内容主要为j记录使用Java方式 *** 作Apache DS
当前 *** 作:
- 创建entry、为entry绑定对象、重新绑定、删除绑定删除entry
注意:如果entry绑定了对象或者属性,那么删除会报错的!!
2. 启动Apache DS./bin/apacheds.sh start并开放10389端口,apache ds默认启动在10389
apache ds默认会在第一次启动的时候使用实例default,并完成partition *** 作,此后不再加载ldif文件
private static final String HOST = "192.168.1.100"; private static HashtablecreateEnv() { Hashtable env = new Hashtable (); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://" + HOST + ":10389"); env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system"); env.put(Context.SECURITY_CREDENTIALS, "secret"); return env; } private static void printSamplePartition() { Hashtable env = createEnv(); // 创建对Dir访问 *** 作的上下文 DirContext basicCtx = null; NamingEnumeration listBindings = null; try { basicCtx = new InitialDirContext(env); // 通过lookup方式切换当前的位置为特定的文件夹位置(相当于cd *** 作切换到该目录下面) DirContext examplePartition = (DirContext) basicCtx.lookup("dc=example,dc=com"); listBindings = examplePartition.listBindings(""); listBindginEnumeration(listBindings); // 1. 创建实体 System.out.println("创建实体Fruits"); LdapName ldapName = new LdapName("cn=Fruits"); examplePartition.createSubcontext(ldapName); listBindings = examplePartition.listBindings(""); listBindginEnumeration(listBindings); // 2. 为实体绑定对象 DirContext fruitsContext = (DirContext) basicCtx.lookup("cn=Fruits,dc=example,dc=com"); System.out.println("为实体Fruits绑定对象"); // 绑定的必须是存在的 fruitsContext.bind("cn=Fruits", new Fruit("orange")); listBindings = fruitsContext.listBindings(""); listBindginEnumeration(listBindings); // 3. 为实体重新绑定对象 System.out.println("为实体Fruits重新绑定对象"); fruitsContext.rebind("cn=Fruits", new Fruit("apple")); listBindings = fruitsContext.listBindings(""); listBindginEnumeration(listBindings); // 4. 解除对象绑定 System.out.println("为实体Fruits解除绑定对象"); fruitsContext.unbind("cn=Fruits"); listBindings = fruitsContext.listBindings(""); listBindginEnumeration(listBindings); // 5. 删除这个实体 System.out.println("删除实体Fruits"); examplePartition.destroySubcontext("cn=Fruits"); listBindings = examplePartition.listBindings(""); listBindginEnumeration(listBindings); } catch (Exception e) { e.printStackTrace(); } finally { close(basicCtx); } }
执行结果:
1. lookup默认执行后返回的东西就是相当于cd文件的结果目录,所以使用的时候需要小心,list("")默认就是查看当前路径下的东西
2. 删除一个entry必须首先解除绑定、删除属性之后才可以执行删除实体的 *** 作
3.apache ds启动的时候默认提供了一个example的partition(dc=example,dc=com)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)