Класс CodeSource
- java.lang.Object
-
- java.security.CodeSource
- Все реализуемые интерфейсы:
Serializable
public class CodeSource extends Object implements Serializable
Этот класс расширяет концепцию кодовой базы, чтобы encapsulate не только местоположение (URL), но и цепочки сертификатов, которые использовались для проверки подписанного кода, полученного из этого местоположения.
- С момента:
- 1.2
- См. также:
- Сериализованная форма
Конструкторы
| Конструктор | Описание |
|---|---|
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) |
Возвращает true, если этот объект CodeSource "подразумевает" указанный CodeSource. |
String |
toString() |
Возвращает строку, описывающую этот CodeSource, включая URL и сертификаты. |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Конструкторы
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(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) или
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, то разрешение SocketPermission, созданное с хостом этого объекта, должно подразумевать разрешение SocketPermission, созданное с хостом codesource.
- Если порт этого объекта (getLocation().getPort()) не равен -1 (т.е. если порт указан), он должен быть равен порту codesource или порту по умолчанию (codesource.getLocation().getDefaultPort()).
- Если файл этого объекта (getLocation().getFile()) не равен файлу codesource, то выполняются следующие проверки: Если файл этого объекта заканчивается на "/-", то файл codesource должен начинаться с файла этого объекта (исключая конечный "-"). Если файл этого объекта заканчивается на "/*", то файл codesource должен начинаться с файла этого объекта и не должен содержать никаких дополнительных разделителей "/". Если файл этого объекта не заканчивается на "/", то файл codesource должен совпадать с файлом этого объекта с добавленным "/".
- Если ссылка этого объекта (getLocation().getRef()) не null, она должна быть равна ссылке codesource.
Например, объекты codesource со следующими местоположениями и null-сертификатами все подразумевают codesource с местоположением "http://java.sun.com/classes/foo.jar" и null-сертификатами:
http:
http://*.sun.com/classes/*
http://java.sun.com/classes/-
http://java.sun.com/classes/foo.jar Обратите внимание, что если у этого CodeSource null-местоположение и null-цепочка сертификатов, то он подразумевает все остальные CodeSource.- Параметры:
-
codesource- CodeSource для сравнения. - Возвращает:
- true, если указанный codesource подразумевается этим codesource, false в противном случае.
toString
public String toString()
Возвращает строку, описывающую этот CodeSource, включая URL и сертификаты.
© 1993, 2020, 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/11/docs/api/java.base/java/security/CodeSource.html