Класс 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 и Permissions. |
ProtectionDomain(CodeSource codesource,
PermissionCollection permissions,
ClassLoader classloader,
Principal[] principals) |
Создает новый ProtectionDomain, квалифицированный заданным CodeSource, Permissions, ClassLoader и массивом принципалов. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
ClassLoader |
getClassLoader() |
Возвращает ClassLoader этого домена. |
CodeSource |
getCodeSource() |
Возвращает CodeSource этого домена. |
PermissionCollection |
getPermissions() |
Возвращает статические разрешения, предоставленные этому домену. |
Principal[] |
getPrincipals() |
Возвращает массив принципалов для данного домена. |
boolean |
implies(Permission perm) |
Проверяет, подразумевает ли этот ProtectionDomain разрешения, выраженные в объекте Permission. |
boolean |
staticPermissionsOnly() |
Возвращает true, если этот домен содержит только статические разрешения и не проверяет текущую |
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. Они содержат только те, которые были переданы в этот конструктор, и текущая политика не будет консультироваться.
- Parameters:
-
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 для отражения изменений в политике.
- Parameters:
-
codesource- исходный код, связанный с этим доменом -
permissions- разрешения, предоставленные этому домену -
classloader- ClassLoader, связанный с этим доменом -
principals- массив принципалов, связанных с этим доменом. Содержимое массива копируется для защиты от последующих изменений. - Since:
- 1.4
- See Also:
-
Policy.refresh(),Policy.getPermissions(ProtectionDomain)
Подробное описание методов
getCodeSource
public final CodeSource getCodeSource()
Возвращает CodeSource этого домена.
- Returns:
- CodeSource этого домена, который может быть null.
- Since:
- 1.2
getClassLoader
public final ClassLoader getClassLoader()
Возвращает ClassLoader этого домена.
- Returns:
- 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- объект Permission для проверки. - Returns:
- true, если
permподразумевается данным ProtectionDomain.
toString
public String toString()
Преобразует ProtectionDomain в строку.
© 1993, 2020, 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/11/docs/api/java.base/java/security/ProtectionDomain.html