Класс CertPathValidator
public class CertPathValidator extends Object
Этот класс использует архитектуру на основе провайдеров. Чтобы создать CertPathValidator, вызовите один из статических методов getInstance, передав имя требуемого алгоритма CertPathValidator и, при необходимости, имя требуемого провайдера.
После создания объекта CertPathValidator его можно использовать для проверки путей сертификации: для этого нужно вызвать метод validate и передать ему проверяемый CertPath и набор параметров, специфичный для алгоритма. В случае успеха результат возвращается в объекте, реализующем интерфейс CertPathValidatorResult.
Метод getRevocationChecker() позволяет приложению указать дополнительные параметры и параметры настройки, специфичные для алгоритма, которые использует CertPathValidator при проверке статуса отзыва сертификатов. Ниже приведён пример его использования с алгоритмом PKIX:
CertPathValidator cpv = CertPathValidator.getInstance("PKIX");
PKIXRevocationChecker rc = (PKIXRevocationChecker)cpv.getRevocationChecker();
rc.setOptions(EnumSet.of(Option.SOFT_FAIL));
params.addCertPathChecker(rc);
CertPathValidatorResult cpvr = cpv.validate(path, params);
Каждая реализация платформы Java должна поддерживать следующий стандартный алгоритм CertPathValidator:
PKIX
Параллельный доступ
Статические методы этого класса гарантированно являются потокобезопасными. Несколько потоков могут одновременно вызывать статические методы, определённые в этом классе, без каких-либо нежелательных последствий.
Однако это не относится к нестатическим методам, определённым в этом классе. Если в документации конкретного провайдера не указано иное, потоки, которым необходимо одновременно обращаться к одному экземпляру CertPathValidator, должны самостоятельно синхронизировать доступ и обеспечивать необходимые блокировки. Потокам, каждый из которых работает с отдельным экземпляром CertPathValidator, синхронизация не требуется.
- Начиная с:
- 1.4
- Внешние спецификации
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт объект CertPathValidator указанного алгоритма и инкапсулирует в нём указанную реализацию провайдера (объект SPI). |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final String |
getAlgorithm() |
Возвращает имя алгоритма этого CertPathValidator. |
static final String |
getDefaultType() |
Возвращает тип CertPathValidator по умолчанию, заданный свойством безопасности certpathvalidator.type, или строку "PKIX", если такое свойство отсутствует. |
static CertPathValidator |
getInstance |
Возвращает объект CertPathValidator, реализующий указанный алгоритм. |
static CertPathValidator |
getInstance |
Возвращает объект CertPathValidator, реализующий указанный алгоритм. |
static CertPathValidator |
getInstance |
Возвращает объект CertPathValidator, реализующий указанный алгоритм. |
final Provider |
getProvider() |
Возвращает Provider этого CertPathValidator. |
final CertPathChecker |
getRevocationChecker() |
Возвращает объект CertPathChecker, который инкапсулированная реализация CertPathValidatorSpi использует для проверки статуса отзыва сертификатов. |
final CertPathValidatorResult |
validate |
Проверяет указанный путь сертификации с использованием указанного набора параметров алгоритма. |
Подробное описание конструкторов
CertPathValidator
protected CertPathValidator(CertPathValidatorSpi validatorSpi, Provider provider, String algorithm)
CertPathValidator указанного алгоритма и инкапсулирует в нём указанную реализацию провайдера (объект SPI).- Параметры:
-
validatorSpi— реализация провайдера -
provider— провайдер -
algorithm— имя алгоритма
Подробное описание методов
getInstance
public static CertPathValidator getInstance(String algorithm) throws NoSuchAlgorithmException
CertPathValidator, реализующий указанный алгоритм. Этот метод перебирает список зарегистрированных провайдеров безопасности, начиная с наиболее предпочтительного. Возвращается новый объект CertPathValidator, инкапсулирующий реализацию CertPathValidatorSpi первого провайдера, поддерживающего указанный алгоритм.
Обратите внимание, что список зарегистрированных провайдеров можно получить с помощью метода Security.getProviders().
- Примечание по реализации:
- Реализация JDK Reference Implementation дополнительно использует свойство
jdk.security.provider.preferredSecurity, чтобы определить предпочтительный порядок провайдеров для указанного алгоритма. Этот порядок может отличаться от порядка провайдеров, возвращаемого методомSecurity.getProviders(). - Параметры:
-
algorithm— имя запрошенного алгоритмаCertPathValidator. Сведения о стандартных именах алгоритмов см. в разделе CertPathValidator спецификации стандартных имён алгоритмов безопасности Java. - Возвращает:
- объект
CertPathValidator, реализующий указанный алгоритм - Выбрасывает:
-
NoSuchAlgorithmException— если ни одинProviderне поддерживает реализациюCertPathValidatorSpiдля указанного алгоритма -
NullPointerException— еслиalgorithmравенnull - Внешние спецификации
- См. также:
getInstance
public static CertPathValidator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
CertPathValidator, реализующий указанный алгоритм. Возвращается новый объект CertPathValidator, инкапсулирующий реализацию CertPathValidatorSpi указанного провайдера. Указанный провайдер должен быть зарегистрирован в списке провайдеров безопасности.
Обратите внимание, что список зарегистрированных провайдеров можно получить с помощью метода Security.getProviders().
- Параметры:
-
algorithm— имя запрошенного алгоритмаCertPathValidator. Сведения о стандартных именах алгоритмов см. в разделе CertPathValidator спецификации стандартных имён алгоритмов безопасности Java. -
provider— имя провайдера. - Возвращает:
- объект
CertPathValidator, реализующий указанный алгоритм - Выбрасывает:
-
IllegalArgumentException— еслиproviderравенnullили пуст -
NoSuchAlgorithmException— если у указанного провайдера отсутствует реализацияCertPathValidatorSpiдля указанного алгоритма -
NoSuchProviderException— если указанный провайдер не зарегистрирован в списке провайдеров безопасности -
NullPointerException— еслиalgorithmравенnull - Внешние спецификации
- См. также:
getInstance
public static CertPathValidator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
CertPathValidator, реализующий указанный алгоритм. Возвращается новый объект CertPathValidator, инкапсулирующий реализацию CertPathValidatorSpi указанного объекта Provider. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке провайдеров.
- Параметры:
-
algorithm— имя запрошенного алгоритмаCertPathValidator. Сведения о стандартных именах алгоритмов см. в разделе CertPathValidator спецификации стандартных имён алгоритмов безопасности Java. -
provider— провайдер. - Возвращает:
- объект
CertPathValidator, реализующий указанный алгоритм - Выбрасывает:
-
IllegalArgumentException— еслиproviderравенnull -
NoSuchAlgorithmException— если у указанного объекта Provider отсутствует реализацияCertPathValidatorSpiдля указанного алгоритма -
NullPointerException— еслиalgorithmравенnull - Внешние спецификации
- См. также:
getProvider
public final Provider getProvider()
Provider этого CertPathValidator.- Возвращает:
ProviderэтогоCertPathValidator
getAlgorithm
public final String getAlgorithm()
CertPathValidator.- Возвращает:
- имя алгоритма этого
CertPathValidator
validate
public final CertPathValidatorResult validate(CertPath certPath, CertPathParameters params) throws CertPathValidatorException, InvalidAlgorithmParameterException
Указанный CertPath должен иметь тип, поддерживаемый алгоритмом проверки, иначе будет выброшено исключение InvalidAlgorithmParameterException. Например, CertPathValidator, реализующий алгоритм PKIX, проверяет объекты CertPath типа X.509.
- Параметры:
-
certPath— проверяемыйCertPath -
params— параметры алгоритма - Возвращает:
- результат работы алгоритма проверки
- Выбрасывает:
-
CertPathValidatorException— если проверкаCertPathне пройдена -
InvalidAlgorithmParameterException— если указанные параметры или тип указанногоCertPathне подходят для этогоCertPathValidator
getDefaultType
public static final String getDefaultType()
CertPathValidator по умолчанию, заданный свойством безопасности certpathvalidator.type, или строку "PKIX", если такое свойство отсутствует. Тип CertPathValidator по умолчанию могут использовать приложения, которые не хотят указывать жёстко заданный тип при вызове одного из методов getInstance и хотят предоставить тип по умолчанию на случай, если пользователь не укажет собственный.
Тип CertPathValidator по умолчанию можно изменить, задав нужный тип в свойстве безопасности certpathvalidator.type.
- Возвращает:
- тип
CertPathValidatorпо умолчанию, заданный свойством безопасностиcertpathvalidator.type, или строку "PKIX", если такое свойство отсутствует. - См. также:
getRevocationChecker
public final CertPathChecker getRevocationChecker()
CertPathChecker, который инкапсулированная реализация CertPathValidatorSpi использует для проверки статуса отзыва сертификатов. Реализация PKIX возвращает объекты типа PKIXRevocationChecker. Каждый вызов этого метода возвращает новый экземпляр CertPathChecker. Основная цель этого метода — позволить вызывающему коду задать дополнительные входные параметры и параметры настройки, относящиеся к проверке отзыва. Пример см. в описании класса.
- Возвращает:
- объект
CertPathChecker - Выбрасывает:
-
UnsupportedOperationException— если поставщик службы не поддерживает этот метод - Начиная с:
- 1.8
© 1993, 2025, 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/25/docs/api/java.base/java/security/cert/CertPathValidator.html