Класс Provider

Все реализованные интерфейсы:
Serializable, Cloneable, Map<Object,​Object>
Прямые известные подклассы:
AuthProvider
public abstract class Provider
extends Properties

Этот класс представляет "провайдер" для API безопасности Java, где провайдер реализует некоторые или все части Java Security. Сервисы, которые может реализовать провайдер, включают:

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

Вложенные классы

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

Описание сервиса безопасности.

Поля

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

defaults

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

Модификатор Конструктор Описание
protected Provider​(String name, double version, String info)

Устаревшее.

Используйте Provider(String, String, String) вместо него.

protected Provider​(String name, String versionStr, String info)

Конструирует провайдер с указанным именем, строкой версии и информацией.

Методы

Модификатор и тип Метод Описание
void clear()

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

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)

Применяет предоставленный аргумент конфигурации к этому экземпляру поставщика и возвращает настроенного поставщика.

Set<Map.Entry<Object,​Object>> entrySet()

Возвращает неизменяемый вид набора записей свойств, содержащихся в этом поставщике.

void forEach​(BiConsumer<? super Object,​? super Object> action)

Выполняет заданное действие для каждой записи в этом массиве до тех пор, пока все записи не будут обработаны или действие не выбросит исключение.

String getInfo()

Возвращает удобочитаемое описание поставщика и его услуг.

String getName()

Возвращает имя этого поставщика.

Object getOrDefault​(Object key, Object defaultValue)

Возвращает значение, которому соответствует указанный ключ, или defaultValue, если в этом массиве нет сопоставления для ключа.

Provider.Service getService​(String type, String algorithm)

Получить описание сервиса, описывающего реализацию этого поставщика указанного типа алгоритма или псевдонима.

Set<Provider.Service> getServices()

Получить неизменяемый набор всех сервисов, поддерживаемых этим поставщиком.

double getVersion()

Устарело.

Используйте getVersionStr() вместо этого.

String getVersionStr()

Возвращает строку версии для этого поставщика.

boolean isConfigured()

Проверяет, был ли настроен этот экземпляр поставщика.

Set<Object> keySet()

Возвращает неизменяемый вид набора ключей свойств, содержащихся в этом поставщике.

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 в этот поставщик.

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()

Возвращает строку с именем и строкой версии этого поставщика.

Collection<Object> values()

Возвращает неизменяемый вид коллекции значений свойств, содержащихся в этом поставщике.

Методы, объявленные в классе 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(String, String, String) с name именем, Double.toString(version), и info.

Параметры:
name - имя поставщика.
version - номер версии поставщика.
info - описание поставщика и его услуг.

Provider

protected Provider(String name,
                   String versionStr,
                   String info)

Создает поставщик со указанным именем, строкой версии и информацией.

Строка версии содержит номер версии, необязательно с дополнительной информацией, разделенной одним из символов '+', '-'. Формат номера версии:

^[0-9]+(\.[0-9]+)*

Для возвращения номера версии в double, когда имеется более двух компонентов (разделенных '.' как определено выше), сохраняются только первые два компонента. Полученная строка затем передаётся в Double.valueOf(String) для генерации номера версии, т.е. getVersion().

Если преобразование завершилось ошибкой, используется значение 0.

Параметры:
name - имя поставщика.
versionStr - строка версии поставщика.
info - описание поставщика и его услуг.
С тех пор:
9

Методы

configure

public Provider configure(String configArg)

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

Требования к реализации:
Реализация по умолчанию вызывает UnsupportedOperationException. Подклассы должны переопределять этот метод только в том случае, если поддерживается аргумент конфигурации.
Параметры:
configArg - информация о конфигурации для настройки этого поставщика.
Возвращает:
поставщик, настроенный с помощью переданного аргумента конфигурации.
Исключения:
UnsupportedOperationException - если аргумент конфигурации не поддерживается.
NullPointerException - если переданный аргумент конфигурации равен null.
InvalidParameterException - если переданный аргумент конфигурации недействителен.
С версии:
9

isConfigured

public boolean isConfigured()

Проверить, был ли настроен этот экземпляр поставщика.

Требования к реализации:
Реализация по умолчанию возвращает true. Подклассы должны переопределять этот метод, если экземпляру поставщика требуется явный вызов configure после создания.
Возвращает:
true, если дальнейшая конфигурация не требуется, false в противном случае.
С версии:
9

getName

public String getName()

Возвращает имя этого поставщика.

Возвращает:
имя этого поставщика.

getVersion

@Deprecated(since="9")
public double getVersion()
Устарело.
используйте getVersionStr() вместо этого.

Возвращает номер версии для этого поставщика.

Возвращает:
номер версии для этого поставщика.

getVersionStr

public String getVersionStr()

Возвращает строку версии для этого поставщика.

Возвращает:
строка версии для этого поставщика.
С версии:
9

getInfo

public String getInfo()

Возвращает читаемое описание поставщика и его служб. Это может вернуть HTML-страницу с соответствующими ссылками.

Возвращает:
описание поставщика и его служб.

toString

public String toString()

Возвращает строку с именем и строкой версии этого поставщика.

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

clear

public void clear()

Очищает этого поставщика так, чтобы он больше не содержал свойства, используемые для поиска объектов, реализованных поставщиком.

Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "clearProviderProperties."+name (где name - имя поставщика), чтобы проверить, можно ли очистить этого поставщика.

Указано в:
clear в интерфейсе Map<Object,​Object>
Переопределяет:
clear в классе Hashtable<Object,​Object>
Исключения:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к очистке этого поставщика
С версии:
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)

Копирует все сопоставления из указанного Map в этого поставщика. Эти сопоставления заменят любые свойства, которые этот поставщик имел для любых ключей, в настоящее время находящихся в указанном Map.

Указано в:
putAll в интерфейсе Map<Object,​Object>
Переопределяет:
putAll в классе Hashtable<Object,​Object>
Параметры:
t - сопоставления, которые необходимо сохранить в этом map
С версии:
1.2

entrySet

public Set<Map.Entry<Object,Object>> entrySet()

Возвращает неизменяемый просмотр Set записей свойств, содержащихся в этом Provider.

Указано в:
entrySet в интерфейсе Map<Object,​Object>
Переопределяет:
entrySet в классе Hashtable<Object,​Object>
Возвращает:
просмотр набора сопоставлений, содержащихся в этом map
С версии:
1.2
См. также:
Map.Entry

keySet

public Set<Object> keySet()

Возвращает неизменяемый просмотр Set ключей свойств, содержащихся в этом поставщике.

Указано в:
keySet в интерфейсе Map<Object,​Object>
Переопределяет:
keySet в классе Hashtable<Object,​Object>
Возвращает:
просмотр набора ключей, содержащихся в этом map
С версии:
1.2

values

public Collection<Object> values()

Возвращает неизменяемый просмотр Collection значений свойств, содержащихся в этом поставщике.

Указано в:
values в интерфейсе Map<Object,​Object>
Переопределяет:
values в классе Hashtable<Object,​Object>
Возвращает:
просмотр коллекции значений, содержащихся в этом map
С версии:
1.2

put

public Object put(Object key,
                  Object value)

Устанавливает свойство key со значением value.

Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "putProviderProperty."+name, где name - имя поставщика, чтобы проверить, можно ли установить значения свойств этого поставщика.

Указано в:
put в интерфейсе Map<Object,​Object>
Переопределяет:
put в классе Hashtable<Object,​Object>
Параметры:
key - ключ hashtable
value - значение
Возвращает:
предыдущее значение указанного ключа в этой таблице hash, или null, если его не было
Исключения:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к установке значений свойств.
С версии:
1.2
См. также:
Object.equals(Object), Hashtable.get(Object)

putIfAbsent

public Object putIfAbsent(Object key,
                          Object value)

Если указанный ключ еще не связан со значением (или сопоставлен с null) связывает его с указанным значением и возвращает null, иначе возвращает текущее значение.

Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "putProviderProperty."+name, где name - имя поставщика, чтобы проверить, можно ли установить значения свойств этого поставщика.

Параметры:
key - ключ, с которым должно быть связано указанное значение
value - значение, которое должно быть связано с указанным ключом
Возвращает:
предыдущее значение, связанное с указанным ключом, или null, если для ключа не было сопоставления. (Возвращение null также может указывать на то, что карта ранее связывала null с ключом, если реализация поддерживает значения null.)
Исключения:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к установке значений свойств.
С версии:
1.8

remove

public Object remove(Object key)

Удаляет свойство key (и его соответствующее value).

Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "removeProviderProperty."+name, где name - имя поставщика, чтобы проверить, можно ли удалить свойства этого поставщика.

Указано в:
remove в интерфейсе Map<Object,​Object>
Переопределяет:
remove в классе Hashtable<Object,​Object>
Параметры:
key - ключ, который необходимо удалить
Возвращает:
значение, которому соответствовал ключ в этой таблице hash, или null, если у ключа не было сопоставления
Исключения:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к удалению свойств этого поставщика.
С версии:
1.2

remove

public boolean remove(Object key,
                      Object value)

Удаляет запись для указанного ключа только в том случае, если она в настоящее время сопоставлена с указанным значением.

Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "removeProviderProperty."+name, где name - имя поставщика, чтобы проверить, можно ли удалить свойства этого поставщика.

Параметры:
key - ключ, с которым связано указанное значение
value - значение, которое ожидается, что будет связано с указанным ключом
Возвращает:
true если значение было удалено
Исключения:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к удалению свойств этого поставщика.
С версии:
1.8

replace

public boolean replace(Object key,
                       Object oldValue,
                       Object newValue)

Заменяет запись для указанного ключа только в том случае, если она в настоящее время сопоставлена с указанным значением.

Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "putProviderProperty."+name, где name - имя поставщика, чтобы проверить, можно ли установить значения свойств этого поставщика.

Параметры:
key - ключ, с которым связано указанное значение
oldValue - значение, ожидаемое для указанного ключа
newValue - значение, которое должно быть связано с указанным ключом
Возвращает:
true если значение было заменено
Исключение:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к настройке значений свойств.
С:
1.8

заменить

public Object replace(Object key,
                      Object value)

Заменяет запись для указанного ключа только в том случае, если она в настоящее время отображается на какое-либо значение.

Если включён менеджер безопасности, вызывается его метод checkSecurityAccess, со строкой "putProviderProperty."+name, где name - имя провайдера, чтобы проверить, можно ли изменять значения свойств этого провайдера.

Параметры:
key - ключ, с которым связано указанное значение
value - значение, которое должно быть связано с указанным ключом
Возвращает:
предыдущее значение, связанное с указанным ключом, или null, если для ключа не было отображения. (Возврат null также может указывать, что карта, ранее связанная null с ключом, если реализация поддерживает нулевые значения.)
Исключение:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к настройке значений свойств.
С:
1.8

заменить все

public void replaceAll(BiFunction<? super Object,​? super Object,​? extends Object> function)

Заменяет значение каждой записи результатом вызова заданной функции для этой записи в порядке, в котором записи возвращаются итератором набора записей, пока все записи не будут обработаны или функция не выбросит исключение.

Если включён менеджер безопасности, вызывается его метод checkSecurityAccess, со строкой "putProviderProperty."+name, где name - имя провайдера, чтобы проверить, можно ли изменять значения свойств этого провайдера.

Параметры:
function - функция, применяемая к каждой записи
Исключение:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к настройке значений свойств.
С:
1.8

вычислить

public Object compute(Object key,
                      BiFunction<? super Object,​? super Object,​? extends Object> remappingFunction)

Попытка вычислить отображение для указанного ключа и его текущего сопоставленного значения (или null, если текущего отображения нет).

Если включён менеджер безопасности, вызывается его метод checkSecurityAccess, со строками "putProviderProperty."+name и "removeProviderProperty."+name, где name - имя провайдера, чтобы проверить, можно ли изменять значения свойств этого провайдера и удалять свойства этого провайдера.

Определено в:
compute в интерфейсе Map<Object,​Object>
Переопределяет:
compute в классе Hashtable<Object,​Object>
Параметры:
key - ключ, с которым должно быть связано указанное значение
remappingFunction - функция переотображения для вычисления значения
Возвращает:
новое значение, связанное с указанным ключом, или null, если нет
Исключение:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к настройке значений свойств или удалению свойств.
С:
1.8

вычислитьЕслиОтсутствует

public Object computeIfAbsent(Object key,
                              Function<? super Object,​? extends Object> mappingFunction)

Если указанный ключ ещё не связан со значением (или сопоставлен с null), пытается вычислить его значение, используя заданную функцию отображения, и добавляет его в эту карту, если null.

Если включён менеджер безопасности, вызывается его метод checkSecurityAccess, со строками "putProviderProperty."+name и "removeProviderProperty."+name, где name - имя провайдера, чтобы проверить, можно ли изменять значения свойств этого провайдера и удалять свойства этого провайдера.

Определено в:
computeIfAbsent в интерфейсе Map<Object,​Object>
Переопределяет:
computeIfAbsent в классе Hashtable<Object,​Object>
Параметры:
key - ключ, с которым должно быть связано указанное значение
mappingFunction - функция отображения для вычисления значения
Возвращает:
текущее (существующее или вычисленное) значение, связанное с указанным ключом, или null, если вычисленное значение равно null
Исключение:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к настройке значений свойств и удалению свойств.
С:
1.8

вычислитьЕслиНаличие

