Класс 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 Cryptography Architecture (JCA) для получения информации о том, как работает и устанавливается конкретный тип провайдера, провайдер криптографической службы. - С:
- 1.1
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
Provider.Service |
Описание службы безопасности. |
Краткое описание полей
Поля, объявленные в классе java.util.Properties
defaults
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Устарело. |
|
protected |
Создаёт поставщика со заданным именем, строкой версии и информацией. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
clear() |
Очищает этот поставщик, чтобы он больше не содержал свойства, используемые для поиска реализованных поставщиком функций. |
Object |
compute |
Пытается вычислить отображение для указанного ключа и его текущего сопоставленного значения (или null, если нет текущего отображения). |
Object |
computeIfAbsent |
Если указанный ключ ещё не связан со значением (или сопоставлен с null), пытается вычислить его значение с помощью заданной функции отображения и вводит его в этот массив, если null. |
Object |
computeIfPresent |
Если значение для указанного ключа присутствует и не null, пытается вычислить новое отображение, учитывая ключ и его текущее сопоставленное значение. |
Provider |
configure |
Применяет предоставленный параметр конфигурации к этому экземпляру поставщика и возвращает настроенного поставщика. |
Set<Map.Entry<Object, |
entrySet() |
Возвращает неизменяемый вид множества элементов свойств, содержащихся в этом поставщике. |
void |
forEach |
Выполняет заданное действие для каждой записи в этом массиве до тех пор, пока все записи не будут обработаны или действие не вызовет исключение. |
String |
getInfo() |
Возвращает удобочитаемое описание поставщика и его услуг. |
String |
getName() |
Возвращает имя этого поставщика. |
Object |
getOrDefault |
Возвращает значение, которому соответствует указанный ключ, или defaultValue, если в этом массиве нет отображения для ключа. |
Provider.Service |
getService |
Получить описание службы реализации этого алгоритма или псевдонима поставщика. |
Set<Provider.Service> |
getServices() |
Возвращает неизменяемое множество всех служб, поддерживаемых этим поставщиком. |
double |
getVersion() |
Устарело. Используйте getVersionStr() вместо этого. |
String |
getVersionStr() |
Возвращает строку версии для этого поставщика. |
boolean |
isConfigured() |
Проверяет, был ли настроен этот экземпляр поставщика. |
Set<Object> |
keySet() |
Возвращает неизменяемый вид множества ключей свойств, содержащихся в этом поставщике. |
void |
load |
Считывает список свойств (пар ключ-элемент) из потока ввода. |
Object |
merge |
Если указанный ключ ещё не связан со значением или связан с null, связывает его с заданным значением. |
Object |
put |
Устанавливает свойство key со значением value. |
void |
putAll |
Копирует все отображения из указанного Map в этот поставщик. |
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() |
Возвращает строку с именем и строкой версии этого поставщика. |
Collection<Object> |
values() |
Возвращает неизменяемый вид коллекции значений свойств, содержащихся в этом поставщике. |
Методы, объявленные в классе java.util.Properties
getProperty, getProperty, list, list, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, storeToXML, stringPropertyNames
Подробное описание конструкторов
Provider
@Deprecated(since="9") protected Provider(String name, double version, String info)
Provider(String, String, String) вместо этого.Provider(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()
- Возвращает:
- описание поставщика и его услуг.
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- если произошла ошибка при чтении из входного потока. - См. также:
putAll
public void putAll(Map<?,?> t)
- Задано в:
-
putAllв интерфейсеMap<Object,Object> - Переопределяет:
-
putAllв классеHashtable<Object,Object> - Параметры:
-
t- сопоставления, которые необходимо сохранить в этой карте - С:
- 1.2
entrySet
public Set<Map.Entry<Object,Object>> entrySet()
- Задано в:
-
entrySetв интерфейсеMap<Object,Object> - Переопределяет:
-
entrySetв классеHashtable<Object,Object> - Возвращает:
- вид множества сопоставлений, содержащихся в этой карте
- С:
- 1.2
- См. также:
keySet
public Set<Object> keySet()
- Задано в:
-
keySetв интерфейсеMap<Object,Object> - Переопределяет:
-
keySetв классеHashtable<Object,Object> - Возвращает:
- вид множества ключей, содержащихся в этой карте
- С:
- 1.2
values
public Collection<Object> values()
- Задано в:
-
valuesв интерфейсеMap<Object,Object> - Переопределяет:
-
valuesв классеHashtable<Object,Object> - Возвращает:
- вид коллекции значений, содержащихся в этой карте
- С:
- 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- ключ хэш-таблицы -
value- значение - Возвращает:
- предыдущее значение указанного ключа в этой хэш-таблице или
null, если его не было - Исключения:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает установку значений свойств. - С:
- 1.2
- См. также:
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- ключ, который нужно удалить - Возвращает:
- значение, которому был сопоставлен ключ в этой хеш-таблице, или
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
replace
public Object replace(Object key, Object value)
Если включён менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "putProviderProperty."+name, где name — имя поставщика, чтобы проверить, можно ли установить значения свойств этого поставщика.
- Параметры:
-
key- ключ, с которым связано указанное значение -
value- значение, которое должно быть связано с указанным ключом - Возвращает:
- предыдущее значение, связанное с указанным ключом, или
null, если для ключа не было сопоставления. (Возвратnullтакже может указывать, что карта ранее связывалаnullс ключом, если реализация поддерживает значения null.) - Исключения:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к установке значений свойств. - С:
- 1.8
replaceAll
public void replaceAll(BiFunction<? super Object,? super Object,? extends Object> function)
Если включён менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "putProviderProperty."+name, где name — имя поставщика, чтобы проверить, можно ли установить значения свойств этого поставщика.
- Параметры:
-
function- функция, применяемая к каждой записи - Исключения:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к установке значений свойств. - С:
- 1.8
compute
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
computeIfAbsent
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
computeIfPresent
public Object computeIfPresent(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
Если включён менеджер безопасности, его метод 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
merge
public Object merge(Object key, Object value, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строками "putProviderProperty."+name и "removeProviderProperty."+name, где name - имя поставщика, чтобы проверить, разрешено ли установить значения свойств этого поставщика и удалить свойства этого поставщика.
- Specified by:
-
mergeв интерфейсеMap<Object,Object> - Overrides:
-
mergeв классеHashtable<Object,Object> - Parameters:
-
key- ключ, с которым должно быть связано результирующее значение -
value- ненулевое значение, которое должно быть объединено с существующим значением, связанным с ключом, или, если нет существующего значения или значение null связано с ключом, должно быть связано с ключом -
remappingFunction- функция переназначения для повторного вычисления значения, если оно присутствует - Returns:
- новое значение, связанное с указанным ключом, или null, если со значением не связан ключ
- Throws:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к установке значений свойств или удалению свойств. - Since:
- 1.8
getOrDefault
public Object getOrDefault(Object key, Object defaultValue)
MapdefaultValue если в этой карте нет сопоставления для ключа.- Parameters:
-
key- ключ, связанное значение которого должно быть возвращено -
defaultValue- значение по умолчанию для ключа - Returns:
- значение, которому сопоставлен указанный ключ, или
defaultValueесли в этой карте нет сопоставления для ключа - Since:
- 1.8
forEach
public void forEach(BiConsumer<? super Object,? super Object> action)
Map- Parameters:
-
action- действие, которое должно быть выполнено для каждой записи - Since:
- 1.8
getService
public Provider.Service getService(String type, String algorithm)
putService() и одна, добавленная через put(), возвращается служба, добавленная с помощью putService().- Parameters:
-
type- тип запрошеннойservice(например,MessageDigest) -
algorithm- имя алгоритма (или альтернативный псевдоним) запрошенной службы, не учитывающее регистр (например,SHA-1) - Returns:
- служба, описывающая соответствующую службу этого поставщика, или null, если такая служба не существует
- Throws:
-
NullPointerException- если тип или алгоритм равен null - Since:
- 1.5
getServices
public Set<Provider.Service> getServices()
- Returns:
- неизменяемое множество всех служб, поддерживаемых этим поставщиком
- Since:
- 1.5
putService
protected void putService(Provider.Service s)
putService(), она заменяется новой службой. Этот метод также помещает информацию об этой службе в значения Hashtable поставщика в формате, описанном в Руководстве по архитектуре 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(), и ее информация будет удалена из Hashtable этого поставщика. Также, если существует менеджер безопасности, его метод 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, 2021, 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/17/docs/api/java.base/java/security/Provider.html
Provider(String, String, String)вместо этого.