public class com.sun.security.auth.module.KeyStoreLoginModule implements javax.security.auth.spi.LoginModule
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.security.auth.module.KeyStoreLoginModule
super_class: java.lang.Object
{
private static final int UNINITIALIZED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int INITIALIZED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int AUTHENTICATED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int LOGGED_IN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int PROTECTED_PATH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int TOKEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int NORMAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final java.lang.String NONE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "NONE"
private static final java.lang.String P11KEYSTORE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "PKCS11"
private static final javax.security.auth.callback.TextOutputCallback bannerCallback;
descriptor: Ljavax/security/auth/callback/TextOutputCallback;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final javax.security.auth.callback.ConfirmationCallback confirmationCallback;
descriptor: Ljavax/security/auth/callback/ConfirmationCallback;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private javax.security.auth.Subject subject;
descriptor: Ljavax/security/auth/Subject;
flags: (0x0002) ACC_PRIVATE
private javax.security.auth.callback.CallbackHandler callbackHandler;
descriptor: Ljavax/security/auth/callback/CallbackHandler;
flags: (0x0002) ACC_PRIVATE
private java.util.Map<java.lang.String, java.lang.Object> sharedState;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
private java.util.Map<java.lang.String, ?> options;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;*>;
private char[] keyStorePassword;
descriptor: [C
flags: (0x0002) ACC_PRIVATE
private char[] privateKeyPassword;
descriptor: [C
flags: (0x0002) ACC_PRIVATE
private java.security.KeyStore keyStore;
descriptor: Ljava/security/KeyStore;
flags: (0x0002) ACC_PRIVATE
private java.lang.String keyStoreURL;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String keyStoreType;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String keyStoreProvider;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String keyStoreAlias;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String keyStorePasswordURL;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String privateKeyPasswordURL;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean debug;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private javax.security.auth.x500.X500Principal principal;
descriptor: Ljavax/security/auth/x500/X500Principal;
flags: (0x0002) ACC_PRIVATE
private java.security.cert.Certificate[] fromKeyStore;
descriptor: [Ljava/security/cert/Certificate;
flags: (0x0002) ACC_PRIVATE
private java.security.cert.CertPath certP;
descriptor: Ljava/security/cert/CertPath;
flags: (0x0002) ACC_PRIVATE
private javax.security.auth.x500.X500PrivateCredential privateCredential;
descriptor: Ljavax/security/auth/x500/X500PrivateCredential;
flags: (0x0002) ACC_PRIVATE
private int status;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean nullStream;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean token;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean protectedPath;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new javax.security.auth.callback.TextOutputCallback
dup
1: iconst_0
2: ldc "Please.enter.keystore.information"
invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
3: invokespecial javax.security.auth.callback.TextOutputCallback.<init>:(ILjava/lang/String;)V
4: putstatic com.sun.security.auth.module.KeyStoreLoginModule.bannerCallback:Ljavax/security/auth/callback/TextOutputCallback;
5: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new javax.security.auth.callback.ConfirmationCallback
dup
3: iconst_0
4: iconst_2
5: iconst_3
6: invokespecial javax.security.auth.callback.ConfirmationCallback.<init>:(III)V
putfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
7: aload 0
aconst_null
putfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
8: aload 0
iconst_0
putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
9: aload 0
iconst_0
putfield com.sun.security.auth.module.KeyStoreLoginModule.nullStream:Z
10: aload 0
iconst_0
putfield com.sun.security.auth.module.KeyStoreLoginModule.token:Z
11: aload 0
iconst_0
putfield com.sun.security.auth.module.KeyStoreLoginModule.protectedPath:Z
12: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
public void initialize(javax.security.auth.Subject, javax.security.auth.callback.CallbackHandler, java.util.Map<java.lang.String, ?>, java.util.Map<java.lang.String, ?>);
descriptor: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map;Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
1: aload 0
aload 2
putfield com.sun.security.auth.module.KeyStoreLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
2: aload 0
aload 3
putfield com.sun.security.auth.module.KeyStoreLoginModule.sharedState:Ljava/util/Map;
3: aload 0
aload 4
putfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
4: aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.processOptions:()V
5: aload 0
iconst_1
putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
0 7 1 subject Ljavax/security/auth/Subject;
0 7 2 callbackHandler Ljavax/security/auth/callback/CallbackHandler;
0 7 3 sharedState Ljava/util/Map<Ljava/lang/String;*>;
0 7 4 options Ljava/util/Map<Ljava/lang/String;*>;
Signature: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map<Ljava/lang/String;*>;Ljava/util/Map<Ljava/lang/String;*>;)V
MethodParameters:
Name Flags
subject
callbackHandler
sharedState
options
private void processOptions();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
ldc "keyStoreURL"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
1: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
ifnonnull 11
2: aload 0
3: new java.lang.StringBuilder
dup
ldc "file:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: ldc "user.home"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
5: getstatic java.io.File.separatorChar:C
bipush 47
6: invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc ".keystore"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
10: goto 13
StackMap locals:
StackMap stack:
11: ldc "NONE"
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
12: aload 0
iconst_1
putfield com.sun.security.auth.module.KeyStoreLoginModule.nullStream:Z
13: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
ldc "keyStoreType"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
14: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
ifnonnull 16
15: aload 0
invokestatic java.security.KeyStore.getDefaultType:()Ljava/lang/String;
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
16: StackMap locals:
StackMap stack:
ldc "PKCS11"
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 18
17: aload 0
iconst_1
putfield com.sun.security.auth.module.KeyStoreLoginModule.token:Z
18: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
ldc "keyStoreProvider"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreProvider:Ljava/lang/String;
19: aload 0
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
ldc "keyStoreAlias"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
20: aload 0
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
ldc "keyStorePasswordURL"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
21: aload 0
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
ldc "privateKeyPasswordURL"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
22: aload 0
ldc "true"
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
23: ldc "protected"
24: invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
putfield com.sun.security.auth.module.KeyStoreLoginModule.protectedPath:Z
25: aload 0
ldc "true"
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
ldc "debug"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
putfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
26: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
ifeq 36
27: aload 0
aconst_null
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
28: aload 0
new java.lang.StringBuilder
dup
ldc "keyStoreURL="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
29: aload 0
new java.lang.StringBuilder
dup
ldc "keyStoreType="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
30: aload 0
new java.lang.StringBuilder
dup
ldc "keyStoreProvider="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreProvider:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
31: aload 0
new java.lang.StringBuilder
dup
ldc "keyStoreAlias="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
32: aload 0
new java.lang.StringBuilder
dup
ldc "keyStorePasswordURL="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
33: aload 0
new java.lang.StringBuilder
dup
ldc "privateKeyPasswordURL="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
34: aload 0
new java.lang.StringBuilder
dup
ldc "protectedPath="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.protectedPath:Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
35: aload 0
aconst_null
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
36: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
public boolean login();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
tableswitch { // 0 - 3
0: 1
1: 2
2: 2
3: 43
default: 1
}
1: StackMap locals:
StackMap stack:
new javax.security.auth.login.LoginException
dup
ldc "The login module is not initialized"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.token:Z
ifeq 6
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.nullStream:Z
ifne 6
3: new javax.security.auth.login.LoginException
dup
4: ldc "if keyStoreType is PKCS11 then keyStoreURL must be NONE"
5: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.token:Z
ifeq 10
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
ifnull 10
7: new javax.security.auth.login.LoginException
dup
8: ldc "if keyStoreType is PKCS11 then privateKeyPasswordURL must not be specified"
9: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.protectedPath:Z
ifeq 16
11: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
ifnonnull 13
12: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
ifnull 16
13: StackMap locals:
StackMap stack:
new javax.security.auth.login.LoginException
dup
14: ldc "if protected is true then keyStorePasswordURL and privateKeyPasswordURL must not be specified"
15: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.protectedPath:Z
ifeq 19
17: aload 0
iconst_0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.getAliasAndPasswords:(I)V
18: goto 23
StackMap locals:
StackMap stack:
19: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.token:Z
ifeq 22
20: aload 0
iconst_1
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.getAliasAndPasswords:(I)V
21: goto 23
22: StackMap locals:
StackMap stack:
aload 0
iconst_2
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.getAliasAndPasswords:(I)V
23: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.getKeyStoreInfo:()V
24: goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
25: astore 1
26: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
ifnull 30
27: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
if_acmpeq 30
28: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
iconst_0
invokestatic java.util.Arrays.fill:([CC)V
29: aload 0
aconst_null
putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
30: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
ifnull 33
31: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
iconst_0
invokestatic java.util.Arrays.fill:([CC)V
32: aload 0
aconst_null
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
33: StackMap locals:
StackMap stack:
aload 1
athrow
34: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
ifnull 38
35: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
if_acmpeq 38
36: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
iconst_0
invokestatic java.util.Arrays.fill:([CC)V
37: aload 0
aconst_null
putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
38: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
ifnull 41
39: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
iconst_0
invokestatic java.util.Arrays.fill:([CC)V
40: aload 0
aconst_null
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
41: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
42: iconst_1
ireturn
43: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
Exception table:
from to target type
23 25 25 any
Exceptions:
throws javax.security.auth.login.LoginException
private void getAliasAndPasswords(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
ifnonnull 11
1: iload 1
tableswitch { // 0 - 2
0: 2
1: 4
2: 7
default: 10
}
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkAlias:()V
3: goto 29
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkAlias:()V
5: aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkStorePass:()V
6: goto 29
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkAlias:()V
8: aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkStorePass:()V
9: aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkKeyPass:()V
10: StackMap locals:
StackMap stack:
goto 29
11: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
ifnull 12
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
ifne 14
12: StackMap locals:
StackMap stack:
new javax.security.auth.callback.NameCallback
dup
ldc "Keystore.alias."
invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial javax.security.auth.callback.NameCallback.<init>:(Ljava/lang/String;)V
astore 2
start local 2 13: goto 18
end local 2 14: StackMap locals:
StackMap stack:
new javax.security.auth.callback.NameCallback
dup
ldc "Keystore.alias."
invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
15: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
16: invokespecial javax.security.auth.callback.NameCallback.<init>:(Ljava/lang/String;Ljava/lang/String;)V
17: astore 2
start local 2 18: StackMap locals: javax.security.auth.callback.NameCallback
StackMap stack:
aconst_null
astore 3
start local 3 19: aconst_null
astore 4
start local 4 20: iload 1
tableswitch { // 0 - 2
0: 21
1: 25
2: 22
default: 28
}
21: StackMap locals: javax.security.auth.callback.PasswordCallback javax.security.auth.callback.PasswordCallback
StackMap stack:
goto 28
22: StackMap locals:
StackMap stack:
new javax.security.auth.callback.PasswordCallback
dup
23: ldc "Private.key.password.optional."
invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
iconst_0
24: invokespecial javax.security.auth.callback.PasswordCallback.<init>:(Ljava/lang/String;Z)V
astore 4
25: StackMap locals:
StackMap stack:
new javax.security.auth.callback.PasswordCallback
dup
26: ldc "Keystore.password."
invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
iconst_0
27: invokespecial javax.security.auth.callback.PasswordCallback.<init>:(Ljava/lang/String;Z)V
astore 3
28: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
aload 4
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.prompt:(Ljavax/security/auth/callback/NameCallback;Ljavax/security/auth/callback/PasswordCallback;Ljavax/security/auth/callback/PasswordCallback;)V
end local 4 end local 3 end local 2 29: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
ifeq 31
30: aload 0
new java.lang.StringBuilder
dup
ldc "alias="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
31: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
0 32 1 env I
13 14 2 aliasCallback Ljavax/security/auth/callback/NameCallback;
18 29 2 aliasCallback Ljavax/security/auth/callback/NameCallback;
19 29 3 storePassCallback Ljavax/security/auth/callback/PasswordCallback;
20 29 4 keyPassCallback Ljavax/security/auth/callback/PasswordCallback;
Exceptions:
throws javax.security.auth.login.LoginException
MethodParameters:
Name Flags
env
private void checkAlias();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
ifnonnull 4
1: new javax.security.auth.login.LoginException
dup
2: ldc "Need to specify an alias option to use KeyStoreLoginModule non-interactively."
3: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
private void checkStorePass();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
ifnonnull 4
1: new javax.security.auth.login.LoginException
dup
2: ldc "Need to specify keyStorePasswordURL option to use KeyStoreLoginModule non-interactively."
3: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 5: new java.net.URL
dup
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
astore 1
6: aload 0
aload 1
invokestatic sun.security.util.Password.readPassword:(Ljava/io/InputStream;)[C
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
7: goto 27
StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
StackMap stack: java.io.IOException
8: astore 2
start local 2 9: new javax.security.auth.login.LoginException
dup
10: new java.lang.StringBuilder
dup
ldc "Problem accessing keystore password \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
11: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 14: aload 3
aload 2
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
15: aload 3
athrow
end local 3 end local 2 16: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
17: aload 1
ifnull 26
18: aload 1
invokevirtual java.io.InputStream.close:()V
19: goto 26
StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream top top java.lang.Throwable
StackMap stack: java.io.IOException
20: astore 5
start local 5 21: new javax.security.auth.login.LoginException
dup
22: ldc "Problem closing the keystore password stream"
23: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 6
start local 6 24: aload 6
aload 5
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
25: aload 6
athrow
end local 6 end local 5 26: StackMap locals:
StackMap stack:
aload 4
athrow
27: StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
StackMap stack:
aload 1
ifnull 36
28: aload 1
invokevirtual java.io.InputStream.close:()V
29: goto 36
StackMap locals:
StackMap stack: java.io.IOException
30: astore 5
start local 5 31: new javax.security.auth.login.LoginException
dup
32: ldc "Problem closing the keystore password stream"
33: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 6
start local 6 34: aload 6
aload 5
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
35: aload 6
athrow
end local 6 end local 5 36: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
5 37 1 in Ljava/io/InputStream;
9 16 2 e Ljava/io/IOException;
14 16 3 le Ljavax/security/auth/login/LoginException;
21 26 5 ioe Ljava/io/IOException;
31 36 5 ioe Ljava/io/IOException;
24 26 6 le Ljavax/security/auth/login/LoginException;
34 36 6 le Ljavax/security/auth/login/LoginException;
Exception table:
from to target type
5 7 8 Class java.io.IOException
5 16 16 any
18 19 20 Class java.io.IOException
28 29 30 Class java.io.IOException
Exceptions:
throws javax.security.auth.login.LoginException
private void checkKeyPass();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
ifnonnull 3
1: aload 0
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
2: goto 35
3: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 4: new java.net.URL
dup
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
astore 1
5: aload 0
aload 1
invokestatic sun.security.util.Password.readPassword:(Ljava/io/InputStream;)[C
putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
6: goto 26
StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
StackMap stack: java.io.IOException
7: astore 2
start local 2 8: new javax.security.auth.login.LoginException
dup
9: new java.lang.StringBuilder
dup
ldc "Problem accessing private key password \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 13: aload 3
aload 2
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
14: aload 3
athrow
end local 3 end local 2 15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
16: aload 1
ifnull 25
17: aload 1
invokevirtual java.io.InputStream.close:()V
18: goto 25
StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream top top java.lang.Throwable
StackMap stack: java.io.IOException
19: astore 5
start local 5 20: new javax.security.auth.login.LoginException
dup
21: ldc "Problem closing the private key password stream"
22: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 6
start local 6 23: aload 6
aload 5
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
24: aload 6
athrow
end local 6 end local 5 25: StackMap locals:
StackMap stack:
aload 4
athrow
26: StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
StackMap stack:
aload 1
ifnull 35
27: aload 1
invokevirtual java.io.InputStream.close:()V
28: goto 35
StackMap locals:
StackMap stack: java.io.IOException
29: astore 5
start local 5 30: new javax.security.auth.login.LoginException
dup
31: ldc "Problem closing the private key password stream"
32: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 6
start local 6 33: aload 6
aload 5
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
34: aload 6
athrow
end local 6 end local 5 end local 1 35: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
4 35 1 in Ljava/io/InputStream;
8 15 2 e Ljava/io/IOException;
13 15 3 le Ljavax/security/auth/login/LoginException;
20 25 5 ioe Ljava/io/IOException;
30 35 5 ioe Ljava/io/IOException;
23 25 6 le Ljavax/security/auth/login/LoginException;
33 35 6 le Ljavax/security/auth/login/LoginException;
Exception table:
from to target type
4 6 7 Class java.io.IOException
4 15 15 any
17 18 19 Class java.io.IOException
27 28 29 Class java.io.IOException
Exceptions:
throws javax.security.auth.login.LoginException
private void prompt(javax.security.auth.callback.NameCallback, javax.security.auth.callback.PasswordCallback, javax.security.auth.callback.PasswordCallback);
descriptor: (Ljavax/security/auth/callback/NameCallback;Ljavax/security/auth/callback/PasswordCallback;Ljavax/security/auth/callback/PasswordCallback;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ifnonnull 24
1: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
2: iconst_3
anewarray javax.security.auth.callback.Callback
dup
iconst_0
3: getstatic com.sun.security.auth.module.KeyStoreLoginModule.bannerCallback:Ljavax/security/auth/callback/TextOutputCallback;
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
aastore
4: invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
5: goto 19
StackMap locals:
StackMap stack: java.io.IOException
6: astore 4
start local 4 7: new javax.security.auth.login.LoginException
dup
8: ldc "Problem retrieving keystore alias"
9: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 5
start local 5 10: aload 5
aload 4
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
11: aload 5
athrow
end local 5 end local 4 12: StackMap locals:
StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
astore 4
start local 4 13: new javax.security.auth.login.LoginException
dup
14: new java.lang.StringBuilder
dup
ldc "Error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual javax.security.auth.callback.UnsupportedCallbackException.getCallback:()Ljavax/security/auth/callback/Callback;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: ldc " is not available to retrieve authentication "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: ldc " information from the user"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
end local 4 19: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
invokevirtual javax.security.auth.callback.ConfirmationCallback.getSelectedIndex:()I
istore 4
start local 4 20: iload 4
iconst_2
if_icmpne 22
21: new javax.security.auth.login.LoginException
dup
ldc "Login cancelled"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveAlias:(Ljavax/security/auth/callback/NameCallback;)V
end local 4 23: goto 76
StackMap locals:
StackMap stack:
24: aload 3
ifnonnull 50
25: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
26: iconst_4
anewarray javax.security.auth.callback.Callback
dup
iconst_0
27: getstatic com.sun.security.auth.module.KeyStoreLoginModule.bannerCallback:Ljavax/security/auth/callback/TextOutputCallback;
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
28: aload 2
aastore
dup
iconst_3
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
aastore
29: invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
30: goto 44
StackMap locals:
StackMap stack: java.io.IOException
31: astore 4
start local 4 32: new javax.security.auth.login.LoginException
dup
33: ldc "Problem retrieving keystore alias and password"
34: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 5
start local 5 35: aload 5
aload 4
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
36: aload 5
athrow
end local 5 end local 4 37: StackMap locals:
StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
astore 4
start local 4 38: new javax.security.auth.login.LoginException
dup
39: new java.lang.StringBuilder
dup
ldc "Error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual javax.security.auth.callback.UnsupportedCallbackException.getCallback:()Ljavax/security/auth/callback/Callback;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
40: ldc " is not available to retrieve authentication "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
41: ldc " information from the user"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
42: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
43: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
end local 4 44: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
invokevirtual javax.security.auth.callback.ConfirmationCallback.getSelectedIndex:()I
istore 4
start local 4 45: iload 4
iconst_2
if_icmpne 47
46: new javax.security.auth.login.LoginException
dup
ldc "Login cancelled"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
47: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveAlias:(Ljavax/security/auth/callback/NameCallback;)V
48: aload 0
aload 2
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveStorePass:(Ljavax/security/auth/callback/PasswordCallback;)V
end local 4 49: goto 76
50: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
51: iconst_5
anewarray javax.security.auth.callback.Callback
dup
iconst_0
52: getstatic com.sun.security.auth.module.KeyStoreLoginModule.bannerCallback:Ljavax/security/auth/callback/TextOutputCallback;
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
53: aload 2
aastore
dup
iconst_3
aload 3
aastore
dup
iconst_4
54: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
aastore
55: invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
56: goto 70
StackMap locals:
StackMap stack: java.io.IOException
57: astore 4
start local 4 58: new javax.security.auth.login.LoginException
dup
59: ldc "Problem retrieving keystore alias and passwords"
60: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 5
start local 5 61: aload 5
aload 4
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
62: aload 5
athrow
end local 5 end local 4 63: StackMap locals:
StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
astore 4
start local 4 64: new javax.security.auth.login.LoginException
dup
65: new java.lang.StringBuilder
dup
ldc "Error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual javax.security.auth.callback.UnsupportedCallbackException.getCallback:()Ljavax/security/auth/callback/Callback;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
66: ldc " is not available to retrieve authentication "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
67: ldc " information from the user"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
68: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
69: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
end local 4 70: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
invokevirtual javax.security.auth.callback.ConfirmationCallback.getSelectedIndex:()I
istore 4
start local 4 71: iload 4
iconst_2
if_icmpne 73
72: new javax.security.auth.login.LoginException
dup
ldc "Login cancelled"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
73: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveAlias:(Ljavax/security/auth/callback/NameCallback;)V
74: aload 0
aload 2
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveStorePass:(Ljavax/security/auth/callback/PasswordCallback;)V
75: aload 0
aload 3
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveKeyPass:(Ljavax/security/auth/callback/PasswordCallback;)V
end local 4 76: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 77 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
0 77 1 aliasCallback Ljavax/security/auth/callback/NameCallback;
0 77 2 storePassCallback Ljavax/security/auth/callback/PasswordCallback;
0 77 3 keyPassCallback Ljavax/security/auth/callback/PasswordCallback;
7 12 4 e Ljava/io/IOException;
10 12 5 le Ljavax/security/auth/login/LoginException;
13 19 4 e Ljavax/security/auth/callback/UnsupportedCallbackException;
20 23 4 confirmationResult I
32 37 4 e Ljava/io/IOException;
35 37 5 le Ljavax/security/auth/login/LoginException;
38 44 4 e Ljavax/security/auth/callback/UnsupportedCallbackException;
45 49 4 confirmationResult I
58 63 4 e Ljava/io/IOException;
61 63 5 le Ljavax/security/auth/login/LoginException;
64 70 4 e Ljavax/security/auth/callback/UnsupportedCallbackException;
71 76 4 confirmationResult I
Exception table:
from to target type
1 5 6 Class java.io.IOException
1 5 12 Class javax.security.auth.callback.UnsupportedCallbackException
25 30 31 Class java.io.IOException
25 30 37 Class javax.security.auth.callback.UnsupportedCallbackException
50 56 57 Class java.io.IOException
50 56 63 Class javax.security.auth.callback.UnsupportedCallbackException
Exceptions:
throws javax.security.auth.login.LoginException
MethodParameters:
Name Flags
aliasCallback
storePassCallback
keyPassCallback
private void saveAlias(javax.security.auth.callback.NameCallback);
descriptor: (Ljavax/security/auth/callback/NameCallback;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual javax.security.auth.callback.NameCallback.getName:()Ljava/lang/String;
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
0 2 1 cb Ljavax/security/auth/callback/NameCallback;
MethodParameters:
Name Flags
cb
private void saveStorePass(javax.security.auth.callback.PasswordCallback);
descriptor: (Ljavax/security/auth/callback/PasswordCallback;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual javax.security.auth.callback.PasswordCallback.getPassword:()[C
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
1: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
ifnonnull 3
2: aload 0
iconst_0
newarray 5
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual javax.security.auth.callback.PasswordCallback.clearPassword:()V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
0 5 1 c Ljavax/security/auth/callback/PasswordCallback;
MethodParameters:
Name Flags
c
private void saveKeyPass(javax.security.auth.callback.PasswordCallback);
descriptor: (Ljavax/security/auth/callback/PasswordCallback;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual javax.security.auth.callback.PasswordCallback.getPassword:()[C
putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
1: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
ifnull 2
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
arraylength
ifne 3
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual javax.security.auth.callback.PasswordCallback.clearPassword:()V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
0 5 1 c Ljavax/security/auth/callback/PasswordCallback;
MethodParameters:
Name Flags
c
private void getKeyStoreInfo();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreProvider:Ljava/lang/String;
ifnonnull 3
1: aload 0
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
2: goto 19
3: StackMap locals:
StackMap stack:
aload 0
4: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreProvider:Ljava/lang/String;
invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
5: putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
6: goto 19
StackMap locals:
StackMap stack: java.security.KeyStoreException
7: astore 1
start local 1 8: new javax.security.auth.login.LoginException
dup
9: ldc "The specified keystore type was not available"
10: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 2
start local 2 11: aload 2
aload 1
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
12: aload 2
athrow
end local 2 end local 1 13: StackMap locals:
StackMap stack: java.security.NoSuchProviderException
astore 1
start local 1 14: new javax.security.auth.login.LoginException
dup
15: ldc "The specified keystore provider was not available"
16: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 2
start local 2 17: aload 2
aload 1
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
18: aload 2
athrow
end local 2 end local 1 19: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 20: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.nullStream:Z
ifeq 23
21: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
aconst_null
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
22: goto 55
23: StackMap locals: java.io.InputStream
StackMap stack:
new java.net.URL
dup
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
astore 1
24: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
aload 1
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
25: goto 55
StackMap locals:
StackMap stack: java.net.MalformedURLException
26: astore 2
start local 2 27: new javax.security.auth.login.LoginException
dup
28: ldc "Incorrect keyStoreURL option"
29: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 30: aload 3
aload 2
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
31: aload 3
athrow
end local 3 end local 2 32: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 2
start local 2 33: new javax.security.auth.login.LoginException
dup
34: ldc "Error initializing keystore"
35: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 36: aload 3
aload 2
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
37: aload 3
athrow
end local 3 end local 2 38: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 39: new javax.security.auth.login.LoginException
dup
40: ldc "Error initializing keystore"
41: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 42: aload 3
aload 2
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
43: aload 3
athrow
end local 3 end local 2 44: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
45: aload 1
ifnull 54
46: aload 1
invokevirtual java.io.InputStream.close:()V
47: goto 54
StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream top top java.lang.Throwable
StackMap stack: java.io.IOException
48: astore 5
start local 5 49: new javax.security.auth.login.LoginException
dup
50: ldc "Error initializing keystore"
51: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 6
start local 6 52: aload 6
aload 5
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
53: aload 6
athrow
end local 6 end local 5 54: StackMap locals:
StackMap stack:
aload 4
athrow
55: StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
StackMap stack:
aload 1
ifnull 64
56: aload 1
invokevirtual java.io.InputStream.close:()V
57: goto 64
StackMap locals:
StackMap stack: java.io.IOException
58: astore 5
start local 5 59: new javax.security.auth.login.LoginException
dup
60: ldc "Error initializing keystore"
61: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 6
start local 6 62: aload 6
aload 5
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
63: aload 6
athrow
end local 6 end local 5 64: StackMap locals:
StackMap stack:
aload 0
65: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
invokevirtual java.security.KeyStore.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/Certificate;
66: putfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
67: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
ifnull 70
68: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
arraylength
ifeq 70
69: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
iconst_0
aaload
instanceof java.security.cert.X509Certificate
ifne 73
70: StackMap locals:
StackMap stack:
new javax.security.auth.login.FailedLoginException
dup
71: ldc "Unable to find X.509 certificate chain in keystore"
72: invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
athrow
73: StackMap locals:
StackMap stack:
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 2
start local 2 74: iconst_0
istore 3
start local 3 75: goto 78
76: StackMap locals: java.util.LinkedList int
StackMap stack:
aload 2
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
iload 3
aaload
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
77: iinc 3 1
StackMap locals:
StackMap stack:
78: iload 3
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
arraylength
if_icmplt 76
end local 3 79: ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
80: astore 3
start local 3 81: aload 0
82: aload 3
aload 2
invokevirtual java.security.cert.CertificateFactory.generateCertPath:(Ljava/util/List;)Ljava/security/cert/CertPath;
83: putfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
end local 3 end local 2 84: goto 95
StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
StackMap stack: java.security.KeyStoreException
85: astore 2
start local 2 86: new javax.security.auth.login.LoginException
dup
ldc "Error using keystore"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 87: aload 3
aload 2
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
88: aload 3
athrow
end local 3 end local 2 89: StackMap locals:
StackMap stack: java.security.cert.CertificateException
astore 2
start local 2 90: new javax.security.auth.login.LoginException
dup
91: ldc "Error: X.509 Certificate type unavailable"
92: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 93: aload 3
aload 2
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
94: aload 3
athrow
end local 3 end local 2 95: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
iconst_0
aaload
checkcast java.security.cert.X509Certificate
astore 2
start local 2 96: aload 0
new javax.security.auth.x500.X500Principal
dup
97: aload 2
invokevirtual java.security.cert.X509Certificate.getSubjectDN:()Ljava/security/Principal;
invokeinterface java.security.Principal.getName:()Ljava/lang/String;
invokespecial javax.security.auth.x500.X500Principal.<init>:(Ljava/lang/String;)V
98: putfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
99: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
invokevirtual java.security.KeyStore.getKey:(Ljava/lang/String;[C)Ljava/security/Key;
astore 3
start local 3 100: aload 3
ifnull 102
101: aload 3
instanceof java.security.PrivateKey
ifne 105
102: StackMap locals: java.security.cert.X509Certificate java.security.Key
StackMap stack:
new javax.security.auth.login.FailedLoginException
dup
103: ldc "Unable to recover key from keystore"
104: invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
athrow
105: StackMap locals:
StackMap stack:
aload 0
new javax.security.auth.x500.X500PrivateCredential
dup
106: aload 2
aload 3
checkcast java.security.PrivateKey
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
invokespecial javax.security.auth.x500.X500PrivateCredential.<init>:(Ljava/security/cert/X509Certificate;Ljava/security/PrivateKey;Ljava/lang/String;)V
107: putfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
end local 3 end local 2 108: goto 123
StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
StackMap stack: java.security.KeyStoreException
109: astore 2
start local 2 110: new javax.security.auth.login.LoginException
dup
ldc "Error using keystore"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 111: aload 3
aload 2
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
112: aload 3
athrow
end local 3 end local 2 113: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 2
start local 2 114: new javax.security.auth.login.LoginException
dup
ldc "Error using keystore"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 115: aload 3
aload 2
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
116: aload 3
athrow
end local 3 end local 2 117: StackMap locals:
StackMap stack: java.security.UnrecoverableKeyException
astore 2
start local 2 118: new javax.security.auth.login.FailedLoginException
dup
119: ldc "Unable to recover key from keystore"
120: invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 121: aload 3
aload 2
invokevirtual javax.security.auth.login.FailedLoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
122: aload 3
athrow
end local 3 end local 2 123: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
ifeq 129
124: aload 0
new java.lang.StringBuilder
dup
ldc "principal="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
125: ldc "\n certificate="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
126: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
invokevirtual javax.security.auth.x500.X500PrivateCredential.getCertificate:()Ljava/security/cert/X509Certificate;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
127: ldc "\n alias ="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
invokevirtual javax.security.auth.x500.X500PrivateCredential.getAlias:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
128: invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
129: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 130 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
8 13 1 e Ljava/security/KeyStoreException;
11 13 2 le Ljavax/security/auth/login/LoginException;
14 19 1 e Ljava/security/NoSuchProviderException;
17 19 2 le Ljavax/security/auth/login/LoginException;
20 130 1 in Ljava/io/InputStream;
27 32 2 e Ljava/net/MalformedURLException;
30 32 3 le Ljavax/security/auth/login/LoginException;
33 38 2 e Ljava/security/GeneralSecurityException;
36 38 3 le Ljavax/security/auth/login/LoginException;
39 44 2 e Ljava/io/IOException;
42 44 3 le Ljavax/security/auth/login/LoginException;
49 54 5 ioe Ljava/io/IOException;
59 64 5 ioe Ljava/io/IOException;
52 54 6 le Ljavax/security/auth/login/LoginException;
62 64 6 le Ljavax/security/auth/login/LoginException;
74 84 2 certList Ljava/util/LinkedList<Ljava/security/cert/Certificate;>;
75 79 3 i I
81 84 3 certF Ljava/security/cert/CertificateFactory;
86 89 2 e Ljava/security/KeyStoreException;
87 89 3 le Ljavax/security/auth/login/LoginException;
90 95 2 ce Ljava/security/cert/CertificateException;
93 95 3 le Ljavax/security/auth/login/LoginException;
96 108 2 certificate Ljava/security/cert/X509Certificate;
100 108 3 privateKey Ljava/security/Key;
110 113 2 e Ljava/security/KeyStoreException;
111 113 3 le Ljavax/security/auth/login/LoginException;
114 117 2 e Ljava/security/NoSuchAlgorithmException;
115 117 3 le Ljavax/security/auth/login/LoginException;
118 123 2 e Ljava/security/UnrecoverableKeyException;
121 123 3 fle Ljavax/security/auth/login/FailedLoginException;
Exception table:
from to target type
0 6 7 Class java.security.KeyStoreException
0 6 13 Class java.security.NoSuchProviderException
20 25 26 Class java.net.MalformedURLException
20 25 32 Class java.security.GeneralSecurityException
20 25 38 Class java.io.IOException
20 44 44 any
46 47 48 Class java.io.IOException
56 57 58 Class java.io.IOException
64 84 85 Class java.security.KeyStoreException
64 84 89 Class java.security.cert.CertificateException
95 108 109 Class java.security.KeyStoreException
95 108 113 Class java.security.NoSuchAlgorithmException
95 108 117 Class java.security.UnrecoverableKeyException
Exceptions:
throws javax.security.auth.login.LoginException
public boolean commit();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
tableswitch { // 0 - 3
0: 1
1: 2
2: 4
3: 8
default: 1
}
1: StackMap locals:
StackMap stack:
new javax.security.auth.login.LoginException
dup
ldc "The login module is not initialized"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.logoutInternal:()V
3: new javax.security.auth.login.LoginException
dup
ldc "Authentication failed"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.commitInternal:()Z
ifeq 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.logoutInternal:()V
7: new javax.security.auth.login.LoginException
dup
ldc "Unable to retrieve certificates"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
private boolean commitInternal();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.isReadOnly:()Z
ifeq 2
1: new javax.security.auth.login.LoginException
dup
ldc "Subject is set readonly"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPublicCredentials:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrivateCredentials:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
5: aload 0
iconst_3
putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
6: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
public boolean abort();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
tableswitch { // 0 - 3
0: 1
1: 2
2: 3
3: 5
default: 1
}
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.logoutInternal:()V
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.logoutInternal:()V
6: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
public boolean logout();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
ifeq 2
1: aload 0
new java.lang.StringBuilder
dup
ldc "Entering logout "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
tableswitch { // 0 - 3
0: 3
1: 6
2: 6
3: 7
default: 6
}
3: StackMap locals:
StackMap stack:
new javax.security.auth.login.LoginException
dup
4: ldc "The login module is not initialized"
5: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.logoutInternal:()V
8: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
private void logoutInternal();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
ifeq 2
1: aload 0
ldc "Entering logoutInternal"
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 3: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
invokevirtual java.security.KeyStore.getProvider:()Ljava/security/Provider;
astore 2
start local 2 4: aload 2
instanceof java.security.AuthProvider
ifeq 12
5: aload 2
checkcast java.security.AuthProvider
astore 3
start local 3 6: aload 3
invokevirtual java.security.AuthProvider.logout:()V
7: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
ifeq 12
8: aload 0
ldc "logged out of KeyStore AuthProvider"
invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
9: goto 12
StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule javax.security.auth.login.LoginException java.security.Provider java.security.AuthProvider
StackMap stack: javax.security.auth.login.LoginException
10: astore 4
start local 4 11: aload 4
astore 1
end local 4 end local 3 12: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.isReadOnly:()Z
ifeq 39
13: aload 0
aconst_null
putfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
14: aload 0
aconst_null
putfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
15: aload 0
iconst_1
putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
16: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrivateCredentials:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
start local 3 17: goto 35
18: StackMap locals: java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 4
start local 4 19: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
aload 4
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 35
20: aload 0
aconst_null
putfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
21: aload 4
checkcast javax.security.auth.Destroyable
invokeinterface javax.security.auth.Destroyable.destroy:()V
22: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
ifeq 36
23: aload 0
new java.lang.StringBuilder
dup
ldc "Destroyed private credential, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
24: aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
25: invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
26: goto 36
27: StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule javax.security.auth.login.LoginException java.security.Provider java.util.Iterator java.lang.Object
StackMap stack: javax.security.auth.DestroyFailedException
astore 5
start local 5 28: new javax.security.auth.login.LoginException
dup
29: new java.lang.StringBuilder
dup
ldc "Unable to destroy private credential, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
30: aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
31: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
32: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 6
start local 6 33: aload 6
aload 5
invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
34: aload 6
athrow
end local 6 end local 5 end local 4 35: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
36: StackMap locals:
StackMap stack:
new javax.security.auth.login.LoginException
dup
37: ldc "Unable to remove Principal (X500Principal ) and public credential (certificatepath) from read-only Subject"
38: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
end local 3 39: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
ifnull 42
40: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
41: aload 0
aconst_null
putfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
42: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
ifnull 45
43: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPublicCredentials:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
44: aload 0
aconst_null
putfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
45: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
ifnull 48
46: aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrivateCredentials:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
47: aload 0
aconst_null
putfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
48: StackMap locals:
StackMap stack:
aload 1
ifnull 50
49: aload 1
athrow
50: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
51: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
3 52 1 logoutException Ljavax/security/auth/login/LoginException;
4 52 2 provider Ljava/security/Provider;
6 12 3 ap Ljava/security/AuthProvider;
11 12 4 le Ljavax/security/auth/login/LoginException;
17 39 3 it Ljava/util/Iterator<Ljava/lang/Object;>;
19 35 4 obj Ljava/lang/Object;
28 35 5 dfe Ljavax/security/auth/DestroyFailedException;
33 35 6 le Ljavax/security/auth/login/LoginException;
Exception table:
from to target type
6 9 10 Class javax.security.auth.login.LoginException
21 26 27 Class javax.security.auth.DestroyFailedException
Exceptions:
throws javax.security.auth.login.LoginException
private void debugPrint(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 3
1: getstatic java.lang.System.err:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
2: goto 4
3: StackMap locals:
StackMap stack:
getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Debug KeyStoreLoginModule: "
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;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/security/auth/module/KeyStoreLoginModule;
0 5 1 message Ljava/lang/String;
MethodParameters:
Name Flags
message
}
SourceFile: "KeyStoreLoginModule.java"