com.trackstudio.tools
Class ShellClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by com.trackstudio.tools.ShellClassLoader

public class ShellClassLoader
extends java.lang.ClassLoader

This class is used for control user's abulity to execute some dangerous code from anywhere. It loads allowed classes only


Constructor Summary
protected ShellClassLoader()
           
 
Method Summary
 void addImport(java.lang.String classPattern)
          Adds class or package name to allowed classes (DO NOT use asteriks to specify a package)
 boolean classAllowed(java.lang.String className)
           
 java.lang.String getImports()
           
static java.lang.ClassLoader getInstance()
          getting instance of ClassLoader
 java.lang.Class loadClass(java.lang.String name)
          This is a simple version for external clients since they will always want the class resolved before it is returned to them.
 java.lang.Class loadClass(java.lang.String name, boolean resolve)
           
 void removeAllImport(java.lang.String classPattern)
          removes class or package and all it's classes from allowed list
 void removeImport(java.lang.String classPattern)
          removes class or package from allowed classes list
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ShellClassLoader

protected ShellClassLoader()
Method Detail

getImports

public java.lang.String getImports()

getInstance

public static java.lang.ClassLoader getInstance()
getting instance of ClassLoader


addImport

public void addImport(java.lang.String classPattern)
Adds class or package name to allowed classes (DO NOT use asteriks to specify a package)

Parameters:
classPattern - pattern to use

removeImport

public void removeImport(java.lang.String classPattern)
removes class or package from allowed classes list

Parameters:
classPattern - pattern of classes names

removeAllImport

public void removeAllImport(java.lang.String classPattern)
removes class or package and all it's classes from allowed list

Parameters:
classPattern - pattern of package name

classAllowed

public boolean classAllowed(java.lang.String className)
Parameters:
className - Class name
Returns:
true if this class allowes

loadClass

public java.lang.Class loadClass(java.lang.String name)
                          throws java.lang.ClassNotFoundException
This is a simple version for external clients since they will always want the class resolved before it is returned to them.

Overrides:
loadClass in class java.lang.ClassLoader
Throws:
java.lang.ClassNotFoundException

loadClass

public java.lang.Class loadClass(java.lang.String name,
                                 boolean resolve)
                          throws java.lang.ClassNotFoundException
Overrides:
loadClass in class java.lang.ClassLoader
Throws:
java.lang.ClassNotFoundException


Copyright © 2002-2008 TrackStudio, Ltd. All Rights Reserved.