Spec-Zone.ru › OpenJDK 21

Класс 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 (реализация по умолчанию подкласса этого абстрактного класса). Реализацию по умолчанию Policy можно изменить, установив значение системного свойства policy.provider на полное имя желаемой реализации подкласса Policy. Для загрузки этого класса используется системный загрузчик классов.

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

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

Метод refresh заставляет объект политики обновить/перезагрузить свои данные. Эта операция зависит от реализации. Например, если объект политики хранит свои данные в конфигурационных файлах, вызов refresh заставит его повторно прочитать конфигурационные файлы политики. Если операция обновления не поддерживается, этот метод ничего не делает. Обратите внимание, что обновлённая политика может не повлиять на классы в конкретной области защиты. Это зависит от реализации поставщика политики метода 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 может быть удален в будущей версии.
Возвращает Provider этой политики.
String getType()
Устарело, для удаления: Этот элемент API может быть удален в будущей версии.
Возвращает тип этой Policy.
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.
Since:
1.6

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

Политика

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

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

getPolicy

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

setPolicy

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

getInstance

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

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

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

Описание реализации:
Реализация JDK Reference дополнительно использует свойство jdk.security.provider.preferred Security, чтобы определить порядок предпочтительных поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемых методом Security.getProviders().
Parameters:
type - указанный тип Policy. См. раздел Policy в Java Security Standard Algorithm Names Specification для списка стандартных типов Policy.
params - параметры для Policy, которые могут быть null.
Returns:
новый Policy объект
Throws:
IllegalArgumentException - если указанные параметры не понятны реализации PolicySpi от выбранного Provider
NoSuchAlgorithmException - если ни один Provider не поддерживает реализацию PolicySpi для указанного типа
NullPointerException - если type является null
SecurityException - если у вызывающего метода нет разрешения получить экземпляр Policy для указанного типа.
Since:
1.6
См. также:
  • Provider

getInstance

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

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

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

Parameters:
type - указанный тип Policy. См. раздел Policy в Java Security Standard Algorithm Names Specification для списка стандартных типов Policy.
params - параметры для Policy, которые могут быть null.
provider - поставщик.
Returns:
новый Policy объект
Throws:
IllegalArgumentException - если указанный поставщик null или пуст, или если указанные параметры не понятны реализацией PolicySpi от указанного поставщика
NoSuchAlgorithmException - если указанный поставщик не поддерживает реализацию PolicySpi для указанного типа
NoSuchProviderException - если указанный поставщик не зарегистрирован в списке поставщиков безопасности
NullPointerException - если type является null
SecurityException - если у вызывающего метода нет разрешения получить экземпляр Policy для указанного типа
Since:
1.6
См. также:
  • Provider

getInstance

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

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

Parameters:
type - указанный тип Policy. См. раздел Policy в Java Security Standard Algorithm Names Specification для списка стандартных типов Policy.
params - параметры для Policy, которые могут быть null.
provider - Provider.
Returns:
новый Policy объект
Throws:
IllegalArgumentException - если указанный Provider является null, или если указанные параметры не понятны реализацией PolicySpi от указанного Provider
NoSuchAlgorithmException - если указанный Provider не поддерживает реализацию PolicySpi для указанного типа
NullPointerException - если type является null
SecurityException - если у вызывающего метода нет разрешения получить экземпляр Policy для указанного типа
Since:
1.6
См. также:
  • Provider

getProvider

public Provider getProvider()
Устарело, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Возвращает Provider этой политики.

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

Returns:
Provider этой политики, или null.
Since:
1.6

getType

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

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

Returns:
тип этого Policy, или null.
Since:
1.6

getParameters

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

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

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

getPermissions

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.

getPermissions

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 если "permission" является надлежащим подмножеством разрешения, предоставленного этому ProtectionDomain.
С:
1.4
См. также:
  • ProtectionDomain

refresh

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

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

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

Spec-Zone.ru

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