This class defines static methods both for managing the list of installed security providers and for reading and setting the values of various properties used by the Java security system. It is essentially an interface to the ${java.home}/lib/security/java.security properties file that is included in Sun's implementation of Java. Use getProperty( ) and setProperty( ) to query or set the value of security properties whose default values are stored in that file. One of the important features of the java.security properties file is that it specifies a set of security provider implementations and a preference order in which they are to be used. getProviders( ) returns an array of Provider objects, in the order they are specified in the file. In Java 1.3 and later, versions of this method exist that only return providers that implement the algorithm or algorithms specified in a String or Map object. You can also look up a single named Provider object by name with getProvider( ) . Note that a provider name is the string returned by getName( ) method of the Provider class, not the classname of the Provider . You can alter the set of providers installed by default from the java.security file. Use addProvider( ) to add a new Provider object to the list, placing it at the end of the list, with a lower preference than all other providers. Use insertProviderAt( ) to insert a provider into the list at a specified position. Note that provider preference positions are 1-based. Specify a position of 1 to make the provider the most preferred one. Finally, use removeProvider( ) to remove a named provider. In Java 1.4 and later, the getAlgorithms method returns a Set that includes the names of all supported algorithms (from any installed provider) for the specified "service". A service name specifies the category of security service you are querying. It is a case-insensitive value that has the same name as one of the key service classes from this package or security- related packagesfor example, "Signature", "MessageDigest", and "KeyStore" (from this package) or "Cipher" (from the javax.crypto package). public final class Security { // No Constructor // Public Class Methods public static int addProvider (Provider provider ); 1.4 public static java.util.Set<String> getAlgorithms (String serviceName ); public static String getProperty (String key ); public static Provider getProvider (String name ); public static Provider[ ] getProviders ( ); 1.3 public static Provider[ ] getProviders (java.util.Map<String,String> filter ); 1.3 public static Provider[ ] getProviders (String filter ); public static int insertProviderAt (Provider provider , int position ); synchronized public static void removeProvider (String name ); synchronized public static void setProperty (String key , String datum ); // Deprecated Public Methods # public static String getAlgorithmProperty (String algName , String propName ); } |