Home » openjdk-7 » java » security » [javadoc | source]
java.security
abstract public class: Provider [javadoc | source]
java.lang.Object
   java.util.Dictionary<K, V>
      java.util.Hashtable<Object, Object>
         java.util.Properties
            java.security.Provider

All Implemented Interfaces:
    Cloneable, Map, java$io$Serializable

Direct Known Subclasses:
    NoneProvider, AuthProvider

This class represents a "provider" for the Java Security API, where a provider implements some or all parts of Java Security. Services that a provider may implement include:

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:
NameValue
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()

Nested Class Summary:
public static class  Provider.Service  The description of a security service. It encapsulates the properties of a service and contains a factory method to obtain new implementation instances of this service.

Each service has a provider that offers the service, a type, an algorithm name, and the name of the class that implements the service. Optionally, it also includes a list of alternate algorithm names for this service (aliases) and attributes, which are a map of (name, value) String pairs.

This class defines the methods {@link #supportsParameter supportsParameter()} and {@link #newInstance newInstance()} which are used by the Java security framework when it searches for suitable services and instantes them. The valid arguments to those methods depend on the type of service. For the service types defined within Java SE, see the Java Cryptography Architecture API Specification & Reference for the valid values. Note that components outside of Java SE can define additional types of services and their behavior.

Instances of this class are immutable. 

Field Summary
static final  long serialVersionUID     
Fields inherited from java.util.Properties:
defaults
Constructor:
 protected Provider(String name,
    double version,
    String info) 
    Constructs a provider with the specified name, version number, and information.
    Parameters:
    name - the provider name.
    version - the provider version number.
    info - a description of the provider and its services.
Method from java.security.Provider Summary:
clear,   elements,   entrySet,   get,   getInfo,   getName,   getProperty,   getService,   getServices,   getVersion,   keySet,   keys,   load,   put,   putAll,   putService,   remove,   removeService,   toString,   values
Methods from java.util.Properties:
getProperty,   getProperty,   list,   list,   load,   load,   loadFromXML,   propertyNames,   save,   setProperty,   store,   store,   storeToXML,   storeToXML,   stringPropertyNames
Methods from java.util.Hashtable:
clear,   clone,   contains,   containsKey,   containsValue,   elements,   entrySet,   equals,   get,   hashCode,   isEmpty,   keySet,   keys,   put,   putAll,   rehash,   remove,   size,   toString,   values
Methods from java.util.Dictionary:
elements,   get,   isEmpty,   keys,   put,   remove,   size
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from java.security.Provider Detail:
 public synchronized  void clear() 
    Clears this provider so that it no longer contains the properties used to look up facilities implemented by the provider.

    First, if there is a security manager, 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. 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("clearProviderProperties."+name) permission.

 public Enumeration<Object> elements() 
 public synchronized Set<Object, Object> entrySet() 
    Returns an unmodifiable Set view of the property entries contained in this Provider.
 public Object get(Object key) 
 public String getInfo() 
    Returns a human-readable description of the provider and its services. This may return an HTML page, with relevant links.
 public String getName() 
    Returns the name of this provider.
 public String getProperty(String key) 
 public synchronized Service getService(String type,
    String algorithm) 
    Get the service describing this Provider's implementation of the specified type of this algorithm or alias. If no such implementation exists, this method returns null. If there are two matching services, one added to this provider using putService() and one added via put() , the service added via putService() is returned.
 public synchronized Set<Service> getServices() 
    Get an unmodifiable Set of all services supported by this Provider.
 public double getVersion() 
    Returns the version number for this provider.
 public Set<Object> keySet() 
    Returns an unmodifiable Set view of the property keys contained in this provider.
 public Enumeration<Object> keys() 
 public synchronized  void load(InputStream inStream) throws IOException 
    Reads a property list (key and element pairs) from the input stream.
 public synchronized Object put(Object key,
    Object value) 
    Sets the key property to have the specified value.

    First, 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.

 public synchronized  void putAll(Map<?, ?> t) 
    Copies all of the mappings from the specified Map to this provider. These mappings will replace any properties that this provider had for any of the keys currently in the specified Map.
 protected synchronized  void putService(Service s) 
    Add a service. If a service of the same type with the same algorithm name exists and it was added using 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.

 public synchronized Object remove(Object key) 
    Removes the key property (and its corresponding value).

    First, 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.

 protected synchronized  void removeService(Service s) 
    Remove a service previously added using 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.

 public String toString() 
    Returns a string with the name and the version number of this provider.
 public Collection<Object> values() 
    Returns an unmodifiable Collection view of the property values contained in this provider.