Spec-Zone.ru › OpenJDK 21

Класс ProtectionDomain

java.lang.Object
java.security.ProtectionDomain
public class ProtectionDomain extends Object
Класс ProtectionDomain инкапсулирует характеристики области, которая содержит набор классов, экземпляры которых получают набор разрешений при выполнении от имени заданного набора субъектов.

Статический набор разрешений может быть привязан к ProtectionDomain при его создании; такие разрешения предоставляются области независимо от действующей политики. Однако для поддержки динамических политических настроек безопасности ProtectionDomain также может быть создан таким образом, что он динамически сопоставляется с набором разрешений текущей политикой всякий раз, когда проверяется разрешение.

Since:
1.2

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

Конструктор Описание
ProtectionDomain(CodeSource codesource, PermissionCollection permissions)
Создаёт новый ProtectionDomain с заданным CodeSource и разрешениями.
ProtectionDomain(CodeSource codesource, PermissionCollection permissions, ClassLoader classloader, Principal[] principals)
Создаёт новый ProtectionDomain, квалифицированный заданным CodeSource, разрешениями, ClassLoader и массивом субъектов.

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

Модификатор и тип Метод Описание
final ClassLoader getClassLoader()
Возвращает ClassLoader этой области.
final CodeSource getCodeSource()
Возвращает CodeSource этой области.
final PermissionCollection getPermissions()
Возвращает статические разрешения, предоставленные этой области.
final Principal[] getPrincipals()
Возвращает массив субъектов для этой области.
boolean implies(Permission perm)
Проверяет, подразумевает ли эта ProtectionDomain разрешения, выраженные в объекте Permission.
final boolean staticPermissionsOnly()
Возвращает true если эта область содержит только статические разрешения и не проверяет текущую Policy во время проверки разрешений.
String toString()
Преобразует ProtectionDomain в String.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

ProtectionDomain

public ProtectionDomain(CodeSource codesource, PermissionCollection permissions)
Создаёт новый ProtectionDomain с заданным CodeSource и разрешениями. Если разрешения не null, тогда setReadOnly() будет вызван для переданных разрешений.

Разрешения, предоставленные этой области, являются статическими, т. е. вызов метода staticPermissionsOnly() возвращает true. Они содержат только те, что были переданы в этот конструктор, и текущая политика не будет проконсультирована.

Parameters:
codesource - кодовое происхождение, связанное с этой областью
permissions - разрешения, предоставленные этой области

ProtectionDomain

public ProtectionDomain(CodeSource codesource, PermissionCollection permissions, ClassLoader classloader, Principal[] principals)
Создаёт новый ProtectionDomain, квалифицированный заданным CodeSource, разрешениями, ClassLoader и массивом субъектов. Если разрешения не null, тогда setReadOnly() будет вызван для переданных разрешений.

Разрешения, предоставленные этой области, являются динамическими, т. е. вызов метода staticPermissionsOnly() возвращает false. Они включают как статические разрешения, переданные в этот конструктор, так и любые разрешения, предоставленные этой области текущей политикой в момент проверки разрешения.

Этот конструктор обычно используется классами ClassLoaders и DomainCombiners, которые делегируют объекту Policy задачу активного связывания разрешений, предоставленных этой области. Этот конструктор предоставляет поставщику политики возможность дополнить предоставленные PermissionCollection для отражения изменений политики.

Parameters:
codesource - CodeSource связанное с этой областью
permissions - разрешения, предоставленные этой области
classloader - ClassLoader связанное с этой областью
principals - массив объектов Principal связанных с этой областью. Содержимое массива копируется для защиты от последующих изменений.
Since:
1.4
See Also:
  • Policy.refresh()
  • Policy.getPermissions(ProtectionDomain)

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

getCodeSource

public final CodeSource getCodeSource()
Возвращает CodeSource этой области.
Returns:
the CodeSource этой области, который может быть null.
Since:
1.2

getClassLoader

public final ClassLoader getClassLoader()
Возвращает ClassLoader этой области.
Returns:
the ClassLoader этой области, который может быть null.
Since:
1.4

getPrincipals

public final Principal[] getPrincipals()
Возвращает массив субъектов для этой области.
Returns:
непустой массив субъектов для этой области. Возвращает новый массив каждый раз, когда вызывается этот метод.
Since:
1.4

getPermissions

public final PermissionCollection getPermissions()
Возвращает статические разрешения, предоставленные этой области.
Returns:
статический набор разрешений для этой области, который может быть null.
See Also:
  • Policy.refresh()
  • Policy.getPermissions(ProtectionDomain)

staticPermissionsOnly

public final boolean staticPermissionsOnly()
Возвращает true если эта область содержит только статические разрешения и не проверяет текущую Policy во время проверки разрешений.
Returns:
true если эта область содержит только статические разрешения.
Since:
9

implies

public boolean implies(Permission perm)
Проверяет, подразумевает ли эта ProtectionDomain разрешения, выраженные в объекте Permission.

Набор проверяемых разрешений зависит от того, был ли ProtectionDomain создан со статическим набором разрешений или он был связан с динамически сопоставленным набором разрешений.

Если метод staticPermissionsOnly() возвращает true, то разрешение будет проверено только против PermissionCollection, предоставленного при создании.

В противном случае разрешение будет проверено по отношению к комбинации PermissionCollection предоставленного при создании и текущей политике связывания.

Parameters:
perm - объект {code Permission} для проверки.
Returns:
true если perm подразумевается этой ProtectionDomain.

toString

public String toString()
Преобразует ProtectionDomain в String.
Overrides:
toString в классе Object
Returns:
строковое представление объекта.

© 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/ProtectionDomain.html

Spec-Zone.ru

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