- java.lang.Object
-
- java.util.Dictionary<K,V>
-
- java.util.Hashtable<Object,Object>
-
- java.util.Properties
-
- java.security.Provider
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
,Map<Object,Object>
- 已知直接子类:
-
AuthProvider
public abstract class Provider extends Properties
该类代表Java Security API的“提供者”,其中提供者实现了Java Security的部分或全部部分。 提供商可能实施的服务包括:- 算法(如DSA,RSA或SHA-256)。
- 密钥生成,转换和管理功能(如针对特定于算法的密钥)。
一些提供者实现在其操作期间可能会遇到不可恢复的内部错误,例如无法与安全令牌进行通信。 A
ProviderException
应用于指示此类错误。请注意,可以使用提供程序来实现Java中的任何安全服务,该安全服务使用可插拔架构,并可选择适合的实现。
服务类型
Attributes Automatically Placed in a Provider Object Name ValueProvider
保留供安全框架使用。 这种类型的服务不能被应用程序添加,删除或修改。 以下属性将自动放置在每个Provider对象中:Provider.id name
String.valueOf(provider.getName())
Provider.id version
String.valueOf(provider.getVersionStr())
Provider.id info
String.valueOf(provider.getInfo())
Provider.id className
provider.getClass().getName()
每个提供者都有一个名称和一个版本字符串。 提供者通常在资源目录
META-INF/services
标识一个名为java.security.Provider
的文件。 安全提供商通过ServiceLoader
机制查询,使用application class loader
。提供商可以被配置为使得它们在运行时通过
Security.getProviders()
方法被自动安装并使其可用。 配置和安装安全提供程序的机制是实现特定的。- Implementation Note:
-
JDK实现支持通过Java安装目录中的
conf/security/java.security
文件静态注册安全提供程序。 JDK运行时自动安装这些提供程序,请参阅“Java加密体系结构(JCA)参考指南”中的The Provider Class ,了解有关特定类型的提供程序,加密服务提供程序的工作原理和安装方式的信息。 - 从以下版本开始:
- 1.1
- 另请参见:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
Provider.Service
安全服务的描述。
-
Field Summary
-
Fields inherited from class java.util.Properties
defaults
-
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 void
clear()
清除此提供程序,使其不再包含用于查找由提供程序实施的设施的属性。Object
compute(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
尝试计算指定密钥及其当前映射值的映射(如果没有当前映射,则null
)。Object
computeIfAbsent(Object key, Function<? super Object,? extends Object> mappingFunction)
如果指定的键尚未与值相关联(或映射到null
),则尝试使用给定的映射函数计算其值,并将其输入到此映射中,除非是null
。Object
computeIfPresent(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
如果指定的密钥的值存在且非空,则尝试计算给定密钥及其当前映射值的新映射。Provider
configure(String configArg)
将提供的配置参数应用于此提供程序实例并返回配置的提供程序。Enumeration<Object>
elements()
返回此散列表中值的枚举。Set<Map.Entry<Object,Object>>
entrySet()
返回此提供程序中包含的属性条目的不可修改的Set视图。void
forEach(BiConsumer<? super Object,? super Object> action)
对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。Object
get(Object key)
返回指定键映射到的值,如果此映射不包含键的映射,则返回null
。String
getInfo()
返回提供商及其服务的可读描述。String
getName()
返回此提供程序的名称。Object
getOrDefault(Object key, Object defaultValue)
返回指定键映射到的值,如果此映射不包含键的映射,则返回defaultValue
。String
getProperty(String key)
使用此属性列表中指定的键搜索属性。Provider.Service
getService(String type, String algorithm)
获取描述此提供程序实现该算法或别名的指定类型的服务。Set<Provider.Service>
getServices()
获取不可修改的此提供程序支持的所有服务的集合。double
getVersion()
已过时。请改用getVersionStr()
。String
getVersionStr()
返回此提供程序的版本字符串。boolean
isConfigured()
检查此提供程序实例是否已配置。Enumeration<Object>
keys()
返回此散列表中键的枚举。Set<Object>
keySet()
返回此提供程序中包含的属性键的不可修改的Set视图。void
load(InputStream inStream)
从输入流读取属性列表(键和元素对)。Object
merge(Object key, Object value, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
如果指定的键尚未与值相关联或与null关联,则将其与给定值相关联。Object
put(Object key, Object value)
将key
属性设置为具有指定的value
。void
putAll(Map<?,?> t)
将指定地图中的所有映射复制到此提供程序。Object
putIfAbsent(Object key, Object value)
如果指定的键尚未与值相关联(或映射到null
)将其与给定值相关联并返回null
,否则返回当前值。protected void
putService(Provider.Service s)
添加服务。Object
remove(Object key)
删除key
属性(及其对应的value
)。boolean
remove(Object key, Object value)
仅当指定的密钥当前映射到指定的值时删除该条目。protected void
removeService(Provider.Service s)
删除以前使用putService()
添加的服务。Object
replace(Object key, Object value)
只有当目标映射到某个值时,才能替换指定键的条目。boolean
replace(Object key, Object oldValue, Object newValue)
仅当当前映射到指定的值时,才能替换指定键的条目。void
replaceAll(BiFunction<? super Object,? super Object,? extends Object> function)
用条目集迭代器返回的顺序,直到所有的条目都被处理或函数抛出一个异常,替换每个条目的值,结果是对该条目调用给定的函数。String
toString()
返回一个带有该提供者的名称和版本字符串的字符串。Collection<Object>
values()
返回此提供程序中包含的属性值的不可修改的集合视图。-
Methods inherited from interface java.util.Map
entry, of, of, of, of, of, of, of, of, of, of, of, ofEntries
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from class java.util.Properties
clone, contains, containsKey, containsValue, equals, getProperty, hashCode, isEmpty, list, list, load, loadFromXML, propertyNames, rehash, save, setProperty, size, store, store, storeToXML, storeToXML, stringPropertyNames
-
-
-
-
构造方法详细信息
-
Provider
@Deprecated(since="9") protected Provider(String name, double version, String info)
已过时。 改用Provider(String, String, String)
。构造具有指定名称,版本号和信息的提供程序。 调用此构造方法等效于调用Provider(String, String, String)
与name
名称,Double.toString(version)
,并info
。- 参数
-
name
- 提供商名称。 -
version
- 提供者版本号。 -
info
- 提供商及其服务的描述。
-
Provider
protected Provider(String name, String versionStr, String info)
构造具有指定名称,版本字符串和信息的提供程序。版本字符串包含版本号,可选地后跟其他信息由“+”,“ - ”之一分隔。 版本号的格式为:
^[0-9]+(\.[0-9]+)*
为了以双倍的形式返回版本号,当有两个以上的组件(如上所述由'。'分隔开)时,只保留前两个组件。 结果字符串然后传递给
Double.valueOf(String)
生成版本号,即getVersion()
。如果转换失败,将使用值0。
- 参数
-
name
- 提供商名称。 -
versionStr
- 提供者版本字符串。 -
info
- 提供商及其服务的描述。 - 从以下版本开始:
- 9
-
-
方法详细信息
-
configure
public Provider configure(String configArg)
将提供的配置参数应用于此提供程序实例并返回配置的提供程序。 请注意,如果此提供程序无法在现场配置,则将创建并返回新的提供程序。 因此,呼叫者应始终使用返回的提供者。- 实现要求:
-
默认实现抛出
UnsupportedOperationException
。 仅当支持配置参数时,子类才应该覆盖此方法。 - 参数
-
configArg
- 配置此提供程序的配置信息。 - 结果
- 提供者配置提供的配置参数。
- 异常
-
UnsupportedOperationException
- 如果不支持配置参数。 -
NullPointerException
- 如果提供的配置参数为空。 -
InvalidParameterException
- 如果提供的配置参数无效。 - 从以下版本开始:
- 9
-
isConfigured
public boolean isConfigured()
检查此提供程序实例是否已配置。- 实现要求:
-
默认实现返回true。
如果提供者实例在构造后需要显式的
configure
调用,则子类应该覆盖此方法。 - 结果
- 如果不需要进一步配置,则为true,否则为false。
- 从以下版本开始:
- 9
-
getName
public String getName()
返回此提供程序的名称。- 结果
- 该提供商的名称。
-
getVersion
@Deprecated(since="9") public double getVersion()
已过时。 改用getVersionStr()
。返回此提供商的版本号。- 结果
- 该提供商的版本号。
-
getVersionStr
public String getVersionStr()
返回此提供程序的版本字符串。- 结果
- 该提供商的版本字符串。
- 从以下版本开始:
- 9
-
getInfo
public String getInfo()
返回提供商及其服务的可读描述。 这可能会返回一个带有相关链接的HTML页面。- 结果
- 提供者及其服务的描述。
-
toString
public String toString()
返回一个带有该提供者的名称和版本字符串的字符串。- 重写:
-
toString
在Properties
- 结果
- 该字符串具有此提供程序的名称和版本字符串。
-
clear
public void clear()
清除此提供程序,使其不再包含用于查找由提供程序实施的设施的属性。如果启用安全管理器,则其
checkSecurityAccess
方法将使用字符串"clearProviderProperties."+name
(其中,name
是提供程序名称)来调用,以查看是否可以清除此提供程序。- Specified by:
-
clear
在接口Map<Object,Object>
- 重写:
-
clear
在Properties
- 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝访问以清除此提供程序 - 从以下版本开始:
- 1.2
-
load
public void load(InputStream inStream) throws IOException
从输入流读取属性列表(键和元素对)。- 重写:
-
load
在Properties
- 参数
-
inStream
- 输入流。 - 异常
-
IOException
- 从输入流读取时发生错误。 - 另请参见:
-
Properties.load(java.io.Reader)
-
putAll
public void putAll(Map<?,?> t)
将指定地图中的所有映射复制到此提供程序。 这些映射将替换此提供者对当前指定的Map中的任何键的任何属性。
-
values
public Collection<Object> values()
返回此提供程序中包含的属性值的不可修改的集合视图。
-
put
public Object put(Object key, Object value)
将key
属性设置为具有指定的value
。如果启用了安全管理器,则其
checkSecurityAccess
方法将使用字符串"putProviderProperty."+name
(其中name
是提供程序名称)进行name
,以查看是否可以设置此提供程序的属性值。- Specified by:
-
put
在接口Map<Object,Object>
- 重写:
-
put
在Properties
- 参数
-
key
- 哈希表键 -
value
- 值 - 结果
-
该哈希表中指定键的上一个值,如果没有,
null
- 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝对设置属性值的访问。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Object.equals(Object)
,Hashtable.get(Object)
-
putIfAbsent
public Object putIfAbsent(Object key, Object value)
如果指定的键尚未与某个值相关联(或映射到null
)将其与给定值相关联并返回null
,否则返回当前值。如果安全管理器已启用,则其
checkSecurityAccess
方法将使用字符串"putProviderProperty."+name
(其中name
是提供程序名称)进行name
,以查看是否可以设置此提供程序的属性值。- Specified by:
-
putIfAbsent
在接口Map<Object,Object>
- 重写:
-
putIfAbsent
在Properties
- 参数
-
key
- 指定值与之关联的键 -
value
- 与指定键相关联的值 - 结果
-
与指定键相关联的上一个值,如果没有键的映射,
null
。 (Anull
返回也可以指示该映射以前关联的是null
的关键字,如果实现支持空值)。 - 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝对设置属性值的访问。 - 从以下版本开始:
- 1.8
-
remove
public Object remove(Object key)
删除key
属性(及其对应的value
)。如果启用了安全管理器,则其
checkSecurityAccess
方法将使用字符串"removeProviderProperty."+name
(其中name
是提供程序名称)进行name
,以查看是否可以删除此提供程序的属性。- Specified by:
-
remove
在接口Map<Object,Object>
- 重写:
-
remove
在Properties
- 参数
-
key
- 需要删除的关键 - 结果
-
密钥映射到此散列表中的值,如果密钥没有映射,
null
- 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝访问以删除此提供程序的属性。 - 从以下版本开始:
- 1.2
-
remove
public boolean remove(Object key, Object value)
仅当指定的密钥当前映射到指定的值时删除该条目。如果启用了安全管理器,则其
checkSecurityAccess
方法将使用字符串"removeProviderProperty."+name
(其中name
是提供程序名称)进行name
,以查看是否可以删除此提供程序的属性。- Specified by:
-
remove
在接口Map<Object,Object>
- 重写:
-
remove
在Properties
- 参数
-
key
- 与指定值相关联的键 -
value
- 预期与指定键相关联的值 - 结果
-
true
如果该值被删除 - 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝访问以删除此提供程序的属性。 - 从以下版本开始:
- 1.8
-
replace
public boolean replace(Object key, Object oldValue, Object newValue)
仅当当前映射到指定的值时,才能替换指定键的条目。如果安全管理器已启用,则其
checkSecurityAccess
方法将使用字符串"putProviderProperty."+name
(其中name
是提供程序名称)进行name
,以查看是否可以设置此提供程序的属性值。- Specified by:
-
replace
在接口Map<Object,Object>
- 重写:
-
replace
在Properties
- 参数
-
key
- 与指定值相关联的键 -
oldValue
- 预期与指定键相关联的值 -
newValue
- 要与指定键相关联的值 - 结果
-
true
如果该值被替换 - 异常
-
SecurityException
- 如果安全管理器存在,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝对设置属性值的访问。 - 从以下版本开始:
- 1.8
-
replace
public Object replace(Object key, Object value)
只有当目标映射到某个值时,才能替换指定键的条目。如果启用安全管理器,则其
checkSecurityAccess
方法将使用字符串"putProviderProperty."+name
(其中name
是提供程序名称)进行name
,以查看是否可以设置此提供程序的属性值。- Specified by:
-
replace
在接口Map<Object,Object>
- 重写:
-
replace
在Properties
- 参数
-
key
- 与指定值相关联的键 -
value
- 与指定键相关联的值 - 结果
-
与指定键相关联的上一个值,如果没有键的映射,
null
。 (Anull
返回也可以表示该地图以前关联的是null
的关键字,如果实现支持空值)。 - 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝对设置属性值的访问。 - 从以下版本开始:
- 1.8
-
replaceAll
public void replaceAll(BiFunction<? super Object,? super Object,? extends Object> function)
用条目集迭代器返回的顺序,直到所有的条目都被处理或函数抛出一个异常,替换每个条目的值,结果是对该条目调用给定的函数。如果启用安全管理器,则其
checkSecurityAccess
方法将使用字符串"putProviderProperty."+name
(其中name
是提供程序名称)进行name
,以查看是否可以设置此提供程序的属性值。- Specified by:
-
replaceAll
在接口Map<Object,Object>
- 重写:
-
replaceAll
在Properties
- 参数
-
function
- 应用于每个条目的功能 - 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝对设置属性值的访问。 - 从以下版本开始:
- 1.8
-
compute
public Object compute(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
尝试计算指定键的映射及其当前映射值(如果没有当前映射,则null
)。如果启用安全管理器,则其
checkSecurityAccess
方法将使用字符串"putProviderProperty."+name
和"removeProviderProperty."+name
(其中name
是提供程序名称)进行name
,以查看是否可以设置此提供程序的属性值并删除此提供程序的属性。- Specified by:
-
compute
在接口Map<Object,Object>
- 重写:
-
compute
在Properties
- 参数
-
key
- 指定值与之关联的键 -
remappingFunction
- 计算值的重映射函数 - 结果
- 与指定键相关的新值,如果没有则为null
- 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝对设置属性值的访问或删除属性。 - 从以下版本开始:
- 1.8
-
computeIfAbsent
public Object computeIfAbsent(Object key, Function<? super Object,? extends Object> mappingFunction)
如果指定的键尚未与值相关联(或映射到null
),则尝试使用给定的映射函数计算其值,并将其输入到此映射中,除非是null
。如果安全管理器已启用,则其
checkSecurityAccess
方法将使用字符串"putProviderProperty."+name
和"removeProviderProperty."+name
(其中name
是提供程序名称)进行name
,以查看是否可以设置此提供程序的属性值并删除此提供程序的属性。- Specified by:
-
computeIfAbsent
在接口Map<Object,Object>
- 重写:
-
computeIfAbsent
在Properties
- 参数
-
key
- 要与其关联的指定值的键 -
mappingFunction
- 计算值的映射函数 - 结果
- 与指定键相关联的当前(现有或计算)值,如果计算值为空,则为null
- 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝对设置属性值的访问并删除属性。 - 从以下版本开始:
- 1.8
-
computeIfPresent
public Object computeIfPresent(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
如果指定的密钥的值存在且非空,则尝试计算给定密钥及其当前映射值的新映射。如果启用安全管理器,则其
checkSecurityAccess
方法将使用字符串"putProviderProperty."+name
和"removeProviderProperty."+name
(其中name
是提供程序名称)进行name
,以查看是否可以设置此提供程序的属性值并删除此提供程序的属性。- Specified by:
-
computeIfPresent
在接口Map<Object,Object>
- 重写:
-
computeIfPresent
在Properties
- 参数
-
key
- 指定值与之关联的键 -
remappingFunction
- 计算值的重映射函数 - 结果
- 与指定键相关的新值,如果没有则为null
- 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝对设置属性值的访问或删除属性。 - 从以下版本开始:
- 1.8
-
merge
public Object merge(Object key, Object value, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
如果指定的键尚未与值相关联或与null关联,则将其与给定值相关联。 否则,将该值替换为给定重映射函数的结果,如果结果为空,则将其移除。 当组合键的多个映射值时,该方法可能是有用的。如果启用了安全管理器,则其
checkSecurityAccess
方法将使用字符串"putProviderProperty."+name
和"removeProviderProperty."+name
(其中name
是提供程序名称)进行name
,以查看是否可以设置此提供程序的属性值并删除此提供程序的属性。- Specified by:
-
merge
在接口Map<Object,Object>
- 重写:
-
merge
在Properties
- 参数
-
key
- 结合值与之关联的键 -
value
- 要与与密钥相关联的现有值合并的非空值,或者如果没有现有值或空值与密钥相关联,则与密钥相关联 -
remappingFunction
- 如果存在重新计算值的重映射功能 - 结果
- 与指定键相关联的新值,如果没有值与该键相关联,则返回null
- 异常
-
SecurityException
- 如果安全管理器存在,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝访问设置属性值或删除属性。 - 从以下版本开始:
- 1.8
-
get
public Object get(Object key)
描述从类别复制:Hashtable
返回指定键映射到的值,如果此映射不包含键的映射,则返回null
。更正式地,如果这个地图包含一个
k
键到一个值v
的映射,这样(key.equals(k))
,那么这个方法返回v
; 否则返回null
。 (最多可以有一个这样的映射。)- Specified by:
-
get
在接口Map<Object,Object>
- 重写:
-
get
在Properties
- 参数
-
key
- 要返回其关联值的键 - 结果
-
映射指定键的值,如果此映射不包含该键的映射,
null
- 另请参见:
-
Hashtable.put(Object, Object)
-
getOrDefault
public Object getOrDefault(Object key, Object defaultValue)
说明从接口Map
复制返回指定键映射到的值,如果此映射不包含该键的映射,则返回defaultValue
。- Specified by:
-
getOrDefault
在接口Map<Object,Object>
- 重写:
-
getOrDefault
中的Properties
- 参数
-
key
- 要返回其关联值的键 -
defaultValue
- 键的默认映射 - 结果
-
映射指定键的值,如果此映射不包含该键的映射,
defaultValue
- 从以下版本开始:
- 1.8
-
forEach
public void forEach(BiConsumer<? super Object,? super Object> action)
说明从界面Map
复制对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。 除非实现类另有指定,否则按照进入设置迭代的顺序执行操作(如果指定了迭代顺序)。操作引发的异常被转发给调用者。
-
keys
public Enumeration<Object> keys()
描述从类别复制:Hashtable
返回此散列表中键的枚举。 对返回的对象使用枚举方法按顺序获取键。 如果哈希表在结构上被修改,同时枚举了键,则枚举的结果是未定义的。- 重写:
-
keys
在Properties
- 结果
- 这个哈希表中的键的枚举。
- 另请参见:
-
Enumeration
,Hashtable.elements()
,Hashtable.keySet()
,Map
-
elements
public Enumeration<Object> elements()
描述从类别复制:Hashtable
返回此散列表中值的枚举。 对返回的对象使用枚举方法来顺序获取元素。 如果哈希表在结构上被修改,同时枚举了值,则枚举的结果是未定义的。- 重写:
-
elements
在Properties
- 结果
- 列出这个散列表中的值。
- 另请参见:
-
Enumeration
,Hashtable.keys()
,Hashtable.values()
,Map
-
getProperty
public String getProperty(String key)
描述从类复制:Properties
使用此属性列表中指定的键搜索属性。 如果在此属性列表中找不到该键,则会默认属性列表及其默认值递归。 如果找不到属性,该方法返回null
。- 重写:
-
getProperty
在Properties
- 参数
-
key
- 属性键。 - 结果
- 该属性列表中具有指定键值的值。
- 另请参见:
-
Properties.setProperty(java.lang.String, java.lang.String)
,Properties.defaults
-
getService
public Provider.Service getService(String type, String algorithm)
获取描述此提供程序实现该算法或别名的指定类型的服务。 如果没有这样的实现,这个方法返回null。 如果有两个匹配的服务,一个添加到这个提供商使用putService()
和一个通过put()
添加,通过putService()
添加的服务被返回。- 参数
-
type
- 请求的类型service
(例如,MessageDigest
) -
algorithm
- 请求的服务的不区分大小写的算法名称(或替代别名)(例如,SHA-1
) - 结果
- 描述此提供商的匹配服务的服务,如果不存在此类服务,则为null
- 异常
-
NullPointerException
- 如果类型或算法为空 - 从以下版本开始:
- 1.5
-
getServices
public Set<Provider.Service> getServices()
获取不可修改的此提供程序支持的所有服务的集合。- 结果
- 该提供商支持的所有服务的一个不可修改的集合
- 从以下版本开始:
- 1.5
-
putService
protected void putService(Provider.Service s)
添加服务。 如果存在具有相同算法名称的相同类型的服务,并使用putService()
添加,则将被新服务替换。 此方法还会以Java Cryptography Architecture (JCA) Reference Guide中描述的格式将关于此服务的信息放在提供商的Hashtable值中。另外,如果有一个安全管理器,它的
checkSecurityAccess
方法被调用与字符串"putProviderProperty."+name
,其中name
是提供者名称,看看是否可以设置此提供程序的属性值。 如果使用默认实现checkSecurityAccess
(即,该方法不被覆盖),则这将导致对安全管理器的checkPermission
方法的checkPermission
,具有SecurityPermission("putProviderProperty."+name)
权限。- 参数
-
s
- 要添加的服务 - 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝对设置属性值的访问。 -
NullPointerException
- 如果s为空 - 从以下版本开始:
- 1.5
-
removeService
protected void removeService(Provider.Service s)
删除以前使用putService()
添加的服务。 指定的服务将从此提供程序中删除。 它将不再由getService()
返回,其信息将从此提供商的Hashtable中删除。另外,如果有一个安全管理器,它的
checkSecurityAccess
方法被调用与字符串"removeProviderProperty."+name
,其中name
是提供者名称,看看是否可以删除此提供程序的属性。 如果使用默认实现checkSecurityAccess
(即,该方法不被覆盖),则这将导致对安全管理器的checkPermission
方法的checkPermission
,具有SecurityPermission("removeProviderProperty."+name)
权限。- 参数
-
s
- 要删除的服务 - 异常
-
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkSecurityAccess(java.lang.String)
方法拒绝访问以删除此提供程序的属性。 -
NullPointerException
- 如果s为空 - 从以下版本开始:
- 1.5
-
-