|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.security.Security
public final class Security
此類別集中了所有的安全屬性和常見的安全方法。其主要用途之一是管理提供者。
方法摘要 | |
---|---|
static int |
addProvider(Provider provider)
將提供者添加到下一個可用位置。 |
static String |
getAlgorithmProperty(String algName,
String propName)
已過時。 此方法用來返回 "SUN" 密碼服務提供者的主檔案中的專有屬性的值,以便確定如何解析特定於演算法的參數。使用新的基於提供者的、與演算法無關的 AlgorithmParameters 和 KeyFactory 引擎類別(在 J2SE 1.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 |
方法詳細資訊 |
---|
@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
的提供者將向上移動一個位置(向所安裝的提供者列表的尾部移動)。
如果已經安裝了某個提供者,則不能再添加該程序。
首先,如果有安全管理器,則調用帶有字元串 "insertProvider."+provider.getName()
的 checkSecurityAccess
方法可查看是否可以添加新的提供者。如果使用 checkSecurityAccess
的預設實作(即未覆寫此方法),則會導致調用帶有 SecurityPermission("insertProvider."+provider.getName())
權限的安全管理器的 checkPermission
方法。
provider
- 要添加的提供者。position
- 調用方調用此提供者的首選位置。
NullPointerException
- 如果提供者為 null
SecurityException
- 如果安全管理器已存在,且其 SecurityManager.checkSecurityAccess(java.lang.String)
方法拒絕對新的提供者進行添加存取getProvider(java.lang.String)
,
removeProvider(java.lang.String)
,
SecurityPermission
public static int addProvider(Provider provider)
首先,如果有安全管理器,則調用帶有字元串 "insertProvider."+provider.getName()
的 checkSecurityAccess
方法可查看是否可以添加新的提供者。如果使用 checkSecurityAccess
的預設實作(即未覆寫此方法),則會導致調用帶有 SecurityPermission("insertProvider."+provider.getName())
權限的安全管理器的 checkPermission
方法。
provider
- 要添加的提供者。
NullPointerException
- 如果提供者為 null
SecurityException
- 如果安全管理器已存在,且其 SecurityManager.checkSecurityAccess(java.lang.String)
方法拒絕對新的提供者進行添加存取getProvider(java.lang.String)
,
removeProvider(java.lang.String)
,
SecurityPermission
public static void removeProvider(String name)
當移除指定的提供者時,所有位置大於指定提供者所在位置的提供者都將向下移動一個位置(向已安裝的提供者列表的頭部移動)。
此方法預設返回是否未安裝提供者或者名稱是否為 null。
首先,如果有安全管理器,則調用帶有字元串 "removeProvider."+name
的 checkSecurityAccess
方法可查看是否可以移除該提供者。如果使用 checkSecurityAccess
的預設實作(即未覆寫此方法),則會導致調用帶有 SecurityPermission("removeProvider."+name)
權限的安全管理器的 checkPermission
方法。
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)相關。
選擇標準必須用以下兩種格式之一指定:
加密服務名不能包含任何圓點。
當且僅當提供者為指定的加密服務實作了指定的演算法或型別時,該提供者才可以滿足指定的選擇標準。
例如,任何為 X.509 證書提供 CertificateFactory 實作的提供者都可以滿足 "CertificateFactory.X.509" 的要求。
加密服務名不能包含任何圓點。在 <algorithm_or_type> 與 <attribute_name> 之間必須有一個或多個空格字元。
當且僅當某個提供者為指定的加密服務實作了指定的演算法或型別,並且其實作可以滿足由指定的屬性名稱/值對表達的限制要求時,該提供者才可以滿足此選擇標準。
例如,任何實施了 SHA1withDSA 簽章演算法、keysize 為 1024(或更大)的提供者都可以滿足 "Signature.SHA1withDSA KeySize:1024" 的需要。
有關標準加密服務名稱、標準演算法名稱和標準屬性名稱的資訊,請參閱 Java Cryptography Architecture API Specification & Reference 中的附錄 A。
filter
- 選擇提供者的標準。過濾器是區分大小寫的。
InvalidParameterException
- 如果過濾器不是需要的格式
NullPointerException
- 如果過濾器為 nullgetProviders(java.util.Map)
public static Provider[] getProviders(Map<String,String> filter)
選擇標準將通過映射表示。每個映射項都表示一種選擇標準。當且僅當某個提供者滿足所有選擇標準時才可選擇它。此映射中任何項的密鑰都必須使用以下兩種格式之一:
加密服務名不能包含任何圓點。
與密鑰相關的值必須為空字元串。
當且僅當某個提供者為指定的加密服務實作了指定的演算法或型別時,該提供者才能滿足此選擇標準。
加密服務名不能包含任何圓點。在 <algorithm_or_type> 與 <attribute_name> 之間必須有一個或多個空格字元。
與密鑰相關的值必須為非空(null)字元串。當且僅當某個提供者為指定的加密服務實作了指定的演算法或型別,並且其實作可以滿足由指定的屬性名稱/值對表達的限制要求時,該提供者才可以滿足此選擇標準。
有關標準加密服務名稱、標準演算法名稱和標準屬性名稱的資訊,請參閱 Java Cryptography Architecture API Specification & Reference 中的附錄 A。
filter
- 選擇提供者的標準。過濾器是區分大小寫的。
InvalidParameterException
- 如果過濾器不是需要的格式
NullPointerException
- 如果過濾器為 nullgetProviders(java.lang.String)
public static String getProperty(String key)
首先,如果有安全管理器,將調用帶有 java.security.SecurityPermission("getProperty."+key)
權限的 checkPermission
方法,以查看是否可以獲取指定的安全屬性值。
key
- 要獲取的屬性的密鑰。
SecurityException
- 如果有安全管理器,並且其 SecurityManager.checkPermission(java.security.Permission)
方法拒絕對指定的安全屬性值進行獲取存取
NullPointerException
- 如果密鑰為 nullsetProperty(java.lang.String, java.lang.String)
,
SecurityPermission
public static void setProperty(String key, String datum)
首先,如果有安全管理器,將調用其帶有 java.security.SecurityPermission("setProperty."+key)
權限的 checkPermission
方法,以查看是否可以設置指定的安全屬性值。
key
- 要設置的屬性的名稱。datum
- 要設置的屬性的值。
SecurityException
- 如果有安全管理器並且其 SecurityManager.checkPermission(java.security.Permission)
方法拒絕對指定的安全屬性值進行設置存取
NullPointerException
- 如果密鑰或資料為 nullgetProperty(java.lang.String)
,
SecurityPermission
public static Set<String> getAlgorithms(String serviceName)
serviceName
- Java 加密服務的名稱(例如,Signature、MessageDigest、Cipher、Mac、KeyStore)。註:此參數是區分大小寫的。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。