Spec-Zone.ru › OpenJDK 24

Класс TransformService

java.lang.Object
javax.xml.crypto.dsig.TransformService
Все реализованные интерфейсы:
AlgorithmMethod, Transform, XMLStructure
public abstract class TransformService extends Object implements Transform
Интерфейс поставщика услуг для алгоритмов преобразования и канонизации.

Каждый экземпляр TransformService поддерживает определенный алгоритм преобразования или канонизации и тип механизма XML. Чтобы создать TransformService, вызовите один из статических методов getInstance, передав в него желаемый URI алгоритма и тип механизма XML, например:

TransformService ts = TransformService.getInstance(Transform.XPATH2, "DOM");

Реализации TransformService регистрируются и загружаются с помощью механизма Provider. Каждая реализация поставщика услуг TransformService должна включать атрибут сервиса MechanismType, который идентифицирует поддерживаемый тип механизма XML. Если атрибут не указан, предполагается "DOM". Например, поставщик услуг, который поддерживает преобразование XPath Filter 2 и механизм DOM, будет указан в подклассе Provider как:

     put("TransformService." + Transform.XPATH2,
         "org.example.XPath2TransformService");
     put("TransformService." + Transform.XPATH2 + " MechanismType", "DOM");
 
TransformService Реализации, которые поддерживают тип механизма DOM, должны соответствовать требованиям межсетевого взаимодействия DOM, определенным в разделе Требования к механизму DOM. Список стандартных URI алгоритмов и типов механизмов см. в разделе TransformService в Спецификации Java Security Standard Algorithm Names.

После создания TransformService, его можно использовать для обработки Transform или CanonicalizationMethod объектов. Если Transform или CanonicalizationMethod существуют в формате XML (например, при валидации существующего XMLSignature), необходимо сначала вызвать метод init(XMLStructure, XMLCryptoContext) для инициализации преобразования и предоставления контекста документа (даже если параметров нет). В противном случае, если Transform или CanonicalizationMethod создается с нуля, вызывается метод init(TransformParameterSpec) для инициализации преобразования параметрами и marshalParams метод для сериализации параметров в XML и предоставления контекста документа. Наконец, вызывается метод transform для выполнения преобразования.

Доступность потоков

Статические методы этого класса гарантируют потокобезопасность. Несколько потоков могут одновременно вызывать статические методы, определенные в этом классе, без негативных последствий.

Однако это не относится к методам, не являющимся статическими, определенным в этом классе. За исключением случаев, когда это документально подтверждено конкретным поставщиком, потоки, которые нуждаются в одновременном доступе к одному экземпляру TransformService, должны синхронизироваться между собой и обеспечивать необходимую блокировку. Несколько потоков, каждый из которых манипулирует различным экземпляром TransformService, синхронизироваться не должны.

Since:
1.6

Краткое описание полей

Поля, объявленные в интерфейсе javax.xml.crypto.dsig.Transform

BASE64, ENVELOPED, XPATH, XPATH2, XSLT

Краткое описание конструкторов

TransformService()
Модификатор Конструктор Описание
protected
Конструктор по умолчанию, для вызова подклассами.

Краткое описание методов

Модификатор и тип Метод Описание
final String getAlgorithm()
Возвращает URI алгоритма, поддерживаемого этим TransformService.
static TransformService getInstance(String algorithm, String mechanismType)
Возвращает TransformService, который поддерживает указанный URI алгоритма (например: Transform.XPATH2) и тип механизма (например: DOM).
static TransformService getInstance(String algorithm, String mechanismType, String provider)
Возвращает TransformService, который поддерживает указанный URI алгоритма (например: Transform.XPATH2) и тип механизма (например: DOM), предоставленный указанным поставщиком.
static TransformService getInstance(String algorithm, String mechanismType, Provider provider)
Возвращает TransformService, который поддерживает указанный URI алгоритма (например: Transform.XPATH2) и тип механизма (например: DOM), предоставленный указанным поставщиком.
final String getMechanismType()
Возвращает тип механизма, поддерживаемый этим TransformService.
final Provider getProvider()
Возвращает поставщика этого TransformService.
abstract void init(TransformParameterSpec params)
Инициализирует этот TransformService с указанными параметрами.
abstract void init(XMLStructure parent, XMLCryptoContext context)
Инициализирует этот TransformService с указанными параметрами и контекстом документа.
abstract void marshalParams(XMLStructure parent, XMLCryptoContext context)
Сериализует параметры, специфичные для алгоритма.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы, объявленные в интерфейсе javax.xml.crypto.dsig.Transform

getParameterSpec, transform, transform

Методы, объявленные в интерфейсе javax.xml.crypto.XMLStructure

isFeatureSupported

Подробное описание конструкторов

TransformService

protected TransformService()
Конструктор по умолчанию, для вызова подклассами.

Подробное описание методов

getInstance

public static TransformService getInstance(String algorithm, String mechanismType) throws NoSuchAlgorithmException
Возвращает TransformService, поддерживающий указанный URI алгоритма (например: Transform.XPATH2) и тип механизма (например: DOM).

