
一般ldap管理工具都会有schema管理,你自己
新建属性,然后新建objectclass,把新属性加入到这个objectclass就行了。注意建objectclass的时候一般都要
继承已有的objectclass,相应的属性也会继承过来类型如下内容: /** * 获得LDAP连接(不通过连接池,直接获得连接) * @return * @throws Exception */ private javax.naming.directory.DirContext getDirContext() throws Exception {DirContext ctx = null java.util.Hashtable env = new java.util.Hashtable() env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory") env.put(Context.PROVIDER_URL, "ldap://localhost:389") env.put(Context.SECURITY_AUTHENTICATION, "simple") env.put(Context.SECURITY_PRINCIPAL, user) env.put(Context.SECURITY_CREDENTIALS, pwd) ctx = new InitialDirContext(env) return ctx} /** * 增加一个LDAP的标识OU的对象 * @param dn 完全名称 例如:ou=mytest,dc=abcd,dc=com * @param cn 名称 cn="mytest" * @param myObject 与标志识别绑定的JAVA对象 * @param Prop 扩展的属性 * @param isoverwrite 是否强制覆盖 * @throws Exception */ public void addLDAPou(String dn,String cn,String myObject,java.util.Properties Prop,boolean isoverwrite) throws Exception { DirContext ctx = getDirContext()try { Attribute attr1 = new BasicAttribute("cn", cn) Attribute attr2 = new BasicAttribute("objectclass") attr2.add("top") attr2.add("groupofuniquenames") Attributes attrs = new BasicAttributes() attrs.put(attr1) attrs.put(attr2) java.util.Enumeration em = Prop.propertyNames() while (em.hasMoreElements()) { String mykey = (String) em.nextElement()String value = Prop.getProperty(mykey)Attribute attr = new BasicAttribute(mykey, value)attrs.put(attr) } if (isoverwrite) ctx.rebind(dn, myObject, attrs) else ctx.bind(dn, myObject, attrs)} finally { // } }
评论列表(0条)