public abstract class org.apache.catalina.util.SessionIdGeneratorBase extends org.apache.catalina.util.LifecycleBase implements org.apache.catalina.SessionIdGenerator
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.catalina.util.SessionIdGeneratorBase
super_class: org.apache.catalina.util.LifecycleBase
{
private final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final org.apache.tomcat.util.res.StringManager sm;
descriptor: Lorg/apache/tomcat/util/res/StringManager;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.Queue<java.security.SecureRandom> randoms;
descriptor: Ljava/util/Queue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Queue<Ljava/security/SecureRandom;>;
private java.lang.String secureRandomClass;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String secureRandomAlgorithm;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String secureRandomProvider;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String jvmRoute;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private int sessionIdLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "org.apache.catalina.util"
invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
1: putstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/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 org.apache.catalina.util.LifecycleBase.<init>:()V
1: aload 0
ldc Lorg/apache/catalina/util/SessionIdGeneratorBase;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
2: aload 0
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
putfield org.apache.catalina.util.SessionIdGeneratorBase.randoms:Ljava/util/Queue;
3: aload 0
aconst_null
putfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
4: aload 0
ldc "SHA1PRNG"
putfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
5: aload 0
aconst_null
putfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
6: aload 0
ldc ""
putfield org.apache.catalina.util.SessionIdGeneratorBase.jvmRoute:Ljava/lang/String;
7: aload 0
bipush 16
putfield org.apache.catalina.util.SessionIdGeneratorBase.sessionIdLength:I
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
public java.lang.String getSecureRandomClass();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
public void setSecureRandomClass(java.lang.String);
descriptor: (Ljava/lang/String;)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.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
0 2 1 secureRandomClass Ljava/lang/String;
MethodParameters:
Name Flags
secureRandomClass
public java.lang.String getSecureRandomAlgorithm();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
public void setSecureRandomAlgorithm(java.lang.String);
descriptor: (Ljava/lang/String;)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.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
0 2 1 secureRandomAlgorithm Ljava/lang/String;
MethodParameters:
Name Flags
secureRandomAlgorithm
public java.lang.String getSecureRandomProvider();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
public void setSecureRandomProvider(java.lang.String);
descriptor: (Ljava/lang/String;)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.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
0 2 1 secureRandomProvider Ljava/lang/String;
MethodParameters:
Name Flags
secureRandomProvider
public java.lang.String getJvmRoute();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.jvmRoute:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
public void setJvmRoute(java.lang.String);
descriptor: (Ljava/lang/String;)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.util.SessionIdGeneratorBase.jvmRoute:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
0 2 1 jvmRoute Ljava/lang/String;
MethodParameters:
Name Flags
jvmRoute
public int getSessionIdLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.sessionIdLength:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
public void setSessionIdLength(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.util.SessionIdGeneratorBase.sessionIdLength:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
0 2 1 sessionIdLength I
MethodParameters:
Name Flags
sessionIdLength
public java.lang.String generateSessionId();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.jvmRoute:Ljava/lang/String;
invokevirtual org.apache.catalina.util.SessionIdGeneratorBase.generateSessionId:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
protected void getRandomBytes(byte[]);
descriptor: ([B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.randoms:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast java.security.SecureRandom
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aload 0
invokevirtual org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom:()Ljava/security/SecureRandom;
astore 2
3: StackMap locals: java.security.SecureRandom
StackMap stack:
aload 2
aload 1
invokevirtual java.security.SecureRandom.nextBytes:([B)V
4: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.randoms:Ljava/util/Queue;
aload 2
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
0 6 1 bytes [B
1 6 2 random Ljava/security/SecureRandom;
MethodParameters:
Name Flags
bytes
private java.security.SecureRandom createSecureRandom();
descriptor: ()Ljava/security/SecureRandom;
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=7, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: invokestatic java.lang.System.currentTimeMillis:()J
lstore 2
start local 2 2: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
ifnull 12
3: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 4: aload 4
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.SecureRandom
astore 1
end local 4 5: goto 12
StackMap locals: org.apache.catalina.util.SessionIdGeneratorBase java.security.SecureRandom long
StackMap stack: java.lang.Exception
6: astore 4
start local 4 7: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "sessionIdGeneratorBase.random"
iconst_1
anewarray java.lang.Object
dup
iconst_0
8: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
aastore
9: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
10: aload 4
11: invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 4 12: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 13: aload 1
ifnonnull 39
14: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
ifnull 20
15: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
ifle 20
16: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
17: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
18: invokestatic java.security.SecureRandom.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/SecureRandom;
astore 1
19: goto 39
StackMap locals: int
StackMap stack:
20: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
ifnull 39
21: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
ifle 39
22: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
invokestatic java.security.SecureRandom.getInstance:(Ljava/lang/String;)Ljava/security/SecureRandom;
astore 1
23: goto 39
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
24: astore 5
start local 5 25: iconst_1
istore 4
26: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "sessionIdGeneratorBase.randomAlgorithm"
iconst_1
anewarray java.lang.Object
dup
iconst_0
27: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
aastore
28: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
29: aload 5
30: invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 5 31: goto 39
32: StackMap locals:
StackMap stack: java.security.NoSuchProviderException
astore 5
start local 5 33: iconst_1
istore 4
34: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "sessionIdGeneratorBase.randomProvider"
iconst_1
anewarray java.lang.Object
dup
iconst_0
35: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
aastore
36: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
37: aload 5
38: invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 5 39: StackMap locals:
StackMap stack:
aload 1
ifnonnull 48
iload 4
ifeq 48
40: ldc "SHA1PRNG"
invokestatic java.security.SecureRandom.getInstance:(Ljava/lang/String;)Ljava/security/SecureRandom;
astore 1
41: goto 48
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
42: astore 5
start local 5 43: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "sessionIdGeneratorBase.randomAlgorithm"
iconst_1
anewarray java.lang.Object
dup
iconst_0
44: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
aastore
45: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
46: aload 5
47: invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 5 48: StackMap locals:
StackMap stack:
aload 1
ifnonnull 50
49: new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
astore 1
50: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.security.SecureRandom.nextInt:()I
pop
51: invokestatic java.lang.System.currentTimeMillis:()J
lstore 5
start local 5 52: lload 5
lload 2
lsub
ldc 100
lcmp
ifle 56
53: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "sessionIdGeneratorBase.createRandom"
iconst_2
anewarray java.lang.Object
dup
iconst_0
54: aload 1
invokevirtual java.security.SecureRandom.getAlgorithm:()Ljava/lang/String;
aastore
dup
iconst_1
lload 5
lload 2
lsub
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
55: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
56: StackMap locals: long
StackMap stack:
aload 1
areturn
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
1 57 1 result Ljava/security/SecureRandom;
2 57 2 t1 J
4 5 4 clazz Ljava/lang/Class<*>;
7 12 4 e Ljava/lang/Exception;
13 57 4 error Z
25 31 5 e Ljava/security/NoSuchAlgorithmException;
33 39 5 e Ljava/security/NoSuchProviderException;
43 48 5 e Ljava/security/NoSuchAlgorithmException;
52 57 5 t2 J
Exception table:
from to target type
3 5 6 Class java.lang.Exception
14 23 24 Class java.security.NoSuchAlgorithmException
14 23 32 Class java.security.NoSuchProviderException
40 41 42 Class java.security.NoSuchAlgorithmException
protected void initInternal();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
Exceptions:
throws org.apache.catalina.LifecycleException
protected void startInternal();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.catalina.util.SessionIdGeneratorBase.generateSessionId:()Ljava/lang/String;
pop
1: aload 0
getstatic org.apache.catalina.LifecycleState.STARTING:Lorg/apache/catalina/LifecycleState;
invokevirtual org.apache.catalina.util.SessionIdGeneratorBase.setState:(Lorg/apache/catalina/LifecycleState;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
Exceptions:
throws org.apache.catalina.LifecycleException
protected void stopInternal();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic org.apache.catalina.LifecycleState.STOPPING:Lorg/apache/catalina/LifecycleState;
invokevirtual org.apache.catalina.util.SessionIdGeneratorBase.setState:(Lorg/apache/catalina/LifecycleState;)V
1: aload 0
getfield org.apache.catalina.util.SessionIdGeneratorBase.randoms:Ljava/util/Queue;
invokeinterface java.util.Queue.clear:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
Exceptions:
throws org.apache.catalina.LifecycleException
protected void destroyInternal();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/util/SessionIdGeneratorBase;
Exceptions:
throws org.apache.catalina.LifecycleException
}
SourceFile: "SessionIdGeneratorBase.java"