0

私は試した

java.util.Hashtable;
import java.util.Properties;
import java.util.jar.Attributes;

import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

    public class Main{  


            public static void main(String[] args) {  

                 Hashtable env = new Hashtable();
                 env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
                 env.put(Context.PROVIDER_URL, "ldap://localhost:10389");
                 env.put(Context.SECURITY_AUTHENTICATION, "simple");
                 env.put(Context.SECURITY_PRINCIPAL,"uid=admin,ou=system"); // specify the username
                 env.put(Context.SECURITY_CREDENTIALS,"secret");// specify the password
                // TODO code application logic here  

                          // entry's DN 
           String entryDN = "cn=myadmins,ou=groups,ou=system";  

            // entry's attributes  

            Attribute cn = new BasicAttribute("cn", "myadmins");  
            Attribute oc = new BasicAttribute("objectClass");  
            oc.add("top");  
            oc.add("groupOfUniqueNames");   
            DirContext ctx = null;  

            try {  
                // get a handle to an Initial DirContext  
                ctx = new InitialDirContext(env);  

                // build the entry  
                BasicAttributes entry = new BasicAttributes();  
                entry.put(cn);  

                entry.put(oc);  

                // Add the entry  

                ctx.createSubcontext(entryDN, entry);  
      //          System.out.println( "AddUser: added entry " + entryDN + ".");  

            } catch (NamingException e) {  
                System.err.println("AddUser: error adding entry." + e);  
            }  
         }  
    }  

DS のデフォルト スキーマの例に取り組んでいます。

しかし、私は得る

Required attributes [uniqueMember(2.5.4.50)] not found within entry cn=myadmins,ou=groups,ou=system]; remaining name 'cn=myadmins,ou=groups,ou=system'

私は他のグループエントリを見ました、それはuniqueMember値を持つ属性を持っています:

0.9.2342.19200300.100.1.1=admin,2.5.4.11=system

新しいグループの uniqueMember 属性の値を指定するにはどうすればよいですか?

正直に言うと、ドットを含む数字は少し複雑です。

ありがとう

4

1 に答える 1

1

属性にはuniqueMemberDN 構文があります。これは、相対識別名 (または識別名の構成要素) ではなく、識別名を値として使用する必要があることを意味します。識別名は、ファイルシステムの完全修飾パス名に似ています。

uniqueMember属性値は、グループのメンバーである識別名への「ポインタ」と考えてください。

アップデート:

the number containing dotsですOID。LDAP の属性、コントロール、およびその他のものは OID を使用します。たとえば、属性にcnは OID が関連付けられており、スキーマ内で一意に識別するために使用されます。

于 2012-08-07T15:53:38.197 に答える