Класс 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 и сертификатах. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
protected void |
finalize() |
Устарел, будет удален: этот элемент API подлежит удалению в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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
equals
public boolean equals(Object obj)
CodeSource считаются равными, если их местоположения имеют одинаковые значения и цепочки сертификатов подписантов имеют одинаковые значения. Порядок сертификатов в цепочках может различаться.getLocation
public final URL getLocation()
CodeSource.- Возвращает:
- местоположение (URL) или
null, если при создании 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, java.security.cert.Certificate[] certs), его цепочки сертификатов извлекаются и используются для создания массива объектов CodeSigner. Обратите внимание, что проверяются только сертификаты X.509 — все остальные типы сертификатов игнорируются.
- Возвращает:
- копию массива подписантов кода или
null, если подписантов нет. - С момента:
- 1.5
implies
public boolean implies(CodeSource codesource)
CodeSource «подразумевает» указанный CodeSource. В частности, этот метод выполняет следующие проверки. Если хотя бы одна из них завершается неудачей, метод возвращает false. Если все проверки успешны, метод возвращает true.
- codesource не должен быть null.
- Если сертификаты этого объекта не равны null, все сертификаты этого объекта должны присутствовать в сертификатах codesource.
- Если местоположение этого объекта (getLocation()) не равно null, выполняются следующие проверки местоположения этого объекта и местоположения codesource:
- Местоположение codesource не должно быть null.
- Если местоположение этого объекта равно местоположению codesource, возвращается true.
- Протокол этого объекта (getLocation().getProtocol()) должен совпадать с протоколом codesource без учета регистра.
- Если хост этого объекта (getLocation().getHost()) не равен null, последовательно выполняются следующие проверки:
- Если хост этого объекта был инициализирован одним IP-адресом, один из IP-адресов codesource должен совпадать с IP-адресом этого объекта.
- Если хост этого объекта является доменом с подстановочным знаком (например, *.example.com), каноническое имя хоста codesource (имя без предшествующего *) должно заканчиваться каноническим именем хоста этого объекта. Например, *.example.com подразумевает *.foo.example.com.
- Если хост этого объекта не был инициализирован одним IP-адресом, один из IP-адресов этого объекта должен совпадать с одним из IP-адресов codesource либо каноническое имя хоста этого объекта должно совпадать с каноническим именем хоста 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.