public class org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo
super_class: java.lang.Object
{
private final java.lang.String opaque;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long nonceValidity;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String key;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.String, org.apache.catalina.authenticator.DigestAuthenticator$NonceInfo> nonces;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/authenticator/DigestAuthenticator$NonceInfo;>;
private boolean validateUri;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String userName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String method;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String uri;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String response;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String nonce;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String nc;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String cnonce;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String realmName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String qop;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String opaqueReceived;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean nonceStale;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>(java.lang.String, long, java.lang.String, java.util.Map<java.lang.String, org.apache.catalina.authenticator.DigestAuthenticator$NonceInfo>, );
descriptor: (Ljava/lang/String;JLjava/lang/String;Ljava/util/Map;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.validateUri:Z
2: aload 0
aconst_null
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.userName:Ljava/lang/String;
3: aload 0
aconst_null
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.method:Ljava/lang/String;
4: aload 0
aconst_null
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.uri:Ljava/lang/String;
5: aload 0
aconst_null
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.response:Ljava/lang/String;
6: aload 0
aconst_null
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonce:Ljava/lang/String;
7: aload 0
aconst_null
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nc:Ljava/lang/String;
8: aload 0
aconst_null
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.cnonce:Ljava/lang/String;
9: aload 0
aconst_null
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.realmName:Ljava/lang/String;
10: aload 0
aconst_null
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.qop:Ljava/lang/String;
11: aload 0
aconst_null
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.opaqueReceived:Ljava/lang/String;
12: aload 0
iconst_0
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonceStale:Z
13: aload 0
aload 1
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.opaque:Ljava/lang/String;
14: aload 0
lload 2
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonceValidity:J
15: aload 0
aload 4
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.key:Ljava/lang/String;
16: aload 0
aload 5
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonces:Ljava/util/Map;
17: aload 0
iload 6
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.validateUri:Z
18: return
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/catalina/authenticator/DigestAuthenticator$DigestInfo;
0 19 1 opaque Ljava/lang/String;
0 19 2 nonceValidity J
0 19 4 key Ljava/lang/String;
0 19 5 nonces Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/authenticator/DigestAuthenticator$NonceInfo;>;
0 19 6 validateUri Z
Signature: (Ljava/lang/String;JLjava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/authenticator/DigestAuthenticator$NonceInfo;>;Z)V
MethodParameters:
Name Flags
opaque
nonceValidity
key
nonces
validateUri
public java.lang.String getUsername();
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.authenticator.DigestAuthenticator$DigestInfo.userName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/authenticator/DigestAuthenticator$DigestInfo;
public boolean parse(org.apache.catalina.connector.Request, java.lang.String);
descriptor: (Lorg/apache/catalina/connector/Request;Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
new java.io.StringReader
dup
aload 2
invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
3: invokestatic org.apache.tomcat.util.http.parser.Authorization.parseAuthorizationDigest:(Ljava/io/StringReader;)Ljava/util/Map;
astore 3
start local 3 4: goto 7
end local 3 StackMap locals:
StackMap stack: java.io.IOException
5: pop
6: iconst_0
ireturn
start local 3 7: StackMap locals: java.util.Map
StackMap stack:
aload 3
ifnonnull 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.connector.Request.getMethod:()Ljava/lang/String;
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.method:Ljava/lang/String;
10: aload 0
aload 3
ldc "username"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.userName:Ljava/lang/String;
11: aload 0
aload 3
ldc "realm"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.realmName:Ljava/lang/String;
12: aload 0
aload 3
ldc "nonce"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonce:Ljava/lang/String;
13: aload 0
aload 3
ldc "nc"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nc:Ljava/lang/String;
14: aload 0
aload 3
ldc "cnonce"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.cnonce:Ljava/lang/String;
15: aload 0
aload 3
ldc "qop"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.qop:Ljava/lang/String;
16: aload 0
aload 3
ldc "uri"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.uri:Ljava/lang/String;
17: aload 0
aload 3
ldc "response"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.response:Ljava/lang/String;
18: aload 0
aload 3
ldc "opaque"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.opaqueReceived:Ljava/lang/String;
19: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/apache/catalina/authenticator/DigestAuthenticator$DigestInfo;
0 20 1 request Lorg/apache/catalina/connector/Request;
0 20 2 authorization Ljava/lang/String;
4 5 3 directives Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
7 20 3 directives Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
Exception table:
from to target type
2 4 5 Class java.io.IOException
MethodParameters:
Name Flags
request
authorization
public boolean validate(org.apache.catalina.connector.Request);
descriptor: (Lorg/apache/catalina/connector/Request;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=16, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.userName:Ljava/lang/String;
ifnull 2
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.realmName:Ljava/lang/String;
ifnull 2
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonce:Ljava/lang/String;
ifnull 2
1: aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.uri:Ljava/lang/String;
ifnull 2
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.response:Ljava/lang/String;
ifnonnull 3
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.validateUri:Z
ifeq 21
4: aload 1
invokevirtual org.apache.catalina.connector.Request.getQueryString:()Ljava/lang/String;
astore 3
start local 3 5: aload 3
ifnonnull 8
6: aload 1
invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
astore 2
start local 2 7: goto 9
end local 2 8: StackMap locals: org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo org.apache.catalina.connector.Request top java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 9: StackMap locals: org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo org.apache.catalina.connector.Request java.lang.String java.lang.String
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.uri:Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
10: aload 1
ldc "host"
invokevirtual org.apache.catalina.connector.Request.getHeader:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 11: aload 1
invokevirtual org.apache.catalina.connector.Request.getScheme:()Ljava/lang/String;
astore 5
start local 5 12: aload 4
ifnull 20
aload 2
aload 5
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 20
13: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 6
start local 6 14: aload 6
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: aload 6
ldc "://"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: aload 6
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: aload 6
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.uri:Ljava/lang/String;
aload 6
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
19: iconst_0
ireturn
end local 6 20: StackMap locals: java.lang.String java.lang.String
StackMap stack:
iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 21: StackMap locals: org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo org.apache.catalina.connector.Request
StackMap stack:
aload 1
invokevirtual org.apache.catalina.connector.Request.getContext:()Lorg/apache/catalina/Context;
invokestatic org.apache.catalina.authenticator.DigestAuthenticator.getRealmName:(Lorg/apache/catalina/Context;)Ljava/lang/String;
astore 2
start local 2 22: aload 2
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.realmName:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 24
23: iconst_0
ireturn
24: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.opaque:Ljava/lang/String;
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.opaqueReceived:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 26
25: iconst_0
ireturn
26: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonce:Ljava/lang/String;
bipush 58
invokevirtual java.lang.String.indexOf:(I)I
istore 3
start local 3 27: iload 3
iflt 28
iload 3
iconst_1
iadd
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonce:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
if_icmpne 29
28: StackMap locals: int
StackMap stack:
iconst_0
ireturn
29: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonce:Ljava/lang/String;
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 4
start local 4 30: goto 33
end local 4 StackMap locals:
StackMap stack: java.lang.NumberFormatException
31: pop
32: iconst_0
ireturn
start local 4 33: StackMap locals: long
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonce:Ljava/lang/String;
iload 3
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 6
start local 6 34: invokestatic java.lang.System.currentTimeMillis:()J
lstore 7
start local 7 35: lload 7
lload 4
lsub
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonceValidity:J
lcmp
ifle 43
36: aload 0
iconst_1
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonceStale:Z
37: aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonces:Ljava/util/Map;
dup
astore 9
monitorenter
38: aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonces:Ljava/util/Map;
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonce:Ljava/lang/String;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
39: aload 9
monitorexit
40: goto 43
StackMap locals: org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo org.apache.catalina.connector.Request java.lang.String int long java.lang.String long java.util.Map
StackMap stack: java.lang.Throwable
41: aload 9
monitorexit
42: athrow
43: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokevirtual org.apache.catalina.connector.Request.getRemoteAddr:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 4
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.key:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
44: astore 9
start local 9 45: iconst_1
anewarray byte[]
dup
iconst_0
46: aload 9
getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
aastore
47: invokestatic org.apache.tomcat.util.security.ConcurrentMessageDigest.digestMD5:([[B)[B
astore 10
start local 10 48: aload 10
invokestatic org.apache.tomcat.util.security.MD5Encoder.encode:([B)Ljava/lang/String;
astore 11
start local 11 49: aload 11
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 51
50: iconst_0
ireturn
51: StackMap locals: java.lang.String byte[] java.lang.String
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.qop:Ljava/lang/String;
ifnull 53
ldc "auth"
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.qop:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 53
52: iconst_0
ireturn
53: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.qop:Ljava/lang/String;
ifnonnull 56
54: aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.cnonce:Ljava/lang/String;
ifnonnull 55
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nc:Ljava/lang/String;
ifnull 75
55: StackMap locals:
StackMap stack:
iconst_0
ireturn
56: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.cnonce:Ljava/lang/String;
ifnull 57
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nc:Ljava/lang/String;
ifnonnull 58
57: StackMap locals:
StackMap stack:
iconst_0
ireturn
58: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nc:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
bipush 6
if_icmplt 59
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nc:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
bipush 8
if_icmple 60
59: StackMap locals:
StackMap stack:
iconst_0
ireturn
60: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nc:Ljava/lang/String;
bipush 16
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;I)J
lstore 12
start local 12 61: goto 64
end local 12 StackMap locals:
StackMap stack: java.lang.NumberFormatException
62: pop
63: iconst_0
ireturn
start local 12 64: StackMap locals: long
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonces:Ljava/util/Map;
dup
astore 15
monitorenter
65: aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonces:Ljava/util/Map;
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonce:Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.authenticator.DigestAuthenticator$NonceInfo
astore 14
start local 14 66: aload 15
monitorexit
67: goto 70
end local 14 StackMap locals: org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo org.apache.catalina.connector.Request java.lang.String int long java.lang.String long java.lang.String byte[] java.lang.String long top java.util.Map
StackMap stack: java.lang.Throwable
68: aload 15
monitorexit
69: athrow
start local 14 70: StackMap locals: org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo org.apache.catalina.connector.Request java.lang.String int long java.lang.String long java.lang.String byte[] java.lang.String long org.apache.catalina.authenticator.DigestAuthenticator$NonceInfo
StackMap stack:
aload 14
ifnonnull 73
71: aload 0
iconst_1
putfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonceStale:Z
72: goto 75
73: StackMap locals:
StackMap stack:
aload 14
lload 12
invokevirtual org.apache.catalina.authenticator.DigestAuthenticator$NonceInfo.nonceCountValid:(J)Z
ifne 75
74: iconst_0
ireturn
end local 14 end local 12 75: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 11 end local 10 end local 9 end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 76 0 this Lorg/apache/catalina/authenticator/DigestAuthenticator$DigestInfo;
0 76 1 request Lorg/apache/catalina/connector/Request;
7 8 2 uriQuery Ljava/lang/String;
9 21 2 uriQuery Ljava/lang/String;
5 21 3 query Ljava/lang/String;
11 21 4 host Ljava/lang/String;
12 21 5 scheme Ljava/lang/String;
14 20 6 absolute Ljava/lang/StringBuilder;
22 76 2 lcRealm Ljava/lang/String;
27 76 3 i I
30 31 4 nonceTime J
33 76 4 nonceTime J
34 76 6 md5clientIpTimeKey Ljava/lang/String;
35 76 7 currentTime J
45 76 9 serverIpTimeKey Ljava/lang/String;
48 76 10 buffer [B
49 76 11 md5ServerIpTimeKey Ljava/lang/String;
61 62 12 count J
64 75 12 count J
66 68 14 info Lorg/apache/catalina/authenticator/DigestAuthenticator$NonceInfo;
70 75 14 info Lorg/apache/catalina/authenticator/DigestAuthenticator$NonceInfo;
Exception table:
from to target type
29 30 31 Class java.lang.NumberFormatException
38 40 41 any
41 42 41 any
60 61 62 Class java.lang.NumberFormatException
65 67 68 any
68 69 68 any
MethodParameters:
Name Flags
request
public boolean isNonceStale();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonceStale:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/authenticator/DigestAuthenticator$DigestInfo;
public java.security.Principal authenticate(org.apache.catalina.Realm);
descriptor: (Lorg/apache/catalina/Realm;)Ljava/security/Principal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=5, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.method:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.uri:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 1: iconst_1
anewarray byte[]
dup
iconst_0
2: aload 2
getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
aastore
3: invokestatic org.apache.tomcat.util.security.ConcurrentMessageDigest.digestMD5:([[B)[B
astore 3
start local 3 4: aload 3
invokestatic org.apache.tomcat.util.security.MD5Encoder.encode:([B)Ljava/lang/String;
astore 4
start local 4 5: aload 1
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.userName:Ljava/lang/String;
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.response:Ljava/lang/String;
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nonce:Ljava/lang/String;
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.nc:Ljava/lang/String;
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.cnonce:Ljava/lang/String;
6: aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.qop:Ljava/lang/String;
aload 0
getfield org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo.realmName:Ljava/lang/String;
aload 4
7: invokeinterface org.apache.catalina.Realm.authenticate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Principal;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/catalina/authenticator/DigestAuthenticator$DigestInfo;
0 8 1 realm Lorg/apache/catalina/Realm;
1 8 2 a2 Ljava/lang/String;
4 8 3 buffer [B
5 8 4 md5a2 Ljava/lang/String;
MethodParameters:
Name Flags
realm
}
SourceFile: "DigestAuthenticator.java"
NestHost: org.apache.catalina.authenticator.DigestAuthenticator
InnerClasses:
public DigestInfo = org.apache.catalina.authenticator.DigestAuthenticator$DigestInfo of org.apache.catalina.authenticator.DigestAuthenticator
public NonceInfo = org.apache.catalina.authenticator.DigestAuthenticator$NonceInfo of org.apache.catalina.authenticator.DigestAuthenticator