0
javax.naming.directory.InvalidAttributeIdentifierExceptionを取得していますAttributeDescriptionに不適切な文字が含まれています。
これは私のクラスである:
public class OpenLDAPTest {
public static void main(String[] args) {
String url = "ldap://localhost:389";
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, url);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=maxcrc,dc=com");
env.put(Context.SECURITY_CREDENTIALS, "secret");
try {
DirContext ctx = new InitialDirContext(env);
System.out.println("connected");
System.out.println(ctx.getEnvironment());
System.out.println("Creating subContext");
String name = "dc=mine, dc=com";
Attributes atrs = new BasicAttributes();
Attribute atr1 = new BasicAttribute("Object Class");
atr1.add("OrgPerson");
atrs.put(atr1);
Attribute atr2 = new BasicAttribute("cn");
atr2.add("sathish");
atrs.put(atr2);
atrs.put("Phone", "12345");
Context c = ctx.createSubcontext(name, atrs);
System.out.println(c.getEnvironment());
ctx.close();
} catch (AuthenticationNotSupportedException ex) {
System.out.println("The authentication is not supported by the server");
} catch (AuthenticationException ex) {
System.out.println("incorrect password or username");
} catch (NamingException ex) {
//System.out.println("error when trying to create the context");
ex.printStackTrace();
}
}
}
「オブジェクトクラス」という名前の属性がありますか? (スペースはおそらく問題です)。 https://www.google.com/support/enterprise/static/postini/docs/admin/en/dss_admin/prep_ldap.htmlによれば、おそらく「objectclass」になるはずです –
実際にはLDAPでそれほど良くはありません。ネットでいくつかのコードを見たところ、ApacheDirectoryStudioで作業していたのですが、OpenLDAPを試しています。私の意図はopenLAPにアクセスするためのコードを書くことです。 – Sat
"objectclass"に変更しましたが、 javaでこれらのLDAPクエリを使用するには?あなたが私をガイドしてください知っていれば..ありがとう – Sat