クラスTransformService

java.lang.Object
javax.xml.crypto.dsig.TransformService
すべての実装されたインタフェース:
AlgorithmMethod, Transform, XMLStructure

public abstract class TransformService extends Object implements Transform
変換アルゴリズムおよび正規化アルゴリズム用のService Provider Interfaceです。

TransformServiceの各インスタンスは、特定の変換アルゴリズムまたは正規化アルゴリズムおよびXMLメカニズム型をサポートします。 TransformServiceを作成するには、static getInstanceメソッドの1つを呼び出し、目的のアルゴリズムURIおよびXMLメカニズム型を渡します。たとえば:

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

TransformService実装は、Providerメカニズムを使用して登録およびロードされます。 TransformServiceのサービス・プロバイダ実装は、サポートするXMLメカニズム型を特定するMechanismTypeサービス属性を含む必要があります。 属性が指定されない場合、"DOM"であると想定されます。 たとえば、XPath Filter 2 TransformおよびDOMメカニズムをサポートするサービス・プロバイダはProviderサブクラスで次のように指定されます。

    put("TransformService." + Transform.XPATH2,
        "org.example.XPath2TransformService");
    put("TransformService." + Transform.XPATH2 + " MechanismType", "DOM");
TransformService DOMメカニズム・タイプをサポートする実装は、「DOMのメカニズム要件」に定義されているDOM相互運用性要件を遵守する必要があります。 標準のアルゴリズムUriとメカニズム・タイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」TransformServiceのセクションを参照してください。

TransformServiceが作成されると、それを使用してTransformオブジェクトまたはCanonicalizationMethodオブジェクトを処理できます。 XML形式の中にTransformまたはCanonicalizationMethodが存在する場合(たとえば、既存のXMLSignatureを検証するとき)、init(XMLStructure, XMLCryptoContext)メソッドを最初に呼び出して変換を初期化し、文書コンテキストを提供する必要があります(パラメータがない場合でも)。 あるいは、TransformまたはCanonicalizationMethodがゼロから作成される場合、init(TransformParameterSpec)メソッドが呼び出されて変換がパラメータ付きで初期化され、marshalParamsメソッドが呼び出されてXMLへのパラメータが整列化され、文書コンテキストでの変換が提供されます。 最後に、transformメソッドが呼び出されて変換を実行します。

並行アクセス

このクラスのstaticメソッドは、スレッド・セーフであることが保証されています。 このクラスで定義されているstaticメソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。

しかしこのことは、このクラスで定義されている非staticメソッドには当てはまりません。 特定のプロバイダで特に説明がないかぎり、単一のTransformServiceインスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。 異なるTransformServiceインスタンスを操作する複数スレッドは、同期化される必要はありません。

