public class CertStore extends Object
Certificate
とCRL
を取得するクラスです。
このクラスは、プロバイダ・ベースのアーキテクチャを使用します。 CertStore
を作成するには、static getInstance
メソッドのうちの1つを呼び出して、作成するCertStore
の型、適用可能な初期化パラメータ、プロバイダ名(オプション)を渡します。
CertStore
を作成すると、getCertificates
とgetCRLs
メソッドを呼び出すことで、Certificate
とCRL
を取得できます。
CertStore
は、非公開キーおよび信頼できる証明書のキャッシュへのアクセスを提供するKeyStore
とは異なり、非常に大きくなる可能性がある、信頼されない証明書およびCRLのリポジトリへのアクセスを提供するように設計されています。 たとえば、CertStore
のLDAP実装では、LDAPプロトコルとRFCサービス属性として定義されたスキーマとを使用して、1つ以上のディレクトリに格納された証明書とCRLへアクセスできます。
Javaプラットフォームの実装は、すべて次の標準のCertStore
タイプをサポートする必要があります。
Collection
並行アクセス
CertStore
オブジェクトのすべてのpublicメソッドは、スレッドセーフでなければいけません。 つまり、単一の(または複数の) CertStore
オブジェクト上で、複数のスレッドがこれらのメソッドを並行して呼び出しても、悪影響はありません。 これにより、たとえばCertPathBuilder
は、CRLを検索しながら同時にほかの証明書を検索できます。
また、このクラスのstaticメソッドは、スレッドセーフであることが保証されています。 このクラスで定義されているstaticメソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。
- 導入されたバージョン:
- 1.4
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
CertStore(CertStoreSpi storeSpi, Provider provider, String type, CertStoreParameters params)
指定されたタイプのCertStore
オブジェクトを作成し、指定されたプロバイダの実装(SPIオブジェクト)をそこにカプセル化します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 Collection<? extends Certificate>
getCertificates(CertSelector selector)
指定したセレクタに一致するCertificate
のCollection
を返します。CertStoreParameters
getCertStoreParameters()
このCertStore
を初期化するためのパラメータを返します。Collection<? extends CRL>
getCRLs(CRLSelector selector)
指定したセレクタに一致するCRL
のCollection
を返します。static String
getDefaultType()
certstore.type
セキュリティ・プロパティに指定されたデフォルトのCertStore
タイプを返します。該当するプロパティが存在しない場合は、文字列「LDAP」を返します。static CertStore
getInstance(String type, CertStoreParameters params)
指定したCertStore
型を実装し、指定したパラメータで初期化されるCertStore
を返します。static CertStore
getInstance(String type, CertStoreParameters params, String provider)
指定されたCertStore
タイプを実装するCertStore
オブジェクトを返します。static CertStore
getInstance(String type, CertStoreParameters params, Provider provider)
指定されたCertStore
タイプを実装するCertStore
オブジェクトを返します。Provider
getProvider()
このCertStore
のプロバイダを返します。String
getType()
このCertStore
のタイプを返します。
-
コンストラクタの詳細
-
CertStore
protected CertStore(CertStoreSpi storeSpi, Provider provider, String type, CertStoreParameters params)指定されたタイプのCertStore
オブジェクトを作成し、指定されたプロバイダの実装(SPIオブジェクト)をそこにカプセル化します。- パラメータ:
storeSpi
- プロバイダの実装provider
- プロバイダtype
- タイプparams
- 初期化パラメータ。null
も可
-
-
メソッドの詳細
-
getCertificates
public final Collection<? extends Certificate> getCertificates(CertSelector selector) throws CertStoreException指定したセレクタに一致するCertificate
のCollection
を返します。 セレクタに一致するCertificate
がない場合は、空のCollection
が返されます。CertStore
のタイプによっては、セレクタに一致するCertificate
のすべてが結果として得られるCollection
に含まれないことがあります。 たとえば、LDAPCertStore
は、ディレクトリ内のすべてのエントリを検索しない場合があります。 代わりに、検索するCertificate
が含まれると考えられるエントリに絞って検索します。CertStore
の実装の中には、証明書を見つけるための特定の条件を含むnull以外のCertSelector
が提供されないかぎり、CertStoreException
をスローするものがあります(特にLDAPCertStore
)。 発行者やサブジェクトの名前は特に役立つ条件となります。- パラメータ:
selector
- 返されるCertificate
を選択するために使用するCertSelector
。null
を指定すると、サポートされている場合はすべてのCertificate
が返される。- 戻り値:
- 指定したセレクタに一致する
Certificate
のCollection
。null
にはならない - 例外:
CertStoreException
- 例外が発生する場合
-
getCRLs
public final Collection<? extends CRL> getCRLs(CRLSelector selector) throws CertStoreException指定したセレクタに一致するCRL
のCollection
を返します。 セレクタに一致するCRL
がない場合は、空のCollection
が返されます。CertStore
のタイプによっては、セレクタに一致するCRL
のすべてが結果として得られるCollection
に含まれないことがあります。 たとえば、LDAPCertStore
は、ディレクトリ内のすべてのエントリを検索しない場合があります。 代わりに、検索するCRL
が含まれると考えられるエントリに絞って検索します。CertStore
の実装の中には、CRLを見つけるための特定の条件を含むnull以外のCRLSelector
が提供されないかぎり、CertStoreException
をスローするものがあります(特にLDAPCertStore
)。 発行者の名前やチェック対象の証明書は特に役立ちます。- パラメータ:
selector
- 返されるCRL
を選択するために使用するCRLSelector
。null
を指定すると、サポートされている場合はすべてのCRL
が返される- 戻り値:
- 指定したセレクタに一致する
CRL
のCollection
。null
にはならない - 例外:
CertStoreException
- 例外が発生する場合
-
getInstance
public static CertStore getInstance(String type, CertStoreParameters params) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException指定したCertStore
型を実装し、指定したパラメータで初期化されるCertStore
を返します。このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定された型をサポートする最初のProviderのCertStoreSpi実装をカプセル化する新しいCertStoreオブジェクトが返されます。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。返された
CertStore
は指定されたCertStoreParameters
で初期化されます。 必要なパラメータの型は、CertStore
の型によって異なります。CertStoreParameters
オブジェクトの複製を指定していることに注意してください。- 実装上の注意:
- JDKリファレンス実装では、
jdk.security.provider.preferred
Security
プロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()
によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
type
- 要求するCertStore
タイプの名前。 標準型については、「Javaセキュリティ標準アルゴリズム名指定」のCertStoreセクションを参照してください。params
- 初期化パラメータ。null
も可。- 戻り値:
- 指定された
CertStore
タイプを実装するCertStore
オブジェクト - 例外:
InvalidAlgorithmParameterException
- 指定された初期化パラメータがこのCertStore
に対して不適切な場合NoSuchAlgorithmException
-Provider
が、指定された型のCertStoreSpi
実装をサポートしていない場合NullPointerException
-type
がnull
である場合- 関連項目:
Provider
-
getInstance
public static CertStore getInstance(String type, CertStoreParameters params, String provider) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, NoSuchProviderException指定されたCertStore
タイプを実装するCertStore
オブジェクトを返します。指定されたプロバイダのCertStoreSpi実装をカプセル化する新しいCertStoreオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。返された
CertStore
は指定されたCertStoreParameters
で初期化されます。 必要なパラメータの型は、CertStore
の型によって異なります。CertStoreParameters
オブジェクトの複製を指定していることに注意してください。- パラメータ:
type
- 要求されたCertStore
タイプ。 標準型については、「Javaセキュリティ標準アルゴリズム名指定」のCertStoreセクションを参照してください。params
- 初期化パラメータ。null
も可。provider
- プロバイダ名。- 戻り値:
- 指定されたタイプを実装する
CertStore
オブジェクト - 例外:
IllegalArgumentException
-provider
がnull
または空の場合InvalidAlgorithmParameterException
- 指定された初期化パラメータがこのCertStore
に対して不適切な場合NoSuchAlgorithmException
- 指定された型のCertStoreSpi
実装が、指定されたプロバイダから利用可能でない場合NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException
-type
がnull
である場合- 関連項目:
Provider
-
getInstance
public static CertStore getInstance(String type, CertStoreParameters params, Provider provider) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException指定されたCertStore
タイプを実装するCertStore
オブジェクトを返します。指定されたProviderオブジェクトのCertStoreSpi実装をカプセル化する新しいCertStoreオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
返された
CertStore
は指定されたCertStoreParameters
で初期化されます。 必要なパラメータの型は、CertStore
の型によって異なります。CertStoreParameters
オブジェクトの複製を指定していることに注意してください。- パラメータ:
type
- 要求されたCertStore
タイプ。 標準型については、「Javaセキュリティ標準アルゴリズム名指定」のCertStoreセクションを参照してください。params
- 初期化パラメータ。null
も可。provider
- プロバイダ- 戻り値:
- 指定されたタイプを実装する
CertStore
オブジェクト - 例外:
IllegalArgumentException
-provider
がnullの場合InvalidAlgorithmParameterException
- 指定された初期化パラメータがこのCertStore
に対して不適切な場合NoSuchAlgorithmException
- 指定された型のCertStoreSpi
実装が、指定されたProviderオブジェクトから使用できない場合NullPointerException
-type
がnull
である場合- 関連項目:
Provider
-
getCertStoreParameters
public final CertStoreParameters getCertStoreParameters()このCertStore
を初期化するためのパラメータを返します。 返される前のCertStoreParameters
オブジェクトは複製です。- 戻り値:
- この
CertStore
を初期化するパラメータ。null
も可能
-
getType
public final String getType()このCertStore
のタイプを返します。- 戻り値:
- この
CertStore
の型
-
getProvider
public final Provider getProvider()このCertStore
のプロバイダを返します。- 戻り値:
- この
CertStore
のプロバイダ
-
getDefaultType
public static final String getDefaultType()certstore.type
セキュリティ・プロパティに指定されたデフォルトのCertStore
タイプを返します。該当するプロパティが存在しない場合は、文字列「LDAP」を返します。デフォルトの
CertStore
タイプを使用するのは、アプリケーションでgetInstance
メソッドを呼び出すときにハードコードされたタイプを使用しない場合、およびユーザーが独自のタイプを指定しないときにデフォルトのCertStore
タイプを提供する場合です。デフォルトの
CertStore
タイプは、certstore.type
セキュリティ・プロパティの値を目的のタイプに設定することで変更できます。- 戻り値:
certstore.type
セキュリティ・プロパティに指定されているデフォルトのCertStore
タイプ、該当するプロパティが存在しない場合は文字列「LDAP」。- 関連項目:
セキュリティ・プロパティ
-