|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class X500Principal extends Object implements Principal, Serializable
Этот class представляет X.500 Principal. X500Principals представляются отличительными именами, такими как "CN=Duke, OU=JavaSoft, Микросистемы O=Sun, C=US".
Этот class можно инстанцировать при использовании строкового представления отличительного имени, или при использовании ASN.1 DER закодированное представление байта отличительного имени. Текущая спецификация для строкового представления отличительного имени определяется в . Этот class, однако, принимает строковые форматы и от RFC 2253 и от , и также распознает ключевые слова типа атрибута, OID которых (Объектные Идентификаторы) определяются в .
Строковое представление для этого X500Principal может быть получен, вызывая getName методы.
Отметьте что getSubjectX500Principal и getIssuerX500Principal методы X509Certificate возвратите X500Principals, представляющий выпускающего и предметные области сертификата.
X509Certificate, Сериализированная Форма| Модификатор и Тип | Поле и Описание |
|---|---|
static String |
КАНОНИЧЕСКИЙ
Канонический Строковый формат Отличительных имен.
|
static String |
RFC1779
Строковый формат RFC 1779 Отличительных имен.
|
static String |
RFC2253
Строковый формат RFC 2253 Отличительных имен.
|
| Конструктор и Описание |
|---|
X500Principal(byte[] name)
Создает
X500Principal от отличительного имени в ASN.1 DER закодированная форма. |
X500Principal(InputStream is)
Создает
X500Principal от InputStream содержа отличительное имя в ASN.1 DER закодированная форма. |
X500Principal(String name)
Создает
X500Principal от строкового представления отличительного имени X.500 (исключая: "CN=Duke, OU=JavaSoft, Микросистемы O=Sun, C=US"). |
X500Principal(String name, Map<String,String> keywordMap)
Создает
X500Principal от строкового представления отличительного имени X.500 (исключая: "CN=Duke, OU=JavaSoft, Микросистемы O=Sun, C=US"). |
| Модификатор и Тип | Метод и Описание |
|---|---|
boolean |
equals(Object o)
Сравнивает указанное
Object с этим X500Principal для равенства. |
byte[] |
getEncoded()
Возвращает отличительное имя в ASN.1 DER закодированная форма.
|
Строка |
getName()
Возвращает строковое представление отличительного имени X.500, используя формат, определенный в RFC 2253.
|
Строка |
getName(String format)
Возвращает строковое представление отличительного имени X.500, используя указанный формат.
|
Строка |
getName(String format, Map<String,String> oidMap)
Возвращает строковое представление отличительного имени X.500, используя указанный формат.
|
int |
hashCode()
Возвратите хэш-код для этого
X500Principal. |
Строка |
toString()
Возвратите удобное для пользователя строковое представление этого
X500Principal. |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitподразумеваетpublic static final String RFC1779
public static final String RFC2253
public static final String CANONICAL
public X500Principal(String name)
X500Principal от строкового представления отличительного имени X.500 (исключая: "CN=Duke, OU=JavaSoft, Микросистемы O=Sun, C=US"). Отличительное имя должно быть определено, используя грамматику, определенную в RFC 1779, или RFC 2253 (любой формат является приемлемым). Этот конструктор распознает ключевые слова типа атрибута, определенные в RFC 1779 и RFC 2253 (и перечисленный в getName(String format)), так же как T, DNQ или DNQUALIFIER, ФАМИЛИЯ, GIVENNAME, ИНИЦИАЛЫ, ГЕНЕРАЦИЯ, EMAILADDRESS, и ключевые слова SERIALNUMBER, Объектные Идентификаторы которых (OID) определяются в RFC 3280 и его преемнике. Любой другой тип атрибута должен быть определен как OID.
Эта реализация осуществляет более рестриктивный синтаксис OID чем определенный в RFC 1779 и 2253. Это использует более корректный синтаксис, определенный в , который определяет, что OID содержат по крайней мере 2 цифры:
numericoid = number 1*( DOT number )
name - отличительное имя X.500 в формате RFC 1779 или RFC 2253NullPointerException - если name nullIllegalArgumentException - если name ненадлежащим образом определяетсяpublic X500Principal(String name, Map<String,String> keywordMap)
X500Principal от строкового представления отличительного имени X.500 (исключая: "CN=Duke, OU=JavaSoft, Микросистемы O=Sun, C=US"). Отличительное имя должно быть определено, используя грамматику, определенную в RFC 1779, или RFC 2253 (любой формат является приемлемым). Этот конструктор распознает ключевые слова типа атрибута, определенные в X500Principal(String) и также распознает дополнительные ключевые слова, у которых есть записи в keywordMap параметр. Записи ключевого слова в keywordMap имеют приоритет по ключевым словам значения по умолчанию, распознанным X500Principal(String). Ключевые слова ДОЛЖНЫ быть определены во всем верхнем регистре, иначе они будут проигнорированы. Игнорируются ненадлежащим образом указанные ключевые слова; однако, если ключевое слово на имя отображается на ненадлежащим образом указанный Объектный Идентификатор (OID), IllegalArgumentException бросается. Допустимо иметь 2 различных ключевых слова, которые отображаются на тот же самый OID.
Эта реализация осуществляет более рестриктивный синтаксис OID чем определенный в RFC 1779 и 2253. Это использует более корректный синтаксис, определенный в , который определяет, что OID содержат по крайней мере 2 цифры:
numericoid = number 1*( DOT number )
name - отличительное имя X.500 в формате RFC 1779 или RFC 2253keywordMap - карта ключевого слова типа атрибута, где каждым ключом является Строка ключевого слова, которая отображается на соответствующий объектный идентификатор в Строковой форме (последовательность неотрицательных целых чисел, разделенных периодами). Карта может быть пустой, но никогда null.NullPointerException - если name или keywordMap nullIllegalArgumentException - если name ненадлежащим образом определяется или ключевое слово в name карты к OID, который не находится в корректной формеpublic X500Principal(byte[] name)
X500Principal от отличительного имени в ASN.1 DER закодированная форма. Нотация 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 закодированная формаIllegalArgumentException - если ошибка кодирования происходит (неправильная форма для DN)public X500Principal(InputStream is)
X500Principal от InputStream содержа отличительное имя в ASN.1 DER закодированная форма. Нотация ASN.1 для этой структуры предоставляется в документации для X500Principal(byte[] name). Позиция чтения входного потока располагается в следующий доступный байт после закодированного отличительного имени.
is - InputStream содержа отличительное имя в ASN.1 DER закодированная формаNullPointerException - если InputStream nullIllegalArgumentException - если ошибка кодирования происходит (неправильная форма для DN)public String getName()
Этот метод эквивалентен вызову getName(X500Principal.RFC2253).
public String getName(String format)
Если "RFC1779" определяется как формат, этот метод испускает ключевые слова типа атрибута, определенные в RFC 1779 (CN, L, ST, O, OU, C, УЛИЦА). Любой другой тип атрибута испускается как OID.
Если "RFC2253" определяется как формат, этот метод испускает ключевые слова типа атрибута, определенные в RFC 2253 (CN, L, ST, O, OU, C, УЛИЦА, DC, UID). Любой другой тип атрибута испускается как OID. При строгом чтении RFC 2253 только определяет строковое представление UTF-8. Строка, возвращенная этим методом, является строкой Unicode, достигнутой, декодируя это представление UTF-8.
Если "КАНОНИЧЕСКИЙ" определяется как формат, этот метод возвращает RFC 2253 совместимое строковое представление со следующими дополнительными канонизациями:
String.toUpperCase(Locale.US)
String.toLowerCase(Locale.US)
Дополнительные стандартные форматы могут быть представлены в будущем.
format - формат, чтобы использоватьX500Principal использование указанного форматаIllegalArgumentException - если указанный формат является недопустимым или нулевымpublic String getName(String format, Map<String,String> oidMap)
IllegalArgumentException будет брошен. Этот метод возвращает Строки в формате как определено в getName(String) и также испускает дополнительные ключевые слова типа атрибута для OID, у которых есть записи в oidMap параметр. Записи OID в oidMap имеют приоритет по OID значения по умолчанию, распознанным getName(String). Игнорируются ненадлежащим образом указанные OID; однако, если OID на имя отображается на ненадлежащим образом указанное ключевое слово, IllegalArgumentException бросается.
Дополнительные стандартные форматы могут быть представлены в будущем.
Предупреждение: дополнительные ключевые слова типа атрибута не могут быть распознаны другими реализациями; поэтому не используйте этот метод, если Вы неуверены, если эти ключевые слова будут распознаны другими реализациями.
format - формат, чтобы использоватьoidMap - карта OID, где каждый ключ является объектным идентификатором в Строковой форме (последовательность неотрицательных целых чисел, разделенных периодами), который отображается на соответствующую Строку ключевого слова типа атрибута. Карта может быть пустой, но никогда null.X500Principal использование указанного форматаIllegalArgumentException - если указанный формат является недопустимым, нулевым, или OID на имя отображается на ненадлежащим образом указанное ключевое словоNullPointerException - если oidMap nullpublic byte[] getEncoded()
X500Principal(byte[] name). Отметьте, что возвращенный байтовый массив клонируется, чтобы защитить от последующих модификаций.
public String toString()
X500Principal.public boolean equals(Object o)
Object с этим X500Principal для равенства. Определенно, этот метод возвраты true если Object o X500Principal и если соответствующие канонические строковые представления (полученный через getName(X500Principal.CANONICAL) метод) этого объекта и o равны.
Эта реализация совместима с требованиями RFC 3280.
public int hashCode()
X500Principal. Хэш-код вычисляется через: getName(X500Principal.CANONICAL).hashCode()
hashCode в интерфейсе PrincipalhashCode в class ObjectX500PrincipalObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92