Сразу после того, как я опубликовал свой вопрос, я решил в последний раз взглянуть на java API - и предположить, что я нашел: LdapName. Класс Hat делает то, что я сделал, и даже проверяет ввод.
Итак, теперь я получил следующий код:
LdapName ldapName = new LdapName(dn);
List<Rdn> distinguishedNames = ldapName.getRdns();
for (Rdn rdn : distinguishedNames) {
if ("c".equals(name.getType().toLowerCase())) {
country = (String) name.getValue();
}
...
}