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);
}