public class sun.applet.AppletSecurity extends sun.awt.AWTSecurityManager
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.applet.AppletSecurity
super_class: sun.awt.AWTSecurityManager
{
private static java.lang.reflect.Field facc;
descriptor: Ljava/lang/reflect/Field;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.lang.reflect.Field fcontext;
descriptor: Ljava/lang/reflect/Field;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private java.util.HashSet restrictedPackages;
descriptor: Ljava/util/HashSet;
flags: (0x0002) ACC_PRIVATE
private boolean inThreadGroupCheck;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: aconst_null
putstatic sun.applet.AppletSecurity.facc:Ljava/lang/reflect/Field;
1: aconst_null
putstatic sun.applet.AppletSecurity.fcontext:Ljava/lang/reflect/Field;
2: ldc Ljava/net/URLClassLoader;
ldc "acc"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
putstatic sun.applet.AppletSecurity.facc:Ljava/lang/reflect/Field;
3: getstatic sun.applet.AppletSecurity.facc:Ljava/lang/reflect/Field;
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
4: ldc Ljava/security/AccessControlContext;
ldc "context"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
putstatic sun.applet.AppletSecurity.fcontext:Ljava/lang/reflect/Field;
5: getstatic sun.applet.AppletSecurity.fcontext:Ljava/lang/reflect/Field;
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
6: goto 9
StackMap locals:
StackMap stack: java.lang.NoSuchFieldException
7: astore 0
start local 0 8: new java.lang.UnsupportedOperationException
dup
aload 0
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 9: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
8 9 0 e Ljava/lang/NoSuchFieldException;
Exception table:
from to target type
2 6 7 Class java.lang.NoSuchFieldException
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial sun.awt.AWTSecurityManager.<init>:()V
1: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield sun.applet.AppletSecurity.restrictedPackages:Ljava/util/HashSet;
2: aload 0
iconst_0
putfield sun.applet.AppletSecurity.inThreadGroupCheck:Z
3: aload 0
invokevirtual sun.applet.AppletSecurity.reset:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/applet/AppletSecurity;
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.applet.AppletSecurity.restrictedPackages:Ljava/util/HashSet;
invokevirtual java.util.HashSet.clear:()V
1: new sun.applet.AppletSecurity$1
dup
aload 0
invokespecial sun.applet.AppletSecurity$1.<init>:(Lsun/applet/AppletSecurity;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/applet/AppletSecurity;
private sun.applet.AppletClassLoader currentAppletClassLoader();
descriptor: ()Lsun/applet/AppletClassLoader;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual sun.applet.AppletSecurity.currentClassLoader:()Ljava/lang/ClassLoader;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
instanceof sun.applet.AppletClassLoader
ifeq 3
2: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 1
checkcast sun.applet.AppletClassLoader
areturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.applet.AppletSecurity.getClassContext:()[Ljava/lang/Class;
astore 2
start local 2 4: iconst_0
istore 3
start local 3 5: goto 10
6: StackMap locals: java.lang.Class[] int
StackMap stack:
aload 2
iload 3
aaload
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 1
7: aload 1
instanceof sun.applet.AppletClassLoader
ifeq 9
8: aload 1
checkcast sun.applet.AppletClassLoader
areturn
9: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 2
arraylength
if_icmplt 6
end local 3 11: iconst_0
istore 3
start local 3 12: goto 19
13: StackMap locals:
StackMap stack:
aload 2
iload 3
aaload
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 4
start local 4 14: aload 4
instanceof java.net.URLClassLoader
ifeq 18
15: new sun.applet.AppletSecurity$2
dup
aload 0
aload 4
invokespecial sun.applet.AppletSecurity$2.<init>:(Lsun/applet/AppletSecurity;Ljava/lang/ClassLoader;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.ClassLoader
astore 1
16: aload 1
ifnull 18
17: aload 1
checkcast sun.applet.AppletClassLoader
areturn
end local 4 18: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
19: iload 3
aload 2
arraylength
if_icmplt 13
end local 3 20: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 1
21: aload 1
instanceof sun.applet.AppletClassLoader
ifeq 23
22: aload 1
checkcast sun.applet.AppletClassLoader
areturn
23: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/applet/AppletSecurity;
1 24 1 loader Ljava/lang/ClassLoader;
4 24 2 context [Ljava/lang/Class;
5 11 3 i I
12 20 3 i I
14 18 4 currentLoader Ljava/lang/ClassLoader;
protected boolean inThreadGroup(java.lang.ThreadGroup);
descriptor: (Ljava/lang/ThreadGroup;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.applet.AppletSecurity.currentAppletClassLoader:()Lsun/applet/AppletClassLoader;
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.applet.AppletSecurity.getThreadGroup:()Ljava/lang/ThreadGroup;
aload 1
invokevirtual java.lang.ThreadGroup.parentOf:(Ljava/lang/ThreadGroup;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/applet/AppletSecurity;
0 3 1 g Ljava/lang/ThreadGroup;
MethodParameters:
Name Flags
g
protected boolean inThreadGroup(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Thread.getThreadGroup:()Ljava/lang/ThreadGroup;
invokevirtual sun.applet.AppletSecurity.inThreadGroup:(Ljava/lang/ThreadGroup;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/applet/AppletSecurity;
0 1 1 thread Ljava/lang/Thread;
MethodParameters:
Name Flags
thread
public void checkAccess(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Thread.getState:()Ljava/lang/Thread$State;
getstatic java.lang.Thread$State.TERMINATED:Ljava/lang/Thread$State;
if_acmpeq 2
aload 0
aload 1
invokevirtual sun.applet.AppletSecurity.inThreadGroup:(Ljava/lang/Thread;)Z
ifne 2
1: aload 0
getstatic sun.security.util.SecurityConstants.MODIFY_THREAD_PERMISSION:Ljava/lang/RuntimePermission;
invokevirtual sun.applet.AppletSecurity.checkPermission:(Ljava/security/Permission;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/applet/AppletSecurity;
0 3 1 t Ljava/lang/Thread;
MethodParameters:
Name Flags
t
public synchronized void checkAccess(java.lang.ThreadGroup);
descriptor: (Ljava/lang/ThreadGroup;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.applet.AppletSecurity.inThreadGroupCheck:Z
ifeq 3
1: aload 0
getstatic sun.security.util.SecurityConstants.MODIFY_THREADGROUP_PERMISSION:Ljava/lang/RuntimePermission;
invokevirtual sun.applet.AppletSecurity.checkPermission:(Ljava/security/Permission;)V
2: goto 11
3: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.applet.AppletSecurity.inThreadGroupCheck:Z
4: aload 0
aload 1
invokevirtual sun.applet.AppletSecurity.inThreadGroup:(Ljava/lang/ThreadGroup;)Z
ifne 10
5: aload 0
getstatic sun.security.util.SecurityConstants.MODIFY_THREADGROUP_PERMISSION:Ljava/lang/RuntimePermission;
invokevirtual sun.applet.AppletSecurity.checkPermission:(Ljava/security/Permission;)V
6: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 2
8: aload 0
iconst_0
putfield sun.applet.AppletSecurity.inThreadGroupCheck:Z
9: aload 2
athrow
10: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.applet.AppletSecurity.inThreadGroupCheck:Z
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/applet/AppletSecurity;
0 12 1 g Ljava/lang/ThreadGroup;
Exception table:
from to target type
3 7 7 any
MethodParameters:
Name Flags
g
public void checkPackageAccess(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial sun.awt.AWTSecurityManager.checkPackageAccess:(Ljava/lang/String;)V
1: aload 0
getfield sun.applet.AppletSecurity.restrictedPackages:Ljava/util/HashSet;
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 2
start local 2 2: goto 8
3: StackMap locals: java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 4: aload 1
aload 3
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
aload 1
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 8
5: StackMap locals: java.lang.String
StackMap stack:
aload 0
new java.lang.RuntimePermission
dup
6: new java.lang.StringBuilder
dup
ldc "accessClassInPackage."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
7: invokevirtual sun.applet.AppletSecurity.checkPermission:(Ljava/security/Permission;)V
end local 3 8: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 2 9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/applet/AppletSecurity;
0 10 1 pkgname Ljava/lang/String;
2 9 2 iter Ljava/util/Iterator;
4 8 3 pkg Ljava/lang/String;
MethodParameters:
Name Flags
pkgname final
public void checkAwtEventQueueAccess();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
astore 1
start local 1 1: aload 0
invokevirtual sun.applet.AppletSecurity.currentAppletClassLoader:()Lsun/applet/AppletClassLoader;
astore 2
start local 2 2: aload 1
invokestatic sun.awt.AppContext.isMainContext:(Lsun/awt/AppContext;)Z
ifeq 4
aload 2
ifnull 4
3: aload 0
invokespecial sun.awt.AWTSecurityManager.checkAwtEventQueueAccess:()V
4: StackMap locals: sun.awt.AppContext sun.applet.AppletClassLoader
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/applet/AppletSecurity;
1 5 1 appContext Lsun/awt/AppContext;
2 5 2 appletClassLoader Lsun/applet/AppletClassLoader;
public java.lang.ThreadGroup getThreadGroup();
descriptor: ()Ljava/lang/ThreadGroup;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual sun.applet.AppletSecurity.currentAppletClassLoader:()Lsun/applet/AppletClassLoader;
astore 1
start local 1 1: aload 1
ifnonnull 2
aconst_null
goto 3
2: StackMap locals: sun.applet.AppletClassLoader
StackMap stack:
aload 1
invokevirtual sun.applet.AppletClassLoader.getThreadGroup:()Ljava/lang/ThreadGroup;
3: StackMap locals:
StackMap stack: java.lang.ThreadGroup
astore 2
start local 2 4: aload 2
ifnull 6
5: aload 2
areturn
6: StackMap locals: java.lang.ThreadGroup
StackMap stack:
aload 0
invokespecial sun.awt.AWTSecurityManager.getThreadGroup:()Ljava/lang/ThreadGroup;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/applet/AppletSecurity;
1 7 1 appletLoader Lsun/applet/AppletClassLoader;
4 7 2 loaderGroup Ljava/lang/ThreadGroup;
public sun.awt.AppContext getAppContext();
descriptor: ()Lsun/awt/AppContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual sun.applet.AppletSecurity.currentAppletClassLoader:()Lsun/applet/AppletClassLoader;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: sun.applet.AppletClassLoader
StackMap stack:
aload 1
invokevirtual sun.applet.AppletClassLoader.getAppContext:()Lsun/awt/AppContext;
astore 2
start local 2 4: aload 2
ifnonnull 6
5: new java.lang.SecurityException
dup
ldc "Applet classloader has invalid AppContext"
invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: sun.awt.AppContext
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/applet/AppletSecurity;
1 7 1 appletLoader Lsun/applet/AppletClassLoader;
4 7 2 context Lsun/awt/AppContext;
}
SourceFile: "AppletSecurity.java"
NestMembers:
sun.applet.AppletSecurity$1 sun.applet.AppletSecurity$2
InnerClasses:
public final State = java.lang.Thread$State of java.lang.Thread
sun.applet.AppletSecurity$1
sun.applet.AppletSecurity$2