Spec-Zone.ru › OpenJDK 27

Класс CodeSource

java.lang.Object
java.security.CodeSource
Все реализуемые интерфейсы:
Serializable
public class CodeSource extends Object implements Serializable

Этот класс расширяет понятие кодовой базы, инкапсулируя не только местоположение (URL), но и цепочки сертификатов, использованные для проверки подписанного кода, происходящего из этого местоположения.

С момента:
1.2
См. также:
  • Сериализованная форма

Краткое описание конструкторов

Конструктор Описание
CodeSource(URL url, Certificate[] certs)
Создает CodeSource и связывает его с указанным местоположением и набором сертификатов.
CodeSource(URL url, CodeSigner[] signers)
Создает CodeSource и связывает его с указанным местоположением и набором подписантов кода.

Краткое описание методов

Модификатор и тип Метод Описание
boolean equals(Object obj)
Проверяет равенство указанного объекта и этого объекта.
final Certificate[] getCertificates()
Возвращает сертификаты, связанные с этим CodeSource.
final CodeSigner[] getCodeSigners()
Возвращает подписантов кода, связанных с этим CodeSource.
final URL getLocation()
Возвращает местоположение, связанное с этим CodeSource.
int hashCode()
Возвращает значение хеш-кода этого объекта.
boolean implies(CodeSource codesource)
Возвращает 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(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова 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

public int hashCode()
Возвращает значение хеш-кода этого объекта.
Переопределяет:
hashCode в классе Object
Возвращает:
значение хеш-кода этого объекта
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

equals

public boolean equals(Object obj)
Проверяет равенство указанного объекта и этого объекта. Два объекта CodeSource считаются равными, если их местоположения имеют одинаковые значения и цепочки сертификатов подписантов имеют одинаковые значения. Порядок сертификатов в цепочках может различаться.
Переопределяет:
equals в классе Object
Параметры:
obj — объект, равенство которого этому объекту проверяется.
Возвращает:
true, если объекты считаются равными, и false в противном случае.
См. также:
  • Object.hashCode()
  • HashMap

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)
Возвращает true, если объект 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

public String toString()
Возвращает строку с описанием этого CodeSource, содержащую сведения о его URL и сертификатах.
Переопределяет:
toString в классе Object
Возвращает:
сведения об этом CodeSource.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, общие сведения, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API