2013-05-17 1 views
1

나는 시험 때문에 같은 X500Principal 클래스를 운전했다 :X500Principal (String, Map) 생성자의 핵심은 무엇입니까?

Map<String, String> attr = new LinkedHashMap<String, String>(); 
attr.put("CN", "Duke"); 
attr.put("O", "JavaSoft"); 
X500Principal p1 = new X500Principal("", attr); 
X500Principal p2 = new X500Principal("CN=Duke,O=JavaSoft"); 

을 Javadoc과에서, 하나는 p1p2가 동일한 비교해야한다는 인상을해야하지만, 불행히도 그들은하지 않습니다. p1에서 다양한 getName 메서드를 사용하면 항상 빈 문자열이 표시 될 수 있습니다.

그래서 생성자 (또는 getName(String, Map) 메쏘드)에지도를 전달하는 것이 무엇인지 궁금합니다.

답변

3

키워드 맵은 속성 이름을 OID 문자열로 매핑해야합니다. 표준 목록 (CN, O, OU 등)의 일부가 아닌 고유 한 속성 이름을 정의 할 수 있습니다. 이상하다

Map<String, String> attr = new HashMap<String, String>(); 
attr.put("FOO", "1.2.3.4.5.6.7.8.9"); 
X500Principal p = new X500Principal("CN=bar,FOO=baz", attr); 
+0

자, 분명히 Javadoc을 잘못 읽었습니다. –

0

해당 생성자에 대해 javadoc을 살펴보십시오. 구체적으로는, 각 키가 키워드 문자열이다

속성 유형 키워드 맵과 keywordMap 파라미터를 설명하는 문자열 형태로 대응하는 개체 식별자 맵 (마침표로 분리 된 음이 아닌 정수의 시퀀스 ). 지도는 빈 일 수 있지만 null이 아닐 수 있습니다.

기본적으로 keywordMap은 X.500 고유 이름 대신 사용되는 것이 아니라 완전히 다른 것입니다.

+1

, 내가 [자바 독]에서 발견 (http://docs.oracle.com/javase/7/docs/api/javax/ :

그래서 사용법은 다음과 같을 것 security/auth/x500/X500Principal.html # X500Principal (java.lang.String, % 20java.util.Map))을 약 15 초 후에 실행합니다. 비공식 Javadoc 사이트를 보거나 링크해서는 안됩니다. – EJP

+0

Google에서 실패, JDK 1.4 문서에 연결됨 : -/업데이트 중, 감사합니다! –

관련 문제