Spec-Zone.ru › OpenJDK 27

Класс Permission

java.lang.Object
java.security.Permission
Все реализованные интерфейсы:
Serializable, Guard
Прямые известные подклассы:
AllPermission, BasicPermission, CardPermission, FilePermission, MBeanPermission, PrivateCredentialPermission, ServicePermission, SocketPermission, UnresolvedPermission, URLPermission
public abstract class Permission extends Object implements Guard, Serializable
Абстрактный класс для представления доступа к системному ресурсу. Все разрешения имеют имя (интерпретация которого зависит от подкласса), а также абстрактные функции для определения семантики конкретного подкласса Permission.

Большинство объектов Permission также содержат список «действий», указывающий, какие действия разрешены для объекта. Например, для объекта java.io.FilePermission именем разрешения является путь к файлу (или каталогу), а список действий (например, "read, write") указывает, какие действия разрешены для указанного файла (или для файлов в указанном каталоге). Список действий необязателен для объектов Permission, таких как java.lang.RuntimePermission, которым такой список не нужен: либо у вас есть именованное разрешение (например, "system.exit"), либо его нет.

Важным методом, который должен быть реализован каждым подклассом, является метод implies для сравнения разрешений. По существу, «разрешение p1 подразумевает разрешение p2» означает, что при наличии разрешения p1 автоматически предоставляется и разрешение p2. Таким образом, это не проверка на равенство, а скорее проверка на включение.

Объекты Permission подобны объектам String тем, что после создания они являются неизменяемыми. Подклассам не следует предоставлять методы, способные изменять состояние разрешения после его создания.

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

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

Конструктор Описание
Permission(String name)
Создает разрешение с указанным именем.

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

Модификатор и тип Метод Описание
void checkGuard(Object object)
Реализует интерфейс guard для разрешения.
abstract boolean equals(Object obj)
Проверяет два объекта Permission на равенство.
abstract String getActions()
Возвращает действия в виде String.
final String getName()
Возвращает имя этого Permission.
abstract int hashCode()
Возвращает значение хеш-кода этого объекта Permission.
abstract boolean implies(Permission permission)
Проверяет, «подразумеваются ли» действия указанного разрешения действиями этого объекта.
PermissionCollection newPermissionCollection()
Возвращает пустой PermissionCollection для заданного объекта Permission или null, если он не определен.
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()
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения указанного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения указанного времени.

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

Permission

public Permission(String name)
Создает разрешение с указанным именем.
Параметры:
name — имя создаваемого объекта Permission.

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

checkGuard

public void checkGuard(Object object) throws SecurityException
Реализует интерфейс guard для разрешения. Если доступ предоставлен, метод завершается без вывода. В противном случае выбрасывается SecurityException.
Определен в:
checkGuard в интерфейсе Guard
Примечание API:
Изначально этот метод выбрасывал SecurityException, если был включен менеджер безопасности, а запрошенный доступ, заданный этим разрешением, не был разрешен. Менеджер безопасности больше не поддерживается; поэтому этот метод всегда выбрасывает SecurityException.
Параметры:
object — объект, доступ к которому контролируется (в настоящее время игнорируется).
Выбрасывает:
SecurityException — всегда
См. также:
  • Guard
  • GuardedObject

implies

public abstract boolean implies(Permission permission)
Проверяет, «подразумеваются ли» действия указанного разрешения действиями этого объекта.

Этот метод должны реализовать подклассы Permission, поскольку только они могут задавать семантику объекта Permission.

Параметры:
permission — разрешение для проверки.
Возвращает:
true, если указанное разрешение подразумевается этим объектом, и false в противном случае.

equals

public abstract boolean equals(Object obj)
Проверяет два объекта Permission на равенство.

Не используйте метод equals для принятия решений об управлении доступом; используйте метод implies.

Переопределяет:
equals в классе Object
Параметры:
obj — объект, с которым сравнивается этот объект.
Возвращает:
true, если оба объекта Permission эквивалентны.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public abstract int hashCode()
Возвращает значение хеш-кода этого объекта Permission.

Требования к поведению метода hashCode для объектов Permission следующие:

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

getName

public final String getName()
Возвращает имя этого Permission. Например, в случае java.io.FilePermission именем будет путь.
Возвращает:
имя этого Permission.

getActions

public abstract String getActions()
Возвращает действия в виде String. Метод является абстрактным, чтобы подклассы могли отложить создание представления String до тех пор, пока оно не понадобится. Подклассы всегда должны возвращать действия в принятом для них каноническом виде. Например, два объекта FilePermission, созданные следующим образом:
  perm1 = new FilePermission(p1,"read,write");
  perm2 = new FilePermission(p2,"write,read");
оба возвращают "read,write" при вызове метода getActions.
Возвращает:
действия этого Permission.

newPermissionCollection

public PermissionCollection newPermissionCollection()
Возвращает пустой PermissionCollection для заданного объекта Permission или null, если он не определен. Подклассам класса Permission следует переопределить этот метод, если для обеспечения корректной семантики при вызове метода PermissionCollection.implies им необходимо хранить разрешения в определенном объекте PermissionCollection. Если возвращается null, вызывающий этот метод может хранить разрешения данного типа в любом PermissionCollection по своему выбору (например, использующем Hashtable или Vector).
Возвращает:
новый объект PermissionCollection для данного типа Permission или null, если он не определен.

toString

public String toString()
Возвращает строку с описанием этого Permission. Принято указывать имя класса, имя разрешения и действия в следующем формате: '("ClassName" "name" "actions")' или '("ClassName" "name")', если список действий null или пуст.
Переопределяет:
toString в классе Object
Возвращает:
сведения об этом Permission.

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