- java.lang.Object
-
- java.security.CodeSource
-
- 实现的所有接口
-
Serializable
public class CodeSourceextends Objectimplements Serializable
此类扩展了代码库的概念,不仅封装了位置(URL),还封装了用于验证源自该位置的签名代码的证书链。
- 从以下版本开始:
- 1.2
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 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和证书。
-
-
-
构造方法详细信息
-
CodeSource
public CodeSource(URL url, Certificate[] certs)
构造一个CodeSource并将其与指定的位置和证书集相关联。- 参数
-
url
- 位置(URL)。 它可能是null
。 -
certs
- 证书。 它可能是null
。 复制数组的内容以防止后续修改。
-
CodeSource
public CodeSource(URL url, CodeSigner[] signers)
构造一个CodeSource并将其与指定的位置和一组代码签名者相关联。- 参数
-
url
- 位置(URL)。 它可能是null
。 -
signers
- 代码签名者。 它可能是null
。 复制数组的内容以防止后续修改。 - 从以下版本开始:
- 1.5
-
-
方法详细信息
-
hashCode
public int hashCode()
返回此对象的哈希码值。- 重写:
-
hashCode
in classObject
- 结果
- 此对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object obj)
测试指定对象与此对象之间的相等性。 如果两个CodeSource对象的位置具有相同的值并且其签名者证书链具有相同的值,则认为它们是相等的。 证书链不需要具有相同的顺序。- 重写:
-
equals
在课堂Object
- 参数
-
obj
- 要测试与此对象是否相等的对象。 - 结果
- 如果对象被认为是相等的则为true,否则为false。
- 另请参见:
-
Object.hashCode()
,HashMap
-
getLocation
public final URL getLocation()
返回与此CodeSource关联的位置。- 结果
- 位置(URL),如果在构造期间未提供URL,
null
。
-
getCertificates
public final Certificate[] getCertificates()
返回与此CodeSource关联的证书。如果使用
CodeSource(URL url, CodeSigner[] signers)
构造函数创建此CodeSource对象,则会提取其证书链并用于创建Certificate对象的数组。 每个签名者证书后面都有其支持证书链(可能为空)。 每个签署者证书及其支持证书链从下到上排序(即,首先签署者证书,最后签署(根)证书颁发机构)。- 结果
- 证书数组的副本,如果没有,
null
。
-
getCodeSigners
public final CodeSigner[] getCodeSigners()
返回与此CodeSource关联的代码签名者。如果使用
CodeSource(URL url, java.security.cert.Certificate[] certs)
构造函数创建此CodeSource对象,则会提取其证书链并用于创建CodeSigner对象数组。 请注意,仅检查X.509证书 - 忽略所有其他证书类型。- 结果
- 代码签名者数组的副本,如果没有,
null
。 - 从以下版本开始:
- 1.5
-
implies
public boolean implies(CodeSource codesource)
如果此CodeSource对象“隐含”指定的CodeSource,则返回true。更具体地说,该方法进行以下检查。 如果有任何失败,则返回false。 如果它们都成功,则返回true。
- codesource不能为null。
- 如果此对象的证书不为null,则所有此对象的证书必须存在于codesource的证书中。
- 如果此对象的位置(getLocation())不为null,则对该对象的位置和codesource进行以下检查:
- codesource的位置不能为空。
- 如果此对象的位置等于codesource的位置,则返回true。
- 该对象的协议(getLocation()。getProtocol())必须等于codesource的协议,忽略大小写。
- 如果此对象的主机(getLocation()。getHost())不为null,则使用此对象的主机构造的SocketPermission必须暗示使用codesource的主机构造的SocketPermission。
- 如果此对象的端口(getLocation()。getPort())不等于-1(即,如果指定了端口),则它必须等于codesource的端口或默认端口(codesource.getLocation()。getDefaultPort() )。
- 如果此对象的文件(getLocation()。getFile())不等于codesource的文件,则进行以下检查:如果此对象的文件以“/ - ”结尾,则codesource的文件必须以此对象开头文件(不包括尾随“ - ”)。 如果此对象的文件以“/ *”结尾,则codesource的文件必须以此对象的文件开头,并且不能再包含任何“/”分隔符。 如果此对象的文件不以“/”结尾,则codesource的文件必须与此对象的文件匹配,并附加“/”。
- 如果此对象的引用(getLocation()。getRef())不为null,则它必须等于codesource的引用。
例如,具有以下位置和空证书的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具有空位置和空证书链,则它意味着每隔一个CodeSource。- 参数
-
codesource
- 要与之比较的CodeSource。 - 结果
- 如果此codesource隐含指定的codesource,则返回true,否则返回false。
-
-