home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / security / AccessController.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  3.2 KB  |  81 lines

  1. package java.security;
  2.  
  3. import sun.reflect.Reflection;
  4. import sun.security.util.Debug;
  5.  
  6. public final class AccessController {
  7.    private AccessController() {
  8.    }
  9.  
  10.    public static native <T> T doPrivileged(PrivilegedAction<T> var0);
  11.  
  12.    public static <T> T doPrivilegedWithCombiner(PrivilegedAction<T> var0) {
  13.       Object var1 = null;
  14.       AccessControlContext var2 = getStackAccessControlContext();
  15.       DomainCombiner var3;
  16.       return (T)(var2 != null && (var3 = var2.getAssignedCombiner()) != null ? doPrivileged(var0, preserveCombiner(var3)) : doPrivileged(var0));
  17.    }
  18.  
  19.    public static native <T> T doPrivileged(PrivilegedAction<T> var0, AccessControlContext var1);
  20.  
  21.    public static native <T> T doPrivileged(PrivilegedExceptionAction<T> var0) throws PrivilegedActionException;
  22.  
  23.    public static <T> T doPrivilegedWithCombiner(PrivilegedExceptionAction<T> var0) throws PrivilegedActionException {
  24.       Object var1 = null;
  25.       AccessControlContext var2 = getStackAccessControlContext();
  26.       DomainCombiner var3;
  27.       return (T)(var2 != null && (var3 = var2.getAssignedCombiner()) != null ? doPrivileged(var0, preserveCombiner(var3)) : doPrivileged(var0));
  28.    }
  29.  
  30.    private static AccessControlContext preserveCombiner(DomainCombiner var0) {
  31.       Class var1 = Reflection.getCallerClass(3);
  32.       ProtectionDomain var2 = (ProtectionDomain)doPrivileged(new 1(var1));
  33.       ProtectionDomain[] var3 = new ProtectionDomain[]{var2};
  34.       return new AccessControlContext(var0.combine(var3, (ProtectionDomain[])null), var0);
  35.    }
  36.  
  37.    public static native <T> T doPrivileged(PrivilegedExceptionAction<T> var0, AccessControlContext var1) throws PrivilegedActionException;
  38.  
  39.    private static native AccessControlContext getStackAccessControlContext();
  40.  
  41.    static native AccessControlContext getInheritedAccessControlContext();
  42.  
  43.    public static AccessControlContext getContext() {
  44.       AccessControlContext var0 = getStackAccessControlContext();
  45.       return var0 == null ? new AccessControlContext((ProtectionDomain[])null, true) : var0.optimize();
  46.    }
  47.  
  48.    public static void checkPermission(Permission var0) throws AccessControlException {
  49.       if (var0 == null) {
  50.          throw new NullPointerException("permission can't be null");
  51.       } else {
  52.          AccessControlContext var1 = getStackAccessControlContext();
  53.          if (var1 != null) {
  54.             AccessControlContext var4 = var1.optimize();
  55.             var4.checkPermission(var0);
  56.          } else {
  57.             Debug var2 = AccessControlContext.getDebug();
  58.             boolean var3 = false;
  59.             if (var2 != null) {
  60.                var3 = !Debug.isOn("codebase=");
  61.                var3 &= !Debug.isOn("permission=") || Debug.isOn("permission=" + var0.getClass().getCanonicalName());
  62.             }
  63.  
  64.             if (var3 && Debug.isOn("stack")) {
  65.                Thread.currentThread();
  66.                Thread.dumpStack();
  67.             }
  68.  
  69.             if (var3 && Debug.isOn("domain")) {
  70.                var2.println("domain (context is null)");
  71.             }
  72.  
  73.             if (var3) {
  74.                var2.println("access allowed " + var0);
  75.             }
  76.  
  77.          }
  78.       }
  79.    }
  80. }
  81.