モジュール java.base
パッケージ java.security

クラスCodeSource

  • すべての実装されたインタフェース:
    Serializable

    public class CodeSource
    extends Object
    implements Serializable

    このクラスはコード・ベースの概念を拡張し、位置(URL)に加えて、その位置から発生する署名付きコードの検証に使用した証明書チェーンもカプセル化します。

    導入されたバージョン:
    1.2
    関連項目:
    直列化された形式
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      CodeSource​(URL url, Certificate[] certs)
      CodeSourceを構築し、指定された位置と証明書セットに関連付けます。
      CodeSource​(URL url, CodeSigner[] signers)
      CodeSourceを構築し、それを指定された位置とコード署名者セットに関連付けます。
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      boolean equals​(Object obj)
      指定されたオブジェクトとこのオブジェクトが等価であるかどうかをテストします。
      Certificate[] getCertificates()
      このCodeSourceに関連した証明書を返します。
      CodeSigner[] getCodeSigners()
      このCodeSourceに関連したコード署名者を返します。
      URL getLocation()
      このCodeSourceに関連した位置を返します。
      int hashCode()
      このオブジェクトのハッシュ・コード値を返します。
      boolean implies​(CodeSource codesource)
      このCodeSourceオブジェクトが指定されたCodeSourceを「包含」している場合にtrueを返します。
      String toString()
      このCodeSourceを説明する文字列を返すことにより、そのURLと証明書を示します。
    • コンストラクタの詳細

      • CodeSource

        public CodeSource​(URL url,
                          Certificate[] certs)
        CodeSourceを構築し、指定された位置と証明書セットに関連付けます。
        パラメータ:
        url - 位置(URL)。 それはnullかもしれません。
        certs - 証明書。 それはnullかもしれません。 この配列の内容は、後続の変更に影響されないようにコピーされる。
      • CodeSource

        public CodeSource​(URL url,
                          CodeSigner[] signers)
        CodeSourceを構築し、それを指定された位置とコード署名者セットに関連付けます。
        パラメータ:
        url - 位置(URL)。 それはnullかもしれません。
        signers - コード署名者。 それはnullかもしれません。 この配列の内容は、後続の変更に影響されないようにコピーされる。
        導入されたバージョン:
        1.5
    • メソッドの詳細

      • equals

        public boolean equals​(Object obj)
        指定されたオブジェクトとこのオブジェクトが等価であるかどうかをテストします。 2つのCodeSourceオブジェクトは、それらの位置が同じ値であり、かつ署名者の証明書チェーンが同じ値である場合に同等と見なされます。 ただし、証明書チェーンの順序は同じでなくてもかまいません。
        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        obj - このオブジェクトと等しいかどうかが判定されるオブジェクト。
        戻り値:
        オブジェクトが等しいと見なされた場合はtrue、そうでない場合はfalse。
        関連項目:
        Object.hashCode()HashMap
      • getLocation

        public final URL getLocation()
        このCodeSourceに関連した位置を返します。
        戻り値:
        構築中にURLが提供されなかった場合は、ロケーション(URL)、またはnull
      • getCertificates

        public final Certificate[] getCertificates()
        このCodeSourceに関連した証明書を返します。

        このCodeSourceオブジェクトがCodeSource(URL url, CodeSigner[] signers)コンストラクタを使って作成されたものである場合、その証明書チェーンが抽出および使用されてCertificateオブジェクトの配列が作成されます。 各署名者証明書のあとにはそれをサポートする証明書チェーンが続きます(空である可能性もある)。 各署名者証明書とそれをサポートする証明書チェーンは、下位から上位(つまり署名者証明書が最初で(ルート)証明書発行局が最後)の順に並びます。

        戻り値:
        証明書配列のコピー、または存在しない場合はnull
      • getCodeSigners

        public final CodeSigner[] getCodeSigners()
        このCodeSourceに関連したコード署名者を返します。

        このCodeSourceオブジェクトがCodeSource(URL url, java.security.cert.Certificate[] certs)コンストラクタを使って作成されたものである場合、その証明書チェーンが抽出および使用されてCodeSignerオブジェクトの配列が作成されます。 ただし、検査されるのはX.509証明書だけであり、その他の種類の証明書はすべて無視されます。

        戻り値:
        コード署名者配列のコピー、または存在しない場合はnull
        導入されたバージョン:
        1.5
      • implies

        public boolean implies​(CodeSource codesource)
        このCodeSourceオブジェクトが指定されたCodeSourceを「包含」している場合にtrueを返します。

        具体的には、このメソッドは次の項目を検査します。 検査のどれかが失敗するとfalseを返し、 すべての検査が成功するとtrueを返します。

        • codesourceがnullではない。
        • このオブジェクトの証明書がnullでない場合に、このオブジェクトの証明書がすべてcodesourceの証明書にある。
        • このオブジェクトの位置(getLocation())がnullでない場合に、このオブジェクトの位置とcodesourceの位置について次の項目を検査する。
          • codesourceの位置がnullではない。
          • このオブジェクトの位置とcodesourceの位置が同じ場合はtrueを返す。
          • このオブジェクトのプロトコル(getLocation().getProtocol())はcodesourceのプロトコルと同じである(大文字と小文字は区別されない)。
          • このオブジェクトのホスト(getLocation().getHost())がnullでない場合には、このオブジェクトのホストで構築したSocketPermissionは、codesourceのホストで生成したSocketPermissionを包含している。
          • このオブジェクトのポート(getLocation().getPort())が-1以外の場合(つまり、ポートが指定されている場合)に、そのポートはcodesourceのポートまたはデフォルト・ポート(codesource.getLocation().getDefaultPort())と同じである。
          • このオブジェクトのファイル(getLocation().getFile())がcodesourceのファイルと異なる場合には、次の項目を検査する。このオブジェクトのファイルが「/-」で終わっている場合には、codesourceのファイルはこのオブジェクトのファイルで始まる必要がある(末尾の「-」を除く)。 このオブジェクトのファイルが「/*」で終わっている場合には、codesourceのファイルはこのオブジェクトのファイルで始まる必要があり、また、このほかに「/」のセパレータがあってはならない。 このオブジェクトのファイルが「/」で終わっていない場合には、このオブジェクトのファイルの末尾に「/」を追加することにより、codesourceのファイルをこのオブジェクトのファイルに一致させる必要がある。
          • このオブジェクトの参照(getLocation().getRef())がnullでない場合に、その参照はcodesourceの参照と同じである。

        たとえば、次のロケーションとnullの証明書を持つコード・ソース・オブジェクトは、コード・ソースのロケーションが"http://www.example.com/classes/foo.jar"でnullの証明書であることを意味しています:

             http:
             http://*.example.com/classes/*
             http://www.example.com/classes/-
             http://www.example.com/classes/foo.jar
         
        CodeSourceの位置がnullで、証明書チェーンがnullの場合は、ほかの各CodeSourceを包含しています。

        パラメータ:
        codesource - 比較対象のCodeSource。
        戻り値:
        指定されたコード・ソースがこのコード・ソースによって包含されている場合はtrue、そうでない場合はfalse。
      • toString

        public String toString()
        このCodeSourceを説明する文字列を返すことにより、そのURLと証明書を示します。
        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        このCodeSourceについての情報