JavaTM 2 Platform
Standard Ed. 5.0

java.security
类 Security

java.lang.Object
  继承者 java.security.Security

public final class Security
extends Object

此类集中了所有的安全属性和常见的安全方法。其主要用途之一是管理提供程序。


方法摘要
static int addProvider(Provider provider)
          将提供程序添加到下一个可用位置。
static String getAlgorithmProperty(String algName, String propName)
          已过时。 此方法用来返回 "SUN" 密码服务提供程序的主文件中的专有属性的值,以便确定如何解析特定于算法的参数。使用新的基于提供程序的、与算法无关的 AlgorithmParametersKeyFactory 引擎类(在 Java 2 平台中引入)代替。
static Set<String> getAlgorithms(String serviceName)
          返回字符串 Set,这些字符串包含了指定的 Java 加密服务的所有可用算法或类型的名称(例如,Signature、MessageDigest、Cipher、Mac、KeyStore)。
static String getProperty(String key)
          获取安全属性值。
static Provider getProvider(String name)
          返回使用指定的名称安装的提供程序(如果有)。
static Provider[] getProviders()
          返回包含所有已安装的提供程序的数组。
static Provider[] getProviders(Map<String,String> filter)
          返回包含可以满足指定的 * 选择标准的所有已安装的提供程序的数组,如果尚未安装此类提供程序,则返回 null。
static Provider[] getProviders(String filter)
          返回包含满足指定的选择标准的所有已安装的提供程序的数组,如果尚未安装此类提供程序,则返回 null。
static int insertProviderAt(Provider provider, int position)
          在指定的位置添加新的提供程序。
static void removeProvider(String name)
          移除带有指定名称的提供程序。
static void setProperty(String key, String datum)
          设置安全属性值。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

getAlgorithmProperty

@Deprecated
public static String getAlgorithmProperty(String algName,
                                                     String propName)
已过时。 此方法用来返回 "SUN" 密码服务提供程序的主文件中的专有属性的值,以便确定如何解析特定于算法的参数。使用新的基于提供程序的、与算法无关的 AlgorithmParametersKeyFactory 引擎类(在 Java 2 平台中引入)代替。

获取某个算法的指定属性。算法名称必须是标准名称。有关标准算法名称的信息,请参见《Java Cryptography Architecture API Specification & Reference 》中的附录 A。一种可能的用法是利用专门的算法分析程序,这些程序可以将类映射到它们理解的算法中(非常类似于 Key 分析程序的做法)。

参数:
algName - 算法名称。
propName - 要获得的属性名称。
返回:
指定的属性值。

insertProviderAt

public static int insertProviderAt(Provider provider,
                                   int position)
在指定的位置添加新的提供程序。该位置就是在其中搜索提供程序以寻找请求的算法的首选顺序。注意,不保证一定遵守此首选顺序。该位置从 1 开始,也就是说 1 是首选数,其后是 2,等等。

如果将给定的提供程序安装到了请求的位置,则在该位置使用的提供程序和所有位置大于 position 的提供程序将向上移动一个位置(向所安装的提供程序列表的尾部移动)。

如果已经安装了某个提供程序,则不能再添加该程序。

首先,如果有安全管理器,则调用带有字符串 "insertProvider."+provider.getName()checkSecurityAccess 方法可查看是否可以添加新的提供程序。如果使用 checkSecurityAccess 的默认实现(即未重写此方法),则会导致调用带有 SecurityPermission("insertProvider."+provider.getName()) 权限的安全管理器的 checkPermission 方法。

参数:
provider - 要添加的提供程序。
position - 调用方调用此提供程序的首选位置。
返回:
添加提供程序的实际首选位置,如果因已安装了提供程序而未添加它,则返回 -1。
抛出:
NullPointerException - 如果提供程序为 null
SecurityException - 如果安全管理器已存在,且其 SecurityManager.checkSecurityAccess(java.lang.String) 方法拒绝对新的提供程序进行添加访问
另请参见:
getProvider(java.lang.String), removeProvider(java.lang.String), SecurityPermission

addProvider

public static int addProvider(Provider provider)
将提供程序添加到下一个可用位置。

首先,如果有安全管理器,则调用带有字符串 "insertProvider."+provider.getName()checkSecurityAccess 方法可查看是否可以添加新的提供程序。如果使用 checkSecurityAccess 的默认实现(即未重写此方法),则会导致调用带有 SecurityPermission("insertProvider."+provider.getName()) 权限的安全管理器的 checkPermission 方法。

参数:
provider - 要添加的提供程序。
返回:
添加提供程序的首选位置,如果因已安装了提供程序而未添加它,则返回 -1。
抛出:
NullPointerException - 如果提供程序为 null
SecurityException - 如果安全管理器已存在,且其 SecurityManager.checkSecurityAccess(java.lang.String) 方法拒绝对新的提供程序进行添加访问
另请参见:
getProvider(java.lang.String), removeProvider(java.lang.String), SecurityPermission

removeProvider

public static void removeProvider(String name)
移除带有指定名称的提供程序。

当移除指定的提供程序时,所有位置大于指定提供程序所在位置的提供程序都将向下移动一个位置(向已安装的提供程序列表的头部移动)。

此方法默认返回是否未安装提供程序或者名称是否为 null。

