JavaTM 2 Platform
Standard Ed. 6

java.security.cert
類別 CertPathValidator

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

public class CertPathValidator
extends Object

驗證證書路徑(也稱為證書鏈)的類別。

此類別使用基於提供者的架構。要創建一個 CertPathValidator,應調用某個 static getInstance 方法、傳入所需的 CertPathValidator 演算法名稱,

一旦創建了 CertPathValidator 物件,就可使用它來驗證證書路徑,方法是調用 validate 方法並向其傳遞要驗證的 CertPath 和一個特定於演算法的參數集。如果驗證成功,則在一個實作了 CertPathValidatorResult 介面的物件中返回結果。

共時存取

可保證此類別的 static 方法是執行緒安全的。多個執行緒可以共時調用此類別中所定義的 static 方法,而不會產生什麼惡果。

但是,對於此類別所定義的非 static 方法並非如此。除非具體的提供者另行指定,否則需要共時存取單個 CertPathValidator 實例的多個執行緒應該在它們之間實作同步並提供所需的鎖定。如果對每個執行緒都操作一個不同 CertPathValidator 實例的多個執行緒而言,則無需實作同步。

從以下版本開始:
1.4
另請參見:
CertPath

建構子摘要
protected CertPathValidator(CertPathValidatorSpi validatorSpi, Provider provider, String algorithm)
          創建一個給定演算法的 CertPathValidator 物件,並在其中封裝給定的提供者實作(SPI 物件)。
 
方法摘要
 String getAlgorithm()
          返回此 CertPathValidator 的演算法名稱。
static String getDefaultType()
          返回 Java 安全屬性檔案中所指定的預設 CertPathValidator 型別,如果沒有此屬性,則返回字元串 "PKIX"。
static CertPathValidator getInstance(String algorithm)
          返回實作了指定演算法的 CertPathValidator 物件。
static CertPathValidator getInstance(String algorithm, Provider provider)
          返回實作指定演算法的 CertPathValidator 物件。
static CertPathValidator getInstance(String algorithm, String provider)
          返回實作指定演算法的 CertPathValidator 物件。
 Provider getProvider()
          返回此 CertPathValidatorProvider
 CertPathValidatorResult validate(CertPath certPath, CertPathParameters params)
          使用指定的演算法參數集驗證指定的證書路徑。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

CertPathValidator

protected CertPathValidator(CertPathValidatorSpi validatorSpi,
                            Provider provider,
                            String algorithm)
創建一個給定演算法的 CertPathValidator 物件,並在其中封裝給定的提供者實作(SPI 物件)。

參數:
validatorSpi - 提供者實作
provider - 提供者
algorithm - 演算法名稱
方法詳細資訊

getInstance

public static CertPathValidator getInstance(String algorithm)
                                     throws NoSuchAlgorithmException
返回實作了指定演算法的 CertPathValidator 物件。

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

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

參數:
algorithm - 所請求的 CertPathValidator 演算法名稱。有關標準演算法名稱的資訊,請參閱 Java Certification Path API Programmer's Guide 的附錄 A。
返回:
實作了指定演算法的 CertPathValidator 物件。
拋出:
NoSuchAlgorithmException - 如果沒有 Provider 支持指定演算法的 CertPathValidatorSpi 實作。
另請參見:
Provider

getInstance

public static CertPathValidator getInstance(String algorithm,
                                            String provider)
                                     throws NoSuchAlgorithmException,
                                            NoSuchProviderException
返回實作指定演算法的 CertPathValidator 物件。

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

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

參數:
algorithm - 所請求的 CertPathValidator 演算法名稱。有關標準演算法名稱的資訊,請參閱 Java Certification Path API Programmer's Guide 的附錄 A。
provider - 提供者的名稱。
返回:
實作指定演算法的 CertPathValidator 物件。
拋出:
NoSuchAlgorithmException - 如果無法從指定提供者獲得指定演算法的 CertPathValidatorSpi 實作。
NoSuchProviderException - 如果指定提供者沒有在安全提供者列表中註冊。
IllegalArgumentException - 如果 provider 為 null 或空。
另請參見:
Provider

getInstance

public static CertPathValidator getInstance(String algorithm,
                                            Provider provider)
                                     throws NoSuchAlgorithmException
返回實作指定演算法的 CertPathValidator 物件。

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

參數:
algorithm - 所請求的 CertPathValidator 演算法名稱。有關標準演算法名稱的資訊,請參閱 Java Certification Path API Programmer's Guide 的附錄 A。
provider - 提供者。
返回:
實作指定演算法的 CertPathValidator 物件。
拋出:
NoSuchAlgorithmException - 如果無法從指定 Provider 物件獲得指定演算法的 CertPathValidatorSpi 實作。
IllegalArgumentException - 如果 provider 為 null。
另請參見:
Provider

getProvider

public final Provider getProvider()
返回此 CertPathValidatorProvider

返回:
CertPathValidatorProvider

getAlgorithm

public final String getAlgorithm()
返回此 CertPathValidator 的演算法名稱。

返回:
CertPathValidator 的演算法名稱

validate

public final CertPathValidatorResult validate(CertPath certPath,
                                              CertPathParameters params)
                                       throws CertPathValidatorException,
                                              InvalidAlgorithmParameterException
使用指定的演算法參數集驗證指定的證書路徑。

所指定的 CertPath 必須是該驗證演算法支持的型別,否則拋出 InvalidAlgorithmParameterException。例如,實作 PKIX 演算法的 CertPathValidator 將驗證 X.509 型別的 CertPath 物件。

參數:
certPath - 要驗證的 CertPath
params - 演算法參數
返回:
驗證演算法的結果
拋出:
CertPathValidatorException - 如果 CertPath 未通過驗證
InvalidAlgorithmParameterException - 如果指定的參數或指定 CertPath 的型別不適合此 CertPathValidator

getDefaultType

public static final String getDefaultType()
返回 Java 安全屬性檔案中所指定的預設 CertPathValidator 型別,如果沒有此屬性,則返回字元串 "PKIX"。Java 安全屬性檔案位於名為 <JAVA_HOME>/lib/security/java.security 檔案中。 <JAVA_HOME> 參考 java.home 系統屬型的值,並指定安裝 JRE 的目錄。

如果調用某個 getInstance 方法時不希望使用硬編碼 CertPathValidator 型別,並且在使用者未指定所用 CertPathValidator 型別的情況下希望提供預設型別的應用程序,那麼可以使用預設的 CertPathValidator 型別。

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

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

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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