所有类


java.security
类 Provider

java.lang.Object
  继承者 java.util.Dictionary<K,V>
      继承者 java.util.Hashtable<Object,Object>
          继承者 java.util.Properties
              继承者 java.security.Provider
所有已实现的接口:
Serializable, Cloneable, Map<Object,Object>
直接已知子类:
AuthProvider

public abstract class Provider
   
   
   
   
   
extends Properties

此类表示 Java 安全 API "provider",这里 provider 实现了 Java 安全性的一部分或者全部。provider 可能实现的服务包括:

  • 算法(如 DSA、RSA、MD5 或 SHA-1)。
  • 密钥的生成、转换和管理设施(如用于特定于算法的密钥)。

每个 provider 有一个名称和一个版本号,并且在每个它装入运行时中进行配置。

有关特定类型的 provider、加密服务 provider 如何工作和安装的信息,请参阅 "Java Cryptography Architecture API Specification & Reference" 中的 The Provider Class。但是,请注意 provider 能够被用来实现 Java 中的任何安全服务,这些安全服务使用带有适合下层的实现选择的可插入架构。

某些 provider 的实现在操作时可能遇到不可恢复的内部错误,例如与安全性令牌通信的错误。应该使用 ProviderException 指示此类错误。

服务类型 Provider 留给安全框架使用。此类型的服务不能被应用程序添加、移除或修改。以下属性自动放置在每个 Provider 对象中:

名称
Provider.id nameString.valueOf(provider.getName())
Provider.id versionString.valueOf(provider.getVersion())
Provider.id infoString.valueOf(provider.getInfo())
Provider.id classNameprovider.getClass().getName()

另请参见:
序列化表格

嵌套类摘要
static classProvider.Service
          安全服务的描述。
 
字段摘要
 
从类 java.util.Properties 继承的字段
defaults
 
构造方法摘要
protected Provider(String name, double version, String info)
          用指定的名称、版本号和信息构造一个 provider。
 
方法摘要
 voidclear()
          清除此 provider,使其不再包含用来查找由该 provider 实现的设施的属性。
 Set<Map.Entry<Object,Object>>entrySet()
          返回此 Provider 中所包含的属性项的一个不可修改的 Set 视图。
 StringgetInfo()
          返回 provider 及其服务的人可读 (human-readable) 的描述。
 StringgetName()
          返回此 provider 的名称。
 Provider.ServicegetService(String type, String algorithm)
          获取描述此算法或别名的指定类型的此 Provider 实现的服务。
 Set<Provider.Service>getServices()
          获取此 Provider 支持的所有服务的一个不可修改的 Set。
 doublegetVersion()
          返回此 provider 的版本号。
 Set<Object>keySet()
          返回此 provider 中所包含的属性键的一个不可修改的 Set 视图。
 voidload(InputStream inStream)
          从输入流中读取属性列表(键和元素对)。
 Objectput(Object key, Object value)
          设置 key 属性,使其具有指定的 value
 voidputAll(Map<?,?> t)
          将指定 Map 中所有映射关系复制到此 provider 中。
protected  voidputService(Provider.Service s)
          添加服务。
 Objectremove(Object key)
          移除 key 属性(及其相应的 value)。
protected  voidremoveService(Provider.Service s)
          移除以前用 putService() 添加的服务。
 StringtoString()
          返回具有此 provider 名称和版本号的字符串。
 Collection<Object>values()
          返回此 provider 中所包含的属性值的一个不可修改的 Collection 视图。
 
从类 java.util.Properties 继承的方法
getProperty, getProperty, list, list, loadFromXML, propertyNames, save, setProperty, store, storeToXML, storeToXML
 
从类 java.util.Hashtable 继承的方法
clone, contains, containsKey, containsValue, elements, equals, get, hashCode, isEmpty, keys, rehash, size
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

Provider

protected Provider(String name,
                   double version,
                   String info)
用指定的名称、版本号和信息构造一个 provider。

参数:
name - provider 的名称。
version - provider 的版本号。
info - provider 及其服务的描述。
方法详细信息

getName

public String getName()
返回此 provider 的名称。

返回:
此 provider 的名称。

getVersion

public double getVersion()
返回此 provider 的版本号。

返回:
此 provider 的版本号。

getInfo

public String getInfo()
返回 provider 及其服务的人可读 (human-readable) 的描述。此方法可能返回带有相关链接的 HTML 页面。

返回:
provider 及其服务的描述。

toString

public String toString()
返回具有此 provider 名称和版本号的字符串。

覆盖:
Hashtable<Object,Object> 中的 toString
返回:
具有此 provider 名称和版本号的字符串。

clear

public void clear()
清除此 provider,使其不再包含用来查找由该 provider 实现的设施的属性。

首先,如果存在安全管理器,则用字符串 "clearProviderProperties."+name(其中 name 是 provider 的名称)作为参数值调用其 checkSecurityAccess 方法,以查看是否能够清除此 provider。如果使用 checkSecurityAccess 的默认实现(即未重写此方法),则会导致使用 SecurityPermission("clearProviderProperties."+name) 权限来调用安全管理器的 checkPermission 方法。

指定者:
接口 Map<Object,Object> 中的 clear
覆盖:
Hashtable<Object,Object> 中的 clear
抛出:
SecurityException - 如果存在安全管理器,且其 {SecurityManager.checkSecurityAccess(java.lang.String) 方法拒绝清除此 provider
从以下版本开始:
1.2

load

public void load(InputStream inStream)
          throws IOException
从输入流中读取属性列表(键和元素对)。

覆盖:
Properties 中的 load
参数:
inStream - 输入流。
抛出:
IOException - 如果读取输入流时发生错误。
另请参见:
Properties.load(java.io.InputStream)

putAll

public void putAll(Map<?,?> t)
将指定 Map 中所有映射关系复制到此 provider 中。针对指定 Map 中的当前所有键,这些映射关系将替换此 provider 中具有的所有属性。

指定者:
接口 Map<Object,Object> 中的 putAll
覆盖:
Hashtable<Object,Object> 中的 putAll
参数:
t - 将存储在此映射中的映射关系。
从以下版本开始:
1.2