Spec-Zone.ru › OpenJDK 24

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/security/Permission.html

Spec-Zone.ru

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