Spec-Zone.ru › OpenJDK 25

Класс 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

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

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, чтобы обеспечить правильную семантику при вызове метода PermissionCollection.implies. Если возвращается 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, 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/security/Permission.html

Spec-Zone.ru

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