Spec-Zone.ru › OpenJDK 17

Класс 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()
Возвращает действия в виде строки.
final String getName()
Возвращает имя этого разрешения.
abstract int hashCode()
Возвращает значение хэш-кода для этого объекта Permission.
abstract boolean implies(Permission permission)
Проверяет, являются ли действия указанного разрешения "подмножеством" действий этого объекта.
PermissionCollection newPermissionCollection()
Возвращает пустую PermissionCollection для данного объекта Permission или null, если она не определена.
String toString()
Возвращает строку, описывающую это разрешение.

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

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

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

Permission

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.

Требуемое поведение для объектов 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()
Возвращает имя этого разрешения. Например, в случае java.io.FilePermission, имя будет путём.
Возвращает:
имя этого разрешения.

getActions

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

newPermissionCollection

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

toString

public String toString()
Возвращает строку, описывающую это разрешение. Правило заключается в указании имени класса, имени разрешения и действий в следующем формате: '("ИмяКласса" "имя" "действия")', или '("ИмяКласса" "имя")', если список действий null или пуст.
Переопределяет:
toString в классе Object
Возвращает:
информация об этом разрешении.

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

Spec-Zone.ru

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