導入されたバージョン:
1.6
外部仕様
  • フィールドのサマリー

    インタフェース「変換」で宣言されたフィールド

    BASE64, ENVELOPED, XPATH, XPATH2, XSLT
    修飾子と型
    フィールド
    説明
    static final String
    Base64変換アルゴリズムURI。
    static final String
    Enveloped Signature変換アルゴリズムURI。
    static final String
    XPath変換アルゴリズムURI。
    static final String
    XPath Filter 2変換アルゴリズムURI。
    static final String
    XSLT変換アルゴリズムURI。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    デフォルトのコンストラクタ、サブクラスによる呼出し用。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    final String
    このTransformServiceがサポートするアルゴリズムのURIを返します。
    getInstance(String algorithm, String mechanismType)
    指定されたアルゴリズムURI (例: Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。
    getInstance(String algorithm, String mechanismType, String provider)
    指定したプロバイダが提供する、指定されたアルゴリズムURI (例: Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。
    getInstance(String algorithm, String mechanismType, Provider provider)
    指定したプロバイダが提供する、指定されたアルゴリズムURI (例: Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。
    final String
    このTransformServiceがサポートするメカニズム型を返します。
    final Provider
    このTransformServiceのプロバイダを返します。
    abstract void
    指定されたパラメータでこのTransformServiceを初期化します。
    abstract void
    指定されたパラメータおよび文書コンテキストでこのTransformServiceを初期化します。
    abstract void
    アルゴリズム固有のパラメータを整列化します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。

    インタフェースTransformで宣言されたメソッド

    getParameterSpec, transform, transform
    修飾子と型
    メソッド
    説明
    このTransformに関連付けられた、アルゴリズム固有の入力パラメータを返します。
    指定したデータをベースとなる変換アルゴリズムを使用して変換します。
    指定したデータをベースとなる変換アルゴリズムを使用して変換します。

    インタフェースで宣言されたメソッド XMLStructure

    isFeatureSupported
    修飾子と型
    メソッド
    説明
    boolean
    指定した機能がサポートされるかどうかを示します。
  • コンストラクタの詳細

    • TransformService

      protected TransformService()
      デフォルトのコンストラクタ、サブクラスによる呼出し用。
  • メソッドの詳細

    • getInstance

      public static TransformService getInstance(String algorithm, String mechanismType) throws NoSuchAlgorithmException
      指定されたアルゴリズムURI (例: Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。

      このメソッドは標準JCAプロバイダ検索メカニズムを使用して、目的のアルゴリズムおよびMechanismTypeサービス属性のTransformService実装を検出およびインスタンス化します。 登録済みのセキュリティProviderのリストを、最優先のProviderからトラバースします。 指定したアルゴリズムおよびメカニズム型をサポートする最初のProviderからの新しいTransformServiceオブジェクトが返されます。

      登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。

      実装上のノート:
      JDKリファレンス実装では、さらにjdk.security.provider.preferred Securityプロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。
      パラメータ:
      algorithm - アルゴリズムのURI 標準変換アルゴリズムのリストについては、「Javaセキュリティ標準アルゴリズム名仕様」TransformServiceの項を参照してください。
      mechanismType - XML処理メカニズムおよび表現の型。 標準メカニズムのタイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」TransformServiceのセクションを参照してください。
      戻り値:
      新しいTransformService
      スロー:
      NullPointerException - algorithmまたはmechanismTypenullの場合
      NoSuchAlgorithmException - 指定したアルゴリズムやメカニズム型用のTransformService実装をサポートするProviderが存在しない場合
      外部仕様
      関連項目:
    • getInstance

      public static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException
      指定したプロバイダが提供する、指定されたアルゴリズムURI (例: Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。 指定したProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
      パラメータ:
      algorithm - アルゴリズムのURI 標準変換アルゴリズムのリストについては、「Javaセキュリティ標準アルゴリズム名仕様」TransformServiceの項を参照してください。
      mechanismType - XML処理メカニズムおよび表現の型。 標準メカニズムのタイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」TransformServiceのセクションを参照してください。
      provider - Providerオブジェクト
      戻り値:
      新しいTransformService
      スロー:
      NullPointerException - provideralgorithm、またはmechanismTypenullの場合
      NoSuchAlgorithmException - 指定したアルゴリズムやメカニズム型用のTransformService実装が、指定したProviderオブジェクトで使用できない場合
      外部仕様
      関連項目:
    • getInstance

      public static TransformService getInstance(String algorithm, String mechanismType, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
      指定したプロバイダが提供する、指定されたアルゴリズムURI (例: Transform.XPATH2)およびメカニズム型(例: DOM)をサポートするTransformServiceを返します。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。

      登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。

      パラメータ:
      algorithm - アルゴリズムのURI 標準変換アルゴリズムのリストについては、「Javaセキュリティ標準アルゴリズム名仕様」TransformServiceの項を参照してください。
      mechanismType - XML処理メカニズムおよび表現の型。 標準メカニズムのタイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」TransformServiceのセクションを参照してください。
      provider - プロバイダ名の文字列名
      戻り値:
      新しいTransformService
      スロー:
      NoSuchProviderException - 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合
      NullPointerException - providermechanismType、またはalgorithmnullの場合
      NoSuchAlgorithmException - 指定したアルゴリズムやメカニズム型用のTransformService実装が指定したプロバイダで使用できない場合
      外部仕様
      関連項目:
    • getMechanismType

      public final String getMechanismType()
      このTransformServiceがサポートするメカニズム型を返します。
      戻り値:
      メカニズム型
    • getAlgorithm

      public final String getAlgorithm()
      このTransformServiceがサポートするアルゴリズムのURIを返します。
      定義:
      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 - 指定されたパラメータがこのアルゴリズムには無効な場合