Spec-Zone.ru › OpenJDK 21

Класс 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 объекта имя разрешения — это путь к файлу (или каталогу), а список действий (например, "чтение, запись") определяет разрешенные действия для указанного файла (или для файлов в указанном каталоге). Список действий необязателен для Permission объектов, таких как java.lang.RuntimePermission, которым такой список не нужен; у вас есть либо указанное разрешение (например, "system.exit"), либо его нет.

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

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

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

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

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

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

Модификатор и тип Метод Описание
void checkGuard(Object object)
Реализует интерфейс защиты для разрешения.
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.

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

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

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

Разрешение

public Permission(String name)
Создает разрешение со заданным именем.
Параметры:
name - имя объекта Permission , который создается.

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

checkGuard

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

implies

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

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

Метод implies используется AccessController для определения того, подразумевается ли запрошенное разрешение другим разрешением, которое известно как действительное в текущем контексте выполнения.

Параметры:
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(java.lang.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. Конвенция заключается в указании имени класса, имени разрешения и действий в следующем формате: '("ИмяКласс" "имя" "действия")', или '("ИмяКласс" "имя")' если список действий null или пуст.
Переопределяет:
toString в классе Object
Возвращает:
информация об этом объекте Permission.

© 1993, 2023, 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/21/docs/api/java.base/java/security/Permission.html

Spec-Zone.ru

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