java.lang
Class SecurityManager

java.lang.Object
  |
  +--java.lang.SecurityManager

public abstract class SecurityManager
extends Object

An abstract class that can be subclassed to implement a security policy. It allows the inspection of the classloaders on the execution stack.


Field Summary
protected  boolean inCheck
           
 
Constructor Summary
protected SecurityManager()
          Constructs a new SecurityManager.
 
Method Summary
 void checkAccept(String host, int port)
          Checks to see if a socket connection to the specified port on the specified host has been accepted.
 void checkAccess(Thread g)
          Checks to see if the specified Thread is allowed to modify the Thread group.
 void checkAccess(ThreadGroup g)
          Checks to see if the specified Thread group is allowed to modify this group.
 void checkConnect(String host, int port)
          Checks to see if a socket has connected to the specified port on the the specified host.
 void checkConnect(String host, int port, Object context)
          Checks to see if the current execution context and the indicated execution context are both allowed to connect to the indicated host and port.
 void checkCreateClassLoader()
          Checks to see if the ClassLoader has been created.
 void checkDelete(String file)
          Checks to see if a file with the specified system dependent file name can be deleted.
 void checkExec(String cmd)
          Checks to see if the system command is executed by trusted code.
 void checkExit(int status)
          Checks to see if the system has exited the virtual machine with an exit code.
 void checkLink(String lib)
          Checks to see if the specified linked library exists.
 void checkListen(int port)
          Checks to see if a server socket is listening to the specified local port that it is bounded to.
 void checkPackageAccess(String pkg)
          Checks to see if an applet can access a package.
 void checkPackageDefinition(String pkg)
          Checks to see if an applet can define classes in a package.
 void checkPropertiesAccess()
          Checks to see who has access to the System properties.
 void checkPropertyAccess(String key)
          Checks to see who has access to the System property named by key.
 void checkPropertyAccess(String key, String def)
          Checks to see who has access to the System property named by key and def.
 void checkRead(FileDescriptor fd)
          Checks to see if an input file with the specified file descriptor object gets created.
 void checkRead(String file)
          Checks to see if an input file with the specified system dependent file name gets created.
 void checkRead(String file, Object context)
          Checks to see if the current context or the indicated context are both allowed to read the given file name.
 void checkSetFactory()
          Checks to see if an applet can set a networking-related object factory.
 boolean checkTopLevelWindow(Object window)
          Checks to see if top-level windows can be created by the caller.
 void checkWrite(FileDescriptor fd)
          Checks to see if an output file with the specified file descriptor object gets created.
 void checkWrite(String file)
          Checks to see if an output file with the specified system dependent file name gets created.
protected  int classDepth(String name)
          Return the position of the stack frame containing the first occurrence of the named class.
protected  int classLoaderDepth()
           
protected  ClassLoader currentClassLoader()
          The current ClassLoader on the execution stack.
protected  Class[] getClassContext()
          Gets the context of this Class.
 boolean getInCheck()
          Returns whether there is a security check in progress.
 Object getSecurityContext()
          Returns an implementation-dependent Object which encapsulates enough information about the current execution environment to perform some of the security checks later.
protected  boolean inClass(String name)
          Returns true if the specified String is in this Class.
protected  boolean inClassLoader()
          Returns a boolean indicating whether or not the current ClassLoader is equal to null.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inCheck

protected boolean inCheck
Constructor Detail

SecurityManager

protected SecurityManager()
Constructs a new SecurityManager.

Throws:
SecurityException - If the security manager cannot be created.
Method Detail

getInCheck

public boolean getInCheck()
Returns whether there is a security check in progress.


getClassContext

protected Class[] getClassContext()
Gets the context of this Class.


currentClassLoader

protected ClassLoader currentClassLoader()
The current ClassLoader on the execution stack.


classDepth

protected int classDepth(String name)
Return the position of the stack frame containing the first occurrence of the named class.

Parameters:
name - classname of the class to search for

classLoaderDepth

protected int classLoaderDepth()

inClass

protected boolean inClass(String name)
Returns true if the specified String is in this Class.

Parameters:
name - the name of the class

inClassLoader

protected boolean inClassLoader()
Returns a boolean indicating whether or not the current ClassLoader is equal to null.


getSecurityContext

public Object getSecurityContext()
Returns an implementation-dependent Object which encapsulates enough information about the current execution environment to perform some of the security checks later.


checkCreateClassLoader

public void checkCreateClassLoader()
Checks to see if the ClassLoader has been created.

Throws:
SecurityException - If a security error has occurred.

