Класс 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,
Provider provider) Возвращает |
static TransformService |
getInstance(String algorithm,
String mechanismType,
String 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().
- Параметры:
-
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.