Spec-Zone.ru › OpenJDK 25

Класс Provider

java.lang.Object
java.util.Dictionary<Object,Object>
java.util.Hashtable<Object,Object>
java.util.Properties
java.security.Provider
Все реализованные интерфейсы:
Serializable, Cloneable, Map<Object,Object>
Прямые известные подклассы:
AuthProvider
public abstract class Provider extends Properties
Этот класс представляет собой «поставщика» для Java Security API, который реализует некоторые или все компоненты Java Security. Реализуемые поставщиком службы могут включать:
  • Алгоритмы (например, DSA, RSA или SHA-256).
  • Средства генерации, преобразования и управления ключами (например, для ключей, специфичных для алгоритма).

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

Обратите внимание, что поставщик может реализовать любую службу безопасности Java, использующую подключаемую архитектуру, в которой доступны различные варианты реализации.

Тип службы Provider зарезервирован для использования платформой безопасности. Приложения не могут добавлять, удалять или изменять службы этого типа. В каждый объект 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

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

Provider(String name, double version, String info)
Provider(String name, String versionStr, String info)
Модификатор Конструктор Описание
protected
Устарел.
вместо него используйте Provider(String, String, String).
protected
Создает Provider с указанными именем, строкой версии и сведениями.

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

Модификатор и тип Метод Описание
void clear()
Очищает этот Provider, удаляя из него свойства, используемые для поиска средств, реализованных Provider.
Object compute(Object key, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
Пытается вычислить соответствие для указанного ключа и текущего сопоставленного с ним значения (или null, если соответствия в данный момент нет).
Object computeIfAbsent(Object key, Function<? super Object, ? extends Object> mappingFunction)
Если с указанным ключом еще не связано значение (или ему сопоставлено null), пытается вычислить его значение с помощью заданной функции сопоставления и добавляет его в эту карту, если результатом не является null.
Object computeIfPresent(Object key, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
Если для указанного ключа имеется ненулевое значение, пытается вычислить новое соответствие на основе ключа и текущего сопоставленного с ним значения.
Provider configure(String configArg)
Применяет заданный аргумент конфигурации к этому экземпляру Provider и возвращает настроенный Provider.
Set<Map.Entry<Object,Object>> entrySet()
Возвращает немодифицируемое представление Set записей свойств, содержащихся в этом Provider.
void forEach(BiConsumer<? super Object, ? super Object> action)
Выполняет заданное действие для каждой записи этой карты, пока не будут обработаны все записи или действие не вызовет исключение.
String getInfo()
Возвращает понятное пользователю описание Provider и его служб.
String getName()
Возвращает имя этого Provider.
Object getOrDefault(Object key, Object defaultValue)
Возвращает значение, сопоставленное с указанным ключом, или defaultValue, если в этой карте нет соответствия для ключа.
Provider.Service getService(String type, String algorithm)
Возвращает службу, описывающую реализацию этим Provider указанного типа алгоритма или псевдонима.
Set<Provider.Service> getServices()
Возвращает немодифицируемый Set всех служб, поддерживаемых этим Provider.
double getVersion()
Устарел.
вместо него используйте getVersionStr().
String getVersionStr()
Возвращает строку версии этого Provider.
boolean isConfigured()
Проверяет, настроен ли этот экземпляр Provider.
Set<Object> keySet()
Возвращает немодифицируемое представление Set ключей свойств, содержащихся в этом Provider.
void load(InputStream inStream)
Читает список свойств (пары ключ-элемент) из входного потока.
Object merge(Object key, Object value, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
Если с указанным ключом еще не связано значение или ему сопоставлено null, связывает его с заданным значением.
Object put(Object key, Object value)
Задает для свойства key значение value.
void putAll(Map<?,?> t)
Копирует все соответствия из указанной Map в этот Provider.
Object putIfAbsent(Object key, Object value)
Если с указанным ключом еще не связано значение (или ему сопоставлено null), связывает его с заданным значением и возвращает null; в противном случае возвращает текущее значение.
protected void putService(Provider.Service s)
Добавляет службу.
Object remove(Object key)
Удаляет свойство key (и соответствующее ему value).
boolean remove(Object key, Object value)
Удаляет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение.
protected void removeService(Provider.Service s)
Удаляет службу, ранее добавленную с помощью putService().
Object replace(Object key, Object value)
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено какое-либо значение.
boolean replace(Object key, Object oldValue, Object newValue)
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение.
void replaceAll(BiFunction<? super Object, ? super Object, ? extends Object> function)
Заменяет значение каждой записи результатом вызова заданной функции для этой записи в порядке, в котором записи возвращаются итератором набора записей, пока не будут обработаны все записи или функция не вызовет исключение.
String toString()
Возвращает строку с именем и строкой версии этого Provider.
Collection<Object> values()
Возвращает немодифицируемое представление Collection значений свойств, содержащихся в этом Provider.

Методы, объявленные в классе Properties

getProperty, getProperty, list, list, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, storeToXML, stringPropertyNames

Методы, объявленные в классе Hashtable

clone, contains, containsKey, containsValue, elements, equals, get, hashCode, isEmpty, keys, rehash, size

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

finalize, getClass, notify, notifyAll, wait, wait, wait

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

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

public String toString()
Возвращает строку с именем и строкой версии этого Provider.
Переопределяет:
toString в классе Hashtable<Object,Object>
Возвращает:
строку с именем и строкой версии этого Provider.

clear

public void clear()
Очищает этот Provider, удаляя свойства, которые использовались для поиска средств, реализованных Provider.
Определено в:
clear в интерфейсе Map<Object,Object>
Переопределяет:
clear в классе Hashtable<Object,Object>
С версии:
1.2

load

public void load(InputStream inStream) throws IOException
Считывает список свойств (пары ключей и элементов) из входного потока.
Переопределяет:
load в классе Properties
Параметры:
inStream — входной поток.
Выбрасывает:
IOException — если при чтении из входного потока произошла ошибка.
См. также:
  • Properties.load(Reader)

putAll

public void putAll(Map<?,?> t)
Копирует все соответствия из указанной Map в этот Provider. Эти соответствия заменят все свойства, которые этот Provider содержал для ключей, имеющихся в указанной Map.
Определено в:
putAll в интерфейсе Map<Object,Object>
Переопределяет:
putAll в классе Hashtable<Object,Object>
Параметры:
t — соответствия, которые нужно сохранить в этой карте
С версии:
1.2

entrySet

public Set<Map.Entry<Object,Object>> entrySet()
Возвращает неизменяемое представление Set записей свойств, содержащихся в этом Provider.
Определено в:
entrySet в интерфейсе Map<Object,Object>
Переопределяет:
entrySet в классе Hashtable<Object,Object>
Возвращает:
представление в виде множества соответствий, содержащихся в этой карте
С версии:
1.2
См. также:
  • Map.Entry

keySet

public Set<Object> keySet()
Возвращает неизменяемое представление Set ключей свойств, содержащихся в этом Provider.
Определено в:
keySet в интерфейсе Map<Object,Object>
Переопределяет:
keySet в классе Hashtable<Object,Object>
Возвращает:
представление в виде множества ключей, содержащихся в этой карте
С версии:
1.2

values

public Collection<Object> values()
Возвращает неизменяемое представление Collection значений свойств, содержащихся в этом Provider.
Определено в:
values в интерфейсе Map<Object,Object>
Переопределяет:
values в классе Hashtable<Object,Object>
Возвращает:
представление в виде коллекции значений, содержащихся в этой карте
С версии:
1.2

put

public Object put(Object key, Object value)
Устанавливает для свойства key указанное значение value.
Определено в:
put в интерфейсе Map<Object,Object>
Переопределяет:
put в классе Hashtable<Object,Object>
Параметры:
key — ключ хеш-таблицы
value — значение
Возвращает:
предыдущее значение указанного ключа в этой хеш-таблице или null, если такого значения не было
С версии:
1.2
См. также:
  • Object.equals(Object)
  • Hashtable.get(Object)

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 в интерфейсе Map<Object,Object>
Переопределяет:
remove в классе Hashtable<Object,Object>
Параметры:
key — ключ, который нужно удалить
Возвращает:
значение, которому соответствовал ключ в этой хеш-таблице, или null, если ключу не соответствовало никакое значение
С версии:
1.2

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)
Если значение для указанного ключа существует и не равно null, пытается вычислить новое соответствие, используя ключ и текущее сопоставленное ему значение.
Определено в:
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)
Описание скопировано из интерфейса: Map
Возвращает значение, сопоставленное указанному ключу, или defaultValue, если в этой карте нет соответствия для ключа.
Параметры:
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)
Получает службу, описывающую реализацию этим Provider указанного типа данного алгоритма или псевдонима. Если такой реализации нет, метод возвращает null. Если найдены две подходящие службы — одна добавлена в этот провайдер с помощью putService(), а другая с помощью put(), — возвращается служба, добавленная с помощью putService().
Параметры:
type — тип запрашиваемой service (например, MessageDigest)
algorithm — название алгоритма (или альтернативный псевдоним) запрашиваемой службы без учета регистра (например, SHA-1)
Возвращает:
службу, описывающую соответствующую службу этого Provider, или null, если такой службы нет
Выбрасывает:
NullPointerException — если тип или алгоритм равен null
С версии:
1.5

getServices

public Set<Provider.Service> getServices()
Получает неизменяемый Set всех служб, поддерживаемых этим 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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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