mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			108 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Java
		
	
	
	
/* Copyright (C) 2000  Free Software Foundation
 | 
						|
 | 
						|
   This file is part of libgcj.
 | 
						|
 | 
						|
This software is copyrighted work licensed under the terms of the
 | 
						|
Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
 | 
						|
details.  */
 | 
						|
 | 
						|
package java.security;
 | 
						|
 | 
						|
import java.util.Enumeration;
 | 
						|
import java.util.Properties;
 | 
						|
import java.util.Vector;
 | 
						|
 | 
						|
/**
 | 
						|
 * @author Tom Tromey <tromey@cygnus.com>
 | 
						|
 * @date February 8, 2000.
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Written using on-line Java Platform 1.2 API Specification.
 | 
						|
 * Status:  Still missing the deprecated getAlgorithmProperty method.
 | 
						|
 */
 | 
						|
 | 
						|
public final class Security
 | 
						|
{
 | 
						|
  public static int insertProviderAt (Provider provider, int position)
 | 
						|
  {
 | 
						|
    SecurityManager sm = System.getSecurityManager ();
 | 
						|
    if (sm != null)
 | 
						|
      {
 | 
						|
	// FIXME: need SecurityPermission.
 | 
						|
	// sm.checkSecurityAccess ("insertProvider." + provider.getName ());
 | 
						|
      }
 | 
						|
    if (providers.indexOf (provider) != -1)
 | 
						|
      return -1;
 | 
						|
    if (position > providers.size ())
 | 
						|
      position = providers.size ();
 | 
						|
    providers.insertElementAt (provider, position);
 | 
						|
    return providers.indexOf (provider);
 | 
						|
  }
 | 
						|
 | 
						|
  public static int addProvider (Provider provider)
 | 
						|
  {
 | 
						|
    return insertProviderAt (provider, providers.size ());
 | 
						|
  }
 | 
						|
 | 
						|
  public static void removeProvider (String name)
 | 
						|
  {
 | 
						|
    SecurityManager sm = System.getSecurityManager ();
 | 
						|
    if (sm != null)
 | 
						|
      {
 | 
						|
	// FIXME: need SecurityPermission.
 | 
						|
	// sm.checkSecurityAccess ("removeProvider." + name);
 | 
						|
      }
 | 
						|
    Provider p = getProvider (name);
 | 
						|
    if (p != null)
 | 
						|
      providers.removeElement (p);
 | 
						|
  }
 | 
						|
 | 
						|
  public static Provider[] getProviders ()
 | 
						|
  {
 | 
						|
    Provider[] r = new Provider[providers.size ()];
 | 
						|
    providers.copyInto (r);
 | 
						|
    return r;
 | 
						|
  }
 | 
						|
 | 
						|
  public static Provider getProvider (String name)
 | 
						|
  {
 | 
						|
    Enumeration e = providers.elements ();
 | 
						|
    while (e.hasMoreElements ())
 | 
						|
      {
 | 
						|
	Provider p = (Provider) e.nextElement ();
 | 
						|
	if (name.equals (p.getName ()))
 | 
						|
	  return p;
 | 
						|
      }
 | 
						|
    return null;
 | 
						|
  }
 | 
						|
 | 
						|
  public static String getProperty (String key)
 | 
						|
  {
 | 
						|
    SecurityManager sm = System.getSecurityManager ();
 | 
						|
    if (sm != null)
 | 
						|
      {
 | 
						|
	// FIXME: need SecurityPermission.
 | 
						|
	// sm.checkSecurityAccess ("getProperty." + key);
 | 
						|
      }
 | 
						|
    return props.getProperty (key);
 | 
						|
  }
 | 
						|
 | 
						|
  public static void setProperty (String key, String value)
 | 
						|
  {
 | 
						|
    SecurityManager sm = System.getSecurityManager ();
 | 
						|
    if (sm != null)
 | 
						|
      {
 | 
						|
	// FIXME: need SecurityPermission.
 | 
						|
	// sm.checkSecurityAccess ("setProperty." + key);
 | 
						|
      }
 | 
						|
    props.setProperty (key, value);
 | 
						|
  }
 | 
						|
 | 
						|
  // The providers we list.
 | 
						|
  private static Vector providers = new Vector ();
 | 
						|
 | 
						|
  // Security propertiesl
 | 
						|
  private static Properties props = new Properties ();
 | 
						|
}
 |