Spec-Zone.ru › OpenJDK 17

Класс Security

java.lang.Object
java.security.Security
public final class Security extends Object

Этот класс централизует все свойства безопасности и общие методы безопасности. Одно из его основных применений — управление поставщиками.

Значения по умолчанию свойств безопасности считываются из места, специфичного для реализации, обычно это файл свойств conf/security/java.security в каталоге установки Java.

Since:
1.1

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

Модификатор и тип Метод Описание
static int addProvider(Provider provider)
Добавляет поставщика в следующую доступную позицию.
static String getAlgorithmProperty(String algName, String propName)
Устаревший.
Этот метод использовался для возвращения значения специального свойства в главном файле поставщика "SUN" криптографических сервисов, чтобы определить, как анализировать параметры, специфичные для алгоритмов.
static Set<String> getAlgorithms(String serviceName)
Возвращает набор строк, содержащих имена всех доступных алгоритмов или типов для указанного Java криптографического сервиса (например, Signature, MessageDigest, Cipher, Mac, KeyStore).
static String getProperty(String key)
Получает значение свойства безопасности.
static Provider getProvider(String name)
Возвращает поставщика, установленного с указанным именем, если он есть.
static Provider[] getProviders()
Возвращает массив, содержащий всех установленных поставщиков.
static Provider[] getProviders(String filter)
Возвращает массив, содержащий всех установленных поставщиков, удовлетворяющих заданному критерию выбора, или null, если таких поставщиков не установлено.
static Provider[] getProviders(Map<String,String> filter)
Возвращает массив, содержащий всех установленных поставщиков, удовлетворяющих указанным критериям выбора, или null, если таких поставщиков не установлено.
static int insertProviderAt(Provider provider, int position)
Добавляет нового поставщика в указанную позицию.
static void removeProvider(String name)
Удаляет поставщика с указанным именем.
static void setProperty(String key, String datum)
Устанавливает значение свойства безопасности.

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

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

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

getAlgorithmProperty

@Deprecated public static String getAlgorithmProperty(String algName, String propName)
Устаревший.
Этот метод использовался для получения значения свойств, специфичных для поставщика криптографических сервисов "SUN", чтобы определить, как парсить параметры алгоритма. Используйте новые классы AlgorithmParameters и KeyFactory , основанные на поставщиках и независимые от алгоритма (введенные в платформе J2SE версии 1.2).
Получает указанное свойство для алгоритма. Имя алгоритма должно быть стандартным. См. Спецификацию Java Security Standard Algorithm Names для получения информации о стандартных именах алгоритмов. Возможным применением являются специализированные парсеры алгоритмов, которые могут сопоставлять классы с алгоритмами, которые они понимают (подобно тому, как это делают парсеры ключей).
Параметры:
algName - имя алгоритма.
propName - имя свойства для получения.
Возвращает:
значение указанного свойства.

insertProviderAt

public static int insertProviderAt(Provider provider, int position)
Добавляет нового поставщика в указанную позицию. Позиция определяет порядок предпочтения при поиске поставщиков для запрошенных алгоритмов. Позиция 1-основательная, то есть 1 — наивысшее предпочтение, за ним следуют 2 и так далее.

Если заданный поставщик устанавливается в запрошенную позицию, поставщик, который был на этой позиции, и все поставщики с позицией больше position, сдвигаются вверх на одну позицию (в конец списка установленных поставщиков).

Поставщик не может быть добавлен, если он уже установлен.

Если существует менеджер безопасности, вызывается метод SecurityManager.checkSecurityAccess(java.lang.String) с целевым именем разрешения "insertProvider" для проверки возможности добавления нового поставщика. Если эта проверка разрешения отклонена, метод checkSecurityAccess снова вызывается с целевым именем разрешения "insertProvider."+provider.getName(). Если обе проверки отклонены, выбрасывается SecurityException

Параметры:
provider - поставщик, который нужно добавить.
position - желаемая позиция предпочтения для этого поставщика.
Возвращает:
фактическая позиция предпочтения, в которой поставщик был добавлен, или -1, если поставщик не был добавлен, потому что он уже установлен.
Исключения:
NullPointerException - если поставщик null
SecurityException - если менеджер безопасности существует и его метод SecurityManager.checkSecurityAccess(java.lang.String) отклоняет доступ к добавлению нового поставщика
См. также:
  • getProvider(java.lang.String)
  • removeProvider(java.lang.String)
  • SecurityPermission

