JavaTM 2 Platform
Standard Ed. 6

java.security.cert
類別 CertStore

java.lang.Object
  繼承者 java.security.cert.CertStore

public class CertStore
extends Object

用於從存儲資源庫中獲取 CertificateCRL 的類別。

此類別使用基於提供者的架構。要創建一個 CertStore,可調用其中一個靜態 getInstance 方法,並傳入所需的 CertStore 型別、任何適用的初始化參數,以及所需提供者名稱(可選)。

創建了 CertStore 以後,就可以通過調用其 getCertificatesgetCRLs 方法來獲取 CertificateCRL

CertStore 與 KeyStore 不同,KeyStore 提供對私鑰和可信任證書快取記憶體的存取,而 CertStore 提供對不可信任證書和 CRL 存儲資源庫(可能很大)的存取。例如,CertStore 的 LDAP 實作使用 LDAP 協議和 RFC 服務屬性中定義的方案,提供對存儲在一個或多個目錄中的證書和 CRL 的存取。有關標準 CertStore 型別的更多資訊,請參見 Java Certification Path API Programmer's Guide 中的附錄 A。

共時存取

所有 CertStore 物件的公共方法必須是執行緒安全的。也就是說,多個執行緒可以在單個 CertStore 物件(或多個物件)上共時調用這些方法,而不產生任何不良影響。例如,允許 CertPathBuilder 在搜尋 CRL 的同時搜尋其他證書。

還應確保此類別的靜態方法是執行緒安全的。多個執行緒可以共時調用此類別中所定義的靜態方法,而不產生任何不良影響。

從以下版本開始:
1.4

建構子摘要
protected CertStore(CertStoreSpi storeSpi, Provider provider, String type, CertStoreParameters params)
          創建一個給定型別的 CertStore 物件,並在其中封裝給定提供者實作(SPI 物件)。
 
方法摘要
 Collection<? extends Certificate> getCertificates(CertSelector selector)
          返回與指定選擇器比對的 CertificateCollection
 CertStoreParameters getCertStoreParameters()
          返回初始化此 CertStore 所用的參數。
 Collection<? extends CRL> getCRLs(CRLSelector selector)
          返回與指定選擇器比對的 CRLCollection
static String getDefaultType()
          返回 Java 安全屬性檔案中指定的預設 CertStore 型別;如果沒有此屬性,則返回字元串 "LDAP"。
static CertStore getInstance(String type, CertStoreParameters params)
          返回一個實作指定 CertStore 型別,並已使用指定參數初始化的 CertStore 物件。
static CertStore getInstance(String type, CertStoreParameters params, Provider provider)
          返回一個實作指定 CertStore 型別的 CertStore 物件。
static CertStore getInstance(String type, CertStoreParameters params, String provider)
          返回一個實作指定 CertStore 型別的 CertStore 物件。
 Provider getProvider()
          返回此 CertStore 的提供者。
 String getType()
          返回此 CertStore 的型別。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

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
返回與指定選擇器比對的 CertificateCollection。如果沒有與此選擇器比對的 Certificate,則返回一個空 Collection

對於某些 CertStore 型別,得到的 Collection 可能並不包含與選擇器比對的所有 Certificate。例如,LDAP CertStore 可能並不搜尋目錄中的所有條目。相反,它只搜尋那些可能包含要尋找的 Certificate 的條目。

如果沒有提供一個套件含用於尋找證書的特定標準的非 null CertSelector,那麼某些 CertStore 實作(特別是 LDAP CertStore)將拋出 CertStoreException。發佈方和/或主體名稱是特別有用的標準。

