Класс Security
public final class Security extends Object
Этот класс централизует все свойства безопасности и общие методы безопасности. Одно из его основных применений — управление поставщиками.
Значения по умолчанию свойств безопасности считываются из места, специфичного для реализации, обычно это файл свойств conf/security/java.security в каталоге установки Java.
- Since:
- 1.1
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static int |
addProvider |
Добавляет поставщика в следующую доступную позицию. |
static String |
getAlgorithmProperty |
Устаревший. Этот метод использовался для возвращения значения специального свойства в главном файле поставщика "SUN" криптографических сервисов, чтобы определить, как анализировать параметры, специфичные для алгоритмов. |
static Set<String> |
getAlgorithms |
Возвращает набор строк, содержащих имена всех доступных алгоритмов или типов для указанного Java криптографического сервиса (например, Signature, MessageDigest, Cipher, Mac, KeyStore). |
static String |
getProperty |
Получает значение свойства безопасности. |
static Provider |
getProvider |
Возвращает поставщика, установленного с указанным именем, если он есть. |
static Provider[] |
getProviders() |
Возвращает массив, содержащий всех установленных поставщиков. |
static Provider[] |
getProviders |
Возвращает массив, содержащий всех установленных поставщиков, удовлетворяющих заданному критерию выбора, или null, если таких поставщиков не установлено. |
static Provider[] |
getProviders |
Возвращает массив, содержащий всех установленных поставщиков, удовлетворяющих указанным критериям выбора, или null, если таких поставщиков не установлено. |
static int |
insertProviderAt |
Добавляет нового поставщика в указанную позицию. |
static void |
removeProvider |
Удаляет поставщика с указанным именем. |
static void |
setProperty |
Устанавливает значение свойства безопасности. |
Подробное описание методов
getAlgorithmProperty
@Deprecated public static String getAlgorithmProperty(String algName, String propName)
AlgorithmParameters и KeyFactory , основанные на поставщиках и независимые от алгоритма (введенные в платформе J2SE версии 1.2).- Параметры:
-
algName- имя алгоритма. -
propName- имя свойства для получения. - Возвращает:
- значение указанного свойства.
insertProviderAt
public static int insertProviderAt(Provider provider, int position)
Если заданный поставщик устанавливается в запрошенную позицию, поставщик, который был на этой позиции, и все поставщики с позицией больше position, сдвигаются вверх на одну позицию (в конец списка установленных поставщиков).
Поставщик не может быть добавлен, если он уже установлен.
Если существует менеджер безопасности, вызывается метод SecurityManager.checkSecurityAccess(java.lang.String) с целевым именем разрешения "insertProvider" для проверки возможности добавления нового поставщика. Если эта проверка разрешения отклонена, метод checkSecurityAccess снова вызывается с целевым именем разрешения "insertProvider."+provider.getName(). Если обе проверки отклонены, выбрасывается SecurityException
- Параметры:
-
provider- поставщик, который нужно добавить. -
position- желаемая позиция предпочтения для этого поставщика. - Возвращает:
- фактическая позиция предпочтения, в которой поставщик был добавлен, или -1, если поставщик не был добавлен, потому что он уже установлен.
- Исключения:
-
NullPointerException- если поставщик null -
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)отклоняет доступ к добавлению нового поставщика - См. также:
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)отклоняет доступ к добавлению нового поставщика - См. также:
removeProvider
public static void removeProvider(String name)
При удалении указанного поставщика все поставщики, расположенные в позиции больше, чем позиция удаляемого поставщика, сдвигаются вниз на одну позицию (к началу списка установленных поставщиков).
Этот метод возвращает без изменений, если поставщик не установлен или если имя равно null.
Сначала, если менеджер безопасности существует, вызывается его метод checkSecurityAccess со строкой "removeProvider."+name для проверки возможности удаления поставщика. Если используется реализация по умолчанию метода checkSecurityAccess, это приведет к вызову метода менеджера безопасности checkPermission с разрешением SecurityPermission("removeProvider."+name)
- Параметры:
-
name- имя поставщика для удаления. - Исключения:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)отклоняет доступ к удалению поставщика - См. также:
getProviders
public static Provider[] getProviders()
- Возвращает:
- массив всех установленных поставщиков.
getProvider
public static Provider getProvider(String name)
- Параметры:
-
name- имя поставщика для получения. - Возвращает:
- поставщик с указанным именем.
- См. также:
getProviders
public static Provider[] getProviders(String filter)
Криптографический сервис всегда связан с конкретным алгоритмом или типом. Например, сервис цифровой подписи всегда связан с определенным алгоритмом (например, 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
public static Provider[] getProviders(Map<String,String> filter)
Критерии выбора представлены в виде карты. Каждая пара ключ-значение в карте представляет собой критерий выбора. Поставщик выбирается, если он удовлетворяет всем критериям выбора. Ключ любой пары в такой карте должен иметь один из следующих двух форматов:
- <криптографическая_служба>.<алгоритм_или_тип>
Имя криптографической службы не должно содержать точки.
Значение, связанное с ключом, должно быть пустой строкой.
Поставщик удовлетворяет этому критерию выбора, если он реализует указанный алгоритм или тип для указанной криптографической службы.
- <криптографическая_служба>. <алгоритм_или_тип> <имя_атрибута>
Имя криптографической службы не должно содержать точек. Между <алгоритм_или_тип> и <имя_атрибута> должно быть одно или несколько пробелов.
Значение, связанное с ключом, должно быть непустой строкой. Поставщик удовлетворяет этому критерию выбора, если он реализует указанный алгоритм или тип для указанной криптографической службы и его реализация соответствует ограничению, выраженному заданной парой имя/значение атрибута.
См. Спецификацию Java Security Standard Algorithm Names для информации о стандартных именах криптографических служб, стандартных именах алгоритмов и стандартных именах атрибутов.
- Parameters:
-
filter- критерии для выбора поставщиков. Фильтр регистронезависимый. - Returns:
- все установленные поставщики, которые удовлетворяют критериям выбора, или null, если такие поставщики не были установлены.
- Throws:
-
InvalidParameterException- если фильтр не соответствует требуемому формату -
NullPointerException- если фильтр null - Since:
- 1.3
- See Also:
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
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:
getAlgorithms
public static Set<String> getAlgorithms(String serviceName)
- 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