java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

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 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 实现的设施的属性。
 Set<Map.Entry<Object,Object>> entrySet()
          返回此 Provider 中所包含的属性项的一个不可修改的 Set 视图。
 String getInfo()
          返回 provider 及其服务的人可读 (human-readable) 的描述。
 String getName()
          返回此 provider 的名称。
 Provider.Service getService(String type, String algorithm)
          获取描述此算法或别名的指定类型的此 Provider 实现的服务。
 Set<Provider.Service> getServices()
          获取此 Provider 支持的所有服务的一个不可修改的 Set。
 double getVersion()
          返回此 provider 的版本号。
 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, 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

entrySet

public Set<Map.Entry<Object,Object>> entrySet()
返回此 Provider 中所包含的属性项的一个不可修改的 Set 视图。

指定者:
接口 Map<Object,Object> 中的 entrySet
覆盖:
Hashtable<Object,Object> 中的 entrySet
返回:
包含在此映射中的映射关系的 set 视图。
从以下版本开始:
1.2
另请参见:
Map.Entry

keySet

public Set<Object> keySet()
返回此 provider 中所包含的属性键的一个不可修改的 Set 视图。

指定者:
接口 Map<Object,Object> 中的 keySet
覆盖:
Hashtable<Object,Object> 中的 keySet
返回:
此映射所包含的键的 set 视图。
从以下版本开始:
1.2

values

public Collection<Object> values()
返回此 provider 中所包含的属性值的一个不可修改的 Collection 视图。

指定者:
接口 Map<Object,Object> 中的 values
覆盖:
Hashtable<Object,Object> 中的 values
返回:
此映射中所包含值的 collection 视图。
从以下版本开始:
1.2

put

public Object put(Object key,
                  Object value)
设置 key 属性,使其具有指定的 value

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

指定者:
接口 Map<Object,Object> 中的 put
覆盖:
Hashtable<Object,Object> 中的 put
参数:
key - 属性键。
value - 属性值。
返回:
指定属性 (key) 以前的值;如果不存在该值,则返回 null。
抛出:
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkSecurityAccess(java.lang.String) 方法拒绝设置属性值。
从以下版本开始:
1.2
另请参见:
Object.equals(Object), Hashtable.get(Object)

remove

public Object remove(Object key)
移除 key 属性(及其相应的 value)。

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

指定者:
接口 Map<Object,Object> 中的 remove
覆盖:
Hashtable<Object,Object> 中的 remove
参数:
key - 要移除的属性的键。
返回:
与该键存在映射关系的值;如果该键没有映射关系,则返回 null。
抛出:
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkDelete(java.lang.String) 方法拒绝移除此 provider 的属性。
从以下版本开始:
1.2

getService

public Provider.Service getService(String type,
                                   String algorithm)
获取描述此算法或别名的指定类型的此 Provider 实现的服务。如果不存在此类实现,则此方法返回 null。如果存在两个匹配的服务,分别使用 putService()put() 添加到此 provider,那么返回通过 putService() 添加的服务。

参数:
type - 请求的 service 类型(例如 MessageDigest
algorithm - 所请求服务不区分大小写的算法名称(或备用的别名)(例如 SHA-1
返回:
描述此 Provider 的匹配服务的服务,如果不存在此类服务,则返回 null
抛出:
NullPointerException - 如果类型或算法为 null
从以下版本开始:
1.5

getServices

public Set<Provider.Service> getServices()
获取此 Provider 支持的所有服务的一个不可修改的 Set。

返回:
此 Provider 支持的所有服务的一个不可修改的 Set。
从以下版本开始:
1.5

putService

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 为 null
从以下版本开始:
1.5

removeService

protected void removeService(Provider.Service s)
移除以前用 putService() 添加的服务。从此 provider 中移除指定的服务。它将不再会被 getService() 返回,并且将从此 provider 的 Hashtable 中移除其信息。

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

参数:
s - 要移除的服务
抛出:
SecurityException - 如果存在安全管理器,且其 checkDelete 方法拒绝移除此 provider 的属性。
NullPointerException - 如果 s 为 null
从以下版本开始:
1.5

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策