Класс 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 Specification. После создания экземпляра TransformService, он может использоваться для обработки объектов Transform или CanonicalizationMethod. Если объекты Transform или CanonicalizationMethod существуют в формате XML (например, при валидации существующего XMLSignature), необходимо сначала вызвать метод init(XMLStructure, XMLCryptoContext) для инициализации преобразования и предоставления контекста документа (даже если параметров нет). В альтернативном случае, если объекты Transform или CanonicalizationMethod создаются с нуля, вызывается метод init(TransformParameterSpec) для инициализации преобразования с параметрами, а затем marshalParams для сериализации параметров в XML и предоставления контекста документа преобразованию. Наконец, вызывается метод transform для выполнения преобразования.
Доступ из нескольких потоков
Статические методы этого класса гарантируют безопасность потоков. Несколько потоков могут одновременно вызывать статические методы, определённые в этом классе, без негативных последствий.
Однако это не относится к методам, не являющимся статическими, определённым в этом классе. За исключением случаев, документированных для конкретного поставщика, потоки, которые нуждаются в одновременном доступе к одному экземпляру TransformService, должны синхронизироваться между собой и обеспечивать необходимую блокировку. Несколько потоков, каждый из которых манипулирует разными экземплярами TransformService , синхронизироваться не обязаны.
- Since:
- 1.6
Краткое описание полей
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор по умолчанию, для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final String |
getAlgorithm() |
Возвращает URI алгоритма, поддерживаемого этим TransformService. |
static TransformService |
getInstance |
Возвращает TransformService, который поддерживает указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM). |
static TransformService |
getInstance |
Возвращает TransformService, который поддерживает указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM), предоставленный указанным поставщиком. |
static TransformService |
getInstance |
Возвращает TransformService, который поддерживает указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM), предоставленный указанным поставщиком. |
final String |
getMechanismType() |
Возвращает тип механизма, поддерживаемый этим TransformService. |
final Provider |
getProvider() |
Возвращает поставщика этого TransformService. |
abstract void |
init |
Инициализирует этот TransformService с указанными параметрами. |
abstract void |
init |
Инициализирует этот TransformService с указанными параметрами и контекстом документа. |
abstract void |
marshalParams |
Сериализует параметры, специфичные для алгоритма. |
Методы, объявленные в классе 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 алгоритма. Список стандартных алгоритмов преобразования см. в разделеTransformServiceв Спецификации имен стандартных алгоритмов Java Security. -
mechanismType- тип механизма и представления обработки XML. Список стандартных типов механизмов см. в разделеTransformServiceв Спецификации имен стандартных алгоритмов Java Security. - Возвращает:
- новый
TransformService - Исключение:
-
NullPointerException- еслиalgorithmилиmechanismTypenull -
NoSuchAlgorithmException- если ни одинProviderне поддерживает реализациюTransformServiceдля указанного алгоритма и типа механизма - См. также:
getInstance
public static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException
TransformService , поддерживающий указанный URI алгоритма (например: Transform.XPATH2) и тип механизма (например: DOM), как указано указанным поставщиком. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков.- Параметры:
-
algorithm- URI алгоритма. Список стандартных алгоритмов преобразования см. в разделеTransformServiceв Спецификации имен стандартных алгоритмов Java Security. -
mechanismType- тип механизма и представления обработки XML. Список стандартных типов механизмов см. в разделеTransformServiceв Спецификации имен стандартных алгоритмов Java Security. -
provider- объектProvider - Возвращает:
- новый
TransformService - Исключение:
-
NullPointerException- еслиprovider,algorithm, илиmechanismTypenull -
NoSuchAlgorithmException- если реализацияTransformServiceдля указанного алгоритма и типа механизма недоступна от указанного объекта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. -
mechanismType- тип механизма и представления обработки XML. Список стандартных типов механизмов см. в разделеTransformServiceв Спецификации имен стандартных алгоритмов Java Security. -
provider- имя поставщика в виде строки - Возвращает:
- новый
TransformService - Исключение:
-
NoSuchProviderException- если указанный поставщик не зарегистрирован в списке поставщиков безопасности -
NullPointerException- еслиprovider,mechanismType, илиalgorithmnull -
NoSuchAlgorithmException- если реализацияTransformServiceдля указанного алгоритма и типа механизма недоступна от указанного поставщика - См. также:
getMechanismType
public final String getMechanismType()
TransformService.- Возвращает:
- тип механизма
getAlgorithm
public final String getAlgorithm()
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, 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.xml.crypto/javax/xml/crypto/dsig/TransformService.html