X500Principal — X.500 주체
X500Principal — X.500 주체
X500Principal은 X.500 Principal을 나타내는 클래스예요. X500Principal은 "CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US" 같은 distinguished name으로 표현돼요.
본문
public final class X500Principal extends Object implements Principal, Serializable
어떻게 표현하나요?
이 클래스는 distinguished name의 문자열 표현을 사용하거나, ASN.1 DER 인코딩된 바이트 표현을 사용해 인스턴스화할 수 있어요. distinguished name 문자열 표현의 현재 사양은 RFC 2253(Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names)에 정의돼 있어요. 이 클래스는 RFC 2253과 RFC 1779(A String Representation of Distinguished Names)의 문자열 형식을 모두 받아들이고, RFC 5280(Internet X.509 Public Key Infrastructure Certificate and CRL Profile)에 OID가 정의된 속성 타입 키워드도 인식해요. 이 X500Principal의 문자열 표현은 getName 메서드를 호출해 얻을 수 있어요.
X509Certificate의 getSubjectX500Principal과 getIssuerX500Principal 메서드는 인증서의 issuer와 subject 필드를 나타내는 X500Principal을 반환한다는 점을 참고해요.
필드 (이름 형식)
static final String CANONICAL— Distinguished Names의 표준(Canonical) 문자열 형식static final String RFC1779— RFC 1779 문자열 형식static final String RFC2253— RFC 2253 문자열 형식
생성자
X500Principal(byte[] name)— ASN.1 DER 인코딩 형태의 distinguished name으로X500Principal을 생성해요.X500Principal(InputStream is)— distinguished name을 ASN.1 DER 인코딩 형태로 담고 있는InputStream으로 생성해요.X500Principal(String name)— X.500 distinguished name의 문자열 표현(예:"CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US")으로 생성해요.X500Principal(String name, Map<String, String> keywordMap)— X.500 distinguished name의 문자열 표현과 속성 타입 키워드가 OID에 매핑된 맵으로 생성해요.
어떻게 쓰일까요?
X.509 인증서에서 발급자(issuer)와 주체(subject)를 나타내는 데 핵심적으로 사용돼요. X509Certificate.getSubjectX500Principal()이 반환하는 값이 바로 이 타입이라서, 인증서의 소유자를 문자열로 쉽게 얻을 수 있어요.