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 PASSWORD_FILE_NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "jmxremote.password"
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 hashPasswords;
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 com.sun.jmx.remote.security.HashedPasswordManager hashPwdMgr;
descriptor: Lcom/sun/jmx/remote/security/HashedPasswordManager;
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 "conf"
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.hashPasswords:Z
6: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
7: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.commitSucceeded:Z
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 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
17: ldc "true"
aload 4
ldc "hashPasswords"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
18: putfield com.sun.jmx.remote.security.FileLoginModule.hashPasswords:Z
19: 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;
20: 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;
21: aload 0
iconst_1
putfield com.sun.jmx.remote.security.FileLoginModule.userSuppliedPasswordFile:Z
22: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.passwordFile:Ljava/lang/String;
ifnonnull 32
23: 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;
24: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.userSuppliedPasswordFile:Z
25: ldc "java.home"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
pop
26: aload 0
iconst_1
putfield com.sun.jmx.remote.security.FileLoginModule.hasJavaHomePermission:Z
27: 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;
28: goto 32
StackMap locals:
StackMap stack: java.lang.SecurityException
29: pop
30: aload 0
iconst_0
putfield com.sun.jmx.remote.security.FileLoginModule.hasJavaHomePermission:Z
31: aload 0
ldc "jmxremote.password"
putfield com.sun.jmx.remote.security.FileLoginModule.passwordFileDisplayName:Ljava/lang/String;
32: 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 33 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
0 33 1 subject Ljavax/security/auth/Subject;
0 33 2 callbackHandler Ljavax/security/auth/callback/CallbackHandler;
0 33 3 sharedState Ljava/util/Map<Ljava/lang/String;*>;
0 33 4 options Ljava/util/Map<Ljava/lang/String;*>;
Exception table:
from to target type
25 28 29 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=4, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.hashPwdMgr:Lcom/sun/jmx/remote/security/HashedPasswordManager;
ifnonnull 3
2: aload 0
new com.sun.jmx.remote.security.HashedPasswordManager
dup
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.passwordFile:Ljava/lang/String;
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.hashPasswords:Z
invokespecial com.sun.jmx.remote.security.HashedPasswordManager.<init>:(Ljava/lang/String;Z)V
putfield com.sun.jmx.remote.security.FileLoginModule.hashPwdMgr:Lcom/sun/jmx/remote/security/HashedPasswordManager;
3: StackMap locals: com.sun.jmx.remote.security.FileLoginModule
StackMap stack:
aload 1
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.hashPwdMgr:Lcom/sun/jmx/remote/security/HashedPasswordManager;
invokevirtual com.sun.jmx.remote.security.HashedPasswordManager.loadPasswords:()V
8: goto 26
StackMap locals:
StackMap stack: java.io.IOException
9: astore 1
start local 1 10: new javax.security.auth.login.LoginException
dup
11: new java.lang.StringBuilder
dup
ldc "Error: unable to load the password file: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
12: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.passwordFileDisplayName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
astore 2
start local 2 15: 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 16: StackMap locals:
StackMap stack: java.lang.SecurityException
astore 1
start local 1 17: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.userSuppliedPasswordFile:Z
ifne 18
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.hasJavaHomePermission:Z
ifeq 19
18: StackMap locals: java.lang.SecurityException
StackMap stack:
aload 1
athrow
19: 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
20: astore 2
start local 2 21: new java.security.AccessControlException
dup
22: new java.lang.StringBuilder
dup
ldc "access denied "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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;
23: invokespecial java.security.AccessControlException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 24: aload 3
aload 1
invokevirtual java.security.AccessControlException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
25: aload 3
athrow
end local 3 end local 2 end local 1 26: 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 30
27: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
28: 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;
29: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
30: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.tryFirstPass:Z
ifeq 44
31: aload 0
iconst_1
invokevirtual com.sun.jmx.remote.security.FileLoginModule.attemptAuthentication:(Z)V
32: aload 0
iconst_1
putfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
33: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 37
34: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
35: ldc "Authentication using cached password has succeeded"
36: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
37: StackMap locals:
StackMap stack:
iconst_1
ireturn
38: StackMap locals:
StackMap stack: javax.security.auth.login.LoginException
pop
39: aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.cleanState:()V
40: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
41: ldc "Authentication using cached password has failed"
42: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
43: goto 58
StackMap locals:
StackMap stack:
44: aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.useFirstPass:Z
ifeq 58
45: aload 0
iconst_1
invokevirtual com.sun.jmx.remote.security.FileLoginModule.attemptAuthentication:(Z)V
46: aload 0
iconst_1
putfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
47: 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
48: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
49: ldc "Authentication using cached password has succeeded"
50: 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"
55: ldc "Authentication using cached password has failed"
56: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
57: aload 1
athrow
end local 1 58: 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 60
59: 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
60: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.attemptAuthentication:(Z)V
61: aload 0
iconst_1
putfield com.sun.jmx.remote.security.FileLoginModule.succeeded:Z
62: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 64
63: 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
64: StackMap locals:
StackMap stack:
iconst_1
ireturn
65: StackMap locals:
StackMap stack: javax.security.auth.login.LoginException
astore 1
start local 1 66: aload 0
invokevirtual com.sun.jmx.remote.security.FileLoginModule.cleanState:()V
67: 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
68: aload 1
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 69 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
10 16 1 ioe Ljava/io/IOException;
15 16 2 le Ljavax/security/auth/login/LoginException;
17 26 1 e Ljava/lang/SecurityException;
21 26 2 fp Ljava/io/FilePermission;
24 26 3 ace Ljava/security/AccessControlException;
53 58 1 le Ljavax/security/auth/login/LoginException;
66 69 1 le Ljavax/security/auth/login/LoginException;
Exception table:
from to target type
1 4 5 any
5 6 5 any
0 8 9 Class java.io.IOException
0 8 16 Class java.lang.SecurityException
31 37 38 Class javax.security.auth.login.LoginException
45 51 52 Class javax.security.auth.login.LoginException
60 64 65 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=2, 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.hashPwdMgr:Lcom/sun/jmx/remote/security/HashedPasswordManager;
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.username:Ljava/lang/String;
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.password:[C
invokevirtual com.sun.jmx.remote.security.HashedPasswordManager.authenticate:(Ljava/lang/String;[C)Z
ifne 5
2: 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
3: 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
4: 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
5: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.security.FileLoginModule.storePass:Z
ifeq 10
6: 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 10
7: 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 10
8: 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
9: 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
10: 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;
11: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 15
12: getstatic com.sun.jmx.remote.security.FileLoginModule.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "login"
13: 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;
14: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/jmx/remote/security/FileLoginModule;
0 16 1 usePasswdFromSharedState Z
Exceptions:
throws javax.security.auth.login.LoginException
MethodParameters:
Name Flags
usePasswdFromSharedState
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"