を読んで、私は、フォームLDAPセキュリティプリンシパル
を持っていますUID一意のIDを=、CN =共通名、C =国コード上のX509Certificateから取得した文字列、ST =状態
私にはldap'ishのように見えますが、おそらく私のためにこの文字列をトークン化できるJavaのLDAP APIが存在すると思っていたので、キーとして名前を持つマップを取得したり、 。 これはありますか?
を読んで、私は、フォームLDAPセキュリティプリンシパル
を持っていますUID一意のIDを=、CN =共通名、C =国コード上のX509Certificateから取得した文字列、ST =状態
私にはldap'ishのように見えますが、おそらく私のためにこの文字列をトークン化できるJavaのLDAP APIが存在すると思っていたので、キーとして名前を持つマップを取得したり、 。 これはありますか?
右、私は、Java APIで最後見てみることにしました。ハットクラスは私がやったことを行い、入力を検証します。
は、だから今、私は次のコードを得た:
LdapName ldapName = new LdapName(dn);
List<Rdn> distinguishedNames = ldapName.getRdns();
for (Rdn rdn : distinguishedNames) {
if ("c".equals(name.getType().toLowerCase())) {
country = (String) name.getValue();
}
...
}
私はそのためのトークナイザを知りません。するLdapName: - :あなたは地図に基づいており、それについて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"));
ありに建てられた、少なくとも2つのJava APIです:javax.naming.Name
得LDAP Context
、由来javax.naming.NameParser
。およびjavax.naming.ldap.LdapName
。
[UnboundID LDAP SDK](http://www.unboundid.com/products/ldap-sdk/)がはるかに使いやすいかもしれません。 –