JavaTM Platform
Standard Ed. 6

javax.security.auth.x500
클래스 X500Principal

java.lang.Object 
  상위를 확장 javax.security.auth.x500.X500Principal
모든 구현된 인터페이스:
Serializable , Principal


public final class X500Principal
extends Object
implements Principal , Serializable

X. 500 의 Principal 를 나타냅니다. X500Principal 는 「CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US」와 같은 식별명으로 표기됩니다.

이 클래스는, 식별명의 캐릭터 라인 표현을 사용하는지, 식별명의 ASN. 1 DER encode 바이트 표현을 사용해 인스턴스화 됩니다. 식별명의 캐릭터 라인 표현에 대한 현재의 스펙은,RFC 2253 으로 정의되고 있습니다. 그러나, RFC 2253 으로 RFC 1779 의 양쪽 모두에 기술된 캐릭터 라인 형식도 가능하고, 또,RFC 2459 로 OID (Object Identifier)가 정의되고 있는 속성의 형태 키워드도 인식합니다.

X500Principal 의 캐릭터 라인 표현은,getName 메소드를 호출하는 것으로 취득할 수 있습니다.

X509CertificategetSubjectX500Principal 메소드와 getIssuerX500Principal 메소드는, 증명서의 발행자 필드와 피인증자 필드를 나타내는 X500Principal 를 돌려줍니다.

도입된 버젼:
1.4
관련 항목:
X509Certificate , 직렬화 된 형식

필드의 개요
static String CANONICAL
          Distinguished Name 의 정규의 String 형식입니다.
static String RFC1779
          Distinguished Name 의 RFC 1779 String 형식입니다.
static String RFC2253
          Distinguished Name 의 RFC 2253 String 형식입니다.
 
생성자 의 개요
X500Principal (byte[] name)
          ASN. 1 DER encode 형식의 식별명으로부터 X500Principal 를 작성합니다.
X500Principal (InputStream  is)
          ASN. 1 DER encode 형식의 식별명을 포함한 InputStream 로부터 X500Principal 을 작성합니다.
X500Principal (String  name)
          X. 500 식별명 (예: CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US)의 캐릭터 라인 표현으로부터 X500Principal 를 작성합니다.
X500Principal (String  name, Map <String ,String > keywordMap)
          X. 500 식별명 (예: CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US)의 캐릭터 라인 표현으로부터 X500Principal 를 작성합니다.
 
메소드의 개요
 boolean equals (Object  o)
          지정된 Object 곳의 X500Principal 가 동일한지 어떤지를 비교합니다.
 byte[] getEncoded ()
          ASN. 1 DER encode 형식의 식별명을 돌려줍니다.
 String getName ()
          RFC 2253 으로 정의된 형식에서, X. 500 식별명의 캐릭터 라인 형식을 돌려줍니다.
 String getName (String  format)
          지정한 형식에서 X. 500 식별명의 캐릭터 라인 형식을 돌려줍니다.
 String getName (String  format, Map <String ,String > oidMap)
          지정한 형식에서 X. 500 식별명의 캐릭터 라인 형식을 돌려줍니다.
 int hashCode ()
          X500Principal 의 해시 코드를 돌려줍니다.
 String toString ()
          이 X500Principal 의, 사용자가 사용하기 쉬운 캐릭터 라인 형식을 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 

필드의 상세

RFC1779

public static final String  RFC1779
Distinguished Name 의 RFC 1779 String 형식입니다.

관련 항목:
정수 필드치

RFC2253

public static final String  RFC2253
Distinguished Name 의 RFC 2253 String 형식입니다.

관련 항목:
정수 필드치

CANONICAL

public static final String  CANONICAL
Distinguished Name 의 정규의 String 형식입니다.

관련 항목:
정수 필드치
생성자 의 상세

X500Principal

public X500Principal(String  name)
X. 500 식별명 (예: CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US)의 캐릭터 라인 표현으로부터 X500Principal 를 작성합니다. 식별명은 RFC 1779 나 RFC 2253 (어느쪽이나 가능)으로 정의된 문법을 사용해 지정할 필요가 있습니다.

