Spec-Zone.ru › OpenJDK 17

Класс Policy

java.lang.Object
java.security.Policy
@Deprecated(since="17", forRemoval=true) public abstract class Policy extends Object
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Этот класс полезен только в сочетании с менеджером безопасности, который устарел и может быть удалён в будущей версии. Следовательно, этот класс также устарел и может быть удалён. Замены для менеджера безопасности или этого класса нет.
Объект Policy отвечает за определение, имеет ли код, выполняющийся в среде выполнения Java, разрешение на выполнение чувствительной к безопасности операции.

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

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

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

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

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

С момента:
1.2
См. также:
  • Provider
  • ProtectionDomain
  • Permission
  • security properties

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static interface  Policy.Parameters
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Этот класс полезен только в сочетании с менеджером безопасности, который устарел и может быть удалён в будущей версии.

Краткое описание полей

Модификатор и тип Поле Описание
static final PermissionCollection UNSUPPORTED_EMPTY_COLLECTION
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Пустой экземпляр PermissionCollection, доступ к которому только для чтения.

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

Конструктор Описание
Policy()
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Конструктор для вызова подклассами.

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

Модификатор и тип Метод Описание
static Policy getInstance(String type, Policy.Parameters params)
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Возвращает объект Policy указанного типа.
static Policy getInstance(String type, Policy.Parameters params, String provider)
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Возвращает объект Policy указанного типа.
static Policy getInstance(String type, Policy.Parameters params, Provider provider)
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Возвращает объект Policy указанного типа.
Policy.Parameters getParameters()
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Возвращает параметры Policy.
PermissionCollection getPermissions(CodeSource codesource)
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Возвращает объект PermissionCollection, содержащий набор разрешений, предоставленных указанному CodeSource.
PermissionCollection getPermissions(ProtectionDomain domain)
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Возвращает объект PermissionCollection, содержащий набор разрешений, предоставленных указанному ProtectionDomain.
static Policy getPolicy()
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Возвращает установленный объект Policy.
Provider getProvider()
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Возвращает поставщика этой политики.
String getType()
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Возвращает тип этой политики.
boolean implies(ProtectionDomain domain, Permission permission)
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Оценивает глобальную политику для разрешений, предоставленных ProtectionDomain, и проверяет, предоставлено ли разрешение.
void refresh()
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Обновляет/перезагружает конфигурацию политики.
static void setPolicy(Policy p)
Устаревший, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Устанавливает глобальный объект 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
Устарело, будет удалено: Этот элемент API будет удалён в будущей версии.
Экземпляр PermissionCollection, который является пустым и доступен только для чтения.
С версии:
1.6

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

Policy

public Policy()
Устарело, будет удалено: Этот элемент API будет удалён в будущей версии.
Конструктор для вызова подклассами.

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

getPolicy

public static Policy getPolicy()
Устарело, будет удалено: Этот элемент API будет удалён в будущей версии.
Возвращает установленный объект Policy. Это значение не следует кэшировать, поскольку оно может быть изменено вызовом setPolicy. Этот метод сначала вызывает SecurityManager.checkPermission с разрешением SecurityPermission("getPolicy"), чтобы убедиться, что получение объекта Policy разрешено.
Возвращает:
установленный Policy.
Исключения:
SecurityException - если существует security manager и его метод checkPermission не разрешает получение объекта Policy.
См. также:
  • SecurityManager.checkPermission(Permission)
  • setPolicy(java.security.Policy)

setPolicy

public static void setPolicy(Policy p)
Устарело, будет удалено: Этот элемент API будет удалён в будущей версии.
Устанавливает глобальный объект Policy. Этот метод сначала вызывает SecurityManager.checkPermission с разрешением SecurityPermission("setPolicy"), чтобы убедиться, что установка Policy разрешена.
Параметры:
p - новый глобальный объект Policy.
Исключения:
SecurityException - если существует security manager и его метод checkPermission не разрешает установку Policy.
См. также:
  • SecurityManager.checkPermission(Permission)
  • getPolicy()

getInstance

public static Policy getInstance(String type, Policy.Parameters params) throws NoSuchAlgorithmException
Устарело, будет удалено: Этот элемент API будет удалён в будущей версии.
Возвращает объект Policy указанного типа.

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

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

Примечание по реализации:
Реализация эталонной реализации JDK дополнительно использует свойство jdk.security.provider.preferred Security для определения предпочтительного порядка поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемых методом Security.getProviders().
Параметры:
type - указанный тип Policy. Список стандартных типов Policy см. в разделе «Policy» в спецификации стандартных имен алгоритмов безопасности Java.
params - параметры для Policy, которые могут быть null.
Возвращает:
новый объект Policy
Исключения:
IllegalArgumentException - если указанные параметры не поняты реализацией PolicySpi из выбранного Provider
NoSuchAlgorithmException - если ни один Provider не поддерживает реализацию PolicySpi для указанного типа
NullPointerException - если type является null
SecurityException - если у вызывающего абонента нет разрешения на получение экземпляра Policy для указанного типа.
С версии:
1.6
См. также:
  • Provider

getInstance

public static Policy getInstance(String type, Policy.Parameters params, String provider) throws NoSuchProviderException, NoSuchAlgorithmException
Устарело, будет удалено: Этот элемент API будет удалён в будущей версии.
Возвращает объект Policy указанного типа.

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

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

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

getInstance

public static Policy getInstance(String type, Policy.Parameters params, Provider provider) throws NoSuchAlgorithmException
Устарело, будет удалено: Этот элемент API будет удалён в будущей версии.
Возвращает объект Policy указанного типа.

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

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

getProvider

public Provider getProvider()
Устарело, будет удалено: Этот элемент API будет удалён в будущей версии.
Возвращает Provider этого Policy.

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

Возвращает:
Provider этого Policy или null.
С версии:
1.6

getType

public String getType()
Устарело, будет удалено: Этот элемент API будет удалён в будущей версии.
Возвращает тип этого Policy.

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

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

getParameters

public Policy.Parameters getParameters()
Устарело, будет удалено: Этот элемент API будет удалён в будущей версии.
Возвращает параметры Policy.

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

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

Получить разрешения

public PermissionCollection getPermissions(CodeSource codesource)
Устарело, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Возвращает объект PermissionCollection, содержащий набор разрешений, предоставленных указанному объекту CodeSource.

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

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

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

Получить разрешения

public PermissionCollection getPermissions(ProtectionDomain domain)
Устарело, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Возвращает объект 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.
С:
1.4

implies

public boolean implies(ProtectionDomain domain, Permission permission)
Устарело, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Оценивает политику глобального уровня для разрешений, предоставленных объекту ProtectionDomain, и проверяет, предоставлено ли разрешение.
Параметры:
domain - объект ProtectionDomain для проверки
permission - объект Permission для проверки на подмножество.
Возвращает:
true, если "разрешение" является надлежащим подмножеством разрешения, предоставленного данному объекту ProtectionDomain.
С:
1.4
См. также:
  • ProtectionDomain

refresh

public void refresh()
Устарело, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Обновляет/перезагружает конфигурацию политики. Поведение этого метода зависит от реализации. Например, вызов refresh для политики на основе файлов приведет к повторному чтению файла.

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

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

Spec-Zone.ru

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