public Object computeIfPresent(Object key,
                               BiFunction<? super Object,​? super Object,​? extends Object> remappingFunction)

Если значение для указанного ключа присутствует и не равно null, пытается вычислить новое отображение, учитывая ключ и его текущее сопоставленное значение.

Если включён менеджер безопасности, вызывается его метод checkSecurityAccess, со строками "putProviderProperty."+name и "removeProviderProperty."+name, где name - имя провайдера, чтобы проверить, можно ли изменять значения свойств этого провайдера и удалять свойства этого провайдера.

Определено в:
computeIfPresent в интерфейсе Map<Object,​Object>
Переопределяет:
computeIfPresent в классе Hashtable<Object,​Object>
Параметры:
key - ключ, с которым должно быть связано указанное значение
remappingFunction - функция переотображения для вычисления значения
Возвращает:
новое значение, связанное с указанным ключом, или null, если нет
Исключение:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к настройке значений свойств или удалению свойств.
С:
1.8

слить

public Object merge(Object key,
                    Object value,
                    BiFunction<? super Object,​? super Object,​? extends Object> remappingFunction)

Если указанный ключ ещё не связан со значением или связан с null, связывает его с заданным значением. В противном случае заменяет значение результатом заданной функции переотображения или удаляет, если результат равен null. Этот метод может быть полезен при объединении нескольких сопоставленных значений для одного ключа.

Если включён менеджер безопасности, вызывается его метод checkSecurityAccess, со строками "putProviderProperty."+name и "removeProviderProperty."+name, где name - имя провайдера, чтобы проверить, можно ли изменять значения свойств этого провайдера и удалять свойства этого провайдера.

Определено в:
merge в интерфейсе Map<Object,​Object>
Переопределяет:
merge в классе Hashtable<Object,​Object>
Параметры:
key - ключ, с которым будет связано результирующее значение
value - не-null значение, которое будет слито с существующим значением, связанным с ключом, или, если нет существующего значения или null значение связано с ключом, которое будет связано с ключом
remappingFunction - функция переотображения для повторного вычисления значения, если оно присутствует
Возвращает:
новое значение, связанное с указанным ключом, или null, если со значением не связан ключ
Исключение:
SecurityException - если существует менеджер безопасности и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к настройке значений свойств или удалению свойств.
С:
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()

Получить неизменяемый набор всех сервисов, поддерживаемых этим провайдером.

Возвращает:
неизменяемый набор всех сервисов, поддерживаемых этим провайдером
С:
1.5

putService

protected void putService(Provider.Service s)

Добавить службу. Если служба того же типа с тем же именем алгоритма уже существует и была добавлена с помощью putService(), она заменяется новой службой. Этот метод также помещает информацию об этой службе в значения хэш-таблицы поставщика в формате, описанном в Руководстве по архитектуре Java Cryptography (JCA).

Кроме того, если существует менеджер безопасности, вызывается его метод checkSecurityAccess со строкой "putProviderProperty."+name, где name — имя поставщика, чтобы проверить, разрешено ли устанавливать значения свойств этого поставщика. Если используется реализация по умолчанию checkSecurityAccess (то есть этот метод не переопределен), это приводит к вызову метода менеджера безопасности checkPermission с разрешением SecurityPermission("putProviderProperty."+name).

Parameters:
s - добавляемая служба
Throws:
SecurityException - если менеджер безопасности существует и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к установке значений свойств.
NullPointerException - если s равно null
Since:
1.5

removeService

protected void removeService(Provider.Service s)

Удалить службу, добавленную ранее с помощью putService(). Указанная служба удаляется из этого поставщика. Она больше не будет возвращаться методом getService(), а информация о ней будет удалена из хэш-таблицы этого поставщика.

Кроме того, если существует менеджер безопасности, вызывается его метод checkSecurityAccess со строкой "removeProviderProperty."+name, где name — имя поставщика, чтобы проверить, разрешено ли удалять свойства этого поставщика. Если используется реализация по умолчанию checkSecurityAccess (то есть этот метод не переопределен), это приводит к вызову метода менеджера безопасности checkPermission с разрешением SecurityPermission("removeProviderProperty."+name).

Parameters:
s - служба для удаления
Throws:
SecurityException - если менеджер безопасности существует и его метод SecurityManager.checkSecurityAccess(java.lang.String) запрещает доступ к удалению свойств этого поставщика.
NullPointerException - если s равно null
Since:
1.5

© 1993, 2020, 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/11/docs/api/java.base/java/security/Provider.html

Spec-Zone .ru
спецификации, руководства, описания, API