Класс 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 |
Создает Provider со заданным именем, строкой версии и информацией. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
clear() |
Очищает этот Provider, чтобы он больше не содержал свойства, используемые для поиска реализованных Provider. |
Object |
compute |
Попытка вычислить отображение для указанного ключа и его текущего сопоставленного значения (или null если текущего отображения нет). |
Object |
computeIfAbsent |
Если указанный ключ не сопоставлен со значением (или сопоставлен с null) , попытка вычислить его значение с помощью заданной функции отображения и внести его в эту карту, если null. |
Object |
computeIfPresent |
Если значение для указанного ключа присутствует и не равно null, попытка вычислить новое отображение, исходя из ключа и его текущего сопоставленного значения. |
Provider |
configure |
Применяет предоставленный аргумент конфигурации к этому Provider экземпляру и возвращает сконфигурированный Provider. |
Set |
entrySet() |
Возвращает неизменяемый набор представлений пар свойств, содержащихся в этом Provider. |
void |
forEach |
Выполняет заданное действие для каждой записи в этой карте, пока все записи не будут обработаны или действие не выбросит исключение. |
String |
getInfo() |
Возвращает удобочитаемое описание Provider и его служб. |
String |
getName() |
Возвращает имя этого Provider. |
Object |
getOrDefault |
Возвращает значение, которому сопоставлен указанный ключ, или defaultValue если в этой карте нет отображения для ключа. |
Provider.Service |
getService |
Получить описание службы, описывающее реализацию данного типа алгоритма или псевдонима в этом поставщике. |
Set |
getServices() |
Получить неизменяемый набор всех поддерживаемых служб этим Provider. |
double |
getVersion() |
Устарело. Используйте getVersionStr() вместо этого. |
String |
getVersionStr() |
Возвращает строку версии для этого Provider. |
boolean |
isConfigured() |
Проверяет, был ли сконфигурирован этот экземпляр Provider. |
Set |
keySet() |
Возвращает неизменяемый набор представлений ключей свойств, содержащихся в этом Provider. |
void |
load |
Считывает список свойств (пар ключ-элемент) из входного потока. |
Object |
merge |
Если указанный ключ не сопоставлен со значением или сопоставлен с null, связывает его со заданным значением. |
Object |
put |
Устанавливает свойство key для указанного value. |
void |
putAll |
Копирует все отображения из указанной карты в эту 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() |
Возвращает неизменяемый вид коллекции значений свойств, содержащихся в этом Provider. |
Методы, объявленные в классе 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 с указанным именем, номером версии и информацией. Вызов этого конструктора эквивалентен вызову Provider(String, String, String) с name именем, Double.toString(version), и info.- Параметры:
-
name- имя поставщика. -
version- номер версии поставщика. -
info- описание поставщика и его услуг.
Provider
protected Provider(String name, String versionStr, String info)
Provider с указанным именем, строкой версии и информацией. Строка версии содержит номер версии, за которым необязательно следуют другие сведения, разделённые одним из символов '+', '-'. Формат номера версии:
^[0-9]+(\.[0-9]+)*
Для возвращения номера версии в виде double, когда есть более двух компонентов (разделённых '.', как определено выше), сохраняются только первые два компонента. Полученная строка затем передаётся в Double.valueOf(String) для получения номера версии, т.е. getVersion().
Если преобразование не удалось, используется значение 0.
- Параметры:
-
name- имя поставщика. -
versionStr- строка версии поставщика. -
info- описание поставщика и его услуг. - С:
- 9
Подробное описание методов
configure
public Provider configure(String configArg)
Provider и возвращает настроенный Provider. Обратите внимание, что если этот Provider не может быть настроен на месте, будет создан и возвращён новый Provider. Поэтому вызывающие методы всегда должны использовать возвращённый Provider. - Требования к реализации:
- По умолчанию реализация выбрасывает
UnsupportedOperationException. Подклассы должны переопределять этот метод только в том случае, если поддерживается аргумент конфигурации. - Параметры:
-
configArg- информация о конфигурации для настройки этого поставщика. - Возвращает:
- настроенный
Providerс предоставленным аргументом конфигурации. - Исключения:
-
UnsupportedOperationException- если аргумент конфигурации не поддерживается. -
NullPointerException- если предоставленный аргумент конфигурацииnull. -
InvalidParameterException- если предоставленный аргумент конфигурации некорректен. - С:
- 9
isConfigured
public boolean isConfigured()
Provider.- Требования к реализации:
- По умолчанию реализация возвращает
true. Подклассы должны переопределить этот метод, если дляProviderтребуется явный вызовconfigureпосле создания. - Возвращает:
-
trueесли дальнейшая настройка не требуется,falseв противном случае. - С:
- 9
getName
public String getName()
Provider.- Возвращает:
- имя этого
Provider.
getVersion
@Deprecated(since="9") public double getVersion()
getVersionStr() вместо этого.Provider.- Возвращает:
- номер версии для этого
Provider.
getVersionStr
public String getVersionStr()
Provider.- Возвращает:
- строку версии для этого
Provider. - С:
- 9
getInfo
public String getInfo()
Provider и его услуг. Может вернуть HTML-страницу с соответствующими ссылками.- Возвращает:
- описание
Providerи его услуг.
toString
public String toString()
Provider.- Переопределяет:
-
toStringв классеHashtable<Object,Object> - Возвращает:
- строку с именем и строкой версии для этого
Provider.
clear
public void clear()
Provider так, чтобы он больше не содержал свойства, используемые для поиска реализованных Provider установками. Если включён менеджер безопасности, его метод 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)
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
- См. также:
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. Если включён менеджер безопасности, его метод 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 — имя поставщика, чтобы проверить, разрешено ли устанавливать значения свойств этого поставщика.
- Parameters:
-
key- ключ, с которым должно быть связано указанное значение -
value- значение, которое должно быть связано с указанным ключом - Returns:
- предыдущее значение, связанное с указанным ключом, или
null, если для ключа не было сопоставления. (Возвращениеnullтакже может указывать, что карта ранее связывалаnullс ключом, если реализация поддерживает нулевые значения.) - Throws:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к установке значений свойств. - Since:
- 1.8
remove
public Object remove(Object key)
key (и соответствующее ему value). Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "removeProviderProperty."+name, где name — имя поставщика, чтобы проверить, разрешено ли удалять свойства этого поставщика.
- Specified by:
-
removeв интерфейсеMap<Object,Object> - Overrides:
-
removeв классеHashtable<Object,Object> - Parameters:
-
key- ключ, который нужно удалить - Returns:
- значение, которому был сопоставлен ключ в этой хэш-таблице, или
null, если ключу не было сопоставлено значение - Throws:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к удалению свойств этого поставщика. - Since:
- 1.2
remove
public boolean remove(Object key, Object value)
Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "removeProviderProperty."+name, где name — имя поставщика, чтобы проверить, разрешено ли удалять свойства этого поставщика.
- Parameters:
-
key- ключ, с которым связано указанное значение -
value- значение, которое ожидается связать с указанным ключом - Returns:
-
trueесли значение было удалено - Throws:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к удалению свойств этого поставщика. - Since:
- 1.8
replace
public boolean replace(Object key, Object oldValue, Object newValue)
Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "putProviderProperty."+name, где name — имя поставщика, чтобы проверить, разрешено ли устанавливать значения свойств этого поставщика.
- Parameters:
-
key- ключ, с которым связано указанное значение -
oldValue- ожидаемое значение, связанное с указанным ключом -
newValue- значение, которое должно быть связано с указанным ключом - Returns:
-
trueесли значение было заменено - Throws:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к установке значений свойств. - Since:
- 1.8
replace
public Object replace(Object key, Object value)
Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "putProviderProperty."+name, где name — имя поставщика, чтобы проверить, разрешено ли устанавливать значения свойств этого поставщика.
- Parameters:
-
key- ключ, с которым связано указанное значение -
value- значение, которое должно быть связано с указанным ключом - Returns:
- предыдущее значение, связанное с указанным ключом, или
null, если для ключа не было сопоставления. (Возвращениеnullтакже может указывать, что карта ранее связывалаnullс ключом, если реализация поддерживает нулевые значения.) - Throws:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к установке значений свойств. - Since:
- 1.8
replaceAll
public void replaceAll(BiFunction<? super Object,? super Object,? extends Object> function)
Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строкой "putProviderProperty."+name, где name — имя поставщика, чтобы проверить, разрешено ли устанавливать значения свойств этого поставщика.
- Parameters:
-
function- функция, применяемая к каждой записи - Throws:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к установке значений свойств. - Since:
- 1.8
compute
public Object compute(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
null, если текущего сопоставления нет). Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строками "putProviderProperty."+name и "removeProviderProperty."+name, где name — имя поставщика, чтобы проверить, разрешено ли устанавливать значения свойств и удалять свойства этого поставщика.
- Specified by:
-
computeв интерфейсеMap<Object,Object> - Overrides:
-
computeв классеHashtable<Object,Object> - Parameters:
-
key- ключ, с которым должно быть связано указанное значение -
remappingFunction- функция переназначения для вычисления значения - Returns:
- новое значение, связанное с указанным ключом, или null, если нет
- Throws:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к установке значений свойств или удалению свойств. - Since:
- 1.8
computeIfAbsent
public Object computeIfAbsent(Object key, Function<? super Object,? extends Object> mappingFunction)
null), пытается вычислить его значение с помощью заданной функции сопоставления и вводит его в эту карту, если null. Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строками "putProviderProperty."+name и "removeProviderProperty."+name, где name — имя поставщика, чтобы проверить, разрешено ли устанавливать значения свойств и удалять свойства этого поставщика.
- Specified by:
-
computeIfAbsentв интерфейсеMap<Object,Object> - Overrides:
-
computeIfAbsentв классеHashtable<Object,Object> - Parameters:
-
key- ключ, с которым должно быть связано указанное значение -
mappingFunction- функция сопоставления для вычисления значения - Returns:
- текущее (существующее или вычисленное) значение, связанное с указанным ключом, или null, если вычисленное значение null
- Throws:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к установке значений свойств и удалению свойств. - Since:
- 1.8
computeIfPresent
public Object computeIfPresent(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
Если включен менеджер безопасности, его метод checkSecurityAccess вызывается со строками "putProviderProperty."+name и "removeProviderProperty."+name, где name — имя поставщика, чтобы проверить, разрешено ли устанавливать значения свойств и удалять свойства этого поставщика.
- Specified by:
-
computeIfPresentв интерфейсеMap<Object,Object> - Overrides:
-
computeIfPresentв классеHashtable<Object,Object> - Parameters:
-
key- ключ, с которым должно быть связано указанное значение -
remappingFunction- функция переназначения для вычисления значения - Returns:
- новое значение, связанное с указанным ключом, или null, если нет
- Throws:
-
SecurityException- если менеджер безопасности существует и его методSecurityManager.checkSecurityAccess(java.lang.String)запрещает доступ к установке значений свойств или удалению свойств. - Since:
- 1.8
merge
public Object merge(Object key, Object value, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
null, он связывается с заданным значением. В противном случае значение заменяется результатом применения заданной функции переназначения, или удаляется, если результат равен null. Этот метод может быть полезен при объединении нескольких сопоставленных значений для ключа.
Если включён менеджер безопасности, его метод 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)
null. Если существует два совпадающих сервиса, один добавленный в этот поставщик с помощью putService(), а другой — с помощью put(), возвращается сервис, добавленный с помощью putService().- Parameters:
-
type— тип запрашиваемогоservice(например,MessageDigest) -
algorithm— нечувствительное к регистру имя алгоритма (или альтернативный псевдоним) запрашиваемого сервиса (например,SHA-1) - Returns:
- сервис, описывающий соответствующий сервис этого поставщика, или
null, если такой сервис не существует - Throws:
-
NullPointerException— если тип или алгоритмnull - Since:
- 1.5
getServices
public Set<Provider.Service> getServices()
Provider.
- Returns:
- неизменяемый набор всех сервисов, поддерживаемых этим
Provider - Since:
- 1.5
putService
protected void putService(Provider.Service s)
putService(), он заменяется новым сервисом. Этот метод также помещает информацию об этом сервисе в таблицу хеширования значений поставщика в формате, описанном в руководстве по архитектуре криптографии Java (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(). Указанный сервис удаляется из этого Provider. Он больше не будет возвращаться методом 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, 2023, 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/21/docs/api/java.base/java/security/Provider.html
Provider(String, String, String)вместо этого.