|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.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>
中的 toString
public void clear()
首先,如果存在安全管理器,則用字元串 "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)
方法拒絕清除此 providerpublic void load(InputStream inStream) throws IOException
Properties
中的 load
inStream
- 輸入串流。
IOException
- 如果讀取輸入串流時發生錯誤。Properties.load(java.io.Reader)
public void putAll(Map<?,?> t)
Map<Object,Object>
中的 putAll
Hashtable<Object,Object>
中的 putAll
t
- 將存儲在此映射中的映射關係。public Set<Map.Entry<Object,Object>> entrySet()
Map<Object,Object>
中的 entrySet
Hashtable<Object,Object>
中的 entrySet
Map.Entry
public Set<Object> keySet()
Map<Object,Object>
中的 keySet
Hashtable<Object,Object>
中的 keySet
public Collection<Object> values()
Map<Object,Object>
中的 values
Hashtable<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>
中的 put
Hashtable<Object,Object>
中的 put
key
- 屬性鍵。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>
中的 remove
Hashtable<Object,Object>
中的 remove
key
- 要移除的屬性的鍵。
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkDelete(java.lang.String)
方法拒絕移除此 provider 的屬性。public Object get(Object key)
Hashtable
複製的描述null
.
更確切地講,如果此映射包含滿足 (key.equals(k))
的從鍵 k
到值 v
的映射,則此方法返回 v
;否則,返回 null
。(最多只能有一個這樣的映射。)
Map<Object,Object>
中的 get
Hashtable<Object,Object>
中的 get
key
- 要返回其相關值的鍵
null
。Hashtable.put(Object, Object)
public Enumeration<Object> keys()
Hashtable
複製的描述
Hashtable<Object,Object>
中的 keys
Enumeration
,
Hashtable.elements()
,
Hashtable.keySet()
,
Map
public Enumeration<Object> elements()
Hashtable
複製的描述
Hashtable<Object,Object>
中的 elements
Enumeration
,
Hashtable.keys()
,
Hashtable.values()
,
Map
public String getProperty(String key)
Properties
複製的描述null
。
Properties
中的 getProperty
key
- 屬性鍵。
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
- 如果存在安全管理器,且其 checkDelete
方法拒絕移除此 provider 的屬性。
NullPointerException
- 如果 s 為 null
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。