首先,如果有安全管理器,则调用带有字符串 "removeProvider."+namecheckSecurityAccess 方法可查看是否可以移除该提供程序。如果使用 checkSecurityAccess 的默认实现(即未重写此方法),则会导致调用带有 SecurityPermission("removeProvider."+name) 权限的安全管理器的 checkPermission 方法。

参数:
name - 要移除的提供程序的名称。
抛出:
SecurityException - 如果有安全管理器,且其 SecurityManager.checkSecurityAccess(java.lang.String) 方法拒绝对该提供程序进行移除访问
另请参见:
getProvider(java.lang.String), addProvider(java.security.Provider)

getProviders

public static Provider[] getProviders()
返回包含所有已安装的提供程序的数组。数组中提供程序的顺序是其首选顺序。

返回:
所有已安装的提供程序的数组。

getProvider

public static Provider getProvider(String name)
返回使用指定的名称安装的提供程序(如果有)。如果未安装带有指定名称的提供程序,或者名称为 null,则将返回 null。

参数:
name - 要获取的提供程序的名称。
返回:
指定名称的提供程序。
另请参见:
removeProvider(java.lang.String), addProvider(java.security.Provider)

getProviders

public static Provider[] getProviders(String filter)
返回包含满足指定的选择标准的所有已安装的提供程序的数组,如果尚未安装此类提供程序,则返回 null。返回的提供程序将根据其首选顺序进行排序。

加密服务始终与特定的算法或类型相关。例如,数字签名服务始终与特定算法(如 DSA)相关,CertificateFactory 服务始终与特定的证书类型(如 X.509)相关。

选择标准必须用以下两种格式之一指定:

有关标准加密服务名称、标准算法名称和标准属性名称的信息,请参阅《Java Cryptogaphy Architecture API Specification & Reference 》中的附录 A。

参数:
filter - 选择提供程序的标准。过滤器是区分大小写的。
返回:
可满足选择标准的所有已安装的提供程序,如果尚未安装此类提供程序,则返回 null。
抛出:
InvalidParameterException - 如果过滤器不是需要的格式
NullPointerException - 如果过滤器为 null
另请参见:
getProviders(java.util.Map)

getProviders

public static Provider[] getProviders(Map<String,String> filter)
返回包含可以满足指定的 * 选择标准的所有已安装的提供程序的数组,如果尚未安装此类提供程序,则返回 null。返回的提供程序将根据其 preference order 进行排序。

选择标准将通过映射表示。每个映射项都表示一种选择标准。当且仅当某个提供程序满足所有选择标准时才可选择它。此映射中任何项的密钥都必须使用以下两种格式之一:

有关标准加密服务名称、标准算法名称和标准属性名称的信息,请参阅《Java Cryptogaphy Architecture API Specification & Reference 》中的附录 A。

参数:
filter - 选择提供程序的标准。过滤器是区分大小写的。
返回:
所有可满足选择标准的已安装的提供程序,如果尚未安装此类提供程序,则返回 null。
抛出:
InvalidParameterException - 如果过滤器不是需要的格式
NullPointerException - 如果过滤器为 null
另请参见:
getProviders(java.lang.String)

getProperty

public static String getProperty(String key)
获取安全属性值。

首先,如果有安全管理器,将调用带有 java.security.SecurityPermission("getProperty."+key) 权限的 checkPermission 方法,以查看是否可以检索指定的安全属性值。

参数:
key - 要检索的属性的密钥。
返回:
与密钥对应的安全属性的值。
抛出:
SecurityException - 如果有安全管理器,并且其 SecurityManager.checkPermission(java.security.Permission) 方法拒绝对指定的安全属性值进行检索访问
NullPointerException - 如果密钥为 null
另请参见:
setProperty(java.lang.String, java.lang.String), SecurityPermission

setProperty

public static void setProperty(String key,
                               String datum)
设置安全属性值。

首先,如果有安全管理器,将调用其带有 java.security.SecurityPermission("setProperty."+key) 权限的 checkPermission 方法,以查看是否可以设置指定的安全属性值。

参数:
key - 要设置的属性的名称。
datum - 要设置的属性的值。
抛出:
SecurityException - 如果有安全管理器并且其 SecurityManager.checkPermission(java.security.Permission) 方法拒绝对指定的安全属性值进行设置访问
NullPointerException - 如果密钥或数据为 null
另请参见:
getProperty(java.lang.String), SecurityPermission

getAlgorithms

public static Set<String> getAlgorithms(String serviceName)
返回字符串 Set,这些字符串包含了指定的 Java 加密服务的所有可用算法或类型的名称(例如,Signature、MessageDigest、Cipher、Mac、KeyStore)。如果没有支持指定服务的提供程序,或者 serviceName 为 null,则返回一个空 Set。有关 Java 加密服务的完整列表,请参阅《Java Cryptography Architecture API Specification & Reference》。注:返回的 set 是不可改变的。

参数:
serviceName - Java 加密服务的名称(例如,Signature、MessageDigest、Cipher、Mac、KeyStore)。注:此参数是区分大小写的。
返回:
字符串的 Set,这些字符串包含用于指定的 Java 加密服务的所有可用算法或类型,如果没有支持指定服务的提供程序,则返回一个空 set。
从以下版本开始:
1.4

JavaTM 2 Platform
Standard Ed. 5.0

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

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