| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.util.Dictionary<K,V>
java.util.Hashtable<Object,Object>
java.util.Properties
java.security.Provider
public abstract class Provider
此类表示 Java 安全 API "provider",这里 provider 实现了 Java 安全性的一部分或者全部。provider 可能实现的服务包括:
每个 provider 有一个名称和一个版本号,并且在每个它装入运行时中进行配置。
有关特定类型的 provider、加密服务 provider 如何工作和安装的信息,请参阅 "Java Cryptography Architecture API Specification & Reference" 中的 Provider 类。但是,请注意 provider 能够被用来实现 Java 中的任何安全服务,这些安全服务使用带有适合下层的实现选择的可插入架构。
某些 provider 的实现在操作时可能遇到不可恢复的内部错误,例如与安全性令牌通信的错误。应该使用 ProviderException 指示此类错误。
服务类型 Provider 留给安全框架使用。此类型的服务不能被应用程序添加、移除或修改。以下属性自动放置在每个 Provider 对象中:
 
| 名称 | 值 | 
|---|---|
| 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() | 
| 嵌套类摘要 | |
|---|---|
| static class | Provider.Service安全服务的描述。 | 
| 字段摘要 | 
|---|
| 从类 java.util.Properties 继承的字段 | 
|---|
| defaults | 
| 构造方法摘要 | |
|---|---|
| protected  | Provider(String name,
         double version,
         String info)用指定的名称、版本号和信息构造一个 provider。 | 
| 方法摘要 | |
|---|---|
|  void | clear()清除此 provider,使其不再包含用来查找由该 provider 实现的设施的属性。 | 
|  Enumeration<Object> | elements()返回此哈希表中的值的枚举。 | 
|  Set<Map.Entry<Object,Object>> | entrySet()返回此 Provider 中所包含的属性项的一个不可修改的 Set 视图。 | 
|  Object | get(Object key)返回指定键所映射到的值,如果此映射不包含此键的映射,则返回 null.
 更确切地讲,如果此映射包含满足(key.equals(k))的从键k到值v的映射,则此方法返回v;否则,返回null。 | 
|  String | getInfo()返回 provider 及其服务的人可读 (human-readable) 的描述。 | 
|  String | getName()返回此 provider 的名称。 | 
|  String | getProperty(String key)用指定的键在此属性列表中搜索属性。 | 
|  Provider.Service | getService(String type,
           String algorithm)获取描述此算法或别名的指定类型的此 Provider 实现的服务。 | 
|  Set<Provider.Service> | getServices()获取此 Provider 支持的所有服务的一个不可修改的 Set。 | 
|  double | getVersion()返回此 provider 的版本号。 | 
|  Enumeration<Object> | keys()返回此哈希表中的键的枚举。 | 
|  Set<Object> | keySet()返回此 provider 中所包含的属性键的一个不可修改的 Set 视图。 | 
|  void | load(InputStream inStream)从输入流中读取属性列表(键和元素对)。 | 
|  Object | put(Object key,
    Object value)设置 key属性,使其具有指定的value。 | 
|  void | putAll(Map<?,?> t)将指定 Map 中所有映射关系复制到此 provider 中。 | 
| protected  void | putService(Provider.Service s)添加服务。 | 
|  Object | remove(Object key)移除 key属性(及其相应的value)。 | 
| protected  void | removeService(Provider.Service s)移除以前用 putService()添加的服务。 | 
|  String | toString()返回具有此 provider 名称和版本号的字符串。 | 
|  Collection<Object> | values()返回此 provider 中所包含的属性值的一个不可修改的 Collection 视图。 | 
| 从类 java.util.Properties 继承的方法 | 
|---|
| getProperty, list, list, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, stringPropertyNames | 
| 从类 java.util.Hashtable 继承的方法 | 
|---|
| clone, contains, containsKey, containsValue, equals, hashCode, isEmpty, rehash, size | 
| 从类 java.lang.Object 继承的方法 | 
|---|
| finalize, getClass, notify, notifyAll, wait, wait, wait | 
| 构造方法详细信息 | 
|---|
protected Provider(String name,
                   double version,
                   String info)