이 생성자 은, RFC 1779 로 RFC 2253 으로 정의되었다 (그리고 getName(String format) 로 리스트 된다) 속성의 형태 키워드를 인식할 뿐만 아니라, RFC 2459 로 정의된 OID 를 가지는 T, DNQ 또는 DNQUALIFIER, SURNAME, GIVENNAME, INITIALS, GENERATION, EMAILADDRESS, SERIALNUMBER 의 각 키워드 및 그 직후의 키워드도 인식합니다. 그 다른 속성의 형태는 OID 로 지정할 필요가 있습니다.

파라미터:
name - RFC 1779 형식 또는 RFC 2253 형식의 X. 500 식별명
예외:
NullPointerException - namenull 의 경우
IllegalArgumentException - name 의 지정이 올바르지 않은 경우

X500Principal

public X500Principal(String  name,
                     Map <String ,String > keywordMap)
X. 500 식별명 (예: CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US)의 캐릭터 라인 표현으로부터 X500Principal 를 작성합니다. 식별명은 RFC 1779 나 RFC 2253 (어느쪽이나 가능)으로 정의된 문법을 사용해 지정할 필요가 있습니다.

이 생성자 은,X500Principal(String) 로 지정된 속성의 형태 키워드와keywordMap 파라미터내에 엔트리를 가지는 그 외의 키워드를 인식합니다. X500Principal(String) 가 인식하는 디폴트의 키워드보다, keywordMap 내의 키워드 엔트리 쪽이 우선됩니다. 키워드는 모두 대문자로 지정해 주세요. 대문자로 지정하지 않았던 경우, 그 키워드는 무시됩니다. 키워드가 올바르게 지정되어 있지 않은 경우, 그 키워드는 무시됩니다만, 이름에 포함되는 키워드 부분에 대응하는 OID 가 올바르게 지정되어 있지 않은 경우는,IllegalArgumentException 가 throw 됩니다. 단일의 OID 에, 최대 2 개(살)이 다른 키워드를 대응 붙일 수가 있습니다.

파라미터:
name - RFC 1779 형식 또는 RFC 2253 형식의 X. 500 식별명
keywordMap - 속성의 형태 키워드 맵. 각 열쇠는, String 형식 (피리어드로 단락지어진 제로 이상이 연속하는 정수)에서 나타내진 객체 식별자에 대응하는 키워드 String . 맵은 빈 상태(empty)에서 만나도 괜찮지만,null 는 되지 않는다
예외:
NullPointerException - name 또는 keywordMapnull 의 경우
IllegalArgumentException - name 가 올바르게 지정되어 있지 않은 경우, 또는 name 에 포함되는 키워드 부분에 대응하는 OID 가 올바른 형식이 아닌 경우
도입된 버젼:
1.6

X500Principal

public X500Principal(byte[] name)
ASN. 1 DER encode 형식의 식별명으로부터 X500Principal 를 작성합니다. 이 구조체의 ASN. 1 표기는 다음과 같이 됩니다.

 Name ::= CHOICE {
   RDNSequence }

 RDNSequence ::= SEQUENCE OF RelativeDistinguishedName

 RelativeDistinguishedName ::=
   SET SIZE (1 ..MAX) OF AttributeTypeAndValue

 AttributeTypeAndValue ::= SEQUENCE {
   type     AttributeType,
   value    AttributeValue }

 AttributeType ::= OBJECT IDENTIFIER

 AttributeValue ::= ANY DEFINED BY AttributeType
 ....
 DirectoryString ::= CHOICE {
       teletexString           TeletexString (SIZE (1..MAX)),
       printableString         PrintableString (SIZE (1..MAX)),
       universalString         UniversalString (SIZE (1..MAX)),
       utf8String              UTF8String (SIZE (1.. MAX)),
       bmpString               BMPString (SIZE (1..MAX)) }
 

파라미터:
name - ASN. 1 DER encode 형식의 식별명을 포함한 바이트 배열
예외:
IllegalArgumentException - encode 에러가 발생했을 경우 (DN 의 부정한 형식)

X500Principal

public X500Principal(InputStream  is)
ASN. 1 DER encode 형식의 식별명을 포함한 InputStream 로부터 X500Principal 를 작성합니다. 이 구조체의 ASN. 1 표기는,X500Principal(byte[] name) 로 설명하고 있습니다.

