读取LDAP安全主体

时间:2012-03-09 10:25:34

标签: java ldap

我从表格

上的X509Certificate获得了一个字符串
  

UID =唯一ID,CN =通用名称,C =国家/地区代码,ST =州

对我来说看起来像ldap'ish,然后我想也许存在一个用于java的LDAP API,它可以为我标记这个字符串,所以我可能得到一个名称为key,内容为value的地图 - 或者相似的东西。 这是否存在?

3 个答案:

答案 0 :(得分:1)

内置至少两个Java API:javax.naming.NameParser派生自LDAP Context,产生javax.naming.Name;和javax.naming.ldap.LdapName

答案 1 :(得分:0)

在我发布问题之后,我决定最后看一下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();
     }
     ...
 }

答案 2 :(得分:-1)

我不知道它的任何标记器。您可能会“滥用”java.util.Properites,因为它基于地图:

String cert = "UID=A unique id,CN=Common name,C=country code, ST=state";
cert = cert.replaceAll(",", "\n");
Properties props = new Properties();
props.load(new StringReader(cert));

System.out.println(props.getProperty("UID"));
System.out.println(props.getProperty("CN"));
System.out.println(props.getProperty("C"));
System.out.println(props.getProperty("ST"));