Этот метод использует стандартный механизм поиска поставщиков JCA для поиска и создания реализации TransformService указанного алгоритма и атрибута службы MechanismType. Он проходит по списку зарегистрированных поставщиков безопасности Provider, начиная с наиболее предпочтительного Provider. Возвращается новый объект TransformService из первого поставщика Provider, поддерживающего указанный алгоритм и тип механизма.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Замечание по реализации:
Реализация JDK дополнительно использует свойство jdk.security.provider.preferred Security для определения порядка поставщиков по умолчанию для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого Security.getProviders().
Параметры:
algorithm - URI алгоритма. Список стандартных алгоритмов преобразования см. в разделе TransformService спецификации Java Security Standard Algorithm Names Specification.
mechanismType - тип механизма и представления обработки XML. Список стандартных типов механизмов см. в разделе TransformService спецификации Java Security Standard Algorithm Names Specification.
Возвращает:
новый TransformService
Исключения:
NullPointerException - если algorithm или mechanismType является null
NoSuchAlgorithmException - если ни один Provider не поддерживает реализацию TransformService для указанного алгоритма и типа механизма
См. также:
  • Provider

getInstance

public static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException
Возвращает TransformService, поддерживающий указанный URI алгоритма (например: Transform.XPATH2) и тип механизма (например: DOM) как предоставленный указанным поставщиком. Обратите внимание, что указанный объект поставщика Provider не обязательно должен быть зарегистрирован в списке поставщиков.
Параметры:
algorithm - URI алгоритма. Список стандартных алгоритмов преобразования см. в разделе TransformService спецификации Java Security Standard Algorithm Names Specification.
mechanismType - тип механизма и представления обработки XML. Список стандартных типов механизмов см. в разделе TransformService спецификации Java Security Standard Algorithm Names Specification.
provider - объект поставщика Provider
Возвращает:
новый TransformService
Исключения:
NullPointerException - если provider, algorithm или mechanismType является null
NoSuchAlgorithmException - если реализация TransformService для указанного алгоритма и типа механизма недоступна от указанного объекта Provider
См. также:
  • Provider

getInstance

public static TransformService getInstance(String algorithm, String mechanismType, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Возвращает TransformService, поддерживающий указанный URI алгоритма (например: Transform.XPATH2) и тип механизма (например: DOM) как предоставленный указанным поставщиком. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Параметры:
algorithm - URI алгоритма. Список стандартных алгоритмов преобразования см. в разделе TransformService спецификации Java Security Standard Algorithm Names Specification.
mechanismType - тип механизма и представления обработки XML. Список стандартных типов механизмов см. в разделе TransformService спецификации Java Security Standard Algorithm Names Specification.
provider - строковое имя поставщика
Возвращает:
новый TransformService
Исключения:
NoSuchProviderException - если указанный поставщик не зарегистрирован в списке поставщиков безопасности
NullPointerException - если provider, mechanismType или algorithm является null
NoSuchAlgorithmException - если реализация TransformService для указанного алгоритма и типа механизма недоступна от указанного поставщика
См. также:
  • Provider

getMechanismType

public final String getMechanismType()
Возвращает тип механизма, поддерживаемый этим TransformService.
Возвращает:
тип механизма

getAlgorithm

public final String getAlgorithm()
Возвращает URI алгоритма, поддерживаемого этим TransformService.
Установлено в:
getAlgorithm в интерфейсе AlgorithmMethod
Возвращает:
URI алгоритма

getProvider

public final Provider getProvider()
Возвращает поставщика этого TransformService.
Возвращает:
поставщика

init

public abstract void init(TransformParameterSpec params) throws InvalidAlgorithmParameterException
Инициализирует этот TransformService с указанными параметрами.

Если параметры существуют в XML-форме, следует использовать метод init(XMLStructure, XMLCryptoContext) для инициализации TransformService.

Параметры:
params - параметры алгоритма (могут быть null, если не требуется или необязательны)
Исключения:
InvalidAlgorithmParameterException - если указанные параметры недействительны для этого алгоритма

marshalParams

public abstract void marshalParams(XMLStructure parent, XMLCryptoContext context) throws MarshalException
Маршаллирует параметры, специфичные для алгоритма. Если нет параметров для маршаллирования, этот метод возвращается без выбрасывания исключения.
Параметры:
parent - структура, специфичная для механизма, содержащая родительский узел, к которому должны быть добавлены маршаллированные параметры
context - XMLCryptoContext, содержащий дополнительный контекст (может быть null, если не применимо)
Исключения:
ClassCastException - если тип parent или context несовместим с этим TransformService
NullPointerException - если parent является null
MarshalException - если параметры не могут быть маршаллированы

init

public abstract void init(XMLStructure parent, XMLCryptoContext context) throws InvalidAlgorithmParameterException
Инициализирует этот TransformService с указанными параметрами и контекстом документа.
Параметры:
parent - структура, специфичная для механизма, содержащая родительскую структуру
context - XMLCryptoContext, содержащий дополнительный контекст (может быть null, если не применимо)
Исключения:
ClassCastException - если тип parent или context несовместим с этим TransformService
NullPointerException - если parent является null
InvalidAlgorithmParameterException - если указанные параметры недействительны для этого алгоритма

© 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://download.java.net/java/early_access/jdk24/docs/api/java.xml.crypto/javax/xml/crypto/dsig/TransformService.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API