public class com.sun.jmx.remote.security.FileLoginModule implements javax.security.auth.spi.LoginModule
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.jmx.remote.security.FileLoginModule
super_class: java.lang.Object
{
private static final java.lang.String DEFAULT_PASSWORD_FILE_NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String USERNAME_KEY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "javax.security.auth.login.name"
private static final java.lang.String PASSWORD_KEY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "javax.security.auth.login.password"
private static final com.sun.jmx.remote.util.ClassLogger logger;
descriptor: Lcom/sun/jmx/remote/util/ClassLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private boolean useFirstPass;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean tryFirstPass;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean storePass;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean clearPass;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean succeeded;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean commitSucceeded;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String username;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private char[] password;
descriptor: [C
flags: (0x0002) ACC_PRIVATE
private javax.management.remote.JMXPrincipal user;
descriptor: Ljavax/management/remote/JMXPrincipal;
flags: (0x0002) ACC_PRIVATE
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 java.lang.String passwordFile;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String passwordFileDisplayName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean userSuppliedPasswordFile;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean hasJavaHomePermission;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.Properties userCredentials;
descriptor: Ljava/util/Properties;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: new java.lang.StringBuilder
dup
new com.sun.jmx.mbeanserver.GetPropertyAction
dup
ldc "java.home"
invokespecial com.sun.jmx.mbeanserver.GetPropertyAction.<init>:(Ljava/lang/String;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: getstatic java.io.File.separatorChar:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "lib"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: getstatic java.io.File.separatorChar:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "management"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
3: ldc "jmxremote.password"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: putstatic com.sun.jmx.remote.security.FileLoginModule.DEFAULT_PASSWORD_FILE_NAME:Ljava/lang/String;
6: new com.sun.jmx.remote.util.ClassLogger
dup
ldc "javax.management.remote.misc"
ldc "FileLoginModule"
invokespecial com.sun.jmx.remote.util.ClassLogger.<init>:(Ljava/lang/String;Ljava/lang/String;)V
7: putstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
8: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.useFirstPass:Z
2: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.tryFirstPass:Z
3: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.storePass:Z
4: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.clearPass:Z
5: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
6: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.commitSucceeded:Z
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
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=4, 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.jmx.remote.security.FileLoginModule.subject:Ljavax/security/auth/Subject;
1: aload 0
aload 2
putfield com.sun.jmx.remote.security.FileLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
2: aload 0
aload 3
invokestatic com.sun.jmx.mbeanserver.Util.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
putfield com.sun.jmx.remote.security.FileLoginModule.sharedState:Ljava/util/Map;
3: aload 0
aload 4
putfield com.sun.jmx.remote.security.FileLoginModule.options:Ljava/util/Map;
4: aload 0
5: ldc "true"
aload 4
ldc "tryFirstPass"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
6: putfield com.sun.jmx.remote.security.FileLoginModule.tryFirstPass:Z
7: aload 0
8: ldc "true"
aload 4
ldc "useFirstPass"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
9: putfield com.sun.jmx.remote.security.FileLoginModule.useFirstPass:Z
10: aload 0
11: ldc "true"
aload 4
ldc "storePass"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
12: putfield com.sun.jmx.remote.security.FileLoginModule.storePass:Z
13: aload 0
14: ldc "true"
aload 4
ldc "clearPass"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
15: putfield com.sun.jmx.remote.security.FileLoginModule.clearPass:Z
16: aload 0
aload 4
ldc "passwordFile"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.sun.jmx.remote.security.FileLoginModule.passwordFile:Ljava/lang/String;
17: aload 0
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.passwordFile:Ljava/lang/String;
putfield com.sun.jmx.remote.security.FileLoginModule.passwordFileDisplayName:Ljava/lang/String;
18: aload 0
iconst_1
putfield com.sun.jmx.remote.security.FileLoginModule.userSuppliedPasswordFile:Z
19: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.passwordFile:Ljava/lang/String;
ifnonnull 31
20: aload 0
getstatic com.sun.jmx.remote.security.FileLoginModule.DEFAULT_PASSWORD_FILE_NAME:Ljava/lang/String;
putfield com.sun.jmx.remote.security.FileLoginModule.passwordFile:Ljava/lang/String;
21: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.userSuppliedPasswordFile:Z
22: ldc "java.home"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
pop
23: aload 0
iconst_1
putfield com.sun.jmx.remote.security.FileLoginModule.hasJavaHomePermission:Z
24: aload 0
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.passwordFile:Ljava/lang/String;
putfield com.sun.jmx.remote.security.FileLoginModule.passwordFileDisplayName:Ljava/lang/String;
25: goto 31
StackMap locals:
StackMap stack: java.lang.SecurityException
26: pop
27: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.hasJavaHomePermission:Z
28: aload 0
29: ldc "jmxremote.password"
30: putfield com.sun.jmx.remote.security.FileLoginModule.passwordFileDisplayName:Ljava/lang/String;
31: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
0 32 1 subject Ljavax/security/auth/Subject;
0 32 2 callbackHandler Ljavax/security/auth/callback/CallbackHandler;
0 32 3 sharedState Ljava/util/Map<Ljava/lang/String;*>;
0 32 4 options Ljava/util/Map<Ljava/lang/String;*>;
Exception table:
from to target type
22 25 26 Class java.lang.SecurityException
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
public boolean login();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.loadPasswordFile:()V
1: goto 9
StackMap locals:
StackMap stack: java.io.IOException
2: astore 1
start local 1 3: new javax.security.auth.login.LoginException
dup
4: new java.lang.StringBuilder
dup
ldc "Error: unable to load the password file: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.passwordFileDisplayName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 2
start local 2 8: aload 2
aload 1
invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
checkcast javax.security.auth.login.LoginException
athrow
end local 2 end local 1 9: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.userCredentials:Ljava/util/Properties;
ifnonnull 13
10: new javax.security.auth.login.LoginException
dup
11: ldc "Error: unable to locate the users' credentials."
12: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 17
14: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
15: new java.lang.StringBuilder
dup
ldc "Using password file: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.passwordFileDisplayName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.tryFirstPass:Z
ifeq 31
18: aload 0
iconst_1
invokevirtual com.sun.jmx.remote.security.FileLoginModule.attemptAuthentication:(Z)V
19: aload 0
iconst_1
putfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
20: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 24
21: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
22: ldc "Authentication using cached password has succeeded"
23: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
24: StackMap locals:
StackMap stack:
iconst_1
ireturn
25: StackMap locals:
StackMap stack: javax.security.auth.login.LoginException
pop
26: aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.cleanState:()V
27: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
28: ldc "Authentication using cached password has failed"
29: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
30: goto 45
StackMap locals:
StackMap stack:
31: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.useFirstPass:Z
ifeq 45
32: aload 0
iconst_1
invokevirtual com.sun.jmx.remote.security.FileLoginModule.attemptAuthentication:(Z)V
33: aload 0
iconst_1
putfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
34: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 38
35: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
36: ldc "Authentication using cached password has succeeded"
37: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
38: StackMap locals:
StackMap stack:
iconst_1
ireturn
39: StackMap locals:
StackMap stack: javax.security.auth.login.LoginException
astore 1
start local 1 40: aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.cleanState:()V
41: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
42: ldc "Authentication using cached password has failed"
43: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
44: aload 1
athrow
end local 1 45: StackMap locals:
StackMap stack:
getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 47
46: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
ldc "Acquiring password"
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
47: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.attemptAuthentication:(Z)V
48: aload 0
iconst_1
putfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
49: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 51
50: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
ldc "Authentication has succeeded"
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
51: StackMap locals:
StackMap stack:
iconst_1
ireturn
52: StackMap locals:
StackMap stack: javax.security.auth.login.LoginException
astore 1
start local 1 53: aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.cleanState:()V
54: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
ldc "Authentication has failed"
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
55: aload 1
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 56 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
3 9 1 ioe Ljava/io/IOException;
8 9 2 le Ljavax/security/auth/login/LoginException;
40 45 1 le Ljavax/security/auth/login/LoginException;
53 56 1 le Ljavax/security/auth/login/LoginException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
18 24 25 Class javax.security.auth.login.LoginException
32 38 39 Class javax.security.auth.login.LoginException
47 51 52 Class javax.security.auth.login.LoginException
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.jmx.remote.security.FileLoginModule.succeeded:Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.isReadOnly:()Z
ifeq 5
3: aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.cleanState:()V
4: new javax.security.auth.login.LoginException
dup
ldc "Subject is read-only"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.user:Ljavax/management/remote/JMXPrincipal;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 7
6: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.user:Ljavax/management/remote/JMXPrincipal;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
7: StackMap locals:
StackMap stack:
getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 11
8: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "commit"
9: ldc "Authentication has completed successfully"
10: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.cleanState:()V
12: aload 0
iconst_1
putfield com.sun.jmx.remote.security.FileLoginModule.commitSucceeded:Z
13: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
public boolean abort();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 4
1: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "abort"
2: ldc "Authentication has not completed successfully"
3: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
ifne 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
ifeq 11
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.commitSucceeded:Z
ifne 11
7: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
8: aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.cleanState:()V
9: aload 0
aconst_null
putfield com.sun.jmx.remote.security.FileLoginModule.user:Ljavax/management/remote/JMXPrincipal;
10: goto 12
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.logout:()Z
pop
12: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
public boolean logout();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.isReadOnly:()Z
ifeq 3
1: aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.cleanState:()V
2: new javax.security.auth.login.LoginException
dup
ldc "Subject is read-only"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.user:Ljavax/management/remote/JMXPrincipal;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
4: aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.cleanState:()V
5: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
6: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.commitSucceeded:Z
7: aload 0
aconst_null
putfield com.sun.jmx.remote.security.FileLoginModule.user:Ljavax/management/remote/JMXPrincipal;
8: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 10
9: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "logout"
ldc "Subject is being logged out"
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
private void attemptAuthentication(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual com.sun.jmx.remote.security.FileLoginModule.getUsernamePassword:(Z)V
1: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.userCredentials:Ljava/util/Properties;
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.username:Ljava/lang/String;
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
dup
astore 2
start local 2 2: ifnull 4
3: aload 2
new java.lang.String
dup
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.password:[C
invokespecial java.lang.String.<init>:([C)V
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
4: StackMap locals: java.lang.String
StackMap stack:
getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 6
5: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
ldc "Invalid username or password"
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
new javax.security.auth.login.FailedLoginException
dup
ldc "Invalid username or password"
invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.storePass:Z
ifeq 12
8: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.name"
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 12
9: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.password"
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 12
10: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.name"
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.username:Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.password"
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.password:[C
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: StackMap locals:
StackMap stack:
aload 0
new javax.management.remote.JMXPrincipal
dup
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.username:Ljava/lang/String;
invokespecial javax.management.remote.JMXPrincipal.<init>:(Ljava/lang/String;)V
putfield com.sun.jmx.remote.security.FileLoginModule.user:Ljavax/management/remote/JMXPrincipal;
13: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 17
14: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
15: new java.lang.StringBuilder
dup
ldc "User '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.username:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' successfully validated"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
0 18 1 usePasswdFromSharedState Z
2 18 2 localPassword Ljava/lang/String;
Exceptions:
throws javax.security.auth.login.LoginException
MethodParameters:
Name Flags
usePasswdFromSharedState
private void loadPasswordFile();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: new java.io.FileInputStream
dup
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.passwordFile:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: goto 12
end local 1 StackMap locals:
StackMap stack: java.lang.SecurityException
2: astore 2
start local 2 3: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.userSuppliedPasswordFile:Z
ifne 4
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.hasJavaHomePermission:Z
ifeq 5
4: StackMap locals: com.sun.jmx.remote.security.FileLoginModule top java.lang.SecurityException
StackMap stack:
aload 2
athrow
5: StackMap locals:
StackMap stack:
new java.io.FilePermission
dup
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.passwordFileDisplayName:Ljava/lang/String;
ldc "read"
invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
6: astore 3
start local 3 7: new java.security.AccessControlException
dup
8: new java.lang.StringBuilder
dup
ldc "access denied "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.io.FilePermission.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial java.security.AccessControlException.<init>:(Ljava/lang/String;)V
astore 4
start local 4 10: aload 4
aload 2
invokevirtual java.lang.SecurityException.getStackTrace:()[Ljava/lang/StackTraceElement;
invokevirtual java.security.AccessControlException.setStackTrace:([Ljava/lang/StackTraceElement;)V
11: aload 4
athrow
end local 4 end local 3 end local 2 start local 1 12: StackMap locals: com.sun.jmx.remote.security.FileLoginModule java.io.FileInputStream
StackMap stack:
new java.io.BufferedInputStream
dup
aload 1
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 2
start local 2 13: aload 0
new java.util.Properties
dup
invokespecial java.util.Properties.<init>:()V
putfield com.sun.jmx.remote.security.FileLoginModule.userCredentials:Ljava/util/Properties;
14: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.userCredentials:Ljava/util/Properties;
aload 2
invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
15: goto 19
StackMap locals: com.sun.jmx.remote.security.FileLoginModule java.io.FileInputStream java.io.BufferedInputStream
StackMap stack: java.lang.Throwable
16: astore 3
17: aload 2
invokevirtual java.io.BufferedInputStream.close:()V
18: aload 3
athrow
19: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.BufferedInputStream.close:()V
end local 2 20: goto 24
StackMap locals: com.sun.jmx.remote.security.FileLoginModule java.io.FileInputStream
StackMap stack: java.lang.Throwable
21: astore 4
22: aload 1
invokevirtual java.io.FileInputStream.close:()V
23: aload 4
athrow
24: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.FileInputStream.close:()V
25: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
1 2 1 fis Ljava/io/FileInputStream;
12 26 1 fis Ljava/io/FileInputStream;
3 12 2 e Ljava/lang/SecurityException;
7 12 3 fp Ljava/io/FilePermission;
10 12 4 ace Ljava/security/AccessControlException;
13 20 2 bis Ljava/io/BufferedInputStream;
Exception table:
from to target type
0 1 2 Class java.lang.SecurityException
13 16 16 any
12 21 21 any
Exceptions:
throws java.io.IOException
private void getUsernamePassword(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: iload 1
ifeq 4
1: aload 0
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.name"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.sun.jmx.remote.security.FileLoginModule.username:Ljava/lang/String;
2: aload 0
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.password"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast char[]
putfield com.sun.jmx.remote.security.FileLoginModule.password:[C
3: return
4: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
ifnonnull 6
5: new javax.security.auth.login.LoginException
dup
ldc "Error: no CallbackHandler available to garner authentication information from the user"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
iconst_2
anewarray javax.security.auth.callback.Callback
astore 2
start local 2 7: aload 2
iconst_0
new javax.security.auth.callback.NameCallback
dup
ldc "username"
invokespecial javax.security.auth.callback.NameCallback.<init>:(Ljava/lang/String;)V
aastore
8: aload 2
iconst_1
new javax.security.auth.callback.PasswordCallback
dup
ldc "password"
iconst_0
invokespecial javax.security.auth.callback.PasswordCallback.<init>:(Ljava/lang/String;Z)V
aastore
9: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
aload 2
invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
10: aload 0
aload 2
iconst_0
aaload
checkcast javax.security.auth.callback.NameCallback
invokevirtual javax.security.auth.callback.NameCallback.getName:()Ljava/lang/String;
putfield com.sun.jmx.remote.security.FileLoginModule.username:Ljava/lang/String;
11: aload 2
iconst_1
aaload
checkcast javax.security.auth.callback.PasswordCallback
invokevirtual javax.security.auth.callback.PasswordCallback.getPassword:()[C
astore 3
start local 3 12: aload 0
aload 3
arraylength
newarray 5
putfield com.sun.jmx.remote.security.FileLoginModule.password:[C
13: aload 3
iconst_0
14: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.password:[C
iconst_0
aload 3
arraylength
15: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: aload 2
iconst_1
aaload
checkcast javax.security.auth.callback.PasswordCallback
invokevirtual javax.security.auth.callback.PasswordCallback.clearPassword:()V
end local 3 17: goto 29
StackMap locals: com.sun.jmx.remote.security.FileLoginModule int javax.security.auth.callback.Callback[]
StackMap stack: java.io.IOException
18: astore 3
start local 3 19: new javax.security.auth.login.LoginException
dup
aload 3
invokevirtual java.io.IOException.toString:()Ljava/lang/String;
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 4
start local 4 20: aload 4
aload 3
invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
checkcast javax.security.auth.login.LoginException
athrow
end local 4 end local 3 21: StackMap locals:
StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
astore 3
start local 3 22: new javax.security.auth.login.LoginException
dup
23: new java.lang.StringBuilder
dup
ldc "Error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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;
24: ldc " not available to garner authentication "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: ldc "information from the user"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
26: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 4
start local 4 28: aload 4
aload 3
invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
checkcast javax.security.auth.login.LoginException
athrow
end local 4 end local 3 29: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
0 30 1 usePasswdFromSharedState Z
7 30 2 callbacks [Ljavax/security/auth/callback/Callback;
12 17 3 tmpPassword [C
19 21 3 ioe Ljava/io/IOException;
20 21 4 le Ljavax/security/auth/login/LoginException;
22 29 3 uce Ljavax/security/auth/callback/UnsupportedCallbackException;
28 29 4 le Ljavax/security/auth/login/LoginException;
Exception table:
from to target type
9 17 18 Class java.io.IOException
9 17 21 Class javax.security.auth.callback.UnsupportedCallbackException
Exceptions:
throws javax.security.auth.login.LoginException
MethodParameters:
Name Flags
usePasswdFromSharedState
private void cleanState();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield com.sun.jmx.remote.security.FileLoginModule.username:Ljava/lang/String;
1: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.password:[C
ifnull 4
2: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.password:[C
bipush 32
invokestatic java.util.Arrays.fill:([CC)V
3: aload 0
aconst_null
putfield com.sun.jmx.remote.security.FileLoginModule.password:[C
4: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.clearPass:Z
ifeq 7
5: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.name"
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.password"
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
}
SourceFile: "FileLoginModule.java"