addProvider

public static int addProvider(Provider provider)
Добавляет поставщика в следующую доступную позицию.

Если существует менеджер безопасности, вызывается метод SecurityManager.checkSecurityAccess(java.lang.String) с целевым именем разрешения "insertProvider" для проверки возможности добавления нового поставщика. Если проверка разрешения отклонена, checkSecurityAccess вызывается снова с целевым именем разрешения "insertProvider."+provider.getName(). Если обе проверки отклонены, выбрасывается SecurityException

Параметры:
provider - поставщик, который нужно добавить.
Возвращает:
позицию предпочтения, в которую поставщик был добавлен, или -1, если поставщик не был добавлен, потому что он уже установлен.
Исключения:
NullPointerException - если поставщик null
SecurityException - если менеджер безопасности существует и его метод SecurityManager.checkSecurityAccess(java.lang.String) отклоняет доступ к добавлению нового поставщика
См. также:
  • getProvider(java.lang.String)
  • removeProvider(java.lang.String)
  • SecurityPermission

removeProvider

public static void removeProvider(String name)
Удаляет поставщика с указанным именем.

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

Этот метод возвращает без изменений, если поставщик не установлен или если имя равно null.

Сначала, если менеджер безопасности существует, вызывается его метод checkSecurityAccess со строкой "removeProvider."+name для проверки возможности удаления поставщика. Если используется реализация по умолчанию метода checkSecurityAccess, это приведет к вызову метода менеджера безопасности checkPermission с разрешением SecurityPermission("removeProvider."+name)

Параметры:
name - имя поставщика для удаления.
Исключения:
SecurityException - если менеджер безопасности существует и его метод SecurityManager.checkSecurityAccess(java.lang.String) отклоняет доступ к удалению поставщика
См. также:
  • getProvider(java.lang.String)
  • addProvider(java.security.Provider)

getProviders

public static Provider[] getProviders()
Возвращает массив, содержащий всех установленных поставщиков. Порядок поставщиков в массиве соответствует их порядку предпочтения.
Возвращает:
массив всех установленных поставщиков.

getProvider

public static Provider getProvider(String name)
Возвращает установленного поставщика с указанным именем, если он существует. Возвращает null, если поставщик с указанным именем не установлен или если имя равно null.
Параметры:
name - имя поставщика для получения.
Возвращает:
поставщик с указанным именем.
См. также:
  • removeProvider(java.lang.String)
  • addProvider(java.security.Provider)

getProviders

public static Provider[] getProviders(String filter)
Возвращает массив, содержащий всех установленных поставщиков, удовлетворяющих заданному критерию отбора, или null, если такие поставщики не установлены. Возвращаемые поставщики упорядочены в соответствии с их порядком предпочтения.

Криптографический сервис всегда связан с конкретным алгоритмом или типом. Например, сервис цифровой подписи всегда связан с определенным алгоритмом (например, DSA), а сервис CertificateFactory — всегда с определенным типом сертификата (например, X.509).

Критерий отбора должен быть задан в одном из следующих двух форматов:

  • <crypto_service>.<algorithm_or_type>

    Имя криптографического сервиса не должно содержать точки.

    Поставщик удовлетворяет критерию отбора тогда и только тогда, когда он реализует указанный алгоритм или тип для указанного криптографического сервиса.

    Например, "CertificateFactory.X.509" удовлетворяется любым поставщиком, предоставляющим реализацию CertificateFactory для сертификатов X.509.

  • <crypto_service>.<algorithm_or_type> <attribute_name>:<attribute_value>

    Имя криптографического сервиса не должно содержать точек. Должно быть одно или несколько пробелов между <algorithm_or_type> и <attribute_name>.

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

    Например, "Signature.SHA1withDSA KeySize:1024" будет удовлетворен любым поставщиком, реализующим алгоритм цифровой подписи SHA1withDSA с размером ключа 1024 (или больше).

См. Спецификацию Java Security Standard Algorithm Names для получения информации о стандартных именах криптографических сервисов, стандартных именах алгоритмов и стандартных именах атрибутов.

Параметры:
filter - критерий отбора поставщиков. Фильтр регистронезависимый.
Возвращает:
все установленные поставщики, удовлетворяющие критерию отбора, или null, если такие поставщики не установлены.
Исключения:
InvalidParameterException - если фильтр не имеет требуемого формата
NullPointerException - если фильтр null
С тех пор:
1.3
См. также:
  • getProviders(java.util.Map)

getProviders

public static Provider[] getProviders(Map<String,String> filter)
Возвращает массив, содержащий все установленные поставщики, удовлетворяющие указанным критериям выбора, или null, если такие поставщики не были установлены. Возвращаемые поставщики упорядочены в соответствии с их порядком предпочтения.

Критерии выбора представлены в виде карты. Каждая пара ключ-значение в карте представляет собой критерий выбора. Поставщик выбирается, если он удовлетворяет всем критериям выбора. Ключ любой пары в такой карте должен иметь один из следующих двух форматов:

  • <криптографическая_служба>.<алгоритм_или_тип>

    Имя криптографической службы не должно содержать точки.

    Значение, связанное с ключом, должно быть пустой строкой.

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

  • <криптографическая_служба>. <алгоритм_или_тип> <имя_атрибута>

    Имя криптографической службы не должно содержать точек. Между <алгоритм_или_тип> и <имя_атрибута> должно быть одно или несколько пробелов.

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

См. Спецификацию Java Security Standard Algorithm Names для информации о стандартных именах криптографических служб, стандартных именах алгоритмов и стандартных именах атрибутов.

Parameters:
filter - критерии для выбора поставщиков. Фильтр регистронезависимый.
Returns:
все установленные поставщики, которые удовлетворяют критериям выбора, или null, если такие поставщики не были установлены.
Throws:
InvalidParameterException - если фильтр не соответствует требуемому формату
NullPointerException - если фильтр null
Since:
1.3
See Also:
  • getProviders(java.lang.String)

getProperty

public static String getProperty(String key)
Получает значение свойства безопасности.

Сначала, если существует менеджер безопасности, вызывается его метод checkPermission с разрешением java.security.SecurityPermission("getProperty."+key) для проверки возможности получения значения указанного свойства безопасности.

Parameters:
key - ключ извлекаемого свойства.
Returns:
значение свойства безопасности, соответствующее ключу.
Throws:
SecurityException - если менеджер безопасности существует и его метод SecurityManager.checkPermission(java.security.Permission) запрещает доступ к получению значения указанного свойства безопасности
NullPointerException - если ключ null
See Also:
  • setProperty(java.lang.String, java.lang.String)
  • SecurityPermission

setProperty

public static void setProperty(String key, String datum)
Устанавливает значение свойства безопасности.

Сначала, если существует менеджер безопасности, вызывается его метод checkPermission с разрешением java.security.SecurityPermission("setProperty."+key) для проверки возможности установки значения указанного свойства безопасности.

Parameters:
key - имя устанавливаемого свойства.
datum - значение устанавливаемого свойства.
Throws:
SecurityException - если менеджер безопасности существует и его метод SecurityManager.checkPermission(java.security.Permission) запрещает доступ к установке значения указанного свойства безопасности
NullPointerException - если ключ или значение null
See Also:
  • getProperty(java.lang.String)
  • SecurityPermission

getAlgorithms

public static Set<String> getAlgorithms(String serviceName)
Возвращает набор строк, содержащих имена всех доступных алгоритмов или типов для указанной Java-криптографической службы (например, Signature, MessageDigest, Cipher, Mac, KeyStore). Возвращает пустой набор, если ни один поставщик не поддерживает указанную службу или если serviceName равен null. Полный список Java-криптографических служб см. в Руководстве по архитектуре Java Cryptography (JCA). Примечание: возвращаемый набор неизменяем.
Parameters:
serviceName - имя Java-криптографической службы (например, Signature, MessageDigest, Cipher, Mac, KeyStore). Примечание: этот параметр регистронезависимый.
Returns:
набор строк, содержащих имена всех доступных алгоритмов или типов для указанной Java-криптографической службы, или пустой набор, если ни один поставщик не поддерживает указанную службу.
Since:
1.4

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

Spec-Zone.ru

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