checkAccess

public void checkAccess(Thread g)
Checks to see if the specified Thread is allowed to modify the Thread group.

Parameters:
g - the Thread to be checked
Throws:
SecurityException - If the current Thread is not allowed to access this Thread group.

checkAccess

public void checkAccess(ThreadGroup g)
Checks to see if the specified Thread group is allowed to modify this group.

Parameters:
g - the Thread group to be checked
Throws:
SecurityException - If the current Thread group is not allowed to access this Thread group.

checkExit

public void checkExit(int status)
Checks to see if the system has exited the virtual machine with an exit code.

Parameters:
status - exit status, 0 if successful, other values indicate various error types.
Throws:
SecurityException - If a security error has occurred.

checkExec

public void checkExec(String cmd)
Checks to see if the system command is executed by trusted code.

Parameters:
cmd - the specified system command
Throws:
SecurityException - If a security error has occurred.

checkLink

public void checkLink(String lib)
Checks to see if the specified linked library exists.

Parameters:
lib - the name of the library
Throws:
SecurityException - If the library does not exist.

checkRead

public void checkRead(FileDescriptor fd)
Checks to see if an input file with the specified file descriptor object gets created.

Parameters:
fd - the system dependent file descriptor
Throws:
SecurityException - If a security error has occurred.

checkRead

public void checkRead(String file)
Checks to see if an input file with the specified system dependent file name gets created.

Parameters:
file - the system dependent file name
Throws:
SecurityException - If the file is not found.

checkRead

public void checkRead(String file,
                      Object context)
Checks to see if the current context or the indicated context are both allowed to read the given file name.

Parameters:
file - the system dependent file name
context - the alternate execution context which must also be checked
Throws:
SecurityException - If the file is not found.

checkWrite

public void checkWrite(FileDescriptor fd)
Checks to see if an output file with the specified file descriptor object gets created.

Parameters:
fd - the system dependent file descriptor
Throws:
SecurityException - If a security error has occurred.

checkWrite

public void checkWrite(String file)
Checks to see if an output file with the specified system dependent file name gets created.

Parameters:
file - the system dependent file name
Throws:
SecurityException - If the file is not found.

checkDelete

public void checkDelete(String file)
Checks to see if a file with the specified system dependent file name can be deleted.

Parameters:
file - the system dependent file name
Throws:
SecurityException - If the file is not found.

checkConnect

public void checkConnect(String host,
                         int port)
Checks to see if a socket has connected to the specified port on the the specified host.

Parameters:
host - the host name port to connect to
port - the protocol port to connect to
Throws:
SecurityException - If a security error has occurred.

checkConnect

public void checkConnect(String host,
                         int port,
                         Object context)
Checks to see if the current execution context and the indicated execution context are both allowed to connect to the indicated host and port.


checkListen

public void checkListen(int port)
Checks to see if a server socket is listening to the specified local port that it is bounded to.

Parameters:
port - the protocol port to connect to
Throws:
SecurityException - If a security error has occurred.

checkAccept

public void checkAccept(String host,
                        int port)
Checks to see if a socket connection to the specified port on the specified host has been accepted.

Parameters:
host - the host name to connect to
port - the protocol port to connect to
Throws:
SecurityException - If a security error has occurred.

checkPropertiesAccess

public void checkPropertiesAccess()
Checks to see who has access to the System properties.

Throws:
SecurityException - If a security error has occurred.

checkPropertyAccess

public void checkPropertyAccess(String key)
Checks to see who has access to the System property named by key.

Parameters:
key - the System property that the caller wants to examine
Throws:
SecurityException - If a security error has occurred.

checkPropertyAccess

public void checkPropertyAccess(String key,
                                String def)
Checks to see who has access to the System property named by key and def.

Parameters:
key - the System property that the caller wants to examine
def - default value to return if this property is not defined
Throws:
SecurityException - If a security error has occurred.

checkTopLevelWindow

public boolean checkTopLevelWindow(Object window)
Checks to see if top-level windows can be created by the caller. A return of false means that the window creation is allowed but the window should indicate some sort of visual warning. Returning true means the creation is allowed with no special restrictions. To disallow the creation entirely, this method should throw a SecurityException.

Parameters:
window - the new window that's being created.

checkPackageAccess

public void checkPackageAccess(String pkg)
Checks to see if an applet can access a package.


checkPackageDefinition

public void checkPackageDefinition(String pkg)
Checks to see if an applet can define classes in a package.


checkSetFactory

public void checkSetFactory()
Checks to see if an applet can set a networking-related object factory.