Класс Permission
- Все реализованные интерфейсы:
Serializable, Guard
- Прямые известные подклассы:
AllPermission, BasicPermission, CardPermission, FilePermission, MBeanPermission, PrivateCredentialPermission, ServicePermission, SocketPermission, UnresolvedPermission, URLPermission
public abstract class Permission extends Object implements Guard, Serializable
Большинство объектов Permission также содержат список «действий», определяющий действия, разрешённые для этого объекта. Например, для объекта java.io.FilePermission именем разрешения является путь к файлу (или каталогу), а список действий (например, «read, write») задаёт, какие действия разрешены для указанного файла (или для файлов в указанном каталоге). Список действий необязателен для объектов Permission, таких как java.lang.RuntimePermission, которым такой список не нужен: у вас либо есть именованное разрешение (например, «system.exit»), либо его нет.
Важный метод, который должен быть реализован каждым подклассом, — метод implies для сравнения разрешений. По сути, «разрешение p1 подразумевает разрешение p2» означает, что при наличии разрешения p1 у вас автоматически есть и разрешение p2. Таким образом, это не проверка на равенство, а скорее проверка на включение.
Объекты Permission подобны объектам String тем, что после создания они неизменяемы. Подклассы не должны предоставлять методы, которые могут изменять состояние разрешения после его создания.
- Начиная с:
- 1.2
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Permission |
Создаёт разрешение с указанным именем. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
checkGuard |
Реализует интерфейс Guard для разрешения. |
abstract boolean |
equals |
Проверяет два объекта Permission на равенство. |
abstract String |
getActions() |
Возвращает действия в виде String. |
final String |
getName() |
Возвращает имя этого объекта Permission. |
abstract int |
hashCode() |
Возвращает значение хеш-кода этого объекта Permission. |
abstract boolean |
implies |
Проверяет, «подразумеваются ли» действия этого объекта действиями указанного разрешения. |
PermissionCollection |
newPermissionCollection() |
Возвращает пустой объект PermissionCollection для заданного объекта Permission или null, если такой объект не определён. |
String |
toString() |
Возвращает строку с описанием этого объекта Permission. |
Подробное описание конструкторов
Permission
public Permission(String name)
- Параметры:
-
name— имя создаваемого объектаPermission.
Подробное описание методов
checkGuard
public void checkGuard(Object object) throws SecurityException
SecurityException.- Определён в:
-
checkGuardв интерфейсеGuard - Примечание API:
- Изначально этот метод выбрасывал
SecurityException, если был включён менеджер безопасности и запрошенный доступ, заданный этим разрешением, не был разрешён. Менеджер безопасности больше не поддерживается; поэтому этот метод всегда выбрасываетSecurityException. - Параметры:
-
object— защищаемый объект (в настоящее время игнорируется). - Выбрасывает:
-
SecurityException— всегда - См. также:
implies
public abstract boolean implies(Permission permission)
Этот метод должны реализовать подклассы Permission, поскольку только они могут задавать семантику объекта Permission.
- Параметры:
-
permission— разрешение для проверки. - Возвращает:
-
true, если указанное разрешение подразумевается этим объектом, иfalseв противном случае.
equals
public abstract boolean equals(Object obj)
Permission на равенство. Не используйте метод equals для принятия решений об управлении доступом; используйте метод implies.
hashCode
public abstract int hashCode()
Permission. Требования к поведению метода hashCode для объектов Permission таковы:
- Если метод вызывается для одного и того же объекта
Permissionболее одного раза во время выполнения Java-приложения, методhashCodeдолжен каждый раз возвращать одно и то же целое число. Это число не обязано оставаться неизменным при разных запусках одного и того же приложения. - Если два объекта
Permissionравны согласно методуequals, то вызов методаhashCodeдля каждого из этих двух объектовPermissionдолжен давать одинаковый целочисленный результат.
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 или пуст.
© 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