Класс ProtectionDomain
public class ProtectionDomain extends Object
ProtectionDomain инкапсулирует характеристики области, которая содержит набор классов, экземпляры которых получают набор разрешений при выполнении от имени заданного набора субъектов. Статический набор разрешений может быть привязан к ProtectionDomain при его создании; такие разрешения предоставляются области независимо от действующей политики. Однако для поддержки динамических политических настроек безопасности ProtectionDomain также может быть создан таким образом, что он динамически сопоставляется с набором разрешений текущей политикой всякий раз, когда проверяется разрешение.
- Since:
- 1.2
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ProtectionDomain |
Создаёт новый ProtectionDomain с заданным CodeSource и разрешениями. |
ProtectionDomain |
Создаёт новый ProtectionDomain, квалифицированный заданным CodeSource, разрешениями, ClassLoader и массивом субъектов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final ClassLoader |
getClassLoader() |
Возвращает ClassLoader этой области. |
final CodeSource |
getCodeSource() |
Возвращает CodeSource этой области. |
final PermissionCollection |
getPermissions() |
Возвращает статические разрешения, предоставленные этой области. |
final Principal[] |
getPrincipals() |
Возвращает массив субъектов для этой области. |
boolean |
implies |
Проверяет, подразумевает ли эта ProtectionDomain разрешения, выраженные в объекте Permission. |
final boolean |
staticPermissionsOnly() |
Возвращает true если эта область содержит только статические разрешения и не проверяет текущую Policy во время проверки разрешений. |
String |
toString() |
Преобразует ProtectionDomain в String. |
Подробное описание конструкторов
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:
Подробное описание методов
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:
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