|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.security.cert.CertPath
public abstract class CertPath
不可變的證書序列(證書路徑)。
這是一個抽象類別,定義了常用於所有 CertPath
的方法。其子類別可處理不同型別的證書(X.509、PGP 等等)。
所有 CertPath
物件都包含型別、Certificate
列表及其支持的一種或多種編碼。由於 CertPath
類別是不可變的,所以建構 CertPath
後無法以任何外部可見的方式更改它。此規定適用於此類別的所有公共欄位和方法,以及由子類別添加或覆寫的所有公共欄位和方法。
型別是標識證書路徑中 Certificate
型別的一個 String
。對於證書路徑 certPath
中的每個證書 cert
而言,cert.getType().equals(certPath.getType())
必須為 true
。
Certificate
列表是零個或多個 Certificate
的有序 List
。此 List
和其中所包含的所有 Certificate
都必須是不可變的。
每個 CertPath
物件必須支持一種或多種編碼方式,這樣可將物件轉換成 byte 陣列進行存儲,或傳輸給其他方。這些編碼最好應該具有記錄良好的標準(例如 PKCS#7)。將 CertPath
支持的某種編碼視為預設編碼。如果沒有顯式地請求編碼(例如,getEncoded()
方法),則使用此編碼。
所有 CertPath
物件都是 Serializable
。在序列化期間將 CertPath
物件解析為一個替換的 CertPathRep
物件。這就允許不管 CertPath
物件的基礎實作如何,都可以將該物件序列化為等效的表示形式。
可使用 CertificateFactory
創建 CertPath
物件,或者可通過其他類別(如 CertPathBuilder
)返回這些物件。
按照慣例,X.509 CertPath
(由 X509Certificate
組成)的順序按照從目標證書開始,從信任的定位點所發佈的證書結束。也就是說,證書的發佈方是以下某個主體。表示 TrustAnchor
的證書不應包括在證書路徑中。未驗證的 X.509 CertPath
可能不遵循這些約定。PKIX CertPathValidator
將檢測任何與這些約定的偏差,這些偏差會導致證書路徑無效並且拋出 CertPathValidatorException
。
共時存取
所有 CertPath
物件必須是執行緒安全的。也就是說,多個執行緒在單個 CertPath
物件(或多個物件)上共時調用此類別中所定義的各種方法不會產生壞的影響。對於 CertPath.getCertificates
返回的 List
也應如此。
要求 CertPath
物件是不可變的並且是執行緒安全的,就允許將其傳遞到各種程式碼片斷中,而無需擔心協調存取。通常提供此種執行緒安全性並不難,因為相關的 CertPath
和 List
物件都是不可變的。
CertificateFactory
,
CertPathBuilder
,
序列化表格巢狀類別摘要 | |
---|---|
protected static class |
CertPath.CertPathRep
用於序列化的替換 CertPath 類別。 |
建構子摘要 | |
---|---|
protected |
CertPath(String type)
創建指定型別的 CertPath 。 |
方法摘要 | |
---|---|
boolean |
equals(Object other)
比較此證書路徑與指定物件的相等性。 |
abstract List<? extends Certificate> |
getCertificates()
返回此證書路徑中的證書列表。 |
abstract byte[] |
getEncoded()
返回此證書路徑的編碼形式,使用預設的編碼。 |
abstract byte[] |
getEncoded(String encoding)
返回此證書路徑的編碼形式,使用指定的編碼。 |
abstract Iterator<String> |
getEncodings()
返回此證書路徑支持的編碼的迭代,預設編碼方式優先。 |
String |
getType()
返回此證書路徑中的 Certificate 型別。 |
int |
hashCode()
返回此證書路徑的雜湊碼。 |
String |
toString()
返回此證書路徑的字元串表示形式。 |
protected Object |
writeReplace()
使用 CertPathRep 物件替換要被序列化的 CertPath 。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
建構子詳細資訊 |
---|
protected CertPath(String type)
CertPath
。
此建構子是受保護的,因為大多數使用者應該使用 CertificateFactory
來創建 CertPath
。
type
- 此路徑中 Certificate
型別的標準名稱方法詳細資訊 |
---|
public String getType()
Certificate
型別。這與 cert.getType()
為證書路徑中的所有 Certificate
所返回的字元串相同。
Certificate
型別(從不為 null)public abstract Iterator<String> getEncodings()
Iterator
(通過其 remove
方法)會導致拋出 UnsupportedOperationException
。
Iterator
public boolean equals(Object other)
CertPath
的型別相等並且其證書 List
(通過模擬這些 List
中的 Certificate
)相等時,這兩個 CertPath 才相等。CertPath
不會等於一個非 CertPath
物件。
此方法實作此種演算法。如果覆寫此方法,則必須維護在此指定的行為。
Object
中的 equals
other
- 要與此證書路徑進行相等性測試的物件
Object.hashCode()
,
Hashtable
public int hashCode()
hashCode = path.getType().hashCode();
hashCode = 31*hashCode + path.getCertificates().hashCode();
這確保對於任意兩個證書路徑 path1
和 path2
而言,path1.equals(path2)
就意味著 path1.hashCode()==path2.hashCode()
,正如 Object.hashCode
的常規協定所要求的那樣。
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
Certificate
上調用 toString
方法。
Object
中的 toString
public abstract byte[] getEncoded() throws CertificateEncodingException
CertificateEncodingException
- 如果發生編碼錯誤public abstract byte[] getEncoded(String encoding) throws CertificateEncodingException
encoding
- 要使用的編碼名稱
CertificateEncodingException
- 如果發生編碼錯誤或者編碼請求不受支持public abstract List<? extends Certificate> getCertificates()
List
必須是不可變的和執行緒安全的。
Certificate
List
(可以為空,但是不能為 null)protected Object writeReplace() throws ObjectStreamException
CertPathRep
物件替換要被序列化的 CertPath
。
CertPathRep
ObjectStreamException
- 如果不能創建表示此證書路徑的 CertPathRep
物件
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。