Класс 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 обзора API. Список стандартных типов механизмов см. в разделе Поставщики сервисов обзора API. После создания TransformService, его можно использовать для обработки объектов Transform или CanonicalizationMethod. Если объекты Transform или CanonicalizationMethod существуют в формате XML (например, при валидации существующего XMLSignature), необходимо сначала вызвать метод init(XMLStructure, XMLCryptoContext) для инициализации преобразования и предоставления контекста документа (даже если параметров нет). В противном случае, если объекты Transform или CanonicalizationMethod создаются с нуля, вызывается метод init(TransformParameterSpec) для инициализации преобразования с параметрами, а затем метод marshalParams для сериализации параметров в XML и предоставления преобразованию контекста документа. Наконец, вызывается метод transform для выполнения преобразования.
Доступность в нескольких потоках
Статические методы этого класса гарантируют потокобезопасность. Несколько потоков могут одновременно вызывать статические методы, определенные в этом классе, без негативных последствий.
Однако это не относится к методам, не являющимся статическими, определенным в этом классе. Если не указано иное конкретным поставщиком, потоки, которым необходимо получить одновременный доступ к одному экземпляру TransformService, должны синхронизироваться между собой и обеспечить необходимое блокирование. Несколько потоков, каждый из которых манипулирует разными экземплярами TransformService , синхронизироваться не должны.
- С:
- 1.6
Поля
Поля, объявленные в интерфейсе javax.xml.crypto.dsig.Transform
BASE64, ENVELOPED, XPATH, XPATH2, XSLT Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | TransformService() | Конструктор по умолчанию для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
String | getAlgorithm() | Возвращает URI алгоритма, поддерживаемого этим |
static TransformService | getInstance(String algorithm,
String mechanismType) | Возвращает |
static TransformService | getInstance(String algorithm,
String mechanismType,
String provider) | Возвращает |
static TransformService | getInstance(String algorithm,
String mechanismType,
Provider provider) | Возвращает |
String | getMechanismType() | Возвращает тип механизма, поддерживаемый этим |
Provider | getProvider() | Возвращает поставщика этого |
abstract void | init(TransformParameterSpec params) | Инициализирует этот |
abstract void | init(XMLStructure parent,
XMLCryptoContext context) | Инициализирует этот |
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.preferredSecurityдля определения предпочтительного порядка поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого методомSecurity.getProviders(). - Параметры:
-
algorithm- URI алгоритма -
mechanismType- тип механизма и представления обработки XML - Возвращаемое значение:
- новый
TransformService - Исключение:
-
NullPointerException- еслиalgorithmилиmechanismTypenull -
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 алгоритма -
mechanismType- тип механизма и представления обработки XML -
provider- объектProvider - Возвращаемое значение:
- новый
TransformService - Исключение:
-
NullPointerException- еслиprovider,algorithm, илиmechanismTypenull -
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 алгоритма -
mechanismType- тип механизма и представления обработки XML -
provider- имя поставщика - Возвращаемое значение:
- новый
TransformService - Исключение:
-
NoSuchProviderException- если указанный поставщик не зарегистрирован в списке поставщиков безопасности -
NullPointerException- еслиprovider,mechanismType, илиalgorithmnull -
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- еслиparentnull -
MarshalException- если параметры не могут быть маршаллированы
init
public abstract void init(XMLStructure parent,
XMLCryptoContext context)
throws InvalidAlgorithmParameterException Инициализирует этот TransformService с указанными параметрами и контекстом документа.
- Параметры:
-
parent- структура, специфичная для механизма, содержащая родительскую структуру -
context-XMLCryptoContext, содержащий дополнительный контекст (может бытьnull, если не применимо) - Исключение:
-
ClassCastException- если типparentилиcontextне совместим с этимTransformService -
NullPointerException- еслиparentnull -
InvalidAlgorithmParameterException- если указанные параметры недействительны для этого алгоритма
© 1993, 2020, 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/11/docs/api/java.xml.crypto/javax/xml/crypto/dsig/TransformService.html