public abstract class Provider extends Properties
每个提供程序都有一个名称和一个版本号,并在每一个运行时它被安装在。
在看到“java加密体系API规范和参考”The Provider Class为关于一个特定类型的供应商信息,加密服务提供程序、工程和安装。但是,请注意,一个供应商可以用来实现任何安全服务,使用java插件架构与选择符合下面的实现。
一些供应商可能会遇到不可恢复的错误实现内部经营过程中,例如一个失效与安全令牌传递。一个ProviderException应该用来表示这样的错误。
服务型Provider预留使用的安全框架。无法添加此类型的服务,或通过应用程序进行修改或修改。下列属性被自动放置在每个提供程序对象中:
| Name | Value |
|---|---|
Provider.id name |
String.valueOf(provider.getName()) |
Provider.id version |
String.valueOf(provider.getVersion()) |
Provider.id info |
String.valueOf(provider.getInfo()) |
Provider.id className |
provider.getClass().getName() |
| Modifier and Type | Class and Description |
|---|---|
static class |
Provider.Service
安全服务的描述。
|
defaults| Modifier | Constructor and Description |
|---|---|
protected |
Provider(String name, double version, String info)
使用指定的名称、版本号和信息构造一个提供程序。
|
| Modifier and Type | Method and Description |
|---|---|
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),尝试使用给定的映射功能,进入到这个Map除非
null计算其价值。
|
Object |
computeIfPresent(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
如果指定键的值是存在和非空的,尝试计算一个新的映射,给出了键和它当前的映射值。
|
Enumeration<Object> |
elements()
返回哈希表中的值的枚举。
|
Set<Map.Entry<Object,Object>> |
entrySet()
返回一个不可修改的设置视图的属性条目包含在该提供商。
|
void |
forEach(BiConsumer<? super Object,? super Object> action)
在该映射中的每个条目执行给定的操作,直到所有的条目被处理或操作抛出异常。
|
Object |
get(Object key)
返回指定的键映射的值,或
null如果这个Map不包含的键映射。
|
String |
getInfo()
返回一个可读取的提供者和它的服务的可读描述。
|
String |
getName()
返回此提供程序的名称。
|
Object |
getOrDefault(Object key, Object defaultValue)
返回指定的键映射的值,或
defaultValue如果这个Map不包含的键映射。
|
String |
getProperty(String key)
在这个属性列表中搜索指定的键的属性。
|
Provider.Service |
getService(String type, String algorithm)
获取描述此提供程序的指定类型的该算法或别名的实现的服务。
|
Set<Provider.Service> |
getServices()
得到所有服务支持的一个不可修改的设置提供程序。
|
double |
getVersion()
返回此提供程序的版本号。
|
Enumeration<Object> |
keys()
返回哈希表中的键枚举。
|
Set<Object> |
keySet()
返回一个不可修改的设置视图的属性包含在该提供商的钥匙。
|
void |
load(InputStream inStream)
从输入流读取属性列表(键和元素对)。
|
Object |
merge(Object key, Object value, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
如果指定的键已与一个值关联或与空关联,则将其与给定值关联。
|
Object |
put(Object key, Object value)
设置有指定的
value的
key财产。
|
void |
putAll(Map<?,?> t)
从指定的映射到此提供程序复制所有的映射。
|
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()
返回一个不可修改的集合视图的属性值包含在该提供商。
|
getProperty, list, list, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, stringPropertyNamesclone, contains, containsKey, containsValue, equals, hashCode, isEmpty, rehash, sizepublic String getName()
public double getVersion()
public String getInfo()
public String toString()
public void clear()
如果安全管理器启用,其checkSecurityAccess方法被调用的字符串"clearProviderProperties."+name(其中name是提供者的名称)是否可以明确该提供商。
clear 接口
Map<Object,Object>
clear 方法重写,继承类
Hashtable<Object,Object>
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问明确该提供商
public void load(InputStream inStream) throws IOException
load 方法重写,继承类
Properties
inStream -输入流。
IOException如果当读取输入流时发生了一个错误。
Properties.load(java.io.Reader)
public void putAll(Map<?,?> t)
public Collection<Object> values()
public Object put(Object key, Object value)
value的
key财产。
如果安全管理器启用,其checkSecurityAccess方法被调用的字符串"putProviderProperty."+name,哪里name是提供者的名称,看是否可以将此供应商的属性值。
put 接口
Map<Object,Object>
put 方法重写,继承类
Hashtable<Object,Object>
key -哈希表中的键
value -价值
null
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问设置属性值。
Object.equals(Object),
Hashtable.get(Object)
public Object putIfAbsent(Object key, Object value)
null)将其与给定的值并返回
null,否则返回当前值。
如果安全管理器启用,其checkSecurityAccess方法被调用的字符串"putProviderProperty."+name,哪里name是提供者的名称,看是否可以将此供应商的属性值。
putIfAbsent 接口
Map<Object,Object>
putIfAbsent 方法重写,继承类
Hashtable<Object,Object>
key键与指定的值是相关联的
value值必须与指定键关联
null如果没有键映射。(一
null返回也表明,与先前的
nullMap的关键,如果实施支持空值。)
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问设置属性值。
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)方法拒绝访问删除该供应商的性质。
public boolean remove(Object key, Object value)
如果安全管理器启用,其checkSecurityAccess方法被调用的字符串"removeProviderProperty."+name,哪里name是提供者的名称,看是否可以删除该供应商的性质。
remove 接口
Map<Object,Object>
remove 方法重写,继承类
Hashtable<Object,Object>
key键与指定值相关联的
value值将与指定键关联
true如果值被删除
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问删除该供应商的性质。
public boolean replace(Object key, Object oldValue, Object newValue)
如果安全管理器启用,其checkSecurityAccess方法被调用的字符串"putProviderProperty."+name,哪里name是提供者的名称,看是否可以将此供应商的属性值。
replace 接口
Map<Object,Object>
replace 方法重写,继承类
Hashtable<Object,Object>
key键与指定值相关联的
oldValue值将与指定键关联
newValue值必须与指定键关联
true如果值代替
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问设置属性值。
public Object replace(Object key, Object value)
如果安全管理器启用,其checkSecurityAccess方法被调用的字符串"putProviderProperty."+name,哪里name是提供者的名称,看是否可以将此供应商的属性值。
replace 接口
Map<Object,Object>
replace 方法重写,继承类
Hashtable<Object,Object>
key键与指定值相关联的
value值必须与指定键关联
null如果没有键映射。(一
null返回也表明,与先前的
nullMap的关键,如果实施支持空值。)
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问设置属性值。
public void replaceAll(BiFunction<? super Object,? super Object,? extends Object> function)
如果安全管理器启用,其checkSecurityAccess方法被调用的字符串"putProviderProperty."+name,哪里name是提供者的名称,看是否可以将此供应商的属性值。
replaceAll 接口
Map<Object,Object>
replaceAll 方法重写,继承类
Hashtable<Object,Object>
function -功能适用于每一个条目
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问设置属性值。
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的函数来计算一个值
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问设置属性值或删除属性。
public Object computeIfAbsent(Object key, Function<? super Object,? extends Object> mappingFunction)
null),尝试使用给定的映射功能,进入到这个Map除非
null计算其价值。
如果安全管理器启用,其checkSecurityAccess方法被调用的字符串"putProviderProperty."+name和"removeProviderProperty."+name,哪里name是提供者的名称,看是否可以将此供应商的属性值和删除该供应商的性质。
computeIfAbsent 接口
Map<Object,Object>
computeIfAbsent 方法重写,继承类
Hashtable<Object,Object>
key键与指定的值是相关联的
mappingFunction的函数来计算一个值
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问设置属性值和删除属性。
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的函数来计算一个值
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问设置属性值或删除属性。
public Object merge(Object key, Object value, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
如果安全管理器启用,其checkSecurityAccess方法被调用的字符串"putProviderProperty."+name和"removeProviderProperty."+name,哪里name是提供者的名称,看是否可以将此供应商的属性值和删除该供应商的性质。
merge 接口
Map<Object,Object>
merge 方法重写,继承类
Hashtable<Object,Object>
key键,得到的值是相关联的
value -非空值是与存在价值的关键或相关的合并,如果没有存在的价值或空值与密钥相关的,是与密钥相关的
remappingFunction -函数重新计算值如果存在
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问设置属性值或删除属性。
public Object get(Object key)
Hashtable
null如果这个Map不包含的键映射。
更正式地说,如果这个图中包含了从关键k到价值v这样(key.equals(k))映射,那么这个方法返回v;否则返回null。(最多可以有一个这样的映射。)
public Object getOrDefault(Object key, Object defaultValue)
Map
defaultValue如果这个Map不包含的键映射。
getOrDefault 接口
Map<Object,Object>
getOrDefault 方法重写,继承类
Hashtable<Object,Object>
key -关键的相关值被返回
defaultValue -键的默认映射
defaultValue如果这个Map不包含的键映射
public void forEach(BiConsumer<? super Object,? super Object> action)
Map
public Enumeration<Object> keys()
Hashtable
keys 方法重写,继承类
Hashtable<Object,Object>
Enumeration,
Hashtable.elements(),
Hashtable.keySet(),
Map
public Enumeration<Object> elements()
Hashtable
elements 方法重写,继承类
Hashtable<Object,Object>
Enumeration,
Hashtable.keys(),
Hashtable.values(),
Map
public String getProperty(String key)
Properties
null如果找不到属性。
getProperty 方法重写,继承类
Properties
key性能的关键。
Properties.setProperty(java.lang.String, java.lang.String),
Properties.defaults
public Provider.Service getService(String type, String algorithm)
putService()一加
put(),添加服务,通过
putService()返回。
type -
service请求类型(例如,
MessageDigest)
algorithm -不区分大小写的算法名称(或交替的别名)的服务请求(例如,
SHA-1)
NullPointerException如果型或算法是无效的
public Set<Provider.Service> getServices()
protected void putService(Provider.Service s)
putService(),它是由新的服务取代。这种方法也对这个服务信息的格式在
Java Cryptography Architecture API Specification & Reference 描述供应商的哈希值。
另外,如果存在安全管理器,它的checkSecurityAccess方法被调用的字符串"putProviderProperty."+name,哪里name是提供者的名称,看是否可以将此供应商的属性值。如果checkSecurityAccess默认的实现是使用(即,方法不修改),然后这个结果在一个叫保安部经理的checkPermission方法与SecurityPermission("putProviderProperty."+name)许可。
s -服务添加
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问设置属性值。
NullPointerException -如果是空的
protected void removeService(Provider.Service s)
putService()服务。从该提供程序中删除指定的服务。它将不再由
getService()及其返回的信息将被删除从该供应商的哈希表。
另外,如果存在安全管理器,它的checkSecurityAccess方法被调用的字符串"removeProviderProperty."+name,哪里name是提供者的名称,看是否可以删除该供应商的性质。如果checkSecurityAccess默认的实现是使用(即,方法不修改),然后这个结果在一个叫保安部经理的checkPermission方法与SecurityPermission("removeProviderProperty."+name)许可。
s -服务被删除
SecurityException -如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)方法拒绝访问删除该供应商的性质。
NullPointerException -如果是空的
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.