public class io.vertx.ext.shell.term.impl.SSHServer implements io.vertx.ext.shell.term.TermServer
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.ext.shell.term.impl.SSHServer
super_class: java.lang.Object
{
private static final int STATUS_STOPPED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int STATUS_STARTING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int STATUS_STARTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int STATUS_STOPPING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private final io.vertx.core.Vertx vertx;
descriptor: Lio/vertx/core/Vertx;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.vertx.ext.shell.term.SSHTermOptions options;
descriptor: Lio/vertx/ext/shell/term/SSHTermOptions;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.vertx.core.Handler<io.vertx.ext.shell.term.Term> termHandler;
descriptor: Lio/vertx/core/Handler;
flags: (0x0002) ACC_PRIVATE
Signature: Lio/vertx/core/Handler<Lio/vertx/ext/shell/term/Term;>;
private org.apache.sshd.server.SshServer nativeServer;
descriptor: Lorg/apache/sshd/server/SshServer;
flags: (0x0002) ACC_PRIVATE
private final java.util.concurrent.atomic.AtomicInteger status;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.vertx.core.impl.ContextInternal listenContext;
descriptor: Lio/vertx/core/impl/ContextInternal;
flags: (0x0002) ACC_PRIVATE
private io.vertx.ext.auth.AuthProvider authProvider;
descriptor: Lio/vertx/ext/auth/AuthProvider;
flags: (0x0002) ACC_PRIVATE
private io.vertx.core.Handler<io.vertx.ext.shell.term.impl.SSHExec> execHandler;
descriptor: Lio/vertx/core/Handler;
flags: (0x0002) ACC_PRIVATE
Signature: Lio/vertx/core/Handler<Lio/vertx/ext/shell/term/impl/SSHExec;>;
public void <init>(io.vertx.core.Vertx, io.vertx.ext.shell.term.SSHTermOptions);
descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/shell/term/SSHTermOptions;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putfield io.vertx.ext.shell.term.impl.SSHServer.status:Ljava/util/concurrent/atomic/AtomicInteger;
2: aload 0
aload 1
putfield io.vertx.ext.shell.term.impl.SSHServer.vertx:Lio/vertx/core/Vertx;
3: aload 0
new io.vertx.ext.shell.term.SSHTermOptions
dup
aload 2
invokespecial io.vertx.ext.shell.term.SSHTermOptions.<init>:(Lio/vertx/ext/shell/term/SSHTermOptions;)V
putfield io.vertx.ext.shell.term.impl.SSHServer.options:Lio/vertx/ext/shell/term/SSHTermOptions;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
0 5 1 vertx Lio/vertx/core/Vertx;
0 5 2 options Lio/vertx/ext/shell/term/SSHTermOptions;
MethodParameters:
Name Flags
vertx
options
public io.vertx.ext.shell.term.SSHTermOptions getOptions();
descriptor: ()Lio/vertx/ext/shell/term/SSHTermOptions;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.options:Lio/vertx/ext/shell/term/SSHTermOptions;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
public org.apache.sshd.server.SshServer getNativeServer();
descriptor: ()Lorg/apache/sshd/server/SshServer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
public io.vertx.core.Handler<io.vertx.ext.shell.term.impl.SSHExec> getExecHandler();
descriptor: ()Lio/vertx/core/Handler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.execHandler:Lio/vertx/core/Handler;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
Signature: ()Lio/vertx/core/Handler<Lio/vertx/ext/shell/term/impl/SSHExec;>;
public io.vertx.ext.shell.term.TermServer setExecHandler(io.vertx.core.Handler<io.vertx.ext.shell.term.impl.SSHExec>);
descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/shell/term/TermServer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.vertx.ext.shell.term.impl.SSHServer.execHandler:Lio/vertx/core/Handler;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
0 2 1 execHandler Lio/vertx/core/Handler<Lio/vertx/ext/shell/term/impl/SSHExec;>;
Signature: (Lio/vertx/core/Handler<Lio/vertx/ext/shell/term/impl/SSHExec;>;)Lio/vertx/ext/shell/term/TermServer;
MethodParameters:
Name Flags
execHandler
public io.vertx.ext.shell.term.TermServer termHandler(io.vertx.core.Handler<io.vertx.ext.shell.term.Term>);
descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/shell/term/TermServer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.vertx.ext.shell.term.impl.SSHServer.termHandler:Lio/vertx/core/Handler;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
0 2 1 handler Lio/vertx/core/Handler<Lio/vertx/ext/shell/term/Term;>;
Signature: (Lio/vertx/core/Handler<Lio/vertx/ext/shell/term/Term;>;)Lio/vertx/ext/shell/term/TermServer;
MethodParameters:
Name Flags
handler
public io.vertx.ext.shell.term.TermServer authProvider(io.vertx.ext.auth.AuthProvider);
descriptor: (Lio/vertx/ext/auth/AuthProvider;)Lio/vertx/ext/shell/term/TermServer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.vertx.ext.shell.term.impl.SSHServer.authProvider:Lio/vertx/ext/auth/AuthProvider;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
0 2 1 provider Lio/vertx/ext/auth/AuthProvider;
MethodParameters:
Name Flags
provider
public io.vertx.ext.shell.term.impl.SSHServer listen(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/shell/term/impl/SSHServer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.status:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicInteger.compareAndSet:(II)Z
ifne 3
1: aload 1
new java.lang.StringBuilder
dup
ldc "Invalid state:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.status:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
2: aload 0
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.options:Lio/vertx/ext/shell/term/SSHTermOptions;
invokevirtual io.vertx.ext.shell.term.SSHTermOptions.getAuthOptions:()Lio/vertx/core/json/JsonObject;
ifnull 5
4: aload 0
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.vertx:Lio/vertx/core/Vertx;
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.options:Lio/vertx/ext/shell/term/SSHTermOptions;
invokevirtual io.vertx.ext.shell.term.SSHTermOptions.getAuthOptions:()Lio/vertx/core/json/JsonObject;
invokestatic io.vertx.ext.shell.impl.ShellAuth.load:(Lio/vertx/core/Vertx;Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/auth/AuthProvider;
putfield io.vertx.ext.shell.term.impl.SSHServer.authProvider:Lio/vertx/ext/auth/AuthProvider;
5: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.options:Lio/vertx/ext/shell/term/SSHTermOptions;
invokevirtual io.vertx.ext.shell.term.SSHTermOptions.getDefaultCharset:()Ljava/lang/String;
invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
astore 2
start local 2 6: aload 0
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.vertx:Lio/vertx/core/Vertx;
invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
checkcast io.vertx.core.impl.ContextInternal
putfield io.vertx.ext.shell.term.impl.SSHServer.listenContext:Lio/vertx/core/impl/ContextInternal;
7: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.vertx:Lio/vertx/core/Vertx;
aload 0
aload 2
invokedynamic handle(Lio/vertx/ext/shell/term/impl/SSHServer;Ljava/nio/charset/Charset;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/ext/shell/term/impl/SSHServer.lambda$0(Ljava/nio/charset/Charset;Lio/vertx/core/Promise;)V (7)
(Lio/vertx/core/Promise;)V
8: aload 1
9: invokeinterface io.vertx.core.Vertx.executeBlocking:(Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
10: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
0 11 1 listenHandler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
6 11 2 defaultCharset Ljava/nio/charset/Charset;
Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/ext/shell/term/impl/SSHServer;
MethodParameters:
Name Flags
listenHandler
public int actualPort();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
invokevirtual org.apache.sshd.server.SshServer.getPort:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
public void close(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
descriptor: (Lio/vertx/core/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.status:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_2
iconst_3
invokevirtual java.util.concurrent.atomic.AtomicInteger.compareAndSet:(II)Z
ifne 3
1: aload 1
new java.lang.StringBuilder
dup
ldc "Invalid state:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.status:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.vertx:Lio/vertx/core/Vertx;
aload 0
aload 1
invokedynamic handle(Lio/vertx/ext/shell/term/impl/SSHServer;Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/ext/shell/term/impl/SSHServer.lambda$8(Lio/vertx/core/Handler;Lio/vertx/core/Promise;)V (7)
(Lio/vertx/core/Promise;)V
4: aload 1
5: invokeinterface io.vertx.core.Vertx.executeBlocking:(Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
0 7 1 completionHandler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
MethodParameters:
Name Flags
completionHandler
public io.vertx.ext.shell.term.TermServer listen(io.vertx.core.Handler);
descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/shell/term/TermServer;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual io.vertx.ext.shell.term.impl.SSHServer.listen:(Lio/vertx/core/Handler;)Lio/vertx/ext/shell/term/impl/SSHServer;
areturn
LocalVariableTable:
Start End Slot Name Signature
private void lambda$0(java.nio.charset.Charset, io.vertx.core.Promise);
descriptor: (Ljava/nio/charset/Charset;Lio/vertx/core/Promise;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=7, locals=12, args_size=3
start local 0 start local 2 0: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.options:Lio/vertx/ext/shell/term/SSHTermOptions;
invokevirtual io.vertx.ext.shell.term.SSHTermOptions.getKeyPairOptions:()Lio/vertx/core/net/KeyCertOptions;
astore 3
start local 3 1: aload 3
instanceof io.vertx.core.net.KeyStoreOptionsBase
ifeq 4
2: aload 3
checkcast io.vertx.core.net.KeyStoreOptionsBase
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.vertx:Lio/vertx/core/Vertx;
invokevirtual io.vertx.core.net.KeyStoreOptionsBase.loadKeyStore:(Lio/vertx/core/Vertx;)Ljava/security/KeyStore;
astore 4
start local 4 3: goto 8
end local 4 StackMap locals: io.vertx.core.net.KeyCertOptions
StackMap stack:
4: aload 3
instanceof io.vertx.core.net.PemKeyCertOptions
ifeq 7
5: aload 3
checkcast io.vertx.core.net.PemKeyCertOptions
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.vertx:Lio/vertx/core/Vertx;
invokevirtual io.vertx.core.net.PemKeyCertOptions.loadKeyStore:(Lio/vertx/core/Vertx;)Ljava/security/KeyStore;
astore 4
start local 4 6: goto 8
end local 4 7: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 8: StackMap locals: java.security.KeyStore
StackMap stack:
aload 4
ifnonnull 10
9: new io.vertx.core.VertxException
dup
ldc "No key pair store configured"
invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
ldc ""
astore 5
start local 5 11: aload 3
instanceof io.vertx.core.net.JksOptions
ifeq 14
12: aload 3
checkcast io.vertx.core.net.JksOptions
invokevirtual io.vertx.core.net.JksOptions.getPassword:()Ljava/lang/String;
astore 5
13: goto 16
StackMap locals: java.lang.String
StackMap stack:
14: aload 3
instanceof io.vertx.core.net.PfxOptions
ifeq 16
15: aload 3
checkcast io.vertx.core.net.PfxOptions
invokevirtual io.vertx.core.net.PfxOptions.getPassword:()Ljava/lang/String;
astore 5
16: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 17: aload 4
invokevirtual java.security.KeyStore.aliases:()Ljava/util/Enumeration;
astore 7
start local 7 18: goto 25
19: StackMap locals: java.util.List java.util.Enumeration
StackMap stack:
aload 7
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 20: aload 4
aload 8
aload 5
invokevirtual java.lang.String.toCharArray:()[C
invokevirtual java.security.KeyStore.getKey:(Ljava/lang/String;[C)Ljava/security/Key;
astore 9
start local 9 21: aload 9
instanceof java.security.PrivateKey
ifeq 25
22: aload 4
aload 8
invokevirtual java.security.KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
astore 10
start local 10 23: aload 10
invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 11
start local 11 24: aload 6
new java.security.KeyPair
dup
aload 11
aload 9
checkcast java.security.PrivateKey
invokespecial java.security.KeyPair.<init>:(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 10 end local 9 end local 8 25: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 19
end local 7 26: new io.vertx.ext.shell.term.impl.SSHServer$2
dup
aload 0
aload 6
invokespecial io.vertx.ext.shell.term.impl.SSHServer$2.<init>:(Lio/vertx/ext/shell/term/impl/SSHServer;Ljava/util/List;)V
astore 7
start local 7 27: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.vertx:Lio/vertx/core/Vertx;
invokeinterface io.vertx.core.Vertx.fileSystem:()Lio/vertx/core/file/FileSystem;
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.options:Lio/vertx/ext/shell/term/SSHTermOptions;
invokevirtual io.vertx.ext.shell.term.SSHTermOptions.getIntputrc:()Ljava/lang/String;
invokestatic io.vertx.ext.shell.term.impl.Helper.loadResource:(Lio/vertx/core/file/FileSystem;Ljava/lang/String;)Lio/vertx/core/buffer/Buffer;
astore 8
start local 8 28: aload 8
ifnonnull 30
29: new io.vertx.core.VertxException
dup
new java.lang.StringBuilder
dup
ldc "Could not load inputrc from "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.options:Lio/vertx/ext/shell/term/SSHTermOptions;
invokevirtual io.vertx.ext.shell.term.SSHTermOptions.getIntputrc:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals: io.vertx.ext.shell.term.impl.SSHServer java.nio.charset.Charset io.vertx.core.Promise io.vertx.core.net.KeyCertOptions java.security.KeyStore java.lang.String java.util.List org.apache.sshd.common.keyprovider.KeyPairProvider io.vertx.core.buffer.Buffer
StackMap stack:
new io.termd.core.readline.Keymap
dup
new java.io.ByteArrayInputStream
dup
aload 8
invokeinterface io.vertx.core.buffer.Buffer.getBytes:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokespecial io.termd.core.readline.Keymap.<init>:(Ljava/io/InputStream;)V
astore 9
start local 9 31: new io.vertx.ext.shell.term.impl.TermConnectionHandler
dup
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.vertx:Lio/vertx/core/Vertx;
aload 9
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.termHandler:Lio/vertx/core/Handler;
invokespecial io.vertx.ext.shell.term.impl.TermConnectionHandler.<init>:(Lio/vertx/core/Vertx;Lio/termd/core/readline/Keymap;Lio/vertx/core/Handler;)V
astore 10
start local 10 32: aload 0
invokestatic org.apache.sshd.server.SshServer.setUpDefaultServer:()Lorg/apache/sshd/server/SshServer;
putfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
33: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
aload 1
aload 10
invokedynamic create(Ljava/nio/charset/Charset;Lio/vertx/ext/shell/term/impl/TermConnectionHandler;)Lorg/apache/sshd/common/Factory;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
io/vertx/ext/shell/term/impl/SSHServer.lambda$1(Ljava/nio/charset/Charset;Lio/vertx/ext/shell/term/impl/TermConnectionHandler;)Lorg/apache/sshd/server/Command; (6)
()Lorg/apache/sshd/server/Command;
invokevirtual org.apache.sshd.server.SshServer.setShellFactory:(Lorg/apache/sshd/common/Factory;)V
34: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.execHandler:Lio/vertx/core/Handler;
astore 11
start local 11 35: aload 11
ifnull 37
36: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
aload 1
aload 11
invokedynamic createCommand(Ljava/nio/charset/Charset;Lio/vertx/core/Handler;)Lorg/apache/sshd/server/CommandFactory;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/String;)Lorg/apache/sshd/server/Command;
io/vertx/ext/shell/term/impl/SSHServer.lambda$3(Ljava/nio/charset/Charset;Lio/vertx/core/Handler;Ljava/lang/String;)Lorg/apache/sshd/server/Command; (6)
(Ljava/lang/String;)Lorg/apache/sshd/server/Command;
invokevirtual org.apache.sshd.server.SshServer.setCommandFactory:(Lorg/apache/sshd/server/CommandFactory;)V
37: StackMap locals: io.termd.core.readline.Keymap io.vertx.ext.shell.term.impl.TermConnectionHandler io.vertx.core.Handler
StackMap stack:
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.options:Lio/vertx/ext/shell/term/SSHTermOptions;
invokevirtual io.vertx.ext.shell.term.SSHTermOptions.getHost:()Ljava/lang/String;
invokevirtual org.apache.sshd.server.SshServer.setHost:(Ljava/lang/String;)V
38: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.options:Lio/vertx/ext/shell/term/SSHTermOptions;
invokevirtual io.vertx.ext.shell.term.SSHTermOptions.getPort:()I
invokevirtual org.apache.sshd.server.SshServer.setPort:(I)V
39: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
aload 7
invokevirtual org.apache.sshd.server.SshServer.setKeyPairProvider:(Lorg/apache/sshd/common/keyprovider/KeyPairProvider;)V
40: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
new io.termd.core.ssh.netty.NettyIoServiceFactoryFactory
dup
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.listenContext:Lio/vertx/core/impl/ContextInternal;
invokeinterface io.vertx.core.impl.ContextInternal.nettyEventLoop:()Lio/netty/channel/EventLoop;
new io.vertx.ext.shell.term.impl.VertxIoHandlerBridge
dup
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.listenContext:Lio/vertx/core/impl/ContextInternal;
invokespecial io.vertx.ext.shell.term.impl.VertxIoHandlerBridge.<init>:(Lio/vertx/core/impl/ContextInternal;)V
invokespecial io.termd.core.ssh.netty.NettyIoServiceFactoryFactory.<init>:(Lio/netty/channel/EventLoopGroup;Lio/termd/core/ssh/netty/NettyIoHandlerBridge;)V
invokevirtual org.apache.sshd.server.SshServer.setIoServiceFactoryFactory:(Lorg/apache/sshd/common/io/IoServiceFactoryFactory;)V
41: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
iconst_2
anewarray org.apache.sshd.common.ServiceFactory
dup
iconst_0
getstatic org.apache.sshd.server.session.ServerConnectionServiceFactory.INSTANCE:Lorg/apache/sshd/server/session/ServerConnectionServiceFactory;
aastore
dup
iconst_1
getstatic io.termd.core.ssh.netty.AsyncUserAuthServiceFactory.INSTANCE:Lio/termd/core/ssh/netty/AsyncUserAuthServiceFactory;
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual org.apache.sshd.server.SshServer.setServiceFactories:(Ljava/util/List;)V
42: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.authProvider:Lio/vertx/ext/auth/AuthProvider;
ifnonnull 44
43: new io.vertx.core.VertxException
dup
ldc "No authenticator"
invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
athrow
44: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
aload 0
invokedynamic authenticate(Lio/vertx/ext/shell/term/impl/SSHServer;)Lorg/apache/sshd/server/auth/password/PasswordAuthenticator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/String;Ljava/lang/String;Lorg/apache/sshd/server/session/ServerSession;)Z
io/vertx/ext/shell/term/impl/SSHServer.lambda$5(Ljava/lang/String;Ljava/lang/String;Lorg/apache/sshd/server/session/ServerSession;)Z (7)
(Ljava/lang/String;Ljava/lang/String;Lorg/apache/sshd/server/session/ServerSession;)Z
invokevirtual org.apache.sshd.server.SshServer.setPasswordAuthenticator:(Lorg/apache/sshd/server/auth/password/PasswordAuthenticator;)V
45: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
invokevirtual org.apache.sshd.server.SshServer.start:()V
46: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.status:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_2
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
47: aload 2
invokeinterface io.vertx.core.Promise.complete:()V
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 48: goto 52
StackMap locals: io.vertx.ext.shell.term.impl.SSHServer java.nio.charset.Charset io.vertx.core.Promise
StackMap stack: java.lang.Exception
49: astore 3
start local 3 50: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.status:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
51: aload 2
aload 3
invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
end local 3 52: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
0 53 2 fut Lio/vertx/core/Promise<Ljava/lang/Void;>;
1 48 3 ksOptions Lio/vertx/core/net/KeyCertOptions;
3 4 4 ks Ljava/security/KeyStore;
6 7 4 ks Ljava/security/KeyStore;
8 48 4 ks Ljava/security/KeyStore;
11 48 5 kpPassword Ljava/lang/String;
17 48 6 keyPairs Ljava/util/List<Ljava/security/KeyPair;>;
18 26 7 it Ljava/util/Enumeration<Ljava/lang/String;>;
20 25 8 alias Ljava/lang/String;
21 25 9 key Ljava/security/Key;
23 25 10 cert Ljava/security/cert/Certificate;
24 25 11 publicKey Ljava/security/PublicKey;
27 48 7 provider Lorg/apache/sshd/common/keyprovider/KeyPairProvider;
28 48 8 inputrc Lio/vertx/core/buffer/Buffer;
31 48 9 keymap Lio/termd/core/readline/Keymap;
32 48 10 connectionHandler Lio/vertx/ext/shell/term/impl/TermConnectionHandler;
35 48 11 execHandler Lio/vertx/core/Handler<Lio/vertx/ext/shell/term/impl/SSHExec;>;
50 52 3 e Ljava/lang/Exception;
Exception table:
from to target type
0 48 49 Class java.lang.Exception
private void lambda$8(io.vertx.core.Handler, io.vertx.core.Promise);
descriptor: (Lio/vertx/core/Handler;Lio/vertx/core/Promise;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 2 0: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
astore 3
start local 3 1: aload 0
aconst_null
putfield io.vertx.ext.shell.term.impl.SSHServer.nativeServer:Lorg/apache/sshd/server/SshServer;
2: aload 3
invokevirtual org.apache.sshd.server.SshServer.close:()V
3: aload 1
invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
end local 3 4: goto 11
StackMap locals:
StackMap stack: java.lang.Exception
5: astore 3
start local 3 6: aload 1
aload 3
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
end local 3 7: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.status:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
goto 12
8: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
9: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.status:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
10: aload 4
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.status:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
12: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
0 13 2 fut Lio/vertx/core/Promise<Ljava/lang/Void;>;
1 4 3 server Lorg/apache/sshd/server/SshServer;
6 7 3 t Ljava/lang/Exception;
Exception table:
from to target type
0 4 5 Class java.lang.Exception
0 7 8 any
private static org.apache.sshd.server.Command lambda$1(java.nio.charset.Charset, io.vertx.ext.shell.term.impl.TermConnectionHandler);
descriptor: (Ljava/nio/charset/Charset;Lio/vertx/ext/shell/term/impl/TermConnectionHandler;)Lorg/apache/sshd/server/Command;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=2, args_size=2
0: new io.termd.core.ssh.TtyCommand
dup
aload 0
aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic accept(Lio/vertx/ext/shell/term/impl/TermConnectionHandler;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/ext/shell/term/impl/TermConnectionHandler.handle(Lio/termd/core/tty/TtyConnection;)V (5)
(Lio/termd/core/tty/TtyConnection;)V
invokespecial io.termd.core.ssh.TtyCommand.<init>:(Ljava/nio/charset/Charset;Ljava/util/function/Consumer;)V
areturn
LocalVariableTable:
Start End Slot Name Signature
private static org.apache.sshd.server.Command lambda$3(java.nio.charset.Charset, io.vertx.core.Handler, java.lang.String);
descriptor: (Ljava/nio/charset/Charset;Lio/vertx/core/Handler;Ljava/lang/String;)Lorg/apache/sshd/server/Command;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=3, args_size=3
start local 2 0: new io.termd.core.ssh.TtyCommand
dup
aload 0
aload 1
aload 2
invokedynamic accept(Lio/vertx/core/Handler;Ljava/lang/String;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/ext/shell/term/impl/SSHServer.lambda$4(Lio/vertx/core/Handler;Ljava/lang/String;Lio/termd/core/tty/TtyConnection;)V (6)
(Lio/termd/core/tty/TtyConnection;)V
invokespecial io.termd.core.ssh.TtyCommand.<init>:(Ljava/nio/charset/Charset;Ljava/util/function/Consumer;)V
1: areturn
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 2 2 command Ljava/lang/String;
private boolean lambda$5(java.lang.String, java.lang.String, org.apache.sshd.server.session.ServerSession);
descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/sshd/server/session/ServerSession;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new io.termd.core.ssh.netty.AsyncAuth
dup
invokespecial io.termd.core.ssh.netty.AsyncAuth.<init>:()V
astore 4
start local 4 1: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.listenContext:Lio/vertx/core/impl/ContextInternal;
aload 0
aload 1
aload 2
aload 4
invokedynamic handle(Lio/vertx/ext/shell/term/impl/SSHServer;Ljava/lang/String;Ljava/lang/String;Lio/termd/core/ssh/netty/AsyncAuth;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/ext/shell/term/impl/SSHServer.lambda$6(Ljava/lang/String;Ljava/lang/String;Lio/termd/core/ssh/netty/AsyncAuth;Ljava/lang/Void;)V (7)
(Ljava/lang/Void;)V
invokeinterface io.vertx.core.impl.ContextInternal.runOnContext:(Lio/vertx/core/Handler;)V
2: aload 4
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
0 3 1 username Ljava/lang/String;
0 3 2 userpass Ljava/lang/String;
0 3 3 session Lorg/apache/sshd/server/session/ServerSession;
1 3 4 auth Lio/termd/core/ssh/netty/AsyncAuth;
Exceptions:
throws org.apache.sshd.server.auth.password.PasswordChangeRequiredException
private static void lambda$4(io.vertx.core.Handler, java.lang.String, io.termd.core.tty.TtyConnection);
descriptor: (Lio/vertx/core/Handler;Ljava/lang/String;Lio/termd/core/tty/TtyConnection;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=3, args_size=3
start local 2 0: aload 0
new io.vertx.ext.shell.term.impl.SSHExec
dup
aload 1
aload 2
invokespecial io.vertx.ext.shell.term.impl.SSHExec.<init>:(Ljava/lang/String;Lio/termd/core/tty/TtyConnection;)V
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
1: return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 2 2 conn Lio/termd/core/tty/TtyConnection;
private void lambda$6(java.lang.String, java.lang.String, io.termd.core.ssh.netty.AsyncAuth, java.lang.Void);
descriptor: (Ljava/lang/String;Ljava/lang/String;Lio/termd/core/ssh/netty/AsyncAuth;Ljava/lang/Void;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 4 0: aload 0
getfield io.vertx.ext.shell.term.impl.SSHServer.authProvider:Lio/vertx/ext/auth/AuthProvider;
new io.vertx.core.json.JsonObject
dup
invokespecial io.vertx.core.json.JsonObject.<init>:()V
ldc "username"
aload 1
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
ldc "password"
aload 2
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
aload 3
invokedynamic handle(Lio/termd/core/ssh/netty/AsyncAuth;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/ext/shell/term/impl/SSHServer.lambda$7(Lio/termd/core/ssh/netty/AsyncAuth;Lio/vertx/core/AsyncResult;)V (6)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.ext.auth.AuthProvider.authenticate:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)V
1: return
end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/shell/term/impl/SSHServer;
0 2 4 v Ljava/lang/Void;
private static void lambda$7(io.termd.core.ssh.netty.AsyncAuth, io.vertx.core.AsyncResult);
descriptor: (Lio/termd/core/ssh/netty/AsyncAuth;Lio/vertx/core/AsyncResult;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
invokevirtual io.termd.core.ssh.netty.AsyncAuth.setAuthed:(Z)V
1: return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 2 1 ar Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/User;>;
}
SourceFile: "SSHServer.java"
NestMembers:
io.vertx.ext.shell.term.impl.SSHServer$1 io.vertx.ext.shell.term.impl.SSHServer$2
InnerClasses:
io.vertx.ext.shell.term.impl.SSHServer$2
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles