Spec-Zone.ru › OpenJDK 17

Класс ProtectionDomain

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

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

С момента:
1.2

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

Конструктор Описание
ProtectionDomain(CodeSource codesource, PermissionCollection permissions)
Создает новый ProtectionDomain с заданным CodeSource и Permissions.
ProtectionDomain(CodeSource codesource, PermissionCollection permissions, ClassLoader classloader, Principal[] principals)
Создает новый ProtectionDomain, квалифицированный заданным CodeSource, Permissions, 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 в строку.

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

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

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

ProtectionDomain

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

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

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

ProtectionDomain

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

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

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

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

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

getCodeSource

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

getClassLoader

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

getPrincipals

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

getPermissions

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

staticPermissionsOnly

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

implies

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

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

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

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

Параметры:
perm - объект Permission для проверки.
Возвращает:
true, если perm подразумевается этим ProtectionDomain.

toString

public String toString()
Преобразует ProtectionDomain в строку.
Переопределяет:
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/ProtectionDomain.html

Spec-Zone.ru

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