public final class Security extends Object
这类集中所有的安全特性和常见的安全方法。它的主要用途之一是管理供应商。
安全属性的默认值是从实施的具体位置看,这通常是在java的安装目录属性文件lib/security/java.security
。
Modifier and Type | Method and Description |
---|---|
static int |
addProvider(Provider provider)
将提供程序添加到可用的下一个位置。
|
static String |
getAlgorithmProperty(String algName, String propName)
过时的。
此方法用于在“太阳”密码服务提供商的主文件中返回一个私有属性的值,以确定如何解析算法的具体参数。使用新的供应商和基于算法的独立
AlgorithmParameters 和KeyFactory 引擎类(介绍J2SE 1.2版平台)代替。
|
static Set<String> |
getAlgorithms(String serviceName)
返回一组包含指定的java加密服务所有可用的算法或类型名称的字符串(如签名、消息摘要、密码、MAC、KeyStore)。
|
static String |
getProperty(String key)
获取一个安全属性值。
|
static Provider |
getProvider(String name)
返回已安装的提供程序的指定名称,如果有。
|
static Provider[] |
getProviders()
返回包含所有已安装的供应商的数组。
|
static Provider[] |
getProviders(Map<String,String> filter)
返回一个数组,其中包含满足指定的*选择标准的所有已安装的服务商,或者如果没有安装这些服务提供商的话,则该数组将返回一个。
|
static Provider[] |
getProviders(String filter)
返回一个数组,其中包含满足指定选择标准的所有已安装的服务商,或者如果没有已安装这些服务提供商的话,则为。
|
static int |
insertProviderAt(Provider provider, int position)
添加一个新的提供程序,在指定的位置。
|
static void |
removeProvider(String name)
用指定名称删除提供程序。
|
static void |
setProperty(String key, String datum)
设置一个安全属性值。
|
@Deprecated public static String getAlgorithmProperty(String algName, String propName)
AlgorithmParameters
和KeyFactory
引擎类(介绍J2SE 1.2版平台)代替。
algName
的算法名称。
propName
-属性的名称来。
public static int insertProviderAt(Provider provider, int position)
如果给定的提供程序安装在所要求的位置,那是在那个位置的供应商,和供应商的位置大于position
,移一个位置(对安装商的列表的末尾)。
如果已经安装了提供程序,则无法添加一个提供程序。
如果有一个安全经理的SecurityManager.checkSecurityAccess(java.lang.String)
方法被调用的"insertProvider"
许可目标名称是否可以添加一个新的供应商。如果这个权限检查被拒绝,checkSecurityAccess
与"insertProvider."+provider.getName()
许可目标名称又叫。如果支票是否认,一个SecurityException
抛出。
provider
-供应商应加。
position
的优先地位,打电话的人会喜欢这个供应商。
NullPointerException
如果供应商是空的
SecurityException
-如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝访问添加一个新的供应商
getProvider(java.lang.String)
,
removeProvider(java.lang.String)
,
SecurityPermission
public static int addProvider(Provider provider)
如果有一个安全经理的SecurityManager.checkSecurityAccess(java.lang.String)
方法被调用的"insertProvider"
许可目标名称是否可以添加一个新的供应商。如果这个权限检查被拒绝,checkSecurityAccess
与"insertProvider."+provider.getName()
许可目标名称又叫。如果支票是否认,一个SecurityException
抛出。
provider
-供应商应加。
NullPointerException
如果供应商是空的
SecurityException
-如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝访问添加一个新的供应商
getProvider(java.lang.String)
,
removeProvider(java.lang.String)
,
SecurityPermission
public static void removeProvider(String name)
当指定的供应商被删除时,所有位于一个位置大于指定供应商的位置的所有供应商都向下移动一个位置(向已安装的供应商列表的头)。
如果提供程序未安装或名称为空,则此方法会默默返回。
首先,如果存在安全管理器,它的checkSecurityAccess
方法被调用的字符串"removeProvider."+name
看是否可以删除供应商。如果checkSecurityAccess
默认的实现是使用(即,方法不修改),那么这将导致在一个叫保安部经理的checkPermission
方法与SecurityPermission("removeProvider."+name)
许可。
name
-供应商的名称删除。
SecurityException
-如果存在一个安全管理及其
SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝访问删除供应商
getProvider(java.lang.String)
,
addProvider(java.security.Provider)
public static Provider[] getProviders()
public static Provider getProvider(String name)
name
-提供者的名称来。
removeProvider(java.lang.String)
,
addProvider(java.security.Provider)
public static Provider[] getProviders(String filter)
密码服务总是与一个特定的算法或类型相关联的。例如,一个数字签名服务总是与一个特定的算法相关的(例如,DSA),和一个certificatefactory服务总是与一个特定的证书类型有关(如X.509)。
选择标准必须在以下两种格式中的一种中指定:
密码服务名称不能包含任何点。
一个供应商满足指定选择标准敌我识别的提供者实现指定的算法或类型为指定的密码服务。
例如,“certificatefactory。X.509”将由任何供应商满意,提供一个certificatefactory X.509证书的实施。
密码服务名称不能包含任何点。必须有一个或多个空格字符的algorithm_or_type > <和> < attribute_name之间。 和>
一个供应商满足这个选择标准IFF提供者实现指定的算法或类型为指定的加密服务,实现满足约束表示的指定属性名称/值对。
例如,“signature.sha1withdsa密钥大小:1024”将由任何供应商满意,实现了sha1withdsa签名算法和密钥大小1024(或更大)。
看到有关标准的加密服务名称信息 Java Cryptography Architecture Standard Algorithm Name Documentation,标准算法的名称和标准属性名称。
filter
-选择供应商的标准。该过滤器是不区分大小写的。
InvalidParameterException
如果过滤不需要的格式
NullPointerException
如果过滤器是空的
getProviders(java.util.Map)
public static Provider[] getProviders(Map<String,String> filter)
选择标准表示的Map。每个Map条目代表一个选择标准。供应商选择的当且仅当它满足所有的选择标准。在这样的Map中的任何条目的关键必须是以下两种格式:
密码服务名称不能包含任何点。
与键关联的值必须是一个空字符串。
一个供应商满足这个选择标准IFF提供者实现指定的算法或类型为指定的密码服务。
密码服务名称不能包含任何点。必须有一个或多个空格字符的algorithm_or_type > <和> < attribute_name之间。 和>
与键关联的值必须是一个非空字符串。一个供应商满足这个选择标准IFF提供者实现指定的算法或类型为指定的加密服务,实现满足约束表示的指定属性名称/值对。
attribute_name algorithm_or_type看到有关标准的加密服务名称信息 Java Cryptography Architecture Standard Algorithm Name Documentation,标准算法的名称和标准属性名称。
filter
-选择供应商的标准。该过滤器是不区分大小写的。
InvalidParameterException
如果过滤不需要的格式
NullPointerException
如果过滤器是空的
getProviders(java.lang.String)
public static String getProperty(String key)
首先,如果存在安全管理器,它的checkPermission
方法称为一个java.security.SecurityPermission("getProperty."+key)
许可是否可以检索指定安全属性的价值。
key
-属性检索的关键。
SecurityException
-如果存在一个安全管理及其
SecurityManager.checkPermission(java.security.Permission)
方法拒绝访问检索指定安全属性值
NullPointerException
-关键是空的
setProperty(java.lang.String, java.lang.String)
,
SecurityPermission
public static void setProperty(String key, String datum)
首先,如果存在安全管理器,它的checkPermission
方法称为一个java.security.SecurityPermission("setProperty."+key)
许可是否可以设置指定的安全属性值。
key
-要设置的属性的名称。
datum
-属性要设置的值。
SecurityException
-如果存在一个安全管理及其
SecurityManager.checkPermission(java.security.Permission)
方法拒绝访问设置指定安全属性值
NullPointerException
如果键或数据是无效的
getProperty(java.lang.String)
,
SecurityPermission
public static Set<String> getAlgorithms(String serviceName)
serviceName
- java加密服务的名称(如签名、消息摘要、密码、MAC、KeyStore)。注:此参数是不区分大小写的。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.