Active Directory サーバーから名前を取得するときに、常にエラーが発生します。エラーは次のとおりです。
javax.naming.InvalidNameException: Invalid name: "CN=»OGMA Serviço LAN/WAN",cn=Recipients,cn=Users,,dc=intra
少しググったら以下の情報を見つけました
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4307193 http://docs.oracle.com/javase/jndi/tutorial/beyond/names/syntax.html
ご覧のとおり、パーサー アプローチと複合名アプローチの両方を試しましたが、エラーが続きます。私は何が欠けていますか?
これらの操作を行うコードは次のとおりです。
DirContext ctx = new InitialDirContext( (Hashtable<String,String>) env);
Name n2 = new CompositeName().add(usersContainer);
NamingEnumeration contentsEnum = ctx.list(n2);
String[] attName = {"cn"};
while ( contentsEnum.hasNext() ) {
NameClassPair ncp = (NameClassPair) contentsEnum.next();
NameParser ldapParser = ctx.getNameParser("");
String name = ncp.getName() + "," + usersContainer;
Name n = ldapParser.parse(name);
ctx.lookup(n);
変数name
は"CN=»OGMA Serviço LAN/WAN" + cn=Recipients,cn=Users,,dc=intra