Класс 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 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
String |
getProperty |
Выполняет поиск свойства с указанным ключом в этом списке свойств. |
String |
getProperty |
Выполняет поиск свойства с указанным ключом в этом списке свойств. |
void |
list |
Выводит этот список свойств в указанный выходной поток. |
void |
list |
Выводит этот список свойств в указанный выходной поток. |
void |
load |
Считывает список свойств (пары ключей и элементов) из входного символьного потока в простом построчном формате. |
void |
loadFromXML |
Загружает в эту таблицу свойств все свойства, представленные XML-документом в указанном входном потоке. |
Enumeration |
propertyNames() |
Возвращает перечисление всех ключей в этом списке свойств, включая уникальные ключи из списка свойств по умолчанию, если ключ с таким же именем еще не найден в основном списке свойств. |
void |
save |
Устарело. Этот метод не выбрасывает IOException, если при сохранении списка свойств возникает ошибка ввода-вывода. |
Object |
setProperty |
Вызывает метод Hashtable put. |
void |
store |
Записывает этот список свойств (пары ключей и элементов) из этой таблицы Properties в выходной поток в формате, подходящем для загрузки в таблицу Properties с помощью метода load(InputStream). |
void |
store |
Записывает этот список свойств (пары ключей и элементов) из этой таблицы Properties в выходной символьный поток в формате, подходящем для использования метода load(Reader). |
void |
storeToXML |
Создает XML-документ, представляющий все свойства, содержащиеся в этой таблице. |
void |
storeToXML |
Создает XML-документ, представляющий все свойства, содержащиеся в этой таблице, используя указанную кодировку. |
void |
storeToXML |
Создает XML-документ, представляющий все свойства, содержащиеся в этой таблице, используя указанную кодировку. |
Set |
stringPropertyNames() |
Возвращает неизменяемый набор ключей из этого списка свойств, для которых ключ и соответствующее ему значение являются строками, включая уникальные ключи из списка свойств по умолчанию, если ключ с таким же именем еще не найден в основном списке свойств. |
Методы, объявленные в классе Hashtable
clone, contains, containsKey, containsValue, elements, equals, get, hashCode, isEmpty, keys, rehash, size | Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Создает поверхностную копию этой хеш-таблицы. |
boolean |
contains |
Проверяет, сопоставлен ли какой-либо ключ с указанным значением в этой хеш-таблице. |
boolean |
containsKey |
Проверяет, является ли указанный объект ключом в этой хеш-таблице. |
boolean |
containsValue |
Возвращает true, если эта хеш-таблица сопоставляет с этим значением один или несколько ключей. |
Enumeration |
elements() |
Возвращает перечисление значений в этой хеш-таблице. |
boolean |
equals |
Сравнивает указанный объект с этой Map на равенство согласно определению в интерфейсе Map. |
Object |
get |
Возвращает значение, сопоставленное с указанным ключом, или null, если в этой карте нет соответствия для ключа. |
int |
hashCode() |
Возвращает хеш-код этой Map согласно определению в интерфейсе Map. |
boolean |
isEmpty() |
Проверяет, не сопоставляет ли эта хеш-таблица ключи со значениями. |
Enumeration |
keys() |
Возвращает перечисление ключей в этой хеш-таблице. |
protected void |
rehash() |
Увеличивает емкость этой хеш-таблицы и реорганизует ее внутреннюю структуру, чтобы эффективнее хранить записи и обращаться к ним. |
int |
size() |
Возвращает количество ключей в этой хеш-таблице. |
Методы, объявленные в классе Object
finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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также может означать, что ранее Map связывала с ключом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также может означать, что ранее Map связывала с ключом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), пытается вычислить его значение с помощью заданной функции отображения и добавляет его в эту Map, если результат не равен 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, если в этой Map нет отображения для ключа.- Параметры:
-
key— ключ, значение которого требуется вернуть -
defaultValue— значение по умолчанию для ключа - Возвращает:
- значение, которому сопоставлен указанный ключ, или
defaultValue, если в этой Map нет отображения для ключа - С версии:
- 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.
Provider(String, String, String).