Spec-Zone.ru › OpenJDK 8

Класс Policy

  • java.lang.Object
    • java.security.Policy

public abstract class Policy
extends Object

Объект Policy отвечает за определение, имеет ли код, выполняемый в среде выполнения Java, разрешение на выполнение операции, чувствительной к безопасности.

В любой момент времени в среде выполнения установлен только один объект Policy. Объект Policy можно установить, вызвав метод setPolicy. Установленный объект Policy можно получить, вызвав метод getPolicy.

Если в среде выполнения не был установлен объект Policy, вызов метода getPolicy устанавливает экземпляр реализации политики по умолчанию (реализация по умолчанию подкласса этого абстрактного класса). Реализацию политики по умолчанию можно изменить, установив значение системной переменной policy.provider в полное имя целевой реализации подкласса Policy.

Код приложения может напрямую унаследовать от класса Policy, чтобы предоставить пользовательскую реализацию. Кроме того, экземпляр объекта Policy можно создать, вызвав один из методов-фабрик getInstance со стандартным типом. Типом политики по умолчанию является "JavaPolicy".

После установки экземпляра Policy (по умолчанию или вызовом setPolicy), среда выполнения Java вызывает его метод implies, когда ей нужно определить, может ли выполняемый код (упакованный в ProtectionDomain) выполнить операции, защищенные SecurityManager. Способ, которым объект Policy извлекает данные политики, зависит от самой реализации Policy. Данные политики могут храниться, например, в плоском ASCII-файле, в сериализованном двоичном файле класса Policy или в базе данных.

Метод refresh заставляет объект политики обновить/перезагрузить свои данные. Эта операция зависит от реализации. Например, если объект политики хранит свои данные в файлах конфигурации, вызов refresh заставит его повторно прочитать файлы конфигурации политики. Если операция обновления не поддерживается, этот метод ничего не делает. Обратите внимание, что обновленная политика может не повлиять на классы в определенном ProtectionDomain. Это зависит от реализации поставщиком политики метода implies и стратегии кэширования PermissionCollection.

См. также:
Provider, ProtectionDomain, Permission, security properties

Вложенные классы

Модификатор и тип Класс и описание
static interface  Policy.Parameters

Это представляет собой интерфейс-маркер для параметров Policy.

Поля

Модификатор и тип Поле и описание
static PermissionCollection UNSUPPORTED_EMPTY_COLLECTION

Только для чтения, пустой экземпляр PermissionCollection.

Конструкторы

Конструктор и описание
Policy()

Методы

Модификатор и тип Метод и описание
static Policy getInstance(String type, Policy.Parameters params)

Возвращает объект Policy указанного типа.

static Policy getInstance(String type, Policy.Parameters params, Provider provider)

Возвращает объект Policy указанного типа.

static Policy getInstance(String type, Policy.Parameters params, String provider)

Возвращает объект Policy указанного типа.

Policy.Parameters getParameters()

Возвращает параметры Policy.

PermissionCollection getPermissions(CodeSource codesource)

Возвращает объект PermissionCollection, содержащий набор разрешений, предоставленных указанному CodeSource.

PermissionCollection getPermissions(ProtectionDomain domain)

Возвращает объект PermissionCollection, содержащий набор разрешений, предоставленных указанному ProtectionDomain.

static Policy getPolicy()

Возвращает установленный объект Policy.

Provider getProvider()

Возвращает поставщика этой Policy.

String getType()

Возвращает тип этой Policy.

boolean implies(ProtectionDomain domain, Permission permission)

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

void refresh()

Обновляет/перезагружает конфигурацию политики.

static void setPolicy(Policy p)

Устанавливает системный объект Policy.

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

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

Поля

UNSUPPORTED_EMPTY_COLLECTION

public static final PermissionCollection UNSUPPORTED_EMPTY_COLLECTION

Только для чтения, пустой экземпляр PermissionCollection.

Since:
1.6

Конструкторы

Policy

public Policy()

Методы

getPolicy

public static Policy getPolicy()

