public abstract class Provider extends Properties
Each provider has a name and a version number, and is configured in each runtime it is installed in.
See The Provider Class in the "Java Cryptography Architecture API Specification & Reference" for information about how a particular type of provider, the cryptographic service provider, works and is installed. However, please note that a provider can be used to implement any security service in Java that uses a pluggable architecture with a choice of implementations that fit underneath.
Some provider implementations may encounter unrecoverable internal errors during their operation, for example a failure to communicate with a security token. A ProviderException should be used to indicate such errors.
The service type Provider is reserved for use by the security framework. Services of this type cannot be added, removed, or modified by applications. The following attributes are automatically placed in each Provider object:
| Name | Value |
|---|---|
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() |
| Modifier and Type | Class and Description |
|---|---|
static class |
Provider
The description of a security service.
|
defaults| Modifier | Constructor and Description |
|---|---|
protected |
Provider(String
Constructs a provider with the specified name, version number, and information.
|
| Modifier and Type | Method and Description |
|---|---|
void |
clear()
Clears this provider so that it no longer contains the properties used to look up facilities implemented by the provider.
|
Object |
compute(Object
Attempts to compute a mapping for the specified key and its current mapped value (or
null if there is no current mapping).
|
Object |
computeIfAbsent(Object
If the specified key is not already associated with a value (or is mapped to
null), attempts to compute its value using the given mapping function and enters it into this map unless
null.
|
Object |
computeIfPresent(Object
If the value for the specified key is present and non-null, attempts to compute a new mapping given the key and its current mapped value.
|
Enumeration |
elements()
Returns an enumeration of the values in this hashtable.
|
Set |
entrySet()
Returns an unmodifiable Set view of the property entries contained in this Provider.
|
void |
forEach(BiConsumer
Performs the given action for each entry in this map until all entries have been processed or the action throws an exception.
|
Object |
get(Object
Returns the value to which the specified key is mapped, or
null if this map contains no mapping for the key.
|
String |
getInfo()
Returns a human-readable description of the provider and its services.
|
String |
getName()
Returns the name of this provider.
|
Object |
getOrDefault(Object
Returns the value to which the specified key is mapped, or
defaultValue if this map contains no mapping for the key.
|
String |
getProperty(String
Searches for the property with the specified key in this property list.
|
Provider |
getService(String
Get the service describing this Provider's implementation of the specified type of this algorithm or alias.
|
Set |
getServices()
Get an unmodifiable Set of all services supported by this Provider.
|
double |
getVersion()
Returns the version number for this provider.
|
Enumeration |
keys()
Returns an enumeration of the keys in this hashtable.
|
Set |
keySet()
Returns an unmodifiable Set view of the property keys contained in this provider.
|
void |
load(InputStream
Reads a property list (key and element pairs) from the input stream.
|
Object |
merge(Object
If the specified key is not already associated with a value or is associated with null, associates it with the given value.
|
Object |
put(Object
Sets the
key property to have the specified
value.
|
void |
putAll(Map
Copies all of the mappings from the specified Map to this provider.
|
Object |
putIfAbsent(Object
If the specified key is not already associated with a value (or is mapped to
null) associates it with the given value and returns
null, else returns the current value.
|
protected void |
putService(Provider
Add a service.
|
Object |
remove(Object
Removes the
key property (and its corresponding
value).
|
boolean |
remove(Object
Removes the entry for the specified key only if it is currently mapped to the specified value.
|
protected void |
removeService(Provider
Remove a service previously added using
putService().
|
Object |
replace(Object
Replaces the entry for the specified key only if it is currently mapped to some value.
|
boolean |
replace(Object
Replaces the entry for the specified key only if currently mapped to the specified value.
|
void |
replaceAll(BiFunction
Replaces each entry's value with the result of invoking the given function on that entry, in the order entries are returned by an entry set iterator, until all entries have been processed or the function throws an exception.
|
String |
toString()
Returns a string with the name and the version number of this provider.
|
Collection |
values()
Returns an unmodifiable Collection view of the property values contained in this provider.
|
getProperty, list, list, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, stringPropertyNamesclone, contains, containsKey, containsValue, equals, hashCode, isEmpty, rehash, sizepublic StringgetName()
public double getVersion()
public StringgetInfo()
public StringtoString()
public void clear()
If a security manager is enabled, its checkSecurityAccess method is called with the string "clearProviderProperties."+name (where name is the provider name) to see if it's ok to clear this provider.
clear in interface
Map<Object,Object>
clear in class
Hashtable<Object,Object>
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to clear this provider
public void load(InputStreaminStream) throws IOException
load in class
Properties
inStream - the input stream.
IOException - if an error occurred when reading from the input stream.
Properties.load(java.io.Reader)
public void putAll(Map<? ,?> t)
public Set<Map .Entry <Object ,Object >> entrySet()
public Set<Object > keySet()
public Collection<Object > values()
public Objectput(Object key, Object value)
key property to have the specified
value.
If a security manager is enabled, its checkSecurityAccess method is called with the string "putProviderProperty."+name, where name is the provider name, to see if it's ok to set this provider's property values.
put in interface
Map<Object,Object>
put in class
Hashtable<Object,Object>
key - the hashtable key
value - the value
null if it did not have one
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to set property values.
Object.equals(Object) ,
Hashtable.get(Object)
public ObjectputIfAbsent(Object key, Object value)
null) associates it with the given value and returns
null, else returns the current value.
If a security manager is enabled, its checkSecurityAccess method is called with the string "putProviderProperty."+name, where name is the provider name, to see if it's ok to set this provider's property values.
putIfAbsent in interface
Map<Object,Object>
putIfAbsent in class
Hashtable<Object,Object>
key - key with which the specified value is to be associated
value - value to be associated with the specified key
null if there was no mapping for the key. (A
null return can also indicate that the map previously associated
null with the key, if the implementation supports null values.)
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to set property values.
public Objectremove(Object key)
key property (and its corresponding
value).
If a security manager is enabled, its checkSecurityAccess method is called with the string "removeProviderProperty."+name, where name is the provider name, to see if it's ok to remove this provider's properties.
remove in interface
Map<Object,Object>
remove in class
Hashtable<Object,Object>
key - the key that needs to be removed
null if the key did not have a mapping
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to remove this provider's properties.
public boolean remove(Objectkey, Object value)
If a security manager is enabled, its checkSecurityAccess method is called with the string "removeProviderProperty."+name, where name is the provider name, to see if it's ok to remove this provider's properties.
remove in interface
Map<Object,Object>
remove in class
Hashtable<Object,Object>
key - key with which the specified value is associated
value - value expected to be associated with the specified key
true if the value was removed
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to remove this provider's properties.
public boolean replace(Objectkey, Object oldValue, Object newValue)
If a security manager is enabled, its checkSecurityAccess method is called with the string "putProviderProperty."+name, where name is the provider name, to see if it's ok to set this provider's property values.
replace in interface
Map<Object,Object>
replace in class
Hashtable<Object,Object>
key - key with which the specified value is associated
oldValue - value expected to be associated with the specified key
newValue - value to be associated with the specified key
true if the value was replaced
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to set property values.
public Objectreplace(Object key, Object value)
If a security manager is enabled, its checkSecurityAccess method is called with the string "putProviderProperty."+name, where name is the provider name, to see if it's ok to set this provider's property values.
replace in interface
Map<Object,Object>
replace in class
Hashtable<Object,Object>
key - key with which the specified value is associated
value - value to be associated with the specified key
null if there was no mapping for the key. (A
null return can also indicate that the map previously associated
null with the key, if the implementation supports null values.)
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to set property values.
public void replaceAll(BiFunction<? super Object ,? super Object ,? extends Object > function)
If a security manager is enabled, its checkSecurityAccess method is called with the string "putProviderProperty."+name, where name is the provider name, to see if it's ok to set this provider's property values.
replaceAll in interface
Map<Object,Object>
replaceAll in class
Hashtable<Object,Object>
function - the function to apply to each entry
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to set property values.
public Objectcompute(Object key, BiFunction <? super Object ,? super Object ,? extends Object > remappingFunction)
null if there is no current mapping).
If a security manager is enabled, its checkSecurityAccess method is called with the strings "putProviderProperty."+name and "removeProviderProperty."+name, where name is the provider name, to see if it's ok to set this provider's property values and remove this provider's properties.
compute in interface
Map<Object,Object>
compute in class
Hashtable<Object,Object>
key - key with which the specified value is to be associated
remappingFunction - the function to compute a value
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to set property values or remove properties.
public ObjectcomputeIfAbsent(Object key, Function <? super Object ,? extends Object > mappingFunction)
null), attempts to compute its value using the given mapping function and enters it into this map unless
null.
If a security manager is enabled, its checkSecurityAccess method is called with the strings "putProviderProperty."+name and "removeProviderProperty."+name, where name is the provider name, to see if it's ok to set this provider's property values and remove this provider's properties.
computeIfAbsent in interface
Map<Object,Object>
computeIfAbsent in class
Hashtable<Object,Object>
key - key with which the specified value is to be associated
mappingFunction - the function to compute a value
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to set property values and remove properties.
public ObjectcomputeIfPresent(Object key, BiFunction <? super Object ,? super Object ,? extends Object > remappingFunction)
If a security manager is enabled, its checkSecurityAccess method is called with the strings "putProviderProperty."+name and "removeProviderProperty."+name, where name is the provider name, to see if it's ok to set this provider's property values and remove this provider's properties.
computeIfPresent in interface
Map<Object,Object>
computeIfPresent in class
Hashtable<Object,Object>
key - key with which the specified value is to be associated
remappingFunction - the function to compute a value
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to set property values or remove properties.
public Objectmerge(Object key, Object value, BiFunction <? super Object ,? super Object ,? extends Object > remappingFunction)
If a security manager is enabled, its checkSecurityAccess method is called with the strings "putProviderProperty."+name and "removeProviderProperty."+name, where name is the provider name, to see if it's ok to set this provider's property values and remove this provider's properties.
merge in interface
Map<Object,Object>
merge in class
Hashtable<Object,Object>
key - key with which the resulting value is to be associated
value - the non-null value to be merged with the existing value associated with the key or, if no existing value or a null value is associated with the key, to be associated with the key
remappingFunction - the function to recompute a value if present
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to set property values or remove properties.
public Objectget(Object key)
Hashtable
null if this map contains no mapping for the key.
More formally, if this map contains a mapping from a key k to a value v such that (key.equals(k)), then this method returns v; otherwise it returns null. (There can be at most one such mapping.)
get in interface
Map<Object,Object>
get in class
Hashtable<Object,Object>
key - the key whose associated value is to be returned
null if this map contains no mapping for the key
Hashtable.put(Object, Object)
public ObjectgetOrDefault(Object key, Object defaultValue)
Map
defaultValue if this map contains no mapping for the key.
getOrDefault in interface
Map<Object,Object>
getOrDefault in class
Hashtable<Object,Object>
key - the key whose associated value is to be returned
defaultValue - the default mapping of the key
defaultValue if this map contains no mapping for the key
public void forEach(BiConsumer<? super Object ,? super Object > action)
Map
public Enumeration<Object > keys()
Hashtable
keys in class
Hashtable<Object,Object>
Enumeration,
Hashtable.elements() ,
Hashtable.keySet() ,
Map
public Enumeration<Object > elements()
Hashtable
elements in class
Hashtable<Object,Object>
Enumeration,
Hashtable.keys() ,
Hashtable.values() ,
Map
public StringgetProperty(String key)
Properties
null if the property is not found.
getProperty in class
Properties
key - the property key.
Properties.setProperty(java.lang.String, java.lang.String) ,
Properties.defaults
public Provider.Service getService(String type, String algorithm)
putService() and one added via
put(), the service added via
putService() is returned.
type - the type of
service requested (for example,
MessageDigest)
algorithm - the case insensitive algorithm name (or alternate alias) of the service requested (for example,
SHA-1)
NullPointerException - if type or algorithm is null
public Set<Provider .Service > getServices()
protected void putService(Provider.Service s)
putService(), it is replaced by the new service. This method also places information about this service in the provider's Hashtable values in the format described in the
Java Cryptography Architecture API Specification & Reference .
Also, if there is a security manager, its checkSecurityAccess method is called with the string "putProviderProperty."+name, where name is the provider name, to see if it's ok to set this provider's property values. If the default implementation of checkSecurityAccess is used (that is, that method is not overriden), then this results in a call to the security manager's checkPermission method with a SecurityPermission("putProviderProperty."+name) permission.
s - the Service to add
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to set property values.
NullPointerException - if s is null
protected void removeService(Provider.Service s)
putService(). The specified service is removed from this provider. It will no longer be returned by
getService() and its information will be removed from this provider's Hashtable.
Also, if there is a security manager, its checkSecurityAccess method is called with the string "removeProviderProperty."+name, where name is the provider name, to see if it's ok to remove this provider's properties. If the default implementation of checkSecurityAccess is used (that is, that method is not overriden), then this results in a call to the security manager's checkPermission method with a SecurityPermission("removeProviderProperty."+name) permission.
s - the Service to be removed
SecurityException - if a security manager exists and its
SecurityManager.checkSecurityAccess(java.lang.String) method denies access to remove this provider's properties.
NullPointerException - if s is null