public class sun.security.krb5.internal.CredentialsUtil
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.krb5.internal.CredentialsUtil
super_class: java.lang.Object
{
private static boolean DEBUG;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.security.krb5.internal.Krb5.DEBUG:Z
putstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/CredentialsUtil;
public static sun.security.krb5.Credentials acquireS4U2selfCreds(sun.security.krb5.PrincipalName, sun.security.krb5.Credentials);
descriptor: (Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Credentials;)Lsun/security/krb5/Credentials;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=15, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.security.krb5.PrincipalName.getRealmString:()Ljava/lang/String;
astore 2
start local 2 1: aload 1
invokevirtual sun.security.krb5.Credentials.getClient:()Lsun/security/krb5/PrincipalName;
invokevirtual sun.security.krb5.PrincipalName.getRealmString:()Ljava/lang/String;
astore 3
start local 3 2: aload 2
aload 3
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
3: new sun.security.krb5.KrbException
dup
ldc "Cross realm impersonation not supported"
invokespecial sun.security.krb5.KrbException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 1
invokevirtual sun.security.krb5.Credentials.isForwardable:()Z
ifne 6
5: new sun.security.krb5.KrbException
dup
ldc "S4U2self needs a FORWARDABLE ticket"
invokespecial sun.security.krb5.KrbException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
iconst_1
newarray 10
dup
iconst_0
iconst_1
iastore
invokestatic sun.security.krb5.internal.KDCOptions.with:([I)Lsun/security/krb5/internal/KDCOptions;
7: aload 1
aload 1
invokevirtual sun.security.krb5.Credentials.getClient:()Lsun/security/krb5/PrincipalName;
aload 1
invokevirtual sun.security.krb5.Credentials.getClient:()Lsun/security/krb5/PrincipalName;
aconst_null
8: iconst_1
anewarray sun.security.krb5.internal.PAData
dup
iconst_0
new sun.security.krb5.internal.PAData
dup
sipush 129
9: new sun.security.krb5.internal.PAForUserEnc
dup
aload 0
10: aload 1
invokevirtual sun.security.krb5.Credentials.getSessionKey:()Lsun/security/krb5/EncryptionKey;
11: invokespecial sun.security.krb5.internal.PAForUserEnc.<init>:(Lsun/security/krb5/PrincipalName;Lsun/security/krb5/EncryptionKey;)V
12: invokevirtual sun.security.krb5.internal.PAForUserEnc.asn1Encode:()[B
13: invokespecial sun.security.krb5.internal.PAData.<init>:(I[B)V
aastore
14: invokestatic sun.security.krb5.internal.CredentialsUtil.serviceCreds:(Lsun/security/krb5/internal/KDCOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;[Lsun/security/krb5/internal/Ticket;[Lsun/security/krb5/internal/PAData;)Lsun/security/krb5/Credentials;
astore 4
start local 4 15: aload 4
invokevirtual sun.security.krb5.Credentials.getClient:()Lsun/security/krb5/PrincipalName;
aload 0
invokevirtual sun.security.krb5.PrincipalName.equals:(Ljava/lang/Object;)Z
ifne 17
16: new sun.security.krb5.KrbException
dup
ldc "S4U2self request not honored by KDC"
invokespecial sun.security.krb5.KrbException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals: sun.security.krb5.Credentials
StackMap stack:
aload 4
invokevirtual sun.security.krb5.Credentials.isForwardable:()Z
ifne 19
18: new sun.security.krb5.KrbException
dup
ldc "S4U2self ticket must be FORWARDABLE"
invokespecial sun.security.krb5.KrbException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 client Lsun/security/krb5/PrincipalName;
0 20 1 ccreds Lsun/security/krb5/Credentials;
1 20 2 uRealm Ljava/lang/String;
2 20 3 localRealm Ljava/lang/String;
15 20 4 creds Lsun/security/krb5/Credentials;
Exceptions:
throws sun.security.krb5.KrbException, java.io.IOException
MethodParameters:
Name Flags
client
ccreds
public static sun.security.krb5.Credentials acquireS4U2proxyCreds(java.lang.String, sun.security.krb5.internal.Ticket, sun.security.krb5.PrincipalName, sun.security.krb5.Credentials);
descriptor: (Ljava/lang/String;Lsun/security/krb5/internal/Ticket;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Credentials;)Lsun/security/krb5/Credentials;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_2
newarray 10
dup
iconst_0
1: bipush 14
iastore
dup
iconst_1
iconst_1
iastore
2: invokestatic sun.security.krb5.internal.KDCOptions.with:([I)Lsun/security/krb5/internal/KDCOptions;
3: aload 3
aload 3
invokevirtual sun.security.krb5.Credentials.getClient:()Lsun/security/krb5/PrincipalName;
new sun.security.krb5.PrincipalName
dup
aload 0
invokespecial sun.security.krb5.PrincipalName.<init>:(Ljava/lang/String;)V
4: iconst_1
anewarray sun.security.krb5.internal.Ticket
dup
iconst_0
aload 1
aastore
aconst_null
5: invokestatic sun.security.krb5.internal.CredentialsUtil.serviceCreds:(Lsun/security/krb5/internal/KDCOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;[Lsun/security/krb5/internal/Ticket;[Lsun/security/krb5/internal/PAData;)Lsun/security/krb5/Credentials;
astore 4
start local 4 6: aload 4
invokevirtual sun.security.krb5.Credentials.getClient:()Lsun/security/krb5/PrincipalName;
aload 2
invokevirtual sun.security.krb5.PrincipalName.equals:(Ljava/lang/Object;)Z
ifne 8
7: new sun.security.krb5.KrbException
dup
ldc "S4U2proxy request not honored by KDC"
invokespecial sun.security.krb5.KrbException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: sun.security.krb5.Credentials
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 backend Ljava/lang/String;
0 9 1 second Lsun/security/krb5/internal/Ticket;
0 9 2 client Lsun/security/krb5/PrincipalName;
0 9 3 ccreds Lsun/security/krb5/Credentials;
6 9 4 creds Lsun/security/krb5/Credentials;
Exceptions:
throws sun.security.krb5.KrbException, java.io.IOException
MethodParameters:
Name Flags
backend
second
client
ccreds
public static sun.security.krb5.Credentials acquireServiceCreds(java.lang.String, sun.security.krb5.Credentials);
descriptor: (Ljava/lang/String;Lsun/security/krb5/Credentials;)Lsun/security/krb5/Credentials;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: new sun.security.krb5.PrincipalName
dup
aload 0
1: iconst_3
2: invokespecial sun.security.krb5.PrincipalName.<init>:(Ljava/lang/String;I)V
astore 2
start local 2 3: aload 2
aload 1
invokestatic sun.security.krb5.internal.CredentialsUtil.serviceCreds:(Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Credentials;)Lsun/security/krb5/Credentials;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 service Ljava/lang/String;
0 4 1 ccreds Lsun/security/krb5/Credentials;
3 4 2 sname Lsun/security/krb5/PrincipalName;
Exceptions:
throws sun.security.krb5.KrbException, java.io.IOException
MethodParameters:
Name Flags
service
ccreds
private static sun.security.krb5.Credentials getTGTforRealm(java.lang.String, java.lang.String, sun.security.krb5.Credentials, boolean[]);
descriptor: (Ljava/lang/String;Ljava/lang/String;Lsun/security/krb5/Credentials;[Z)Lsun/security/krb5/Credentials;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokestatic sun.security.krb5.Realm.getRealmsList:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: iconst_0
istore 6
start local 6 3: aconst_null
astore 7
start local 7 4: aconst_null
astore 8
start local 8 5: aconst_null
astore 9
start local 9 6: aconst_null
astore 10
start local 10 7: aconst_null
astore 11
start local 11 8: aload 3
iconst_0
iconst_1
bastore
9: aload 2
astore 7
iconst_0
istore 5
goto 69
10: StackMap locals: java.lang.String java.lang.String sun.security.krb5.Credentials boolean[] java.lang.String[] int int sun.security.krb5.Credentials sun.security.krb5.Credentials sun.security.krb5.Credentials sun.security.krb5.PrincipalName java.lang.String
StackMap stack:
aload 1
aload 4
iload 5
aaload
invokestatic sun.security.krb5.PrincipalName.tgsService:(Ljava/lang/String;Ljava/lang/String;)Lsun/security/krb5/PrincipalName;
astore 10
11: getstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
ifeq 17
12: getstatic java.lang.System.out:Ljava/io/PrintStream;
13: new java.lang.StringBuilder
dup
ldc ">>> Credentials acquireServiceCreds: main loop: ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
14: iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] tempService="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
15: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
aload 10
aload 7
invokestatic sun.security.krb5.internal.CredentialsUtil.serviceCreds:(Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Credentials;)Lsun/security/krb5/Credentials;
astore 8
18: goto 21
StackMap locals:
StackMap stack: java.lang.Exception
19: pop
20: aconst_null
astore 8
21: StackMap locals:
StackMap stack:
aload 8
ifnonnull 41
22: getstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
ifeq 24
23: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ">>> Credentials acquireServiceCreds: no tgt; searching thru capath"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
24: StackMap locals:
StackMap stack:
aconst_null
astore 8
iload 5
iconst_1
iadd
istore 6
25: goto 39
26: StackMap locals:
StackMap stack:
aload 4
iload 6
aaload
aload 4
iload 5
aaload
invokestatic sun.security.krb5.PrincipalName.tgsService:(Ljava/lang/String;Ljava/lang/String;)Lsun/security/krb5/PrincipalName;
astore 10
27: getstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
ifeq 34
28: getstatic java.lang.System.out:Ljava/io/PrintStream;
29: new java.lang.StringBuilder
dup
ldc ">>> Credentials acquireServiceCreds: inner loop: ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
30: iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
31: ldc "] tempService="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
32: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
34: StackMap locals:
StackMap stack:
aload 10
aload 7
invokestatic sun.security.krb5.internal.CredentialsUtil.serviceCreds:(Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Credentials;)Lsun/security/krb5/Credentials;
astore 8
35: goto 38
StackMap locals:
StackMap stack: java.lang.Exception
36: pop
37: aconst_null
astore 8
38: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
39: aload 8
ifnonnull 41
iload 6
aload 4
arraylength
40: if_icmplt 26
41: StackMap locals:
StackMap stack:
aload 8
ifnonnull 45
42: getstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
ifeq 70
43: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ">>> Credentials acquireServiceCreds: no tgt; cannot get creds"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
44: goto 70
45: StackMap locals:
StackMap stack:
aload 8
invokevirtual sun.security.krb5.Credentials.getServer:()Lsun/security/krb5/PrincipalName;
invokevirtual sun.security.krb5.PrincipalName.getInstanceComponent:()Ljava/lang/String;
astore 11
46: aload 3
iconst_0
baload
ifeq 52
aload 8
invokevirtual sun.security.krb5.Credentials.checkDelegate:()Z
ifne 52
47: getstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
ifeq 51
48: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc ">>> Credentials acquireServiceCreds: global OK-AS-DELEGATE turned off at "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
49: aload 8
invokevirtual sun.security.krb5.Credentials.getServer:()Lsun/security/krb5/PrincipalName;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
50: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
51: StackMap locals:
StackMap stack:
aload 3
iconst_0
iconst_0
bastore
52: StackMap locals:
StackMap stack:
getstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
ifeq 54
53: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ">>> Credentials acquireServiceCreds: got tgt"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
54: StackMap locals:
StackMap stack:
aload 11
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 57
55: aload 8
astore 9
56: goto 70
57: StackMap locals:
StackMap stack:
iload 5
iconst_1
iadd
istore 6
goto 61
58: StackMap locals:
StackMap stack:
aload 11
aload 4
iload 6
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 60
59: goto 62
60: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
61: iload 6
aload 4
arraylength
if_icmplt 58
62: StackMap locals:
StackMap stack:
iload 6
aload 4
arraylength
if_icmpge 70
63: iload 6
istore 5
64: aload 8
astore 7
65: getstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
ifeq 69
66: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc ">>> Credentials acquireServiceCreds: continuing with main loop counter reset to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
67: iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
68: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
69: StackMap locals:
StackMap stack:
iload 5
aload 4
arraylength
if_icmplt 10
70: StackMap locals:
StackMap stack:
aload 9
areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 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 71 0 localRealm Ljava/lang/String;
0 71 1 serviceRealm Ljava/lang/String;
0 71 2 ccreds Lsun/security/krb5/Credentials;
0 71 3 okAsDelegate [Z
1 71 4 realms [Ljava/lang/String;
2 71 5 i I
3 71 6 k I
4 71 7 cTgt Lsun/security/krb5/Credentials;
5 71 8 newTgt Lsun/security/krb5/Credentials;
6 71 9 theTgt Lsun/security/krb5/Credentials;
7 71 10 tempService Lsun/security/krb5/PrincipalName;
8 71 11 newTgtRealm Ljava/lang/String;
Exception table:
from to target type
17 18 19 Class java.lang.Exception
34 35 36 Class java.lang.Exception
Exceptions:
throws sun.security.krb5.KrbException
MethodParameters:
Name Flags
localRealm
serviceRealm
ccreds
okAsDelegate
private static sun.security.krb5.Credentials serviceCreds(sun.security.krb5.PrincipalName, sun.security.krb5.Credentials);
descriptor: (Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Credentials;)Lsun/security/krb5/Credentials;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: new sun.security.krb5.internal.KDCOptions
dup
invokespecial sun.security.krb5.internal.KDCOptions.<init>:()V
aload 1
1: aload 1
invokevirtual sun.security.krb5.Credentials.getClient:()Lsun/security/krb5/PrincipalName;
aload 0
aconst_null
aconst_null
2: invokestatic sun.security.krb5.internal.CredentialsUtil.serviceCreds:(Lsun/security/krb5/internal/KDCOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;[Lsun/security/krb5/internal/Ticket;[Lsun/security/krb5/internal/PAData;)Lsun/security/krb5/Credentials;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 service Lsun/security/krb5/PrincipalName;
0 3 1 ccreds Lsun/security/krb5/Credentials;
Exceptions:
throws sun.security.krb5.KrbException, java.io.IOException
MethodParameters:
Name Flags
service
ccreds
private static sun.security.krb5.Credentials serviceCreds(sun.security.krb5.internal.KDCOptions, sun.security.krb5.Credentials, sun.security.krb5.PrincipalName, sun.security.krb5.PrincipalName, sun.security.krb5.internal.Ticket[], sun.security.krb5.internal.PAData[]);
descriptor: (Lsun/security/krb5/internal/KDCOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;[Lsun/security/krb5/internal/Ticket;[Lsun/security/krb5/internal/PAData;)Lsun/security/krb5/Credentials;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: getstatic sun.security.krb5.Config.DISABLE_REFERRALS:Z
ifne 6
1: aload 0
aload 1
2: aload 2
aload 3
aload 4
aload 5
3: invokestatic sun.security.krb5.internal.CredentialsUtil.serviceCredsReferrals:(Lsun/security/krb5/internal/KDCOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;[Lsun/security/krb5/internal/Ticket;[Lsun/security/krb5/internal/PAData;)Lsun/security/krb5/Credentials;
4: areturn
5: StackMap locals:
StackMap stack: sun.security.krb5.KrbException
pop
6: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
7: aload 1
invokevirtual sun.security.krb5.Credentials.getClientAlias:()Lsun/security/krb5/PrincipalName;
aload 3
aload 3
aload 4
8: aload 5
9: invokestatic sun.security.krb5.internal.CredentialsUtil.serviceCredsSingle:(Lsun/security/krb5/internal/KDCOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;[Lsun/security/krb5/internal/Ticket;[Lsun/security/krb5/internal/PAData;)Lsun/security/krb5/Credentials;
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 10 0 options Lsun/security/krb5/internal/KDCOptions;
0 10 1 asCreds Lsun/security/krb5/Credentials;
0 10 2 cname Lsun/security/krb5/PrincipalName;
0 10 3 sname Lsun/security/krb5/PrincipalName;
0 10 4 additionalTickets [Lsun/security/krb5/internal/Ticket;
0 10 5 extraPAs [Lsun/security/krb5/internal/PAData;
Exception table:
from to target type
1 4 5 Class sun.security.krb5.KrbException
Exceptions:
throws sun.security.krb5.KrbException, java.io.IOException
MethodParameters:
Name Flags
options
asCreds
cname
sname
additionalTickets
extraPAs
private static sun.security.krb5.Credentials serviceCredsReferrals(sun.security.krb5.internal.KDCOptions, sun.security.krb5.Credentials, sun.security.krb5.PrincipalName, sun.security.krb5.PrincipalName, sun.security.krb5.internal.Ticket[], sun.security.krb5.internal.PAData[]);
descriptor: (Lsun/security/krb5/internal/KDCOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;[Lsun/security/krb5/internal/Ticket;[Lsun/security/krb5/internal/PAData;)Lsun/security/krb5/Credentials;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=16, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new sun.security.krb5.internal.KDCOptions
dup
aload 0
invokevirtual sun.security.krb5.internal.KDCOptions.toBooleanArray:()[Z
invokespecial sun.security.krb5.internal.KDCOptions.<init>:([Z)V
astore 0
1: aload 0
bipush 15
iconst_1
invokevirtual sun.security.krb5.internal.KDCOptions.set:(IZ)V
2: aload 3
astore 6
start local 6 3: aload 3
astore 7
start local 7 4: aconst_null
astore 8
start local 8 5: iconst_0
istore 9
start local 9 6: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 10
start local 10 7: aload 1
invokevirtual sun.security.krb5.Credentials.getClientAlias:()Lsun/security/krb5/PrincipalName;
astore 11
start local 11 8: goto 44
9: StackMap locals: sun.security.krb5.internal.KDCOptions sun.security.krb5.Credentials sun.security.krb5.PrincipalName sun.security.krb5.PrincipalName sun.security.krb5.internal.Ticket[] sun.security.krb5.internal.PAData[] sun.security.krb5.PrincipalName sun.security.krb5.PrincipalName sun.security.krb5.Credentials int java.util.List sun.security.krb5.PrincipalName
StackMap stack:
aload 2
aload 3
aload 7
invokevirtual sun.security.krb5.PrincipalName.getRealmString:()Ljava/lang/String;
invokestatic sun.security.krb5.internal.ReferralsCache.get:(Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Ljava/lang/String;)Lsun/security/krb5/internal/ReferralsCache$ReferralCacheEntry;
10: astore 12
start local 12 11: aconst_null
astore 13
start local 13 12: aload 12
ifnonnull 33
13: aload 0
aload 1
aload 2
14: aload 11
aload 7
aload 6
aload 4
15: aload 5
16: invokestatic sun.security.krb5.internal.CredentialsUtil.serviceCredsSingle:(Lsun/security/krb5/internal/KDCOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;[Lsun/security/krb5/internal/Ticket;[Lsun/security/krb5/internal/PAData;)Lsun/security/krb5/Credentials;
astore 8
17: aload 8
invokevirtual sun.security.krb5.Credentials.getServer:()Lsun/security/krb5/PrincipalName;
astore 14
start local 14 18: aload 7
aload 14
invokevirtual sun.security.krb5.PrincipalName.equals:(Ljava/lang/Object;)Z
ifne 36
19: aload 14
invokevirtual sun.security.krb5.PrincipalName.getNameStrings:()[Ljava/lang/String;
astore 15
start local 15 20: aload 15
arraylength
iconst_2
if_icmpne 36
21: aload 15
iconst_0
aaload
22: ldc "krbtgt"
23: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
24: ifeq 36
25: aload 7
invokevirtual sun.security.krb5.PrincipalName.getRealmAsString:()Ljava/lang/String;
aload 15
iconst_1
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 36
26: aload 2
aload 3
aload 14
invokevirtual sun.security.krb5.PrincipalName.getRealmString:()Ljava/lang/String;
27: aload 15
iconst_1
aaload
aload 8
28: invokestatic sun.security.krb5.internal.ReferralsCache.put:(Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Ljava/lang/String;Ljava/lang/String;Lsun/security/krb5/Credentials;)V
29: aload 15
iconst_1
aaload
astore 13
30: iconst_1
istore 9
31: aload 8
astore 1
end local 15 end local 14 32: goto 36
33: StackMap locals: sun.security.krb5.internal.ReferralsCache$ReferralCacheEntry java.lang.String
StackMap stack:
aload 12
invokevirtual sun.security.krb5.internal.ReferralsCache$ReferralCacheEntry.getToRealm:()Ljava/lang/String;
astore 13
34: aload 12
invokevirtual sun.security.krb5.internal.ReferralsCache$ReferralCacheEntry.getCreds:()Lsun/security/krb5/Credentials;
astore 1
35: iconst_1
istore 9
36: StackMap locals:
StackMap stack:
iload 9
ifeq 45
37: aload 10
aload 13
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 39
38: aconst_null
areturn
39: StackMap locals:
StackMap stack:
new sun.security.krb5.PrincipalName
dup
aload 7
invokevirtual sun.security.krb5.PrincipalName.getNameString:()Ljava/lang/String;
40: aload 7
invokevirtual sun.security.krb5.PrincipalName.getNameType:()I
aload 13
41: invokespecial sun.security.krb5.PrincipalName.<init>:(Ljava/lang/String;ILjava/lang/String;)V
astore 7
42: aload 10
aload 13
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
43: iconst_0
istore 9
end local 13 end local 12 44: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.List.size:()I
getstatic sun.security.krb5.Config.MAX_REFERRALS:I
if_icmple 9
45: StackMap locals:
StackMap stack:
aload 8
areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 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 46 0 options Lsun/security/krb5/internal/KDCOptions;
0 46 1 asCreds Lsun/security/krb5/Credentials;
0 46 2 cname Lsun/security/krb5/PrincipalName;
0 46 3 sname Lsun/security/krb5/PrincipalName;
0 46 4 additionalTickets [Lsun/security/krb5/internal/Ticket;
0 46 5 extraPAs [Lsun/security/krb5/internal/PAData;
3 46 6 cSname Lsun/security/krb5/PrincipalName;
4 46 7 refSname Lsun/security/krb5/PrincipalName;
5 46 8 creds Lsun/security/krb5/Credentials;
6 46 9 isReferral Z
7 46 10 referrals Ljava/util/List<Ljava/lang/String;>;
8 46 11 clientAlias Lsun/security/krb5/PrincipalName;
11 44 12 ref Lsun/security/krb5/internal/ReferralsCache$ReferralCacheEntry;
12 44 13 toRealm Ljava/lang/String;
18 32 14 server Lsun/security/krb5/PrincipalName;
20 32 15 serverNameStrings [Ljava/lang/String;
Exceptions:
throws sun.security.krb5.KrbException, java.io.IOException
MethodParameters:
Name Flags
options
asCreds
cname
sname
additionalTickets
extraPAs
private static sun.security.krb5.Credentials serviceCredsSingle(sun.security.krb5.internal.KDCOptions, sun.security.krb5.Credentials, sun.security.krb5.PrincipalName, sun.security.krb5.PrincipalName, sun.security.krb5.PrincipalName, sun.security.krb5.PrincipalName, sun.security.krb5.internal.Ticket[], sun.security.krb5.internal.PAData[]);
descriptor: (Lsun/security/krb5/internal/KDCOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;[Lsun/security/krb5/internal/Ticket;[Lsun/security/krb5/internal/PAData;)Lsun/security/krb5/Credentials;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=14, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aconst_null
astore 8
start local 8 1: iconst_1
newarray 4
dup
iconst_0
iconst_1
bastore
astore 9
start local 9 2: aload 1
invokevirtual sun.security.krb5.Credentials.getServer:()Lsun/security/krb5/PrincipalName;
invokevirtual sun.security.krb5.PrincipalName.getNameStrings:()[Ljava/lang/String;
astore 10
start local 10 3: aload 10
iconst_1
aaload
astore 11
start local 11 4: aload 4
invokevirtual sun.security.krb5.PrincipalName.getRealmString:()Ljava/lang/String;
astore 12
start local 12 5: aload 12
aload 11
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 25
6: getstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
ifeq 12
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ">>> serviceCredsSingle: cross-realm authentication"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc ">>> serviceCredsSingle: obtaining credentials from "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: ldc " to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
12: StackMap locals: sun.security.krb5.internal.KDCOptions sun.security.krb5.Credentials sun.security.krb5.PrincipalName sun.security.krb5.PrincipalName sun.security.krb5.PrincipalName sun.security.krb5.PrincipalName sun.security.krb5.internal.Ticket[] sun.security.krb5.internal.PAData[] sun.security.krb5.Credentials boolean[] java.lang.String[] java.lang.String java.lang.String
StackMap stack:
aload 11
aload 12
13: aload 1
aload 9
14: invokestatic sun.security.krb5.internal.CredentialsUtil.getTGTforRealm:(Ljava/lang/String;Ljava/lang/String;Lsun/security/krb5/Credentials;[Z)Lsun/security/krb5/Credentials;
astore 13
start local 13 15: aload 13
ifnonnull 19
16: new sun.security.krb5.internal.KrbApErrException
dup
bipush 63
17: ldc "No service creds"
18: invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(ILjava/lang/String;)V
athrow
19: StackMap locals: sun.security.krb5.Credentials
StackMap stack:
getstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
ifeq 22
20: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ">>> Cross-realm TGT Credentials serviceCredsSingle: "
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: aload 13
invokestatic sun.security.krb5.Credentials.printDebug:(Lsun/security/krb5/Credentials;)V
22: StackMap locals:
StackMap stack:
aload 13
astore 1
23: aload 1
invokevirtual sun.security.krb5.Credentials.getClient:()Lsun/security/krb5/PrincipalName;
astore 2
end local 13 24: goto 27
StackMap locals:
StackMap stack:
25: getstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
ifeq 27
26: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ">>> Credentials serviceCredsSingle: same realm"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
27: StackMap locals:
StackMap stack:
new sun.security.krb5.KrbTgsReq
dup
aload 0
aload 1
aload 2
aload 3
28: aload 4
aload 5
aload 6
aload 7
29: invokespecial sun.security.krb5.KrbTgsReq.<init>:(Lsun/security/krb5/internal/KDCOptions;Lsun/security/krb5/Credentials;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;[Lsun/security/krb5/internal/Ticket;[Lsun/security/krb5/internal/PAData;)V
astore 13
start local 13 30: aload 13
invokevirtual sun.security.krb5.KrbTgsReq.sendAndGetCreds:()Lsun/security/krb5/Credentials;
astore 8
31: aload 8
ifnull 37
32: getstatic sun.security.krb5.internal.CredentialsUtil.DEBUG:Z
ifeq 35
33: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ">>> TGS credentials serviceCredsSingle:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
34: aload 8
invokestatic sun.security.krb5.Credentials.printDebug:(Lsun/security/krb5/Credentials;)V
35: StackMap locals: sun.security.krb5.KrbTgsReq
StackMap stack:
aload 9
iconst_0
baload
ifne 37
36: aload 8
invokevirtual sun.security.krb5.Credentials.resetDelegate:()V
37: StackMap locals:
StackMap stack:
aload 8
areturn
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 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 38 0 options Lsun/security/krb5/internal/KDCOptions;
0 38 1 asCreds Lsun/security/krb5/Credentials;
0 38 2 cname Lsun/security/krb5/PrincipalName;
0 38 3 clientAlias Lsun/security/krb5/PrincipalName;
0 38 4 refSname Lsun/security/krb5/PrincipalName;
0 38 5 sname Lsun/security/krb5/PrincipalName;
0 38 6 additionalTickets [Lsun/security/krb5/internal/Ticket;
0 38 7 extraPAs [Lsun/security/krb5/internal/PAData;
1 38 8 theCreds Lsun/security/krb5/Credentials;
2 38 9 okAsDelegate [Z
3 38 10 serverAsCredsNames [Ljava/lang/String;
4 38 11 tgtRealm Ljava/lang/String;
5 38 12 serviceRealm Ljava/lang/String;
15 24 13 newTgt Lsun/security/krb5/Credentials;
30 38 13 req Lsun/security/krb5/KrbTgsReq;
Exceptions:
throws sun.security.krb5.KrbException, java.io.IOException
MethodParameters:
Name Flags
options
asCreds
cname
clientAlias
refSname
sname
additionalTickets
extraPAs
}
SourceFile: "CredentialsUtil.java"
InnerClasses:
final ReferralCacheEntry = sun.security.krb5.internal.ReferralsCache$ReferralCacheEntry of sun.security.krb5.internal.ReferralsCache