Spec-Zone.ru › OpenJDK 25

Класс URLPermission

java.lang.Object
java.security.Permission
java.net.URLPermission
Все реализуемые интерфейсы:
Serializable, Guard
@Deprecated(since="25", forRemoval=true) public final class URLPermission extends Permission
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Это разрешение нельзя использовать для управления доступом к ресурсам, поскольку диспетчер безопасности больше не поддерживается.
Представляет разрешение на доступ к ресурсу или набору ресурсов, заданных указанным URL, и для заданного набора задаваемых пользователем методов запроса и заголовков запроса. Имя разрешения — это строка URL. Строка действий представляет собой объединение методов запроса и заголовков. Этот класс не ограничивает диапазон имён методов и заголовков.

URL

Строка URL должна иметь следующую структуру.

    scheme : // authority [ / path ] [ ignored-query-or-fragment ]
схема обычно будет http или https, но этот класс не накладывает таких ограничений. полномочия задаются следующим образом:
    authority = [ userinfo @ ] hostrange [ : portrange ]
    portrange = portnumber | -portnumber | portnumber-[portnumber] | *
    hostrange = ([*.] dnsname) | IPv4address | IPv6address
имя DNS — это стандартное имя узла или домена DNS, то есть одна или несколько меток, разделённых символом ".". адрес IPv4 — это стандартный буквальный адрес IPv4, а адрес IPv6 задаётся в соответствии с RFC 2732. Однако буквальные адреса IPv6 должны быть заключены в символы '[]'. Перед спецификацией имени DNS может указываться "*.", что означает, что имя будет соответствовать любому имени узла, крайние правые доменные метки которого совпадают с этим именем. Например, "*.example.com" соответствует "foo.bar.example.com"

диапазон портов используется для указания номера порта либо ограниченного или неограниченного диапазона портов, к которым применяется это разрешение. Если диапазон портов отсутствует или задан неверно, предполагается порт по умолчанию, если схема — http (по умолчанию 80) или https (по умолчанию 443). Для других схем порт по умолчанию не предполагается. Можно указать подстановочный знак, означающий все порты.

информация пользователя является необязательной. Если компонент информации пользователя присутствует, он игнорируется при создании URLPermission и не влияет на другие методы, определённые этим классом.

Компонент пути состоит из последовательности сегментов пути, разделённых символами '/'. Путь также может быть пустым. Путь задаётся способом, аналогичным пути в FilePermission. Как показано в следующих примерах, существует три различных способа задания:

Примеры URL
Пример URL Описание
http://www.example.com/a/b/c.html URL, указывающий на конкретный (единственный) ресурс
http://www.example.com/a/b/* Символ '*' обозначает все ресурсы в том же «каталоге» — другими словами, все ресурсы с тем же количеством компонентов пути, отличающиеся только последним компонентом пути, представленным символом '*'.
http://www.example.com/a/b/- Символ '-' обозначает все ресурсы, рекурсивно расположенные ниже предшествующего пути (например, http://www.example.com/a/b/c/d/e.html соответствует этому примеру).

Символы '*' и '-' можно указывать только в последнем сегменте пути, и они должны быть единственными символами в этом сегменте. При создании URLPermission все компоненты запроса и фрагмента URL игнорируются.

В особом случае принимаются URL вида "scheme:*", обозначающие любой URL с указанной схемой.

Компоненты схемы и полномочий строки URL обрабатываются без учёта регистра. Это означает, что equals(Object), hashCode() и implies(Permission) не учитывают регистр этих компонентов. Если компонент полномочий содержит буквальный IP-адрес, адрес нормализуется для сравнения. Регистр символов в компоненте пути учитывается.

