diff options
author | Sven Selberg <sven.selberg@sonymobile.com> | 2014-04-24 09:27:32 +0200 |
---|---|---|
committer | Sven Selberg <sven.selberg@sonymobile.com> | 2014-04-24 10:09:23 +0200 |
commit | 67c38c87d9df37e49af6ce4c11729b4eb1c1cf5b (patch) | |
tree | eb176a9c8a527f7f184404c575cf240a2674e41a | |
parent | 52c73b831dd60f4065ffdd3dee80facb80bdbe05 (diff) |
Added global request handlers to SshDaemon
Since sshd 0.10.0 the handling of global requests
is refactored out of [1] ServerConnectionService.globalRequest
method to AbstractConnectionService.globalRequest.
The implementation has been refactored into a list
of RequestHandlers, one for each type of request.
These handlers are never set in SshDaemon constructor
as they should be.
See SshServer.getUpDefaultServer line 503
Change-Id: I7a38145c021538838d11427950db66eb57a50582
-rw-r--r-- | gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java index cf4384463d..40b3db07da 100644 --- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java +++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java @@ -43,6 +43,7 @@ import org.apache.sshd.common.ForwardingFilter; import org.apache.sshd.common.KeyExchange; import org.apache.sshd.common.KeyPairProvider; import org.apache.sshd.common.NamedFactory; +import org.apache.sshd.common.RequestHandler; import org.apache.sshd.common.Session; import org.apache.sshd.common.Signature; import org.apache.sshd.common.SshdSocketAddress; @@ -74,6 +75,7 @@ import org.apache.sshd.common.random.BouncyCastleRandom; import org.apache.sshd.common.random.JceRandom; import org.apache.sshd.common.random.SingletonRandomFactory; import org.apache.sshd.common.session.AbstractSession; +import org.apache.sshd.common.session.ConnectionService; import org.apache.sshd.common.signature.SignatureDSA; import org.apache.sshd.common.signature.SignatureRSA; import org.apache.sshd.common.util.Buffer; @@ -86,6 +88,10 @@ import org.apache.sshd.server.auth.UserAuthPublicKey; import org.apache.sshd.server.auth.gss.GSSAuthenticator; import org.apache.sshd.server.auth.gss.UserAuthGSS; import org.apache.sshd.server.channel.ChannelSession; +import org.apache.sshd.server.global.CancelTcpipForwardHandler; +import org.apache.sshd.server.global.KeepAliveHandler; +import org.apache.sshd.server.global.NoMoreSessionsHandler; +import org.apache.sshd.server.global.TcpipForwardHandler; import org.apache.sshd.server.kex.DHG1; import org.apache.sshd.server.kex.DHG14; import org.apache.sshd.server.session.SessionFactory; @@ -141,6 +147,7 @@ public class SshDaemon extends SshServer implements SshInfo, LifecycleListener { private final List<HostKey> hostKeys; private volatile IoAcceptor acceptor; + @SuppressWarnings("unchecked") @Inject SshDaemon(final CommandFactory commandFactory, final NoShell noShell, final PublickeyAuthenticator userAuth, @@ -248,6 +255,12 @@ public class SshDaemon extends SshServer implements SshInfo, LifecycleListener { return new GerritServerSession(server, ioSession); } }); + setGlobalRequestHandlers(Arrays.<RequestHandler<ConnectionService>> asList( + new KeepAliveHandler(), + new NoMoreSessionsHandler(), + new TcpipForwardHandler(), + new CancelTcpipForwardHandler() + )); hostKeys = computeHostKeys(); } |