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=13, 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 125
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 125
StackMap locals:
StackMap stack:
48: aload 3
ldc Ljavax/security/auth/kerberos/KerberosTicket;
if_acmpne 125
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 120
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 120
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 120
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 120
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 120
StackMap locals:
StackMap stack: javax.security.auth.DestroyFailedException
73: astore 11
start local 11 74: getstatic sun.security.jgss.krb5.SubjectComber.DEBUG:Z
ifeq 120
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 120
79: StackMap locals:
StackMap stack:
invokestatic sun.security.krb5.KerberosSecrets.getJavaxSecurityAuthKerberosAccess:()Lsun/security/krb5/JavaxSecurityAuthKerberosAccess;
80: aload 10
invokeinterface sun.security.krb5.JavaxSecurityAuthKerberosAccess.kerberosTicketGetServerAlias:(Ljavax/security/auth/kerberos/KerberosTicket;)Ljavax/security/auth/kerberos/KerberosPrincipal;
81: astore 11
start local 11 82: aload 1
ifnull 89
83: 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
ifne 89
84: aload 11
ifnull 120
85: aload 1
86: aload 11
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
87: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
88: ifeq 120
89: StackMap locals: javax.security.auth.kerberos.KerberosPrincipal
StackMap stack:
invokestatic sun.security.krb5.KerberosSecrets.getJavaxSecurityAuthKerberosAccess:()Lsun/security/krb5/JavaxSecurityAuthKerberosAccess;
90: aload 10
invokeinterface sun.security.krb5.JavaxSecurityAuthKerberosAccess.kerberosTicketGetClientAlias:(Ljavax/security/auth/kerberos/KerberosTicket;)Ljavax/security/auth/kerberos/KerberosPrincipal;
91: astore 12
start local 12 92: aload 2
ifnull 102
93: aload 2
94: aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.getClient:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
95: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
96: ifne 102
97: aload 12
ifnull 120
98: aload 2
99: aload 12
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
100: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
101: ifeq 120
102: StackMap locals: javax.security.auth.kerberos.KerberosPrincipal
StackMap stack:
iload 4
ifeq 105
103: aload 10
aload 7
monitorexit
104: areturn
105: StackMap locals:
StackMap stack:
aload 2
ifnonnull 112
106: aload 12
ifnonnull 110
107: aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.getClient:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
108: astore 2
109: goto 112
110: StackMap locals:
StackMap stack:
aload 12
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
111: astore 2
112: StackMap locals:
StackMap stack:
aload 1
ifnonnull 119
113: aload 11
ifnonnull 117
114: aload 10
invokevirtual javax.security.auth.kerberos.KerberosTicket.getServer:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
115: astore 1
116: goto 119
117: StackMap locals:
StackMap stack:
aload 11
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
118: astore 1
119: 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 12 end local 11 end local 10 end local 9 120: 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 java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 53
end local 8 121: aload 7
monitorexit
122: goto 125
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
123: aload 7
monitorexit
124: athrow
end local 6 125: 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 126 0 subject Ljavax/security/auth/Subject;
0 126 1 serverPrincipal Ljava/lang/String;
0 126 2 clientPrincipal Ljava/lang/String;
0 126 3 credClass Ljava/lang/Class<TT;>;
0 126 4 oneOnly Z
5 126 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 125 6 pcs Ljava/util/Set<Ljava/lang/Object;>;
52 121 8 iterator Ljava/util/Iterator<Ljava/lang/Object;>;
54 120 9 obj Ljava/lang/Object;
56 120 10 ticket Ljavax/security/auth/kerberos/KerberosTicket;
74 78 11 dfe Ljavax/security/auth/DestroyFailedException;
82 120 11 serverAlias Ljavax/security/auth/kerberos/KerberosPrincipal;
92 120 12 clientAlias Ljavax/security/auth/kerberos/KerberosPrincipal;
Exception table:
from to target type
67 72 73 Class javax.security.auth.DestroyFailedException
51 104 123 any
105 122 123 any
123 124 123 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"