Класс 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 объекта имя разрешения — это путь к файлу (или каталогу), а список действий (например, "чтение, запись") определяет разрешенные действия для указанного файла (или для файлов в указанном каталоге). Список действий необязателен для Permission объектов, таких как java.lang.RuntimePermission, которым такой список не нужен; у вас есть либо указанное разрешение (например, "system.exit"), либо его нет.
Важный метод, который должен быть реализован каждым подклассом, — это метод implies для сравнения разрешений. В принципе, "разрешение p1 подразумевает разрешение p2" означает, что если разрешено разрешение p1, то естественно разрешено и разрешение p2. Таким образом, это не тест на равенство, а скорее тест на подмножество.
Permission объекты аналогичны String объектам в том, что они неизменяемы после создания. Подклассы не должны предоставлять методы, которые могут изменить состояние разрешения после его создания.
- С момента:
- 1.2
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Permission |
Создает разрешение с указанным именем. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
checkGuard |
Реализует интерфейс защиты для разрешения. |
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. |
Подробное описание конструкторов
Разрешение
public Permission(String name)
- Параметры:
-
name- имя объектаPermission, который создается.
Подробное описание методов
checkGuard
public void checkGuard(Object object) throws SecurityException
SecurityManager.checkPermission вызывается, передавая этот объект разрешения как разрешение для проверки. Возвращается молча, если доступ предоставлен. В противном случае выбрасывает SecurityException.- Определено в:
-
checkGuardв интерфейсеGuard - Параметры:
-
object- объект, защищаемый (в настоящее время игнорируется). - Исключения:
-
SecurityException- если существует менеджер безопасности и его методcheckPermissionне разрешает доступ. - См. также:
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эквивалентны. - См. также:
hashCode
public abstract int hashCode()
Permission. Требуемое поведение hashCode для объектов Permission следующее:
- Всякий раз, когда он вызывается для одного и того же объекта
Permissionболее одного раза во время выполнения приложения Java, методhashCodeдолжен последовательно возвращать одно и то же целое число. Это целое число не должно сохраняться согласованным от одного выполнения приложения к другому выполнению того же приложения. - Если два объекта
Permissionравны в соответствии с методомequals, то вызов методаhashCodeдля каждого из этих двух объектовPermissionдолжен давать один и тот же результат.
- Переопределяет:
-
hashCodeв классе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