Класс Provider
- Все реализованные интерфейсы:
Serializable, Cloneable, Map<Object,Object>
- Прямые известные подклассы:
AuthProvider
public abstract class Provider extends Properties
- Алгоритмы (например, DSA, RSA или SHA-256).
- Средства генерации, преобразования и управления ключами (например, для ключей, специфичных для алгоритма).
Некоторые реализации поставщиков во время работы могут столкнуться с неустранимыми внутренними ошибками, например с невозможностью связаться с токеном безопасности. Для обозначения таких ошибок следует использовать ProviderException.
Обратите внимание, что поставщик может реализовать любую службу безопасности Java, использующую подключаемую архитектуру, в которой доступны различные варианты реализации.
Тип службы Provider зарезервирован для использования платформой безопасности. Приложения не могут добавлять, удалять или изменять службы этого типа. В каждый объект Provider автоматически добавляются следующие атрибуты:
| Имя | Значение |
|---|---|
Provider.id name | String.valueOf(provider.getName()) |
Provider.id version | String.valueOf(provider.getVersionStr()) |
Provider.id info | String.valueOf(provider.getInfo()) |
Provider.id className | provider.getClass().getName() |
У каждого поставщика есть имя и строка версии. Обычно поставщик идентифицирует себя с помощью файла с именем java.security.Provider в каталоге ресурсов META-INF/services. Поиск поставщиков служб безопасности выполняется с помощью механизма ServiceLoader и application class loader.
Поставщики могут быть настроены так, чтобы автоматически устанавливаться и становиться доступными во время выполнения через метод Security.getProviders(). Механизм настройки и установки поставщиков служб безопасности зависит от реализации.
- Примечание по реализации:
- Реализация JDK поддерживает статическую регистрацию поставщиков служб безопасности через файл
conf/security/java.securityв каталоге установки Java. Эти поставщики автоматически устанавливаются средой выполнения JDK. Сведения о работе и установке конкретного типа поставщика — поставщика криптографических служб — см. в разделе Класс Provider справочного руководства по архитектуре криптографии Java (JCA). - С версии:
- 1.1
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
Provider.Service |
Описание службы безопасности. |
Краткое описание полей
Поля, объявленные в классе Properties
defaults
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Устарел. |
|
protected |
Создает Provider с указанными именем, строкой версии и сведениями. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
clear() |
Очищает этот Provider, удаляя из него свойства, используемые для поиска средств, реализованных Provider. |
Object |
compute |
Пытается вычислить соответствие для указанного ключа и текущего сопоставленного с ним значения (или null, если соответствия в данный момент нет). |
Object |
computeIfAbsent |
Если с указанным ключом еще не связано значение (или ему сопоставлено null), пытается вычислить его значение с помощью заданной функции сопоставления и добавляет его в эту карту, если результатом не является null. |
Object |
computeIfPresent |
Если для указанного ключа имеется ненулевое значение, пытается вычислить новое соответствие на основе ключа и текущего сопоставленного с ним значения. |
Provider |
configure |
Применяет заданный аргумент конфигурации к этому экземпляру Provider и возвращает настроенный Provider. |
Set |
entrySet() |
Возвращает немодифицируемое представление Set записей свойств, содержащихся в этом Provider. |
void |
forEach |
Выполняет заданное действие для каждой записи этой карты, пока не будут обработаны все записи или действие не вызовет исключение. |
String |
getInfo() |
Возвращает понятное пользователю описание Provider и его служб. |
String |
getName() |
Возвращает имя этого Provider. |
Object |
getOrDefault |
Возвращает значение, сопоставленное с указанным ключом, или defaultValue, если в этой карте нет соответствия для ключа. |
Provider.Service |
getService |
Возвращает службу, описывающую реализацию этим Provider указанного типа алгоритма или псевдонима. |
Set |
getServices() |
Возвращает немодифицируемый Set всех служб, поддерживаемых этим Provider. |
double |
getVersion() |
Устарел. вместо него используйте getVersionStr(). |
String |
getVersionStr() |
Возвращает строку версии этого Provider. |
boolean |
isConfigured() |
Проверяет, настроен ли этот экземпляр Provider. |
Set |
keySet() |
Возвращает немодифицируемое представление Set ключей свойств, содержащихся в этом Provider. |
void |
load |
Читает список свойств (пары ключ-элемент) из входного потока. |
Object |
merge |
Если с указанным ключом еще не связано значение или ему сопоставлено null, связывает его с заданным значением. |
Object |
put |
Задает для свойства key значение value. |
void |
putAll |
Копирует все соответствия из указанной Map в этот Provider. |
Object |
putIfAbsent |
Если с указанным ключом еще не связано значение (или ему сопоставлено null), связывает его с заданным значением и возвращает null; в противном случае возвращает текущее значение. |
protected void |
putService |
Добавляет службу. |
Object |
remove |
Удаляет свойство key (и соответствующее ему value). |
boolean |
remove |
Удаляет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение. |
protected void |
removeService |
Удаляет службу, ранее добавленную с помощью putService(). |
Object |
replace |
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено какое-либо значение. |
boolean |
replace |
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение. |
void |
replaceAll |
Заменяет значение каждой записи результатом вызова заданной функции для этой записи в порядке, в котором записи возвращаются итератором набора записей, пока не будут обработаны все записи или функция не вызовет исключение. |
String |
toString() |
Возвращает строку с именем и строкой версии этого Provider. |
Collection |
values() |
Возвращает немодифицируемое представление Collection значений свойств, содержащихся в этом Provider. |
Методы, объявленные в классе Properties
getProperty, getProperty, list, list, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, storeToXML, stringPropertyNames
Подробное описание конструкторов
Provider
@Deprecated(since="9") protected Provider(String name, double version, String info)
Provider(String, String, String).Provider с указанным именем, номером версии и сведениями. Вызов этого конструктора эквивалентен вызову Provider(String, String, String) с name именем, Double.toString(version) и info.- Параметры:
-
name— имя провайдера. -
version— номер версии провайдера. -
info— описание провайдера и его служб.
Provider
protected Provider(String name, String versionStr, String info)
Provider с указанными именем, строкой версии и сведениями. Строка версии содержит номер версии, за которым при необходимости следуют дополнительные сведения, отделенные одним из символов «+» или «-». Формат номера версии:
^[0-9]+(\.[0-9]+)*
Чтобы вернуть номер версии типа double, если в нем более двух компонентов (разделенных символом «.», как указано выше), сохраняются только первые два компонента. Полученная строка передается в Double.valueOf(String) для формирования номера версии, то есть getVersion().
Если преобразование не удалось, будет использоваться значение 0.
- Параметры:
-
name— имя провайдера. -
versionStr— строка версии провайдера. -
info— описание провайдера и его служб. - С версии:
- 9
Подробное описание методов
configure
public Provider configure(String configArg)
Provider и возвращает настроенный Provider. Обратите внимание: если этот Provider нельзя настроить на месте, будет создан и возвращен новый Provider. Поэтому вызывающим сторонам всегда следует использовать возвращенный Provider.- Требования к реализации:
- Реализация по умолчанию выбрасывает
UnsupportedOperationException. Подклассам следует переопределять этот метод, только если поддерживается аргумент конфигурации. - Параметры:
-
configArg— сведения о конфигурации этого провайдера. - Возвращает:
Provider, настроенный с переданным аргументом конфигурации.- Выбрасывает:
-
UnsupportedOperationException— если аргумент конфигурации не поддерживается. -
NullPointerException— если переданный аргумент конфигурации равенnull. -
InvalidParameterException— если переданный аргумент конфигурации недопустим. - С версии:
- 9
isConfigured
public boolean isConfigured()
Provider.- Требования к реализации:
- Реализация по умолчанию возвращает
true. Подклассам следует переопределять этот метод, если дляProviderтребуется явный вызовconfigureпосле создания. - Возвращает:
true, если дополнительная настройка не требуется, иначеfalse.- С версии:
- 9
getName
public String getName()
Provider.- Возвращает:
- имя этого
Provider.
getVersion
@Deprecated(since="9") public double getVersion()
getVersionStr().Provider.- Возвращает:
- номер версии этого
Provider.
getVersionStr
public String getVersionStr()
Provider.- Возвращает:
- строку версии этого
Provider. - С версии:
- 9
getInfo
public String getInfo()
Provider и его служб. Это может быть HTML-страница с соответствующими ссылками.- Возвращает:
- описание
Providerи его служб.
toString
clear
load
public void load(InputStream inStream) throws IOException
- Переопределяет:
-
loadв классеProperties - Параметры:
-
inStream— входной поток. - Выбрасывает:
-
IOException— если при чтении из входного потока произошла ошибка. - См. также:
putAll
public void putAll(Map<?,?> t)
Provider. Эти соответствия заменят все свойства, которые этот Provider содержал для ключей, имеющихся в указанной Map.entrySet
public Set<Map.Entry<Object,Object>> entrySet()
Provider.keySet
public Set<Object> keySet()
Provider.values
public Collection<Object> values()
Provider.put
public Object put(Object key, Object value)
key указанное значение value.putIfAbsent
public Object putIfAbsent(Object key, Object value)
null), связывает его с заданным значением и возвращает null; в противном случае возвращает текущее значение.- Параметры:
-
key— ключ, с которым нужно связать указанное значение -
value— значение, которое нужно связать с указанным ключом - Возвращает:
- предыдущее значение, связанное с указанным ключом, или
null, если для ключа не было соответствия. (Возвращаемое значениеnullтакже может означать, что ранее карта связывала ключ со значениемnull, если реализация поддерживает значения null.) - С версии:
- 1.8
remove
public Object remove(Object key)
key (и соответствующее ему значение value).remove
public boolean remove(Object key, Object value)
- Параметры:
-
key— ключ, с которым связано указанное значение -
value— ожидаемое значение, связанное с указанным ключом - Возвращает:
-
true, если значение было удалено - С версии:
- 1.8
replace
public boolean replace(Object key, Object oldValue, Object newValue)
- Параметры:
-
key— ключ, с которым связано указанное значение -
oldValue— ожидаемое значение, связанное с указанным ключом -
newValue— значение, которое нужно связать с указанным ключом - Возвращает:
-
true, если значение было заменено - С версии:
- 1.8
replace
public Object replace(Object key, Object value)
- Параметры:
-
key— ключ, с которым связано указанное значение -
value— значение, которое нужно связать с указанным ключом - Возвращает:
- предыдущее значение, связанное с указанным ключом, или
null, если для ключа не было соответствия. (Возвращаемое значениеnullтакже может означать, что ранее карта связывала ключ со значениемnull, если реализация поддерживает значения null.) - С версии:
- 1.8
replaceAll
public void replaceAll(BiFunction<? super Object, ? super Object, ? extends Object> function)
- Параметры:
-
function— функция, применяемая к каждой записи - С версии:
- 1.8
compute
public Object compute(Object key, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
null, если текущего соответствия нет).- Определено в:
-
computeв интерфейсеMap<Object,Object> - Переопределяет:
-
computeв классеHashtable<Object,Object> - Параметры:
-
key— ключ, с которым нужно связать указанное значение -
remappingFunction— функция повторного отображения для вычисления значения - Возвращает:
- новое значение, связанное с указанным ключом, или null, если значение отсутствует
- С версии:
- 1.8
computeIfAbsent
public Object computeIfAbsent(Object key, Function<? super Object, ? extends Object> mappingFunction)
null), пытается вычислить его значение с помощью заданной функции отображения и добавляет его в эту карту, если результат не равен null.- Определено в:
-
computeIfAbsentв интерфейсеMap<Object,Object> - Переопределяет:
-
computeIfAbsentв классеHashtable<Object,Object> - Параметры:
-
key— ключ, с которым нужно связать указанное значение -
mappingFunction— функция отображения для вычисления значения - Возвращает:
- текущее значение (существующее или вычисленное), связанное с указанным ключом, или null, если вычисленное значение равно null
- С версии:
- 1.8
computeIfPresent
public Object computeIfPresent(Object key, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
- Определено в:
-
computeIfPresentв интерфейсеMap<Object,Object> - Переопределяет:
-
computeIfPresentв классеHashtable<Object,Object> - Параметры:
-
key— ключ, с которым нужно связать указанное значение -
remappingFunction— функция повторного отображения для вычисления значения - Возвращает:
- новое значение, связанное с указанным ключом, или null, если значение отсутствует
- С версии:
- 1.8
merge
public Object merge(Object key, Object value, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
null, связывает его с заданным значением. В противном случае заменяет значение результатом заданной функции повторного отображения или удаляет его, если результат равен null. Этот метод может быть полезен при объединении нескольких сопоставленных значений для одного ключа.- Определено в:
-
mergeв интерфейсеMap<Object,Object> - Переопределяет:
-
mergeв классеHashtable<Object,Object> - Параметры:
-
key— ключ, с которым нужно связать результирующее значение -
value— ненулевое значение, объединяемое с существующим значением, связанным с ключом; если существующего значения нет или с ключом связано значение null, это значение будет связано с ключом -
remappingFunction— функция повторного отображения для повторного вычисления значения, если оно существует - Возвращает:
- новое значение, связанное с указанным ключом, или null, если с ключом не связано никакое значение
- С версии:
- 1.8
getOrDefault
public Object getOrDefault(Object key, Object defaultValue)
MapdefaultValue, если в этой карте нет соответствия для ключа.- Параметры:
-
key— ключ, значение которого нужно вернуть -
defaultValue— значение по умолчанию для ключа - Возвращает:
- значение, сопоставленное указанному ключу, или
defaultValue, если в этой карте нет соответствия для ключа - С версии:
- 1.8
forEach
public void forEach(BiConsumer<? super Object, ? super Object> action)
Map- Параметры:
-
action— действие, выполняемое для каждой записи - С версии:
- 1.8
getService
public Provider.Service getService(String type, String algorithm)
null. Если найдены две подходящие службы — одна добавлена в этот провайдер с помощью putService(), а другая с помощью put(), — возвращается служба, добавленная с помощью putService().- Параметры:
-
type— тип запрашиваемойservice(например,MessageDigest) -
algorithm— название алгоритма (или альтернативный псевдоним) запрашиваемой службы без учета регистра (например,SHA-1) - Возвращает:
- службу, описывающую соответствующую службу этого Provider, или
null, если такой службы нет - Выбрасывает:
-
NullPointerException— если тип или алгоритм равенnull - С версии:
- 1.5
getServices
public Set<Provider.Service> getServices()
Provider.- Возвращает:
- неизменяемый Set всех служб, поддерживаемых этим
Provider - С версии:
- 1.5
putService
protected void putService(Provider.Service s)
putService(), она заменяется новой службой. Этот метод также помещает сведения об этой службе в значения Hashtable провайдера в формате, описанном в справочном руководстве по архитектуре криптографии Java (JCA).- Параметры:
-
s— служба, которую нужно добавить - Выбрасывает:
-
NullPointerException— если s равенnull - С версии:
- 1.5
removeService
protected void removeService(Provider.Service s)
putService(). Указанная служба удаляется из этого Provider. Она больше не будет возвращаться методом getService(), а ее сведения будут удалены из Hashtable этого провайдера.- Параметры:
-
s— служба, которую нужно удалить - Выбрасывает:
-
NullPointerException— если s равенnull - С версии:
- 1.5
© 1993, 2025, 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/25/docs/api/java.base/java/security/Provider.html
Provider(String, String, String).