Spec-Zone.ru › OpenJDK 24

Класс 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 Cryptography (JCA) для получения информации о том, как работает и устанавливается конкретный тип провайдера, криптографический провайдер.
С:
1.1
См. также:
  • Сериализованная форма

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static class  Provider.Service
Описание службы безопасности.

Краткое описание полей

Поля, объявленные в классе java.util.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)
Если значение для указанного ключа присутствует и не null, попытка вычислить новое отображение, учитывая ключ и его текущее сопоставленное значение.
Provider configure(String configArg)
Применение предоставленного аргумента конфигурации к этому экземпляру Provider и возврат сконфигурированного Provider.
Set<Map.Entry<Object,Object>> entrySet()
Возвращает неизменяемый вид на набор записей свойств, содержащихся в этом 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)
Получение службы, описывающей реализацию этим поставщиком указанного типа этого алгоритма или псевдонима.
Set<Provider.Service> getServices()
Получение неизменяемого набора всех служб, поддерживаемых этим Provider.
double getVersion()
Устаревшее.
Используйте getVersionStr() вместо этого.
String getVersionStr()
Возвращает строку версии для этого Provider.
boolean isConfigured()
Проверка, был ли сконфигурирован этот экземпляр Provider.
Set<Object> keySet()
Возвращает неизменяемый вид на множество ключей свойств, содержащихся в этом 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)
Копирует все отображения из указанной карты в этот 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()
Возвращает неизменяемый вид на коллекцию значений свойств, содержащихся в этом Provider.

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

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

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

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

Методы, объявленные в классе java.lang.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.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(java.io.Reader)

putAll

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

entrySet

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

keySet

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

values

public Collection<Object> values()
Возвращает неизменяемый набор представлений значений свойств, содержащихся в этом 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)
END_OF_DOCUMENT_MARKER

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

getServices

public Set<Provider.Service> getServices()
Получить неизменяемый набор всех служб, поддерживаемых этим Provider.
Возвращает:
неизменяемый набор всех служб, поддерживаемых этим Provider
С:
1.5

putService

protected void putService(Provider.Service s)
Добавить службу. Если служба того же типа с тем же именем алгоритма существует и была добавлена с помощью putService(), она заменяется новой службой. Этот метод также размещает информацию об этой службе в значениях хэш-таблицы поставщика в формате, описанном в Руководстве по архитектуре Java Cryptography (JCA).
Параметры:
s - добавляемая служба
Исключения:
NullPointerException - если s является null
С:
1.5

removeService

protected void removeService(Provider.Service s)
Удалить службу, ранее добавленную с помощью putService(). Указанная служба удаляется из этого Provider. Она больше не будет возвращаться методом getService(), а информация о ней будет удалена из хэш-таблицы этого поставщика.
Параметры:
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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/security/Provider.html

Spec-Zone.ru

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