입력 스트림의 read 위치는, encode 한 식별명의 후에 오는, 다음의 이용 가능한 바이트가 됩니다.

파라미터:
is - ASN. 1 DER encode 형식의 식별명을 포함한 InputStream
예외:
NullPointerException - InputStreamnull 의 경우
IllegalArgumentException - encode 에러가 발생했을 경우 (DN 의 부정한 형식)
메소드의 상세

getName

public String  getName()
RFC 2253 으로 정의된 형식에서, X. 500 식별명의 캐릭터 라인 형식을 돌려줍니다.

이 메소드는,getName(X500Principal.RFC2253) 를 호출하는 것으로 등가입니다.

정의:
인터페이스 Principal 내의 getName
반환값:
X500Principal 의 식별명

getName

public String  getName(String  format)
지정한 형식에서 X. 500 식별명의 캐릭터 라인 형식을 돌려줍니다. 형식으로 지정하는 유효한 값은 「RFC1779」, 「RFC2253」, 「CANONICAL」(대문자와 소문자를 구별한다)의 어떤 것인가입니다.

형식에 「RFC1779」를 지정했을 경우, 이 메소드는 RFC 1779 로 정의되고 있는 속성의 형태 키워드 (CN, L, ST, O, OU, C, STREET)를 발행합니다. 그 다른 속성의 형태는, OID 로서 발행됩니다.

형식에 「RFC2253」를 지정했을 경우, 이 메소드는 RFC 2253 으로 정의되고 있는 속성의 형태 키워드 (CN, L, ST, O, OU, C, STREET)를 발행합니다. 그 다른 속성의 형태는, OID 로서 발행됩니다. 엄밀하게 해석하면(자), RFC 2253 에서는, UTF-8 캐릭터 라인 표현만을 지정할 수 있습니다. 이 메소드가 돌려주는 String 는, 이 UTF-8 표현을 복호화 하는 것으로 얻을 수 있는 Unicode 캐릭터 라인이 됩니다.

형식에 "CANONICAL" 를 지정했을 경우, 이 메소드는 RFC 2253 에 적합해, 다음과 같이 정규화된 캐릭터 라인 표현을 돌려줍니다.

  1. 선두의 0 은, 닷 단락의 10 진 OID 로서 encode 된 속성의 형태로부터 제거된다.
  2. PrintableString 형 및 UTF8String 형의 DirectoryString 속성치는, 16 진수 형식에서는 출력되지 않는다.
  3. PrintableString 및 UTF8String 이외의 형태의 DirectoryString 속성치는, 16 진수 형식에서 출력된다.
  4. 전후의 공백 문자가, 16 진수 이외의 속성치로부터 제거된다 (값이 공백 문자를 포함해 구성되어 있는 경우 이외).
  5. 1 개(살) 이상의 공백 문자로부터 되는 내부의 부분 캐릭터 라인은, 16 진수 이외의 속성치에서는 1 개의 공백 문자에 변환된다.
  6. 복수의 Attribute Value Assertion (AVA)를 포함한 Relative Distinguished Name 는, 표준 키워드를 포함한 AVA 의 알파벳순서, 그리고 OID 키워드를 포함한 AVA 의 숫자순서에 출력된다.
  7. 이스케이프 되는 속성치의 문자는, RFC 2253 의 섹션 2.4 로 이스케이프 된다고 기술되고 있는 문자 뿐이다 (backslash 문자를 앞에 두고 붙이는 것으로 이스케이프 된다).
  8. 이름 전체는 String.toUpperCase(Locale.US) 를 사용해 대문자에 변환된다.
  9. 이름 전체는 String.toLowerCase(Locale.US) 를 사용해 소문자에 변환된다.
  10. 이름은, Unicode Standard 와 UAX #15 에 기술되고 있는 정규화 형식 KD 를 사용해, 최종적으로 정규화된다.

장래, 표준 형식이 추가 도입될 가능성이 있습니다.

파라미터:
format - 사용하는 형식
반환값:
지정한 형식을 사용한, 이 X500Principal 의 캐릭터 라인 형식
예외:
IllegalArgumentException - 지정된 형식이 무효인지, null 의 경우

