Класс CertPathBuilder
public class CertPathBuilder extends Object
Этот класс использует архитектуру, основанную на поставщиках. Для создания CertPathBuilder, вызовите один из статических getInstance методов, передав имя алгоритма требуемого CertPathBuilder и, необязательно, имя желаемого поставщика.
После создания объекта CertPathBuilder, сертификационные цепочки могут быть построены путём вызова метода build и передачи ему набора алгоритмически-специфичных параметров. В случае успеха, результат (включая построенную CertPath ) возвращается в объекте, реализующем интерфейс CertPathBuilderResult.
Метод getRevocationChecker() позволяет приложению указать дополнительные алгоритмически-специфичные параметры и опции, используемые CertPathBuilder при проверке статуса отзыва сертификатов. Вот пример демонстрации его использования с алгоритмом PKIX:
CertPathBuilder cpb = CertPathBuilder.getInstance("PKIX");
PKIXRevocationChecker rc = (PKIXRevocationChecker)cpb.getRevocationChecker();
rc.setOptions(EnumSet.of(Option.PREFER_CRLS));
params.addCertPathChecker(rc);
CertPathBuilderResult cpbr = cpb.build(params);
Всякая реализация платформы Java обязана поддерживать следующий стандартный CertPathBuilder алгоритм:
PKIX
Доступ к данным из нескольких потоков
Статические методы этого класса гарантируют потокобезопасность. Несколько потоков могут одновременно вызывать статические методы, определённые в этом классе, без негативных последствий.
Однако это не относится к нестатическим методам, определённым этим классом. Если не указано иначе конкретным поставщиком, потоки, которым необходимо получить одновременный доступ к экземпляру CertPathBuilder , должны синхронизироваться между собой и обеспечить необходимую блокировку. Несколько потоков, каждый из которых манипулирует различным экземпляром CertPathBuilder , синхронизироваться не должны.
- Since:
- 1.4
- See Also:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт объект CertPathBuilder заданного алгоритма и инкапсулирует реализацию заданного поставщика (объект SPI) в нём. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final CertPathBuilderResult |
build |
Попытка построить сертификационную цепочку с использованием заданного набора параметров алгоритма. |
final String |
getAlgorithm() |
Возвращает имя алгоритма этого CertPathBuilder. |
static final String |
getDefaultType() |
Возвращает тип CertPathBuilder по умолчанию, как указано в свойстве безопасности certpathbuilder.type, или строку "PKIX", если такое свойство не существует. |
static CertPathBuilder |
getInstance |
Возвращает объект CertPathBuilder, реализующий указанный алгоритм. |
static CertPathBuilder |
getInstance |
Возвращает объект CertPathBuilder, реализующий указанный алгоритм. |
static CertPathBuilder |
getInstance |
Возвращает объект CertPathBuilder, реализующий указанный алгоритм. |
final Provider |
getProvider() |
Возвращает поставщика данного CertPathBuilder. |
final CertPathChecker |
getRevocationChecker() |
Возвращает CertPathChecker, который использует инкапсулированная реализация CertPathBuilderSpi для проверки статуса отзыва сертификатов. |
Подробное описание конструкторов
CertPathBuilder
protected CertPathBuilder(CertPathBuilderSpi builderSpi, Provider provider, String algorithm)
CertPathBuilder заданного алгоритма и инкапсулирует в нём заданную реализацию провайдера (объект SPI).- Параметры:
-
builderSpi- реализация провайдера -
provider- провайдер -
algorithm- имя алгоритма
Подробное описание методов
getInstance
public static CertPathBuilder getInstance(String algorithm) throws NoSuchAlgorithmException
CertPathBuilder, реализующий указанный алгоритм. Этот метод перебирает список зарегистрированных провайдеров безопасности, начиная с предпочтительного. Возвращается новый объект CertPathBuilder, инкапсулирующий реализацию CertPathBuilderSpi из первого провайдера, поддерживающего указанный алгоритм.
Обратите внимание, что список зарегистрированных провайдеров можно получить с помощью метода Security.getProviders().
- Описание реализации:
- Реализация JDK дополнительно использует свойство
jdk.security.provider.preferredSecurityдля определения предпочтительного порядка провайдеров для указанного алгоритма. Этот порядок может отличаться от порядка провайдеров, возвращаемых методомSecurity.getProviders(). - Параметры:
-
algorithm- имя запрашиваемого алгоритмаCertPathBuilder. См. раздел CertPathBuilder в Спецификации имен стандартных алгоритмов Java Security для получения информации об именах стандартных алгоритмов. - Возвращает:
- объект
CertPathBuilder, реализующий указанный алгоритм - Исключения:
-
NoSuchAlgorithmException- если ни один провайдер не поддерживает реализациюProviderдля указанного алгоритма -
NullPointerException- еслиalgorithmимеет значениеnull - См. также:
getInstance
public static CertPathBuilder getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
CertPathBuilder, реализующий указанный алгоритм. Возвращается новый объект CertPathBuilder, инкапсулирующий реализацию CertPathBuilderSpi от указанного провайдера. Указанный провайдер должен быть зарегистрирован в списке провайдеров безопасности.
Обратите внимание, что список зарегистрированных провайдеров можно получить с помощью метода Security.getProviders().
- Параметры:
-
algorithm- имя запрашиваемого алгоритмаCertPathBuilder. См. раздел CertPathBuilder в Спецификации имен стандартных алгоритмов Java Security для получения информации об именах стандартных алгоритмов. -
provider- имя провайдера. - Возвращает:
- объект
CertPathBuilder, реализующий указанный алгоритм - Исключения:
-
IllegalArgumentException- еслиproviderимеет значениеnullили пустое -
NoSuchAlgorithmException- если реализацияCertPathBuilderSpiдля указанного алгоритма недоступна от указанного провайдера -
NoSuchProviderException- если указанный провайдер не зарегистрирован в списке провайдеров безопасности -
NullPointerException- еслиalgorithmимеет значениеnull - См. также:
getInstance
public static CertPathBuilder getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
CertPathBuilder, реализующий указанный алгоритм. Возвращается новый объект CertPathBuilder, инкапсулирующий реализацию CertPathBuilderSpi из заданного объекта Provider. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке провайдеров.
- Параметры:
-
algorithm- имя запрашиваемого алгоритмаCertPathBuilder. См. раздел CertPathBuilder в Спецификации имен стандартных алгоритмов Java Security для получения информации об именах стандартных алгоритмов. -
provider- провайдер. - Возвращает:
- объект
CertPathBuilder, реализующий указанный алгоритм - Исключения:
-
IllegalArgumentException- еслиproviderимеет значениеnull -
NoSuchAlgorithmException- если реализацияCertPathBuilderSpiдля указанного алгоритма недоступна от указанного объектаProvider -
NullPointerException- еслиalgorithmимеет значениеnull - См. также:
getProvider
public final Provider getProvider()
CertPathBuilder.- Возвращает:
- провайдер этого объекта
CertPathBuilder
getAlgorithm
public final String getAlgorithm()
CertPathBuilder.- Возвращает:
- имя алгоритма этого объекта
CertPathBuilder
build
public final CertPathBuilderResult build(CertPathParameters params) throws CertPathBuilderException, InvalidAlgorithmParameterException
- Параметры:
-
params- параметры алгоритма - Возвращает:
- результат алгоритма построения
- Исключения:
-
CertPathBuilderException- если билдер не может построить сертификационный путь, удовлетворяющий указанным параметрам -
InvalidAlgorithmParameterException- если указанные параметры неподходящие для этого объектаCertPathBuilder
getDefaultType
public static final String getDefaultType()
CertPathBuilder по умолчанию, как задано свойством безопасности certpathbuilder.type, или строку "PKIX", если такое свойство не существует. Тип CertPathBuilder по умолчанию может использоваться приложениями, которые не хотят использовать жёстко заданный тип при вызове одного из методов getInstance, и хотят предоставить тип по умолчанию в случае, если пользователь не указывает свой собственный.
Тип CertPathBuilder по умолчанию можно изменить, задав значение свойства безопасности certpathbuilder.type на желаемый тип.
- Возвращает:
- тип
CertPathBuilderпо умолчанию, как задано свойством безопасностиcertpathbuilder.type, или строку "PKIX", если такое свойство не существует. - См. также:
getRevocationChecker
public final CertPathChecker getRevocationChecker()
CertPathChecker, который использует реализация инкапсулированного CertPathBuilderSpi для проверки состояния отзыва сертификатов. Реализация PKIX возвращает объекты типа PKIXRevocationChecker. Каждый вызов этого метода возвращает новый экземпляр CertPathChecker. Основная цель этого метода — позволить вызывающим сторонам задавать дополнительные входные параметры и опции, специфичные для проверки отзыва. См. описание класса для примера.
- Возвращает:
- объект
CertPathChecker - Исключения:
-
UnsupportedOperationException- если поставщик сервиса не поддерживает этот метод - С момента:
- 1.8
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/security/cert/CertPathBuilder.html