игнорируемый запрос или фрагмент означает любой запрос или фрагмент, указанный после компонента пути и игнорируемый конструкторами этого класса. Он определяется следующим образом:

    ignored-query-or-fragment = [ ? query ] [ # fragment ]
где запрос и фрагмент определены в RFC2396. Поэтому getName() возвращает только компоненты схемы, полномочий и пути строки URL, с которой было создано разрешение.

Строка действий

Строка действий URLPermission представляет собой объединение списка методов и списка заголовков запроса. Эти списки содержат соответственно разрешённые методы запроса и разрешённые заголовки запроса для данного разрешения. Списки разделены двоеточием ':', а элементы каждого списка — запятыми. Примеры:

  • "POST,GET,DELETE"
  • "GET:X-Foo-Request,X-Bar-Request"
  • "POST,GET:Header1,Header2"

В первом примере указаны методы POST, GET и DELETE, но не указаны заголовки запроса. Во втором примере указан один метод запроса и два заголовка. В третьем примере указаны два метода запроса и два заголовка.

Разделитель-двоеточие можно не указывать, если список заголовков запроса пуст. В строке действий не допускаются пробельные символы. Строки действий, передаваемые конструкторам URLPermission, не учитывают регистр и нормализуются: имена методов преобразуются в верхний регистр, а имена заголовков — в форму, определённую RFC2616 (нижний регистр с заглавной первой буквой каждого слова). Каждый из списков может содержать подстановочный знак '*' для обозначения всех методов запроса или всех заголовков соответственно.

Начиная с:
1.8
Внешние спецификации
  • RFC 2296: алгоритм удалённого выбора вариантов HTTP — RVSA/1.0
  • RFC 2732: формат буквальных адресов IPv6 в URL
См. также:
  • Сериализованная форма

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

Конструктор Описание
URLPermission(String url)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Создаёт URLPermission с указанной строкой URL и неограниченными методами и заголовками запроса, вызывая двухаргументный конструктор следующим образом: URLPermission(url, "*:*")
URLPermission(String url, String actions)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Создаёт URLPermission из строки URL, разрешающее указанные методы запроса и задаваемые пользователем заголовки запроса.

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

Модификатор и тип Метод Описание
boolean equals(Object p)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает true, если this.getActions().equals(p.getActions()) и URL объекта p равен URL этого объекта.
String getActions()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает нормализованные список методов и список заголовков запроса в следующем формате:
int hashCode()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает хеш-код, вычисленный на основе хеш-кода строки действий и строки URL.
boolean implies(Permission p)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Проверяет, подразумевает ли это URLPermission указанное разрешение.

Методы, объявленные в классе Permission

checkGuard, getName, newPermissionCollection, toString

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание конструкторов

URLPermission

public URLPermission(String url, String actions)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Создаёт URLPermission из строки URL, разрешающее указанные методы запроса и задаваемые пользователем заголовки запроса. Имя разрешения — строка URL, с которой оно было создано. Внутренне используются только компоненты схемы, полномочий и пути URL. Все компоненты фрагмента или запроса игнорируются. Строка действий разрешения определяется описанным выше форматом.
Параметры:
url — строка URL
actions — строка действий
Исключения:
IllegalArgumentException — если URL недопустим или строка действий содержит пробельные символы.

URLPermission

public URLPermission(String url)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Создаёт URLPermission с указанной строкой URL и неограниченными методами и заголовками запроса, вызывая двухаргументный конструктор следующим образом: URLPermission(url, "*:*")
Параметры:
url — строка URL
Исключения:
IllegalArgumentException — если URL не преобразуется в допустимый URI

Подробное описание методов

getActions

public String getActions()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает нормализованные список методов и список заголовков запроса в следующем формате:
     "method-names : header-names"

где method-names — список методов, разделённых запятыми, а header-names — список разрешённых заголовков, разделённых запятыми. В возвращаемой строке отсутствуют пробельные символы. Если header-names пуст, разделитель-двоеточие может отсутствовать.

Переопределение:
getActions в классе Permission
Возвращает:
действия этого Permission.

implies

public boolean implies(Permission p)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Проверяет, подразумевает ли это URLPermission указанное разрешение. В частности, проверки выполняются в следующей последовательности:
  • если 'p' не является экземпляром URLPermission, вернуть false
  • если какие-либо методы объекта p отсутствуют в списке методов этого объекта и список методов этого объекта не равен "*", вернуть false.
  • если какие-либо заголовки объекта p отсутствуют в списке заголовков запроса этого объекта и список заголовков запроса этого объекта не равен "*", вернуть false.
  • если схема URL этого объекта не равна схеме URL объекта p, вернуть false
  • если специфичная для схемы часть URL этого объекта равна '*', вернуть true
  • если множество узлов, заданных диапазоном узлов в URL объекта p, не является подмножеством диапазона узлов URL этого объекта, вернуть false. Например, "*.foo.example.com" является подмножеством "*.example.com". "foo.bar.example.com" не является подмножеством "*.foo.example.com"
  • если диапазон портов, заданный URL объекта p, не является подмножеством диапазона портов, заданного URL этого объекта, вернуть false.
  • если путь или пути, заданные URL объекта p, входят в множество путей, заданное URL этого объекта, вернуть true
  • в противном случае вернуть false

Ниже показаны примеры сопоставления путей:

Примеры сопоставления путей
путь этого объекта путь объекта p совпадение
/a/b /a/b да
/a/b/* /a/b/c да
/a/b/c/d нет
/a/b/c/- нет
/a/b/- /a/b/c/d да
/a/b/c/d/e да
/a/b/c/* да
Переопределение:
implies в классе Permission
Параметры:
p — разрешение для проверки.
Возвращает:
true, если указанное разрешение подразумевается этим объектом; false — в противном случае.

equals

public boolean equals(Object p)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает true, если this.getActions().equals(p.getActions()) и URL объекта p равен URL этого объекта. В противном случае возвращает false.
Переопределение:
equals в классе Permission
Параметры:
p — объект, с которым проверяется равенство этого объекта.
Возвращает:
true, если оба объекта Permission эквивалентны.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где представлены более подробные описания для разработчиков с концептуальными обзорами, определениями терминов, обходными решениями и рабочими примерами кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/URLPermission.html

Spec-Zone.ru

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