Класс CodeSource
- Все реализованные интерфейсы:
Serializable
public class CodeSource extends Object implements Serializable
Этот класс расширяет концепцию кодовой базы, чтобы включать не только расположение (URL), но и цепочки сертификатов, которые использовались для проверки подписанного кода, полученного из этого расположения.
- С:
- 1.2
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CodeSource |
Создает CodeSource и связывает его с указанным расположением и набором сертификатов. |
CodeSource |
Создает CodeSource и связывает его с указанным расположением и набором подписывающих кода. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Проверяет равенство между заданным объектом и этим объектом. |
final Certificate[] |
getCertificates() |
Возвращает сертификаты, связанные с этим CodeSource. |
final CodeSigner[] |
getCodeSigners() |
Возвращает подписывающие кода, связанные с этим CodeSource. |
final URL |
getLocation() |
Возвращает расположение, связанное с этим CodeSource. |
int |
hashCode() |
Возвращает значение хэш-кода для этого объекта. |
boolean |
implies |
Возвращает true, если этот объект CodeSource "подразумевает" указанный объект CodeSource. |
String |
toString() |
Возвращает строку, описывающую этот CodeSource, указывая его URL и сертификаты. |
Подробное описание конструкторов
CodeSource
public CodeSource(URL url, Certificate[] certs)
- Параметры:
-
url- местоположение (URL). Оно может бытьnull. -
certs- сертификат(ы). Он может бытьnull. Содержимое массива копируется для защиты от последующих изменений.
CodeSource
public CodeSource(URL url, CodeSigner[] signers)
- Параметры:
-
url- местоположение (URL). Оно может бытьnull. -
signers- подписывающие кода. Он может бытьnull. Содержимое массива копируется для защиты от последующих изменений. - С:
- 1.5
Подробное описание методов
hashCode
equals
public boolean equals(Object obj)
getLocation
public final URL getLocation()
- Возвращает:
- местоположение (URL) или
null, если при создании не было указано URL.
getCertificates
public final Certificate[] getCertificates()
Если этот объект CodeSource был создан с использованием конструктора CodeSource(URL url, CodeSigner[] signers), то его цепочки сертификатов извлекаются и используются для создания массива объектов сертификата. Каждый сертификат подписи сопровождается его поддерживающей цепочкой сертификатов (которая может быть пустой). Каждый сертификат подписи и его поддерживающая цепочка сертификатов упорядочены снизу вверх (т. е. сертификат подписи первым, а (корневой) сертификат уполномочившей организации последним).
- Возвращает:
- копию массива сертификатов или
null, если его нет.
getCodeSigners
public final CodeSigner[] getCodeSigners()
Если этот объект CodeSource был создан с использованием конструктора CodeSource(URL url, java.security.cert.Certificate[] certs), то его цепочки сертификатов извлекаются и используются для создания массива объектов подписывающих кода. Обратите внимание, что рассматриваются только сертификаты X.509; все другие типы сертификатов игнорируются.
- Возвращает:
- копию массива подписывающих кода или
null, если его нет. - С:
- 1.5
implies
public boolean implies(CodeSource codesource)
Более конкретно, этот метод выполняет следующие проверки. Если любая из них не удается, возвращается false. Если все они проходят успешно, возвращается true.
- codesource не должен быть null.
- Если сертификаты этого объекта не null, все сертификаты этого объекта должны быть присутствовать в сертификатах codesource.
- Если местоположение этого объекта (getLocation()) не null, выполняются следующие проверки относительно местоположения этого объекта и codesource:
- Местоположение codesource не должно быть null.
- Если местоположение этого объекта равно местоположению codesource, возвращает true.
- Протокол этого объекта (getLocation().getProtocol()) должен быть равен протоколу codesource, не учитывая регистр.
- Если хост этого объекта (getLocation().getHost()) не null, то SocketPermission, созданный с хостом этого объекта, должен подразумевать SocketPermission, созданный с хостом codesource.
- Если порт этого объекта (getLocation().getPort()) не равен -1 (то есть, если указан порт), он должен быть равен порту codesource или порту по умолчанию (codesource.getLocation().getDefaultPort()).
- Если файл этого объекта (getLocation().getFile()) не равен файлу codesource, выполняются следующие проверки: Если файл этого объекта заканчивается на "/-", то файл codesource должен начинаться с файла этого объекта (исключая заключительный "-"). Если файл этого объекта заканчивается на "/*", то файл codesource должен начинаться с файла этого объекта и не должен содержать дополнительных разделителей "/". Если файл этого объекта не заканчивается на "/", то файл codesource должен совпадать с файлом этого объекта с добавленным '/'.
- Если ссылка этого объекта (getLocation().getRef()) не null, она должна быть равна ссылке codesource.
Например, объекты codesource с указанными местоположениями и null сертификатами все подразумевают объект codesource с местоположением http://www.example.com/classes/foo.jar и null сертификатами:
http:
http://*.example.com/classes/*
http://www.example.com/classes/-
http://www.example.com/classes/foo.jar
Обратите внимание, что если у этого объекта CodeSource есть null местоположение и null цепочка сертификатов, он подразумевает любой другой CodeSource.- Параметры:
-
codesource-CodeSourceдля сравнения. - Возвращает:
-
true, если указанный объект codesource подразумевается этим объектом codesource,falseв противном случае.
toString
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/security/CodeSource.html