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, stringPropertyNames
clone, contains, containsKey, containsValue, equals, hashCode, isEmpty, rehash, size
public 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
返回也表明,与先前的
null
Map的关键,如果实施支持空值。)
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
返回也表明,与先前的
null
Map的关键,如果实施支持空值。)
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.