Возвращает установленный объект Policy. Это значение не должно кешироваться, так как оно может быть изменено вызовом setPolicy. Этот метод сначала вызывает SecurityManager.checkPermission с разрешением SecurityPermission("getPolicy"), чтобы убедиться, что получение объекта Policy безопасно.

Возвращает:
установленный объект Policy.
Исключения:
SecurityException - если менеджер безопасности существует и его метод checkPermission не разрешает получение объекта Policy.
См. также:
SecurityManager.checkPermission(Permission), setPolicy(java.security.Policy)

setPolicy

public static void setPolicy(Policy p)

Устанавливает системный объект Policy. Этот метод сначала вызывает SecurityManager.checkPermission с разрешением SecurityPermission("setPolicy"), чтобы убедиться, что установка Policy безопасна.

Параметры:
p - новый системный объект Policy.
Исключения:
SecurityException - если менеджер безопасности существует и его метод checkPermission не разрешает установку Policy.
См. также:
SecurityManager.checkPermission(Permission), getPolicy()

getInstance

public static Policy getInstance(String type,
                                 Policy.Parameters params)
                          throws NoSuchAlgorithmException

Возвращает объект Policy указанного типа.

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

Обратите внимание, что список зарегистрированных поставщиков можно получить через метод Security.getProviders().

Параметры:
type - указанный тип Policy. Список стандартных типов Policy см. в разделе Policy документации Java Cryptography Architecture Standard Algorithm Name Documentation.
params - параметры для Policy, которые могут быть null.
Возвращает:
новый объект Policy.
Исключения:
SecurityException - если у вызывающего объекта нет разрешения получить экземпляр Policy для указанного типа.
NullPointerException - если указанный тип равен null.
IllegalArgumentException - если указанные параметры не понятны реализации PolicySpi от выбранного поставщика.
NoSuchAlgorithmException - если ни один поставщик не поддерживает реализацию PolicySpi для указанного типа.
Since:
1.6
См. также:
Provider

getInstance

public static Policy getInstance(String type,
                                 Policy.Parameters params,
                                 String provider)
                          throws NoSuchProviderException,
                                 NoSuchAlgorithmException

Возвращает объект Policy указанного типа.

Возвращается новый объект Policy, инкапсулирующий реализацию PolicySpi от указанного поставщика. Указанный поставщик должен быть зарегистрирован в списке поставщиков.

Обратите внимание, что список зарегистрированных поставщиков можно получить через метод Security.getProviders().

Параметры:
type - указанный тип Policy. Список стандартных типов Policy см. в разделе Policy документации Java Cryptography Architecture Standard Algorithm Name Documentation.
params - параметры для Policy, которые могут быть null.
provider - поставщик.
Возвращает:
новый объект Policy.
Исключения:
SecurityException - если у вызывающего объекта нет разрешения получить экземпляр Policy для указанного типа.
NullPointerException - если указанный тип равен null.
IllegalArgumentException - если указанный поставщик равен null или пуст, или если указанные параметры не понятны реализацией PolicySpi от указанного поставщика.
NoSuchProviderException - если указанный поставщик не зарегистрирован в списке поставщиков безопасности.
NoSuchAlgorithmException - если указанный поставщик не поддерживает реализацию PolicySpi для указанного типа.
Since:
1.6
См. также:
Provider

getInstance

public static Policy getInstance(String type,
                                 Policy.Parameters params,
                                 Provider provider)
                          throws NoSuchAlgorithmException

Возвращает объект Policy указанного типа.

Возвращается новый объект Policy, инкапсулирующий реализацию PolicySpi из указанного объекта Provider. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков.

Параметры:
type - указанный тип Policy. Список стандартных типов Policy см. в разделе Policy документации Java Cryptography Architecture Standard Algorithm Name Documentation.
params - параметры для Policy, которые могут быть null.
provider - поставщик.
Возвращает:
новый объект Policy.
Исключения:
SecurityException - если у вызывающего объекта нет разрешения получить экземпляр Policy для указанного типа.
NullPointerException - если указанный тип равен null.
IllegalArgumentException - если указанный поставщик равен null, или если указанные параметры не понятны реализацией PolicySpi от указанного поставщика.
NoSuchAlgorithmException - если указанный поставщик не поддерживает реализацию PolicySpi для указанного типа.
Since:
1.6
См. также:
Provider