name - provider 的名称。version - provider 的版本号。info - provider 及其服务的描述。| 方法详细信息 | 
|---|
public String getName()
public double getVersion()
public String getInfo()
public String toString()
Hashtable<Object,Object> 中的 toStringpublic void clear()
首先,如果存在安全管理器,则用字符串 "clearProviderProperties."+name(其中 name 是 provider 的名称)作为参数值调用其 checkSecurityAccess 方法,以查看是否能够清除此 provider。如果使用 checkSecurityAccess 的默认实现(即未重写此方法),则会导致使用 SecurityPermission("clearProviderProperties."+name) 权限来调用安全管理器的 checkPermission 方法。
Map<Object,Object> 中的 clearHashtable<Object,Object> 中的 clearSecurityException - 如果存在安全管理器,且其 {SecurityManager.checkSecurityAccess(java.lang.String) 方法拒绝清除此 provider
public void load(InputStream inStream)
          throws IOException
Properties 中的 loadinStream - 输入流。
IOException - 如果读取输入流时发生错误。Properties.load(java.io.Reader)public void putAll(Map<?,?> t)
Map<Object,Object> 中的 putAllHashtable<Object,Object> 中的 putAllt - 将存储在此映射中的映射关系。public Set<Map.Entry<Object,Object>> entrySet()
Map<Object,Object> 中的 entrySetHashtable<Object,Object> 中的 entrySetMap.Entrypublic Set<Object> keySet()
Map<Object,Object> 中的 keySetHashtable<Object,Object> 中的 keySetpublic Collection<Object> values()
Map<Object,Object> 中的 valuesHashtable<Object,Object> 中的 values
public Object put(Object key,
                  Object value)
key 属性,使其具有指定的 value。
 
首先,如果存在安全管理器,则用字符串 "clearProviderProperties."+name(其中 name 是 provider 的名称)作为参数调用其 checkSecurityAccess 方法,以查看是否能设置此 provider 的属性值。如果使用 checkSecurityAccess 的默认实现(即未重写此方法),则会导致使用 SecurityPermission("putProviderProperty."+name) 权限来调用安全管理器的 checkPermission 方法。
Map<Object,Object> 中的 putHashtable<Object,Object> 中的 putkey - 属性键。value - 属性值。
key) 以前的值;如果不存在该值,则返回 null。
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkSecurityAccess(java.lang.String)Object.equals(Object), 
Hashtable.get(Object)public Object remove(Object key)
key 属性(及其相应的 value)。
 
首先,如果存在安全管理器,则用字符串 "removeProviderProperty."+name(其中 name 是 provider 的名称)作为参数调用其 checkSecurityAccess 方法,以查看是否能移除此 provider 的属性。如果使用 checkSecurityAccess 的默认实现(即未重写此方法),则会导致使用 SecurityPermission("removeProviderProperty."+name) 权限来调用安全管理器的 checkPermission 方法。
Map<Object,Object> 中的 removeHashtable<Object,Object> 中的 removekey - 要移除的属性的键。
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkDelete(java.lang.String)public Object get(Object key)
Hashtable 复制的描述null.
 更确切地讲,如果此映射包含满足 (key.equals(k)) 的从键 k 到值 v 的映射,则此方法返回 v;否则,返回  null。(最多只能有一个这样的映射。)
Map<Object,Object> 中的 getHashtable<Object,Object> 中的 getkey - 要返回其相关值的键
null。Hashtable.put(Object, Object)public Enumeration<Object> keys()
Hashtable 复制的描述
Hashtable<Object,Object> 中的 keysEnumeration, 
Hashtable.elements(), 
Hashtable.keySet(), 
Mappublic Enumeration<Object> elements()
Hashtable 复制的描述
Hashtable<Object,Object> 中的 elementsEnumeration, 
Hashtable.keys(), 
Hashtable.values(), 
Mappublic String getProperty(String key)
Properties 复制的描述null。
Properties 中的 getPropertykey - 属性键。
Properties.setProperty(java.lang.String, java.lang.String), 
Properties.defaults
public Provider.Service getService(String type,
                                   String algorithm)
putService() 和 put() 添加到此 provider,那么返回通过 putService() 添加的服务。
type - 请求的 service 类型(例如 MessageDigest)algorithm - 所请求服务不区分大小写的算法名称(或备用的别名)(例如 SHA-1)
NullPointerException - 如果类型或算法为 nullpublic Set<Provider.Service> getServices()
protected void putService(Provider.Service s)
putService() 添加的,则其将被新的服务替换。此方法还将关于此服务的信息放在 provider 的 Hashtable 值中,以 Java Cryptography Architecture API Specification & Reference 中描述的格式存放。
同样,如果存在安全管理器,则用字符串 "clearProviderProperties."+name(其中 name 是 provider 的名称)作为参数调用其 checkSecurityAccess 方法,以查看是否能设置此 provider 的属性值。如果使用 checkSecurityAccess 的默认实现(即未重写此方法),则会导致使用 SecurityPermission("putProviderProperty."+name) 权限来调用安全管理器的 checkPermission 方法。
s - 要添加的服务
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkSecurityAccess(java.lang.String)NullPointerException - 如果 s 为 nullprotected void removeService(Provider.Service s)
putService() 添加的服务。从此 provider 中移除指定的服务。它将不再会被 getService() 返回,并且将从此 provider 的 Hashtable 中移除其信息。
同样,如果存在安全管理器,则用字符串 "removeProviderProperty."+name(其中 name 是 provider 的名称)作为参数调用其 checkSecurityAccess 方法,以查看是否能移除此 provider 的属性。如果使用 checkSecurityAccess 的默认实现(即未重写此方法),则会导致使用 SecurityPermission("removeProviderProperty."+name) 权限来调用安全管理器的 checkPermission 方法。
s - 要移除的服务
SecurityException - 如果存在安全管理器,且其 checkDeleteNullPointerException - 如果 s 为 null| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。