public abstract class Provider
extends Properties
java.lang.Object | ||||
↳ | java.util.Dictionary<java.lang.Object, java.lang.Object> | |||
↳ | java.util.Hashtable<java.lang.Object, java.lang.Object> | |||
↳ | java.util.Properties | |||
↳ | java.security.Provider |
Known Direct Subclasses |
该类表示Java安全API的“提供者”,其中提供者实现Java安全性的部分或全部部分。 提供商可能实施的服务包括:
每个提供程序都有一个名称和一个版本号,并且在每个运行时都配置它。
请参阅“Java加密体系结构API规范和参考”中的The Provider Class ,以获取有关特定类型的提供程序(加密服务提供程序)如何工作和安装的信息。 但是,请注意,可以使用提供程序来实现Java中的任何安全服务,该安全服务使用可插入的体系结构,并且可以选择适合下面的实现。
某些提供程序实现在其操作期间可能会遇到不可恢复的内部错误,例如无法与安全令牌通信。 应该使用ProviderException
来表示这样的错误。
服务类型Provider
被保留供安全框架使用。 这种类型的服务不能被应用程序添加,删除或修改。 以下属性会自动放置在每个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() |
Nested classes |
|
---|---|
class |
Provider.Service 安全服务的描述。 |
Inherited fields |
---|
From class java.util.Properties
|
Protected constructors |
|
---|---|
Provider(String name, double version, String info) 用指定的名称,版本号和信息构造一个提供者。 |
Public methods |
|
---|---|
void |
clear() 清除此提供程序,以便它不再包含用于查找提供程序实现的设施的属性。 |
Enumeration<Object> |
elements() 返回此散列表中值的枚举。 |
Set<Entry<Object, Object>> |
entrySet() 返回此提供程序中包含的属性条目的不可修改的Set视图。 |
void |
forEach(BiConsumer<? super Object, ? super Object> action) 对此映射中的每个条目执行给定操作,直到处理完所有条目或操作抛出异常为止。 |
Object |
get(Object key) 返回指定键映射到的值 |
String |
getInfo() 返回提供者及其服务的可读描述。 |
String |
getName() 返回此提供者的名称。 |
String |
getProperty(String key) 使用此属性列表中的指定键搜索属性。 |
Provider.Service |
getService(String type, String algorithm) 获取描述此提供者实现此算法或别名的指定类型的服务。 |
Set<Provider.Service> |
getServices() 获取该提供商支持的所有服务的不可修改集合。 |
double |
getVersion() 返回此提供者的版本号。 |
Set<Object> |
keySet() 返回此提供程序中包含的属性键的不可修改的Set视图。 |
Enumeration<Object> |
keys() 返回此散列表中键的枚举。 |
void |
load(InputStream inStream) 从输入流中读取属性列表(键和元素对)。 |
Object |
put(Object key, Object value) 将 |
void |
putAll(Map<?, ?> t) 将指定Map中的所有映射复制到此提供程序。 |
Object |
remove(Object key) 删除 |
String |
toString() 返回一个字符串,其中包含该提供者的名称和版本号。 |
Collection<Object> |
values() 返回此提供程序中包含的属性值的不可修改的Collection视图。 |
Protected methods |
|
---|---|
void |
putService(Provider.Service s) 添加一项服务。 |
void |
removeService(Provider.Service s) 删除以前使用 |
Inherited methods |
|
---|---|
From class java.util.Properties
|
|
From class java.util.Hashtable
|
|
From class java.util.Dictionary
|
|
From class java.lang.Object
|
|
From interface java.util.Map
|
Provider (String name, double version, String info)
用指定的名称,版本号和信息构造一个提供者。
Parameters | |
---|---|
name |
String : the provider name. |
version |
double : the provider version number. |
info |
String : a description of the provider and its services. |
void clear ()
清除此提供程序,以便它不再包含用于查找提供程序实现的设施的属性。
首先,如果存在安全管理器,则使用字符串"clearProviderProperties."+name
(其中name
是提供程序名称)调用其checkSecurityAccess
方法,以查看清除此提供程序是否name
。 如果使用默认实现checkSecurityAccess
(即,该方法未被覆盖),则会导致对SecurityPermission("clearProviderProperties."+name)
权限的安全管理器checkPermission
方法的SecurityPermission("clearProviderProperties."+name)
。
Throws | |
---|---|
SecurityException |
if a security manager exists and its method denies access to clear this provider |
Enumeration<Object> elements ()
返回此散列表中值的枚举。 在返回的对象上使用Enumeration方法来顺序获取元素。
Returns | |
---|---|
Enumeration<Object> |
an enumeration of the values in this hashtable. |
Set<Entry<Object, Object>> entrySet ()
返回此提供程序中包含的属性条目的不可修改的Set视图。
Returns | |
---|---|
Set<Entry<Object, Object>> |
a set view of the mappings contained in this map |
也可以看看:
void forEach (BiConsumer<? super Object, ? super Object> action)
对此映射中的每个条目执行给定操作,直到处理完所有条目或操作抛出异常为止。 除非实现类另有规定,否则按照条目集迭代的顺序执行操作(如果指定了迭代顺序)。操作抛出的异常会中继给调用者。
Parameters | |
---|---|
action |
BiConsumer : The action to be performed for each entry |
Object get (Object key)
返回指定键映射到的值 null
如果此映射不包含键映射,则返回 null
。
更正式地说,如果该映射包含从键k
到值v
的映射,例如(key.equals(k))
,则该方法返回v
; 否则返回null
。 (最多可以有一个这样的映射。)
Parameters | |
---|---|
key |
Object : the key whose associated value is to be returned |
Returns | |
---|---|
Object |
the value to which the specified key is mapped, or null if this map contains no mapping for the key |
String getInfo ()
返回提供者及其服务的可读描述。 这可能会返回一个带有相关链接的HTML页面。
Returns | |
---|---|
String |
a description of the provider and its services. |
String getProperty (String key)
使用此属性列表中的指定键搜索属性。 如果在此属性列表中未找到该键,则会递归检查默认属性列表及其默认值。 如果找不到该属性,则该方法返回null
。
Parameters | |
---|---|
key |
String : the property key. |
Returns | |
---|---|
String |
the value in this property list with the specified key value. |
Provider.Service getService (String type, String algorithm)
获取描述此提供者实现此算法或别名的指定类型的服务。 如果不存在这样的实现,则此方法返回null。 如果有两个匹配的服务,一个使用putService()
添加到此提供者,另一个通过put()
添加,则返回通过putService()
添加的服务。
Parameters | |
---|---|
type |
String : the type of service requested (for example, MessageDigest ) |
algorithm |
String : the case insensitive algorithm name (or alternate alias) of the service requested (for example, SHA-1 ) |
Returns | |
---|---|
Provider.Service |
the service describing this Provider's matching service or null if no such service exists |
Throws | |
---|---|
NullPointerException |
if type or algorithm is null |
Set<Provider.Service> getServices ()
获取该提供商支持的所有服务的不可修改集合。
Returns | |
---|---|
Set<Provider.Service> |
an unmodifiable Set of all services supported by this Provider |
double getVersion ()
返回此提供者的版本号。
Returns | |
---|---|
double |
the version number for this provider. |
Set<Object> keySet ()
返回此提供程序中包含的属性键的不可修改的Set视图。
Returns | |
---|---|
Set<Object> |
a set view of the keys contained in this map |
Enumeration<Object> keys ()
返回此散列表中键的枚举。
Returns | |
---|---|
Enumeration<Object> |
an enumeration of the keys in this hashtable. |
void load (InputStream inStream)
从输入流中读取属性列表(键和元素对)。
Parameters | |
---|---|
inStream |
InputStream : the input stream. |
Throws | |
---|---|
IOException |
if an error occurred when reading from the input stream. |
也可以看看:
Object put (Object key, Object value)
将 key
属性设置为具有指定的 value
。
首先,如果存在安全管理器,则使用字符串"putProviderProperty."+name
调用checkSecurityAccess
方法,其中name
是提供程序名称,以查看是否可以设置此提供程序的属性值。 如果使用默认实现checkSecurityAccess
(即,该方法未被覆盖),那么这将导致对SecurityPermission("putProviderProperty."+name)
权限的安全管理器checkPermission
方法的SecurityPermission("putProviderProperty."+name)
。
Parameters | |
---|---|
key |
Object : the property key. |
value |
Object : the property value. |
Returns | |
---|---|
Object |
the previous value of the specified property (key ), or null if it did not have one. |
Throws | |
---|---|
SecurityException |
if a security manager exists and its method denies access to set property values. |
void putAll (Map<?, ?> t)
将指定Map中的所有映射复制到此提供程序。 这些映射将替换此提供程序对当前指定映射中的任何键的任何属性。
Parameters | |
---|---|
t |
Map : mappings to be stored in this map |
Object remove (Object key)
删除 key
属性(及其相应的 value
)。
首先,如果存在安全管理器,则使用字符串"removeProviderProperty."+name
调用其checkSecurityAccess
方法,其中name
是提供程序名称,以查看是否可以删除此提供程序的属性。 如果使用默认实现checkSecurityAccess
(即,该方法未被覆盖),那么这将导致以SecurityPermission("removeProviderProperty."+name)
权限调用安全管理器的checkPermission
方法。
Parameters | |
---|---|
key |
Object : the key for the property to be removed. |
Returns | |
---|---|
Object |
the value to which the key had been mapped, or null if the key did not have a mapping. |
Throws | |
---|---|
SecurityException |
if a security manager exists and its method denies access to remove this provider's properties. |
String toString ()
返回一个字符串,其中包含该提供者的名称和版本号。
Returns | |
---|---|
String |
the string with the name and the version number for this provider. |
Collection<Object> values ()
返回此提供程序中包含的属性值的不可修改的Collection视图。
Returns | |
---|---|
Collection<Object> |
a collection view of the values contained in this map |
void putService (Provider.Service s)
添加一项服务。 如果存在具有相同算法名称的相同类型的服务并且使用putService()
添加它,则它将被新服务替换。 此方法还将此服务的相关信息以Java Cryptography Architecture API Specification & Reference中所述的格式放置在提供程序的Hashtable值中。
另外,如果有安全管理器,则使用字符串"putProviderProperty."+name
调用其checkSecurityAccess
方法,其中name
是提供程序名称,以查看是否可以设置此提供程序的属性值。 如果使用默认实现checkSecurityAccess
(即,该方法未被覆盖),则会以SecurityPermission("putProviderProperty."+name)
权限调用安全管理器的checkPermission
方法。
Parameters | |
---|---|
s |
Provider.Service : the Service to add |
Throws | |
---|---|
SecurityException |
if a security manager exists and its method denies access to set property values. |
NullPointerException |
if s is null |
void removeService (Provider.Service s)
删除以前使用putService()
添加的服务。 指定的服务将从此提供程序中删除。 它将不再由getService()
返回,其信息将从该提供者的Hashtable中移除。
另外,如果有安全管理器,则使用字符串"removeProviderProperty."+name
调用其checkSecurityAccess
方法,其中name
是提供程序名称,以查看是否可以删除此提供程序的属性。 如果使用默认实现checkSecurityAccess
(即,该方法未被覆盖),那么这将导致对具有SecurityPermission("removeProviderProperty."+name)
权限的安全管理器的checkPermission
方法的SecurityPermission("removeProviderProperty."+name)
。
Parameters | |
---|---|
s |
Provider.Service : the Service to be removed |
Throws | |
---|---|
SecurityException |
if a security manager exists and its method denies access to remove this provider's properties. |
NullPointerException |
if s is null |