getName

public String  getName(String  format,
                      Map <String ,String > oidMap)
지정한 형식에서 X. 500 식별명의 캐릭터 라인 형식을 돌려줍니다. 형식으로 지정하는 유효한 값은 「RFC1779」와「RFC2253」(대문자와 소문자를 구별한다)입니다. 「CANONICAL」는 허가되고 있지 않습니다. 이 값을 지정했을 경우,IllegalArgumentException 가 throw 됩니다.

이 메소드는,getName(String) 로 지정된 형식에서 String 를 돌려줍니다. 또,oidMap 파라미터내에 엔트리가 있는 OID 의 그 외의 속성의 형태 키워드를 발행합니다. getName(String) 가 인식하는 디폴트의 OID 보다, oidMap 내의 OID 엔트리 쪽이 우선됩니다. 올바르게 지정되어 있지 않은 OID 는 무시될 뿐입니다만, 이름에 포함되는 OID 에 대응하는 키워드가 올바르게 지정되어 있지 않은 경우는,IllegalArgumentException 가 throw 됩니다.

장래, 표준 형식이 추가 도입될 가능성이 있습니다.

경고:그 외의 속성의 형태 키워드는, 그 외의 구현에 의해 인식되지 않을 가능성이 있습니다. 이러한 키워드가 그 외의 구현에 의해 인식될지 어떨지 불명한 경우는, 이 메소드를 사용하지 말아 주세요.

파라미터:
format - 사용하는 형식
oidMap - OID 맵. 각 열쇠는, 속성의 형태 키워드 String 에 대응하는, String 형식 (피리어드로 단락지어진 제로 이상이 연속하는 정수)에서 나타내진 객체 식별자. 맵은 빈 상태(empty)에서 만나도 괜찮지만,null 는 되지 않는다
반환값:
지정한 형식을 사용한, 이 X500Principal 의 캐릭터 라인 형식
예외:
IllegalArgumentException - 지정된 형식이 무효인지, null 인지, 지정된 키워드에 올바르게 대응 붙일 수 있지 않은 이름에 포함되는 OID 인 경우
NullPointerException - oidMapnull 의 경우
도입된 버젼:
1.6

getEncoded

public byte[] getEncoded()
ASN. 1 DER encode 형식의 식별명을 돌려줍니다. 이 구조체의 ASN. 1 표기는,X500Principal(byte[] name) 로 설명하고 있습니다.

이후의 변경으로부터 보호하기 위해서, 반환되는 바이트 배열의 복제가 작성됩니다.

반환값:
ASN. 1 DER encode 형식의 식별명을 포함한 바이트 배열

toString

public String  toString()
X500Principal 의, 사용자가 사용하기 쉬운 캐릭터 라인 형식을 돌려줍니다.

정의:
인터페이스 Principal 내의 toString
오버라이드(override):
클래스 Object 내의 toString
반환값:
X500Principal 의 캐릭터 라인 표현

equals

public boolean equals(Object  o)
지정된 Object 곳의 X500Principal 가 동일한지 어떤지를 비교합니다.

특히,Object oX500Principal 이며, 이 객체와 o 의 정규의 캐릭터 라인 표현 (getName(X500Principal.CANONICAL) 메소드로 취득)가 동일한 경우에, 이 메소드는 true 를 돌려줍니다.

이 구현은, RFC 2459 의 요건에 준거하고 있습니다.

정의:
인터페이스 Principal 내의 equals
오버라이드(override):
클래스 Object 내의 equals
파라미터:
o - 이 X500Principal 와 동일한지 어떤지가 비교되는 Object
반환값:
지정한 Object 가 이 X500Principal 와 동일한 경우는 true, 그렇지 않은 경우는 false
관련 항목:
Object.hashCode() , Hashtable

hashCode

public int hashCode()
X500Principal 의 해시 코드를 돌려줍니다.

해시 코드는 getName(X500Principal.CANONICAL). hashCode() 로 계산됩니다.

정의:
인터페이스 Principal 내의 hashCode
오버라이드(override):
클래스 Object 내의 hashCode
반환값:
X500Principal 의 해시 코드
관련 항목:
Object.equals(java.lang.Object) , Hashtable

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.