JavaTM 2 Platform
Standard Ed. 6

java.security
類別 CodeSource

java.lang.Object
  繼承者 java.security.CodeSource
所有已實作的介面:
Serializable

public class CodeSource
extends Object
implements Serializable

此類別擴展 codebase 的概念,不僅可以封裝位置 (URL) 而且可以封裝用於驗證起源於該位置的簽章程式碼的證書鏈。

另請參見:
序列化表格

建構子摘要
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 和證書。
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

CodeSource

public CodeSource(URL url,
                  Certificate[] certs)
建構一個 CodeSource 並將其與指定位置和證書集合相關聯。

參數:
url - 位置 (URL)。
certs - 證書。它可以為 null。複製陣列的內容,以防隨後進行修改。

CodeSource

public CodeSource(URL url,
                  CodeSigner[] signers)
建構一個 CodeSource 並將其與指定位置和程式碼簽章者集合相關聯。

參數:
url - 位置 (URL)。
signers - 程式碼簽章者。它可以為 null。複製陣列的內容,以防隨後進行修改。
從以下版本開始:
1.5
方法詳細資訊

hashCode

public int hashCode()
返回此物件的雜湊碼值。

覆寫:
類別 Object 中的 hashCode
返回:
此物件的雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
測試指定對象與此物件之間的相等性。如果兩個 CodeSource 物件的位置具有相同值並且其簽章者證書鏈也具有相同值,則認為這兩個物件相等。不要求證書鏈具有相同的順序。

覆寫:
類別 Object 中的 equals
參數:
obj - 要與此物件進行相等性測試的物件。
返回:
如果物件被視為相等,則返回 true;否則返回 false。
另請參見:
Object.hashCode(), Hashtable

getLocation

public final URL getLocation()
返回與此 CodeSource 關聯的位置。

返回:
位置 (URL)。

getCertificates

public final Certificate[] getCertificates()
返回與此 CodeSource 關聯的證書。

如果此 CodeSource 物件是使用 CodeSource(URL url, CodeSigner[] signers) 建構子創建的,則提取其證書鏈並使用它們來創建一個 Certificate 物件陣列。每個簽章證書後面跟著其支持證書鏈(可能為空)。每個簽章證書及其支持證書鏈按從底到頂進行排序(即簽章證書排在首位置,(根)證書授權排在末位置)。

返回:
證書陣列的副本;如果不存在副本,則返回 null。

getCodeSigners

public final CodeSigner[] getCodeSigners()
返回與此 CodeSource 關聯的程式碼簽章者。

如果此 CodeSource 物件是使用 CodeSource(URL url, Certificate[] certs) 建構子創建的,則提取其證書鏈並使用它們來創建一個 CodeSigner 物件陣列。注意,僅檢查 X.509 證書,所有其他證書型別都將被忽略。

返回:
程式碼簽章者陣列的副本;如果不存在副本,則返回 null。
從以下版本開始:
1.5

implies

public boolean implies(CodeSource codesource)
如果此 CodeSource 物件“暗含”指定的 CodeSource,則返回 true。

更確切地說,此方法將按順序進行以下檢查。如果任何一項檢查失敗,它都返回 false。如果所有檢查都成功了,它將返回 true。

  1. codesource 一定不能為 null。
  2. 如果此物件的證書不為 null,則此物件的所有證書一定都存在於 codesource 的證書中。
  3. 如果此物件的位置 (getLocation()) 不為 null,則針對此物件的位置和 codesource 的位置進行以下檢查:

    1. codesource 的位置一定不能為 null。
    2. 如果此物件的位置等於 codesource 的位置,則返回 true。
    3. 此物件的協議 (getLocation().getProtocol()) 一定等於 codesource 的協議。
    4. 如果此物件的主機 (getLocation().getHost()) 不為 null,則使用此物件的主機建構的 SocketPermission 一定暗含使用 codesource 的主機建構的 SocketPermission。
    5. 如果此物件的埠號 (getLocation().getPort()) 不等於 -1(即如果埠號是指定的),則它必須等於 codesource 的埠號。
    6. 如果此物件的檔案 (getLocation().getFile()) 不等於 codesource 的檔案,則進行以下檢查:如果此物件的檔案以 "/-" 結尾,則 codesource 的檔案必須使用此物件的檔案(不包括尾部 "-")開頭。如果此物件的檔案以 "/*" 結尾,則 codesource 的檔案必須使用此物件的檔案開頭並且一定不能再有 "/" 分隔符。如果此物件的檔案不以 "/" 結尾,則 codesource 的檔案必須使用追加的一個 '/'來比對此物件的檔案。
    7. 如果此物件的參考 (getLocation().getRef()) 不為 null,則它必須等於 codesource 的參考。

例如,具有以下位置和 null 證書的 codesource 物件都暗含具有 "http://java.sun.com/classes/foo.jar" 位置和 null 證書的 codesource。

     http:
     http://*.sun.com/classes/*
     http://java.sun.com/classes/-
     http://java.sun.com/classes/foo.jar
 
注意,如果此 CodeSource 具有 null 位置和 null 證書鏈,則其暗含所有其他的 CodeSource。

參數:
codesource - 用於比較的 CodeSource。
返回:
如果此 codesource 暗含指定的 codesource,則返回 true;否則返回 false。

toString

public String toString()
返回描述此 CodeSource 的字元串,告知其 URL 和證書。

覆寫:
類別 Object 中的 toString
返回:
關於此 CodeSource 的資訊。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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