Когда в DN есть специальные символы, пользователь не может быть добавлен в AD нормально - PullRequest
1 голос
/ 18 марта 2020

При добавлении пользователя в AD имя пользователя содержит запятую, такую ​​как «тестовый пользователь, gao» этого типа. При создании используется синтаксис DN: CN = тестовый пользователь \, gao, DC = пользователь, DC = SG , DC = ...

Мы нашли на Inte rnet запятую, которая должна быть экранирована как \, \ 2 c \ 5 c, и мы все перепробовали, это то же сообщение об ошибке

При добавлении AD возвращает следующее сообщение об ошибке:

javax.naming.InvalidNameException: cn = Tan Wai Ling \, Joyce (Chen WeiLing \, Joyce), ou = Пользователи , ou = SG, dc = infinitumfa, d c=net: [LDAP: код ошибки 34 - 00002081: NameErr: DSID-03050EB3, проблема 2003 (BAD_ATT_SYNTAX), данные 0, наилучшее совпадение: \ n \ t ' CN = Tan Wai Ling \, Джойс (Chen WeiLing \, Joyce), OU = Пользователи, OU = SG, DC = infinitumfa, D C=net '\ n \ u0000]; оставшееся имя 'cn = Tan Wai Ling \, Joyce (Chen WeiLing \, Joyce), ou = Users, ou = SG, dc = infinitumfa, d c=net', обратитесь к администратору

Вот код:

Attributes attrs = new BasicAttributes(true);
attrs.put("objectClass", "user");
attrs.put("samAccountName", user);
attrs.put("sn", name);
attrs.put("displayName", name);
attrs.put("givenName",name);
attrs.put("userPrincipalName", user + "@" + userPrincipalNa);
String password = "\"" + defaultPassword + "\"";
byte[] unicodePassword = password.getBytes("UTF-16LE");
attrs.put("unicodePwd",unicodePassword);
String newName = name.replaceAll(",","\\\\,");
attrs.put("cn", newName);
dc.createSubcontext("cn=" + newName + "," + baseDn, attrs);

Пожалуйста, помогите тем, кто знает эту проблему. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...