home *** CD-ROM | disk | FTP | other *** search
- package java.security;
-
- import sun.reflect.Reflection;
- import sun.security.util.Debug;
-
- public final class AccessController {
- private AccessController() {
- }
-
- public static native <T> T doPrivileged(PrivilegedAction<T> var0);
-
- public static <T> T doPrivilegedWithCombiner(PrivilegedAction<T> var0) {
- Object var1 = null;
- AccessControlContext var2 = getStackAccessControlContext();
- DomainCombiner var3;
- return (T)(var2 != null && (var3 = var2.getAssignedCombiner()) != null ? doPrivileged(var0, preserveCombiner(var3)) : doPrivileged(var0));
- }
-
- public static native <T> T doPrivileged(PrivilegedAction<T> var0, AccessControlContext var1);
-
- public static native <T> T doPrivileged(PrivilegedExceptionAction<T> var0) throws PrivilegedActionException;
-
- public static <T> T doPrivilegedWithCombiner(PrivilegedExceptionAction<T> var0) throws PrivilegedActionException {
- Object var1 = null;
- AccessControlContext var2 = getStackAccessControlContext();
- DomainCombiner var3;
- return (T)(var2 != null && (var3 = var2.getAssignedCombiner()) != null ? doPrivileged(var0, preserveCombiner(var3)) : doPrivileged(var0));
- }
-
- private static AccessControlContext preserveCombiner(DomainCombiner var0) {
- Class var1 = Reflection.getCallerClass(3);
- ProtectionDomain var2 = (ProtectionDomain)doPrivileged(new 1(var1));
- ProtectionDomain[] var3 = new ProtectionDomain[]{var2};
- return new AccessControlContext(var0.combine(var3, (ProtectionDomain[])null), var0);
- }
-
- public static native <T> T doPrivileged(PrivilegedExceptionAction<T> var0, AccessControlContext var1) throws PrivilegedActionException;
-
- private static native AccessControlContext getStackAccessControlContext();
-
- static native AccessControlContext getInheritedAccessControlContext();
-
- public static AccessControlContext getContext() {
- AccessControlContext var0 = getStackAccessControlContext();
- return var0 == null ? new AccessControlContext((ProtectionDomain[])null, true) : var0.optimize();
- }
-
- public static void checkPermission(Permission var0) throws AccessControlException {
- if (var0 == null) {
- throw new NullPointerException("permission can't be null");
- } else {
- AccessControlContext var1 = getStackAccessControlContext();
- if (var1 != null) {
- AccessControlContext var4 = var1.optimize();
- var4.checkPermission(var0);
- } else {
- Debug var2 = AccessControlContext.getDebug();
- boolean var3 = false;
- if (var2 != null) {
- var3 = !Debug.isOn("codebase=");
- var3 &= !Debug.isOn("permission=") || Debug.isOn("permission=" + var0.getClass().getCanonicalName());
- }
-
- if (var3 && Debug.isOn("stack")) {
- Thread.currentThread();
- Thread.dumpStack();
- }
-
- if (var3 && Debug.isOn("domain")) {
- var2.println("domain (context is null)");
- }
-
- if (var3) {
- var2.println("access allowed " + var0);
- }
-
- }
- }
- }
- }
-