Класс 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)
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, то SocketPermission, созданный с использованием хоста этого объекта, должен подразумевать SocketPermission, созданный с использованием хоста codesource.
- Если порт этого объекта (getLocation().getPort()) не равен -1 (то есть указан порт), он должен совпадать с портом или портом по умолчанию (codesource.getLocation().getDefaultPort()) объекта codesource.
- Если файл этого объекта (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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/CodeSource.html