class sun.security.jgss.krb5.SubjectComber
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.jgss.krb5.SubjectComber
super_class: java.lang.Object
{
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.security.jgss.krb5.Krb5Util.DEBUG:Z
putstatic sun.security.jgss.krb5.SubjectComber.DEBUG:Z
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/jgss/krb5/SubjectComber;
static <T> T find(javax.security.auth.Subject, java.lang.String, java.lang.String, java.lang.Class<T>);
descriptor: (Ljavax/security/auth/Subject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
aload 0
aload 1
1: aload 2
aload 3
iconst_1
2: invokestatic sun.security.jgss.krb5.SubjectComber.findAux:(Ljavax/security/auth/Subject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/Object;
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 subject Ljavax/security/auth/Subject;
0 3 1 serverPrincipal Ljava/lang/String;
0 3 2 clientPrincipal Ljava/lang/String;
0 3 3 credClass Ljava/lang/Class<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljavax/security/auth/Subject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
subject
serverPrincipal
clientPrincipal
credClass
static <T> java.util.List<T> findMany(javax.security.auth.Subject, java.lang.String, java.lang.String, java.lang.Class<T>);
descriptor: (Ljavax/security/auth/Subject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/List;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
1: aload 3
iconst_0
2: invokestatic sun.security.jgss.krb5.SubjectComber.findAux:(Ljavax/security/auth/Subject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/Object;
checkcast java.util.List
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 subject Ljavax/security/auth/Subject;
0 3 1 serverPrincipal Ljava/lang/String;
0 3 2 clientPrincipal Ljava/lang/String;
0 3 3 credClass Ljava/lang/Class<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljavax/security/auth/Subject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<TT;>;)Ljava/util/List<TT;>;
MethodParameters:
Name Flags
subject
serverPrincipal
clientPrincipal
credClass
private static <T> findAux(javax.security.auth.Subject, java.lang.String, java.lang.String, java.lang.Class<T>, boolean);
descriptor: (Ljavax/security/auth/Subject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
iload 4
ifeq 3
aconst_null
goto 4
StackMap locals:
StackMap stack:
3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
StackMap locals:
StackMap stack: java.util.ArrayList
4: astore 5
start local 5 5: aload 3
ldc Ljavax/security/auth/kerberos/KeyTab;
if_acmpne 32
6: aload 0
ldc Ljavax/security/auth/kerberos/KeyTab;
invokevirtual javax.security.auth.Subject.getPrivateCredentials:(Ljava/lang/Class;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
7: astore 6
start local 6 8: goto 30
9: StackMap locals: java.util.List java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.security.auth.kerberos.KeyTab
astore 7
start local 7 10: aload 1
ifnull 23
aload 7
invokevirtual javax.security.auth.kerberos.KeyTab.isBound:()Z
ifeq 23
11: aload 7
invokevirtual javax.security.auth.kerberos.KeyTab.getPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
astore 8
start local 8 12: aload 8
ifnull 15
13: aload 1
aload 8
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
14: goto 30
15: StackMap locals: javax.security.auth.kerberos.KeyTab javax.security.auth.kerberos.KerberosPrincipal
StackMap stack:
iconst_0
istore 9
start local 9 16: aload 0
ldc Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.Subject.getPrincipals:(Ljava/lang/Class;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 11
goto 21
StackMap locals: javax.security.auth.Subject java.lang.String java.lang.String java.lang.Class int java.util.List java.util.Iterator javax.security.auth.kerberos.KeyTab javax.security.auth.kerberos.KerberosPrincipal int top java.util.Iterator
StackMap stack:
17: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.security.auth.kerberos.KerberosPrincipal
astore 10
start local 10 18: aload 10
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 21
19: iconst_1
istore 9
20: goto 22
end local 10 21: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
22: StackMap locals: javax.security.auth.Subject java.lang.String java.lang.String java.lang.Class int java.util.List java.util.Iterator javax.security.auth.kerberos.KeyTab javax.security.auth.kerberos.KerberosPrincipal int
StackMap stack:
iload 9
ifne 23
goto 30
end local 9 end local 8 23: StackMap locals:
StackMap stack:
getstatic sun.security.jgss.krb5.SubjectComber.DEBUG:Z
ifeq 27
24: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Found "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
26: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
27: StackMap locals:
StackMap stack:
iload 4
ifeq 29
28: aload 7
areturn
29: StackMap locals:
StackMap stack:
aload 5
aload 3
aload 7
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 30: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 6 31: goto 101
StackMap locals:
StackMap stack:
32: aload 3
ldc Ljavax/security/auth/kerberos/KerberosKey;
if_acmpne 48
33: aload 0
ldc Ljavax/security/auth/kerberos/KerberosKey;
invokevirtual javax.security.auth.Subject.getPrivateCredentials:(Ljava/lang/Class;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
34: astore 6
start local 6 35: goto 46
36: StackMap locals: java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.security.auth.kerberos.KerberosKey
astore 7
start local 7 37: aload 7
invokevirtual javax.security.auth.kerberos.KerberosKey.getPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
astore 8
start local 8 38: aload 1
ifnull 39
aload 1
aload 8
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 46
39: StackMap locals: javax.security.auth.kerberos.KerberosKey java.lang.String
StackMap stack:
getstatic sun.security.jgss.krb5.SubjectComber.DEBUG:Z
ifeq 43
40: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Found "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
41: aload 3
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " for "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
42: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
43: StackMap locals:
StackMap stack:
iload 4
ifeq 45
44: aload 7
areturn
45: StackMap locals:
StackMap stack:
aload 5
aload 3
aload 7
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 7 46: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 36
end local 6 47: goto 101
StackMap locals:
StackMap stack:
48: aload 3
ldc Ljavax/security/auth/kerberos/KerberosTicket;
if_acmpne 101
49: aload 0
invokevirtual javax.security.auth.Subject.getPrivateCredentials:()Ljava/util/Set;
astore 6
start local 6 50: aload 6
dup
astore 7
monitorenter
51: aload 6
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
start local 8 52: goto 96
53: StackMap locals: java.util.Set java.util.Set java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 9
start local 9 54: aload 9
instanceof javax.security.auth.kerberos.KerberosTicket
ifeq 96
55: aload 9
checkcast javax.security.auth.kerberos.KerberosTicket
astore 10
start local 10 56: getstatic sun.security.jgss.krb5.SubjectComber.DEBUG:Z
ifeq 64
57: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Found ticket for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
58: aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.getClient:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
59: ldc " to go to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
60: aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.getServer:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
61: ldc " expiring on "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
62: aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.getEndTime:()Ljava/util/Date;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
63: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
64: StackMap locals: java.lang.Object javax.security.auth.kerberos.KerberosTicket
StackMap stack:
aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.isCurrent:()Z
ifne 79
65: aload 0
invokevirtual javax.security.auth.Subject.isReadOnly:()Z
ifne 96
66: aload 8
invokeinterface java.util.Iterator.remove:()V
67: aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.destroy:()V
68: getstatic sun.security.jgss.krb5.SubjectComber.DEBUG:Z
ifeq 96
69: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Removed and destroyed the expired Ticket \n"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
70: aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
71: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
72: goto 96
StackMap locals:
StackMap stack: javax.security.auth.DestroyFailedException
73: astore 11
start local 11 74: getstatic sun.security.jgss.krb5.SubjectComber.DEBUG:Z
ifeq 96
75: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Expired ticket not detroyed successfully. "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
76: aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
77: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 11 78: goto 96
79: StackMap locals:
StackMap stack:
aload 1
ifnull 81
80: aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.getServer:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 96
81: StackMap locals:
StackMap stack:
aload 2
ifnull 86
82: aload 2
83: aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.getClient:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
84: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
85: ifeq 96
86: StackMap locals:
StackMap stack:
iload 4
ifeq 89
87: aload 10
aload 7
monitorexit
88: areturn
89: StackMap locals:
StackMap stack:
aload 2
ifnonnull 92
90: aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.getClient:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
91: astore 2
92: StackMap locals:
StackMap stack:
aload 1
ifnonnull 95
93: aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.getServer:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
94: astore 1
95: StackMap locals:
StackMap stack:
aload 5
aload 3
aload 10
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 10 end local 9 96: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 53
end local 8 97: aload 7
monitorexit
98: goto 101
StackMap locals: javax.security.auth.Subject java.lang.String java.lang.String java.lang.Class int java.util.List java.util.Set java.util.Set
StackMap stack: java.lang.Throwable
99: aload 7
monitorexit
100: athrow
end local 6 101: StackMap locals:
StackMap stack:
aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 102 0 subject Ljavax/security/auth/Subject;
0 102 1 serverPrincipal Ljava/lang/String;
0 102 2 clientPrincipal Ljava/lang/String;
0 102 3 credClass Ljava/lang/Class<TT;>;
0 102 4 oneOnly Z
5 102 5 answer Ljava/util/List<TT;>;
8 31 6 iterator Ljava/util/Iterator<Ljavax/security/auth/kerberos/KeyTab;>;
10 30 7 t Ljavax/security/auth/kerberos/KeyTab;
12 23 8 name Ljavax/security/auth/kerberos/KerberosPrincipal;
16 23 9 found Z
18 21 10 princ Ljavax/security/auth/kerberos/KerberosPrincipal;
35 47 6 iterator Ljava/util/Iterator<Ljavax/security/auth/kerberos/KerberosKey;>;
37 46 7 t Ljavax/security/auth/kerberos/KerberosKey;
38 46 8 name Ljava/lang/String;
50 101 6 pcs Ljava/util/Set<Ljava/lang/Object;>;
52 97 8 iterator Ljava/util/Iterator<Ljava/lang/Object;>;
54 96 9 obj Ljava/lang/Object;
56 96 10 ticket Ljavax/security/auth/kerberos/KerberosTicket;
74 78 11 dfe Ljavax/security/auth/DestroyFailedException;
Exception table:
from to target type
67 72 73 Class javax.security.auth.DestroyFailedException
51 88 99 any
89 98 99 any
99 100 99 any
Signature: <T:Ljava/lang/Object;>(Ljavax/security/auth/Subject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<TT;>;Z)Ljava/lang/Object;
MethodParameters:
Name Flags
subject
serverPrincipal
clientPrincipal
credClass
oneOnly
}
SourceFile: "SubjectComber.java"