Most visited

Recently visited

Added in API level 1

Provider

public abstract class Provider
extends Properties

java.lang.Object
   ↳ java.util.Dictionary<java.lang.Objectjava.lang.Object>
     ↳ java.util.Hashtable<java.lang.Objectjava.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()

Summary

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<ObjectObject>> entrySet()

返回此提供程序中包含的属性条目的不可修改的Set视图。

void forEach(BiConsumer<? super Object, ? super Object> action)

对此映射中的每个条目执行给定操作,直到处理完所有条目或操作抛出异常为止。

Object get(Object key)

返回指定键映射到的值 null如果此映射不包含键映射,则返回 null

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)

key属性设置为具有指定的 value

void putAll(Map<?, ?> t)

将指定Map中的所有映射复制到此提供程序。

Object remove(Object key)

删除 key属性(及其对应的 value )。

String toString()

返回一个字符串,其中包含该提供者的名称和版本号。

Collection<Object> values()

返回此提供程序中包含的属性值的不可修改的Collection视图。

Protected methods

void putService(Provider.Service s)

添加一项服务。

void removeService(Provider.Service s)

删除以前使用 putService()添加的服务。

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

Protected constructors

Provider

Added in API level 1
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.

Public methods

clear

Added in API level 1
void clear ()

清除此提供程序,以便它不再包含用于查找提供程序实现的设施的属性。

首先,如果存在安全管理器,则使用字符串"clearProviderProperties."+name (其中name是提供程序名称)调用其checkSecurityAccess方法,以查看清除此提供程序是否name 如果使用默认实现checkSecurityAccess (即,该方法未被覆盖),则会导致对SecurityPermission("clearProviderProperties."+name)权限的安全管理器checkPermission方法的SecurityPermission("clearProviderProperties."+name)

Throws
SecurityException if a security manager exists and its checkSecurityAccess(String) method denies access to clear this provider

elements

Added in API level 1
Enumeration<Object> elements ()

返回此散列表中值的枚举。 在返回的对象上使用Enumeration方法来顺序获取元素。

Returns
Enumeration<Object> an enumeration of the values in this hashtable.

entrySet

Added in API level 1
Set<Entry<ObjectObject>> entrySet ()

返回此提供程序中包含的属性条目的不可修改的Set视图。

Returns
Set<Entry<ObjectObject>> a set view of the mappings contained in this map

也可以看看:

forEach

Added in API level 24
void forEach (BiConsumer<? super Object, ? super Object> action)

对此映射中的每个条目执行给定操作,直到处理完所有条目或操作抛出异常为止。 除非实现类另有规定,否则按照条目集迭代的顺序执行操作(如果指定了迭代顺序)。操作抛出的异常会中继给调用者。

Parameters
action BiConsumer: The action to be performed for each entry

get

Added in API level 1
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

getInfo

Added in API level 1
String getInfo ()

返回提供者及其服务的可读描述。 这可能会返回一个带有相关链接的HTML页面。

Returns
String a description of the provider and its services.

getName

Added in API level 1
String getName ()

返回此提供者的名称。

Returns
String the name of this provider.

getProperty

Added in API level 1
String getProperty (String key)

使用此属性列表中的指定键搜索属性。 如果在此属性列表中未找到该键,则会递归检查默认属性列表及其默认值。 如果找不到该属性,则该方法返回null

Parameters
key String: the property key.
Returns
String the value in this property list with the specified key value.

getService

Added in API level 1
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

getServices

Added in API level 1
Set<Provider.Service> getServices ()

获取该提供商支持的所有服务的不可修改集合。

Returns
Set<Provider.Service> an unmodifiable Set of all services supported by this Provider

getVersion

Added in API level 1
double getVersion ()

返回此提供者的版本号。

Returns
double the version number for this provider.

keySet

Added in API level 1
Set<Object> keySet ()

返回此提供程序中包含的属性键的不可修改的Set视图。

Returns
Set<Object> a set view of the keys contained in this map

keys

Added in API level 1
Enumeration<Object> keys ()

返回此散列表中键的枚举。

Returns
Enumeration<Object> an enumeration of the keys in this hashtable.

load

Added in API level 1
void load (InputStream inStream)

从输入流中读取属性列表(键和元素对)。

Parameters
inStream InputStream: the input stream.
Throws
IOException if an error occurred when reading from the input stream.

也可以看看:

put

Added in API level 1
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 checkSecurityAccess(String) method denies access to set property values.

putAll

Added in API level 1
void putAll (Map<?, ?> t)

将指定Map中的所有映射复制到此提供程序。 这些映射将替换此提供程序对当前指定映射中的任何键的任何属性。

Parameters
t Map: mappings to be stored in this map

remove

Added in API level 1
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 checkSecurityAccess(String) method denies access to remove this provider's properties.

toString

Added in API level 1
String toString ()

返回一个字符串,其中包含该提供者的名称和版本号。

Returns
String the string with the name and the version number for this provider.

values

Added in API level 1
Collection<Object> values ()

返回此提供程序中包含的属性值的不可修改的Collection视图。

Returns
Collection<Object> a collection view of the values contained in this map

Protected methods

putService

Added in API level 1
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 checkSecurityAccess(String) method denies access to set property values.
NullPointerException if s is null

removeService

Added in API level 1
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 checkSecurityAccess(String) method denies access to remove this provider's properties.
NullPointerException if s is null

Hooray!