class freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol
super_class: java.lang.Object
{
private final java.net.Socket s;
descriptor: Ljava/net/Socket;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final freemarker.debug.impl.DebuggerServer this$0;
descriptor: Lfreemarker/debug/impl/DebuggerServer;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(freemarker.debug.impl.DebuggerServer, java.net.Socket);
descriptor: (Lfreemarker/debug/impl/DebuggerServer;Ljava/net/Socket;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol this
start local 2 // java.net.Socket s
0: .line 86
aload 0 /* this */
aload 1
putfield freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol.this$0:Lfreemarker/debug/impl/DebuggerServer;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 87
aload 0 /* this */
aload 2 /* s */
putfield freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol.s:Ljava/net/Socket;
2: .line 88
return
end local 2 // java.net.Socket s
end local 0 // freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/debug/impl/DebuggerServer$DebuggerAuthProtocol;
0 3 2 s Ljava/net/Socket;
MethodParameters:
Name Flags
this$0 final
s
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 // freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol this
0: .line 92
new java.io.ObjectOutputStream
dup
aload 0 /* this */
getfield freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol.s:Ljava/net/Socket;
invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 1 /* out */
start local 1 // java.io.ObjectOutputStream out
1: .line 93
new java.io.ObjectInputStream
dup
aload 0 /* this */
getfield freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol.s:Ljava/net/Socket;
invokevirtual java.net.Socket.getInputStream:()Ljava/io/InputStream;
invokespecial java.io.ObjectInputStream.<init>:(Ljava/io/InputStream;)V
astore 2 /* in */
start local 2 // java.io.ObjectInputStream in
2: .line 94
sipush 512
newarray 8
astore 3 /* challenge */
start local 3 // byte[] challenge
3: .line 95
getstatic freemarker.debug.impl.DebuggerServer.R:Ljava/util/Random;
aload 3 /* challenge */
invokevirtual java.util.Random.nextBytes:([B)V
4: .line 96
aload 1 /* out */
sipush 220
invokevirtual java.io.ObjectOutputStream.writeInt:(I)V
5: .line 97
aload 1 /* out */
aload 3 /* challenge */
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
6: .line 98
ldc "SHA"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 4 /* md */
start local 4 // java.security.MessageDigest md
7: .line 99
aload 4 /* md */
aload 0 /* this */
getfield freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol.this$0:Lfreemarker/debug/impl/DebuggerServer;
getfield freemarker.debug.impl.DebuggerServer.password:[B
invokevirtual java.security.MessageDigest.update:([B)V
8: .line 100
aload 4 /* md */
aload 3 /* challenge */
invokevirtual java.security.MessageDigest.update:([B)V
9: .line 101
aload 2 /* in */
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
checkcast byte[]
astore 5 /* response */
start local 5 // byte[] response
10: .line 102
aload 5 /* response */
aload 4 /* md */
invokevirtual java.security.MessageDigest.digest:()[B
invokestatic java.util.Arrays.equals:([B[B)Z
ifeq 13
11: .line 103
aload 1 /* out */
aload 0 /* this */
getfield freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol.this$0:Lfreemarker/debug/impl/DebuggerServer;
getfield freemarker.debug.impl.DebuggerServer.debuggerStub:Ljava/io/Serializable;
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
12: .line 104
goto 17
13: .line 105
StackMap locals: freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol java.io.ObjectOutputStream java.io.ObjectInputStream byte[] java.security.MessageDigest byte[]
StackMap stack:
aload 1 /* out */
aconst_null
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
end local 5 // byte[] response
end local 4 // java.security.MessageDigest md
end local 3 // byte[] challenge
end local 2 // java.io.ObjectInputStream in
end local 1 // java.io.ObjectOutputStream out
14: .line 107
goto 17
StackMap locals: freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol
StackMap stack: java.lang.Exception
15: astore 1 /* e */
start local 1 // java.lang.Exception e
16: .line 108
getstatic freemarker.debug.impl.DebuggerServer.LOG:Lfreemarker/log/Logger;
new java.lang.StringBuilder
dup
ldc "Connection to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0 /* this */
getfield freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol.s:Ljava/net/Socket;
invokevirtual java.net.Socket.getInetAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " abruply broke"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1 /* e */
invokevirtual freemarker.log.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 // java.lang.Exception e
17: .line 110
StackMap locals:
StackMap stack:
return
end local 0 // freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lfreemarker/debug/impl/DebuggerServer$DebuggerAuthProtocol;
1 14 1 out Ljava/io/ObjectOutputStream;
2 14 2 in Ljava/io/ObjectInputStream;
3 14 3 challenge [B
7 14 4 md Ljava/security/MessageDigest;
10 14 5 response [B
16 17 1 e Ljava/lang/Exception;
Exception table:
from to target type
0 14 15 Class java.lang.Exception
}
SourceFile: "DebuggerServer.java"
NestHost: freemarker.debug.impl.DebuggerServer
InnerClasses:
private DebuggerAuthProtocol = freemarker.debug.impl.DebuggerServer$DebuggerAuthProtocol of freemarker.debug.impl.DebuggerServer