Spec-Zone.ru › OpenJDK 27

Класс SocketPermission

java.lang.Object
java.security.Permission
java.net.SocketPermission
Все реализуемые интерфейсы:
Serializable, Guard
@Deprecated(since="26", forRemoval=true) public final class SocketPermission extends Permission implements Serializable
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Это разрешение нельзя использовать для управления доступом к ресурсам, поскольку диспетчер безопасности больше не поддерживается.
Этот класс представляет доступ к сети через сокеты. SocketPermission состоит из спецификации узла и набора «действий», определяющих способы подключения к этому узлу. Узел задается как
    host = (hostname | IPv4address | iPv6reference) [:portrange]
    portrange = portnumber | -portnumber | portnumber-[portnumber]
 
Узел указывается в виде DNS-имени, числового IP-адреса или «localhost» (для локального компьютера). Подстановочный знак «*» можно включить в спецификацию узла DNS-имени один раз. Если он включен, он должен находиться в крайней левой позиции, как в «*.example.com».

Формат IPv6reference должен соответствовать указанному в RFC 2732: формат буквальных IPv6-адресов в URL:

    ipv6reference = "[" IPv6address "]"
Например, экземпляр SocketPermission можно создать следующим образом:
    String hostAddress = inetaddress.getHostAddress();
    if (inetaddress instanceof Inet6Address) {
        sp = new SocketPermission("[" + hostAddress + "]:" + port, action);
    } else {
        sp = new SocketPermission(hostAddress + ":" + port, action);
    }
 
или
    String host = url.getHost();
    sp = new SocketPermission(host + ":" + port, action);
 

Также допустима полная несжатая форма буквального IPv6-адреса.

Порт или диапазон портов указывать необязательно. Спецификация порта в форме «N-», где N — номер порта, означает все порты с номером N и выше, тогда как спецификация в форме «-N» указывает все порты с номером N и ниже. Специальное значение порта 0 обозначает весь диапазон эфемерных портов. Это фиксированный диапазон портов, из которого система может выделять динамические порты. Фактический диапазон может зависеть от системы.

Возможные способы подключения к узлу:

 accept
 connect
 listen
 resolve
 
Действие «listen» имеет смысл только при использовании с «localhost» и означает возможность привязки к указанному порту. Действие «resolve» подразумевается при наличии любого из остальных действий. Действие «resolve» относится к поиску имен узлов/IP-адресов в службе имен.

Перед обработкой строка действий преобразуется в нижний регистр.

Начиная с:
1.2
Внешние спецификации
  • RFC 2732: формат буквальных IPv6-адресов в URL
См. также:
  • Permissions

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

Конструктор Описание
SocketPermission(String host, String action)
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Создает новый объект SocketPermission с указанными действиями.

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

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

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

checkGuard, getName, toString
Модификатор и тип Метод Описание
void checkGuard(Object object)
Реализует интерфейс Guard для разрешения.
final String getName()
Возвращает имя этого Permission.
String toString()
Возвращает строковое описание этого Permission.

Методы, объявленные в классе 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()
Заставляет текущий поток ждать пробуждения, обычно вследствие уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

SocketPermission

public SocketPermission(String host, String action)
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Создает новый объект SocketPermission с указанными действиями. Узел указывается в виде DNS-имени или числового IP-адреса. Можно также указать порт или диапазон портов (отделив их двоеточием от DNS-имени или IP-адреса).

Чтобы указать локальный компьютер, используйте «localhost» в качестве узла. Также обратите внимание: пустая строка узла ("") эквивалентна «localhost».

Параметр действия содержит разделенный запятыми список действий, разрешенных для указанного узла (и порта или портов). Возможные действия: «connect», «listen», «accept», «resolve» или любая их комбинация. Действие «resolve» добавляется автоматически, если указано любое из трех остальных действий.

Примеры создания экземпляра SocketPermission:

   nr = new SocketPermission("www.example.com", "connect");
   nr = new SocketPermission("www.example.com:80", "connect");
   nr = new SocketPermission("*.example.com", "connect");
   nr = new SocketPermission("*.edu", "resolve");
   nr = new SocketPermission("204.160.241.0", "connect");
   nr = new SocketPermission("localhost:1024-65535", "listen");
   nr = new SocketPermission("204.160.241.0:1024-65535", "connect");
Параметры:
host — имя узла или IP-адрес компьютера, необязательно с двоеточием и номером порта либо диапазоном портов.
action — строка действий.
Исключения:
NullPointerException — если какой-либо параметр равен null
IllegalArgumentException — если формат host недопустим либо строка action пуста, имеет неверный формат или содержит действие, не входящее в указанный список возможных действий

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

implies

public boolean implies(Permission p)
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Проверяет, «подразумевает» ли этот объект разрешения сокета указанное разрешение.

В частности, этот метод сначала проверяет, истинны ли все следующие условия (и возвращает false, если хотя бы одно из них не выполняется):

  • p является экземпляром SocketPermission;
  • действия p являются собственным подмножеством действий этого объекта; и
  • диапазон портов p входит в этот диапазон портов. Примечание: диапазон портов игнорируется, если p содержит только действие «resolve».
Затем implies проверяет каждое из следующих условий в указанном порядке и возвращает true, если соответствующее условие выполняется:
  • Если этот объект был инициализирован одним IP-адресом и один из IP-адресов p совпадает с IP-адресом этого объекта.
  • Если этот объект является доменом с подстановочным знаком (например, *.example.com), а каноническое имя p (имя без предшествующего *) заканчивается каноническим именем узла этого объекта. Например, *.example.com подразумевает *.foo.example.com.
  • Если этот объект был инициализирован не одним IP-адресом, а один из IP-адресов этого объекта совпадает с одним из IP-адресов p.
  • Если это каноническое имя совпадает с каноническим именем p.
Если ни одно из условий выше не выполняется, implies возвращает false.
Определено в:
implies в классе Permission
Параметры:
p — разрешение для проверки.
Возвращает:
true, если указанное разрешение подразумевается этим объектом, иначе false.

equals

public boolean equals(Object obj)
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Сравнивает два объекта SocketPermission на равенство.
Определено в:
equals в классе Permission
Параметры:
obj — объект, который нужно сравнить с этим объектом на равенство.
Возвращает:
true, если obj является SocketPermission и имеет те же имя узла, диапазон портов и действия, что и этот объект SocketPermission. Однако диапазон портов не учитывается при сравнении, если obj содержит только действие «resolve».
См. также:
  • Object.hashCode()
  • HashMap

hashCode

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

getActions

public String getActions()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Возвращает каноническое строковое представление действий. Всегда возвращает имеющиеся действия в следующем порядке: connect, listen, accept, resolve.
Определено в:
getActions в классе Permission
Возвращает:
каноническое строковое представление действий.

newPermissionCollection

public PermissionCollection newPermissionCollection()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Возвращает новый объект PermissionCollection для хранения объектов SocketPermission.

Объекты SocketPermission должны храниться таким образом, чтобы их можно было добавлять в коллекцию в любом порядке, но при этом метод PermissionCollection implies можно было реализовать эффективным (и согласованным) образом.

Переопределяет:
newPermissionCollection в классе Permission
Возвращает:
новый объект PermissionCollection, подходящий для хранения объектов SocketPermission.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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