home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / applet / AppletSecurity.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.4 KB  |  113 lines

  1. package sun.applet;
  2.  
  3. import java.security.AccessController;
  4. import sun.awt.AWTSecurityManager;
  5. import sun.awt.AppContext;
  6.  
  7. public class AppletSecurity extends AWTSecurityManager {
  8.    private AppContext mainAppContext;
  9.    private static RuntimePermission threadPermission;
  10.    private static RuntimePermission threadGroupPermission;
  11.    private boolean inThreadGroupCheck = false;
  12.  
  13.    public AppletSecurity() {
  14.       this.reset();
  15.       this.mainAppContext = AppContext.getAppContext();
  16.    }
  17.  
  18.    public void reset() {
  19.    }
  20.  
  21.    private AppletClassLoader currentAppletClassLoader() {
  22.       ClassLoader var1 = ((SecurityManager)this).currentClassLoader();
  23.       if (var1 != null && !(var1 instanceof AppletClassLoader)) {
  24.          Class[] var2 = ((SecurityManager)this).getClassContext();
  25.  
  26.          for(int var3 = 0; var3 < var2.length; ++var3) {
  27.             var1 = var2[var3].getClassLoader();
  28.             if (var1 instanceof AppletClassLoader) {
  29.                return (AppletClassLoader)var1;
  30.             }
  31.          }
  32.  
  33.          var1 = Thread.currentThread().getContextClassLoader();
  34.          return var1 instanceof AppletClassLoader ? (AppletClassLoader)var1 : (AppletClassLoader)null;
  35.       } else {
  36.          return (AppletClassLoader)var1;
  37.       }
  38.    }
  39.  
  40.    protected boolean inThreadGroup(ThreadGroup var1) {
  41.       return this.currentAppletClassLoader() == null ? false : this.getThreadGroup().parentOf(var1);
  42.    }
  43.  
  44.    protected boolean inThreadGroup(Thread var1) {
  45.       return this.inThreadGroup(var1.getThreadGroup());
  46.    }
  47.  
  48.    public synchronized void checkAccess(Thread var1) {
  49.       if (!this.inThreadGroup(var1)) {
  50.          if (threadPermission == null) {
  51.             threadPermission = new RuntimePermission("modifyThread");
  52.          }
  53.  
  54.          ((SecurityManager)this).checkPermission(threadPermission);
  55.       }
  56.  
  57.    }
  58.  
  59.    public synchronized void checkAccess(ThreadGroup var1) {
  60.       if (this.inThreadGroupCheck) {
  61.          if (threadGroupPermission == null) {
  62.             threadGroupPermission = new RuntimePermission("modifyThreadGroup");
  63.          }
  64.  
  65.          ((SecurityManager)this).checkPermission(threadGroupPermission);
  66.       } else {
  67.          try {
  68.             this.inThreadGroupCheck = true;
  69.             if (!this.inThreadGroup(var1)) {
  70.                if (threadGroupPermission == null) {
  71.                   threadGroupPermission = new RuntimePermission("modifyThreadGroup");
  72.                }
  73.  
  74.                ((SecurityManager)this).checkPermission(threadGroupPermission);
  75.             }
  76.          } finally {
  77.             this.inThreadGroupCheck = false;
  78.          }
  79.       }
  80.  
  81.    }
  82.  
  83.    public void checkPackageAccess(String var1) {
  84.       super.checkPackageAccess(var1);
  85.       boolean[] var2 = new boolean[]{false};
  86.       AccessController.doPrivileged(new 1(this, var1, var2));
  87.       if (var2[0]) {
  88.          ((SecurityManager)this).checkPermission(new RuntimePermission("accessClassInPackage." + var1));
  89.       }
  90.  
  91.    }
  92.  
  93.    public void checkAwtEventQueueAccess() {
  94.       AppContext var1 = AppContext.getAppContext();
  95.       AppletClassLoader var2 = this.currentAppletClassLoader();
  96.       if (var1 == this.mainAppContext && var2 != null) {
  97.          super.checkAwtEventQueueAccess();
  98.       }
  99.  
  100.    }
  101.  
  102.    public ThreadGroup getThreadGroup() {
  103.       AppletClassLoader var1 = this.currentAppletClassLoader();
  104.       ThreadGroup var2 = var1 == null ? null : var1.getThreadGroup();
  105.       return var2 != null ? var2 : super.getThreadGroup();
  106.    }
  107.  
  108.    public AppContext getAppContext() {
  109.       AppletClassLoader var1 = this.currentAppletClassLoader();
  110.       return var1 == null ? null : var1.getAppContext();
  111.    }
  112. }
  113.