參數:
selector - 用於選擇應該返回哪些 CertificateCertSelector。指定 null 表示返回所有 Certificate(如果支持)。
返回:
與指定選擇器比對的 CertificateCollection(不為 null
拋出:
CertStoreException - 如果發生異常

getCRLs

public final Collection<? extends CRL> getCRLs(CRLSelector selector)
                                        throws CertStoreException
返回與指定選擇器比對的 CRLCollection。如果沒有與此選擇器比對的 CRL,則返回一個空 Collection

對於某些 CertStore 型別,得到的 Collection 可能並不包含與選擇器比對的所有 CRL。例如,LDAP CertStore 可能並不搜尋目錄中的所有條目。相反,它只搜尋那些可能包含要尋找的 CRL 的條目。

如果沒有提供一個套件含用於尋找 CRL 的特定標準的非 null CRLSelector,那麼某些 CertStore 實作(特別是 LDAP CertStore)將拋出 CertStoreException。發佈方名稱和/或要檢查的證書特別有用。

參數:
selector - 用於選擇應該返回哪些 CRLCRLSelector。指定 null 表示返回所有 CRL(如果支持)。
返回:
與指定選擇器比對的 CRLCollection(不為 null
拋出:
CertStoreException - 如果發生異常

getInstance

public static CertStore getInstance(String type,
                                    CertStoreParameters params)
                             throws InvalidAlgorithmParameterException,
                                    NoSuchAlgorithmException
返回一個實作指定 CertStore 型別,並已使用指定參數初始化的 CertStore 物件。

此方法從首選 Provider 開始遍歷已註冊安全提供者列表。返回一個封裝 CertStoreSpi 實作的新 CertStore 物件,該實作取自第一個支持指定型別的 Provider。

注意,可以通過 Security.getProviders() 方法獲取已註冊提供者列表。

使用指定的 CertStoreParameters 初始化返回的 CertStore。不同型別的 CertStore 所需的參數型別有所不同。注意,指定的 CertStoreParameters 物件將被複製。

參數:
type - 請求的 CertStore 型別的名稱。有關標準型別的資訊,請參閱 Java Certification Path API Programmer's Guide 中的附錄 A。
params - 初始化參數(可以為 null)。
返回:
實作指定 CertStore 型別的 CertStore 物件。
拋出:
NoSuchAlgorithmException - 如果沒有 Provider 支持指定型別的 CertStoreSpi 實作。
InvalidAlgorithmParameterException - 如果指定的初始化參數不適合此 CertStore
另請參見:
Provider

getInstance

public static CertStore getInstance(String type,
                                    CertStoreParameters params,
                                    String provider)
                             throws InvalidAlgorithmParameterException,
                                    NoSuchAlgorithmException,
                                    NoSuchProviderException
返回一個實作指定 CertStore 型別的 CertStore 物件。

返回一個封裝 CertStoreSpi 實作的新 CertStore 物件,該實作取自指定提供者。指定提供者必須在安全提供者列表中註冊。

注意,可以通過 Security.getProviders() 方法獲取已註冊提供者列表。

使用指定的 CertStoreParameters 初始化返回的 CertStore。不同型別的 CertStore 所需的參數型別有所不同。注意,指定的 CertStoreParameters 物件將被複製。

參數:
type - 請求的 CertStore 型別。有關標準型別的資訊,請參閱 Java Certification Path API Programmer's Guide 中的附錄 A。
params - 初始化參數(可以為 null)。
provider - 提供者名稱。
返回:
實作指定型別的 CertStore 物件。
拋出:
NoSuchAlgorithmException - 如果不能從指定的提供者獲得指定型別的 CertStoreSpi 實作。
InvalidAlgorithmParameterException - 如果指定的初始化參數不適合此 CertStore
NoSuchProviderException - 如果指定的提供者未在安全提供者列表中註冊。
IllegalArgumentException - 如果 provider 為 null 或空。
另請參見:
Provider

getInstance

public static CertStore getInstance(String type,
                                    CertStoreParameters params,
                                    Provider provider)
                             throws NoSuchAlgorithmException,
                                    InvalidAlgorithmParameterException
返回一個實作指定 CertStore 型別的 CertStore 物件。

返回一個封裝 CertStoreSpi 實作的新 CertStore 物件,該實作取自指定 Provider 物件。注意,指定 Provider 物件無需在提供者列表中註冊。

使用指定的 CertStoreParameters 初始化返回的 CertStore。不同型別的 CertStore 所需的參數型別有所不同。注意,指定的 CertStoreParameters 物件將被複製。

參數:
type - 請求的 CertStore 型別。有關標準型別的資訊,請參閱 Java Certification Path API Programmer's Guide 中的附錄 A。
params - 初始化參數(可以為 null)。
provider - 提供者。
返回:
實作指定型別的 CertStore 物件。
拋出:
NoSuchAlgorithmException - 如果不能從指定 Provider 物件獲得指定型別的 CertStoreSpi 實作。
InvalidAlgorithmParameterException - 如果指定的初始化參數不適合此 CertStore
IllegalArgumentException - 如果 provider 為 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()
返回 Java 安全屬性檔案中指定的預設 CertStore 型別;如果沒有此屬性,則返回字元串 "LDAP"。Java 安全屬性檔案位於指定的 <JAVA_HOME>/lib/security/java.security 檔案中。<JAVA_HOME> 參考 java.home 系統屬性的值,並指定安裝 JRE 的目錄。

調用某個 getInstance 方法時不希望使用固定編碼 (hard-coded) CertStore 型別的應用程序,以及使用者未指定所用 CertStore 型別時希望提供預設 CertStore 型別的應用程序可以使用預設 CertStore 型別。

通過將 "certstore.type" 安全屬性(在 Java 安全屬性檔案中)的值設置為所需的型別,可以更改預設的 CertStore 型別。

返回:
Java 安全屬性檔案中指定的預設 CertStore 型別;如果沒有此屬性,則返回字元串 "LDAP"。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only