1 33 34 package edu.rice.cs.util.classloader; 35 36 import java.util.*; 37 38 42 public class LimitingClassLoader extends ClassLoader { 43 private List<String > _restrictedList = new LinkedList<String >(); 44 45 48 public LimitingClassLoader(ClassLoader parent) { super(parent); } 49 50 public void addToRestrictedList(String name) { _restrictedList.add(name); } 51 52 public void clearRestrictedList() { _restrictedList.clear(); } 53 54 62 protected Class <?> loadClass(String name, boolean resolve) 63 throws ClassNotFoundException 64 { 65 ListIterator itor = _restrictedList.listIterator(); 66 67 while (itor.hasNext()) { 68 String current = (String ) itor.next(); 69 if (current.equals(name)) { 70 throw new ClassNotFoundException ("Class " + name + 71 " is on the restricted list."); 72 } 73 } 74 75 Class <?> clazz = getParent().loadClass(name); 77 78 if (resolve) { 81 resolveClass(clazz); 82 } 83 84 return clazz; 85 } 86 } 87 | Popular Tags |