public final class org.apache.catalina.startup.PasswdUserDatabase implements org.apache.catalina.startup.UserDatabase
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.apache.catalina.startup.PasswdUserDatabase
super_class: java.lang.Object
{
private static final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.apache.naming.StringManager sm;
descriptor: Lorg/apache/naming/StringManager;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String PASSWORD_FILE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "/etc/passwd"
private final java.util.Hashtable<java.lang.String, java.lang.String> homes;
descriptor: Ljava/util/Hashtable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;
private org.apache.catalina.startup.UserConfig userConfig;
descriptor: Lorg/apache/catalina/startup/UserConfig;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/catalina/startup/PasswdUserDatabase;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.catalina.startup.PasswdUserDatabase.log:Lorg/apache/juli/logging/Log;
1: ldc Lorg/apache/catalina/startup/PasswdUserDatabase;
invokestatic org.apache.naming.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/naming/StringManager;
putstatic org.apache.catalina.startup.PasswdUserDatabase.sm:Lorg/apache/naming/StringManager;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putfield org.apache.catalina.startup.PasswdUserDatabase.homes:Ljava/util/Hashtable;
2: aload 0
aconst_null
putfield org.apache.catalina.startup.PasswdUserDatabase.userConfig:Lorg/apache/catalina/startup/UserConfig;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/startup/PasswdUserDatabase;
public org.apache.catalina.startup.UserConfig getUserConfig();
descriptor: ()Lorg/apache/catalina/startup/UserConfig;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.startup.PasswdUserDatabase.userConfig:Lorg/apache/catalina/startup/UserConfig;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/startup/PasswdUserDatabase;
public void setUserConfig(org.apache.catalina.startup.UserConfig);
descriptor: (Lorg/apache/catalina/startup/UserConfig;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.startup.PasswdUserDatabase.userConfig:Lorg/apache/catalina/startup/UserConfig;
1: aload 0
invokevirtual org.apache.catalina.startup.PasswdUserDatabase.init:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/startup/PasswdUserDatabase;
0 3 1 userConfig Lorg/apache/catalina/startup/UserConfig;
MethodParameters:
Name Flags
userConfig
public java.lang.String getHome(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.startup.PasswdUserDatabase.homes:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/startup/PasswdUserDatabase;
0 1 1 user Ljava/lang/String;
MethodParameters:
Name Flags
user
public java.util.Enumeration<java.lang.String> getUsers();
descriptor: ()Ljava/util/Enumeration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.startup.PasswdUserDatabase.homes:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/startup/PasswdUserDatabase;
Signature: ()Ljava/util/Enumeration<Ljava/lang/String;>;
private void init();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new java.io.BufferedReader
dup
new java.io.FileReader
dup
ldc "/etc/passwd"
invokespecial java.io.FileReader.<init>:(Ljava/lang/String;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 3
start local 3 2: aload 3
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 4
start local 4 3: goto 8
4: StackMap locals: org.apache.catalina.startup.PasswdUserDatabase java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String
StackMap stack:
aload 4
ldc ":"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 5
start local 5 5: aload 5
arraylength
iconst_5
if_icmple 7
aload 5
iconst_0
aaload
invokevirtual java.lang.String.length:()I
ifle 7
aload 5
iconst_5
aaload
invokevirtual java.lang.String.length:()I
ifle 7
6: aload 0
getfield org.apache.catalina.startup.PasswdUserDatabase.homes:Ljava/util/Hashtable;
aload 5
iconst_0
aaload
aload 5
iconst_5
aaload
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: StackMap locals: java.lang.String[]
StackMap stack:
aload 3
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 4
end local 5 8: StackMap locals:
StackMap stack:
aload 4
ifnonnull 4
end local 4 9: aload 3
ifnull 17
aload 3
invokevirtual java.io.BufferedReader.close:()V
goto 17
StackMap locals: org.apache.catalina.startup.PasswdUserDatabase java.lang.Throwable java.lang.Throwable java.io.BufferedReader
StackMap stack: java.lang.Throwable
10: astore 1
aload 3
ifnull 11
aload 3
invokevirtual java.io.BufferedReader.close:()V
end local 3 StackMap locals:
StackMap stack:
11: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 2
aload 1
ifnonnull 13
aload 2
astore 1
goto 14
StackMap locals:
StackMap stack:
13: aload 1
aload 2
if_acmpeq 14
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 1
athrow
StackMap locals: org.apache.catalina.startup.PasswdUserDatabase
StackMap stack: java.lang.Exception
15: astore 1
start local 1 16: getstatic org.apache.catalina.startup.PasswdUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.startup.PasswdUserDatabase.sm:Lorg/apache/naming/StringManager;
ldc "passwdUserDatabase.readFail"
invokevirtual org.apache.naming.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 1
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 1 17: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/apache/catalina/startup/PasswdUserDatabase;
2 11 3 reader Ljava/io/BufferedReader;
3 9 4 line Ljava/lang/String;
5 8 5 tokens [Ljava/lang/String;
16 17 1 e Ljava/lang/Exception;
Exception table:
from to target type
2 9 10 any
1 12 12 any
0 15 15 Class java.lang.Exception
}
SourceFile: "PasswdUserDatabase.java"