getProvider

public Provider getProvider()

Возвращает поставщика этого объекта Policy.

У этого экземпляра Policy будет поставщик только в том случае, если он был получен посредством вызова Policy.getInstance. В противном случае этот метод возвращает null.

Возвращает:
поставщик этого объекта Policy или null.
Since:
1.6

getType

public String getType()

Возвращает тип этого объекта Policy.

У этого экземпляра Policy будет тип только в том случае, если он был получен посредством вызова Policy.getInstance. В противном случае этот метод возвращает null.

Возвращает:
тип этого объекта Policy или null.
Since:
1.6

getParameters

public Policy.Parameters getParameters()

Возвращает параметры Policy.

У этого экземпляра Policy будут параметры только в том случае, если он был получен посредством вызова Policy.getInstance. В противном случае этот метод возвращает null.

Возвращает:
параметры Policy или null.
Since:
1.6

getPermissions

public PermissionCollection getPermissions(CodeSource codesource)

Возвращает объект PermissionCollection, содержащий набор разрешений, предоставленных указанному CodeSource.

Приложениям не рекомендуется вызывать этот метод, так как эта операция может не поддерживаться всеми реализациями политики. Приложения должны полагаться только на метод implies для выполнения проверок политики. Если приложению абсолютно необходимо вызвать метод getPermissions, оно должно вызвать getPermissions(ProtectionDomain).

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

Параметры:
codesource - CodeSource, которому предоставлен возвращаемый PermissionCollection.
Возвращает:
набор разрешений, предоставленных указанному CodeSource. Если операция поддерживается, возвращаемый набор разрешений должен быть новым изменяемым экземпляром и должен поддерживать разнородные типы Permission. Если операция не поддерживается, возвращается Policy.UNSUPPORTED_EMPTY_COLLECTION.

getPermissions

public PermissionCollection getPermissions(ProtectionDomain domain)

Возвращает объект PermissionCollection, содержащий набор разрешений, предоставленных указанному ProtectionDomain.

Приложениям не рекомендуется вызывать этот метод, так как эта операция может не поддерживаться всеми реализациями политики. Приложения должны полагаться на метод implies для выполнения проверок политики.

В реализации по умолчанию этот метод сначала извлекает разрешения, возвращаемые посредством getPermissions(CodeSource) (CodeSource берется из указанного ProtectionDomain), а также разрешения, находящиеся внутри указанного ProtectionDomain. Все эти разрешения затем объединяются и возвращаются в новом объекте PermissionCollection. Если getPermissions(CodeSource) возвращает Policy.UNSUPPORTED_EMPTY_COLLECTION, то этот метод возвращает разрешения, содержащиеся внутри указанного ProtectionDomain, в новом объекте PermissionCollection.

Этот метод можно переопределить, если реализация политики поддерживает возвращение набора разрешений, предоставленных ProtectionDomain.

Параметры:
domain - ProtectionDomain, которому предоставлен возвращаемый PermissionCollection.
Возвращает:
набор разрешений, предоставленных указанному ProtectionDomain. Если операция поддерживается, возвращаемый набор разрешений должен быть новым изменяемым экземпляром и должен поддерживать разнородные типы Permission. Если операция не поддерживается, возвращается Policy.UNSUPPORTED_EMPTY_COLLECTION.
Since:
1.4

implies

public boolean implies(ProtectionDomain domain,
                       Permission permission)

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

Параметры:
domain - ProtectionDomain для проверки
permission - объект Permission, подлежащий проверке на подмножество.
Возвращает:
true, если "разрешение" является надлежащим подмножеством разрешения, предоставленного этому ProtectionDomain.
Since:
1.4
См. также:
ProtectionDomain

refresh

public void refresh()

Обновляет/перезагружает конфигурацию политики. Поведение этого метода зависит от реализации. Например, вызов refresh для политики на основе файла приведет к повторному чтению файла.

Стандартная реализация этого метода ничего не делает. Этот метод необходимо переопределить, если операция обновления поддерживается реализацией политики.

© 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.

Spec-Zone.ru

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