From 39ffede55f79395d6d1298f24ce201dbae262a32 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 10 Apr 2014 18:58:08 -0400
Subject: [PATCH] Simplify version command and output
---
src/main/java/com/gitblit/transport/ssh/SshSessionFactory.java | 42 +++++++++++++++++++++++++-----------------
1 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/gitblit/transport/ssh/SshSessionFactory.java b/src/main/java/com/gitblit/transport/ssh/SshSessionFactory.java
index ef51340..ae6da3f 100644
--- a/src/main/java/com/gitblit/transport/ssh/SshSessionFactory.java
+++ b/src/main/java/com/gitblit/transport/ssh/SshSessionFactory.java
@@ -17,16 +17,15 @@
import java.net.SocketAddress;
-import org.apache.mina.core.future.IoFuture;
-import org.apache.mina.core.future.IoFutureListener;
-import org.apache.mina.core.session.IoSession;
import org.apache.mina.transport.socket.SocketSessionConfig;
-import org.apache.sshd.server.session.ServerSession;
+import org.apache.sshd.common.future.CloseFuture;
+import org.apache.sshd.common.future.SshFutureListener;
+import org.apache.sshd.common.io.IoSession;
+import org.apache.sshd.common.io.mina.MinaSession;
+import org.apache.sshd.common.session.AbstractSession;
import org.apache.sshd.server.session.SessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-import com.gitblit.utils.IdGenerator;
/**
@@ -38,32 +37,41 @@
private final Logger log = LoggerFactory.getLogger(getClass());
- private final IdGenerator idGenerator;
-
- public SshSessionFactory(IdGenerator idGenerator) {
- this.idGenerator = idGenerator;
+ public SshSessionFactory() {
}
@Override
- protected ServerSession createSession(final IoSession io) throws Exception {
+ protected AbstractSession createSession(final IoSession io)
+ throws Exception {
log.info("connection accepted on " + io);
- if (io.getConfig() instanceof SocketSessionConfig) {
- final SocketSessionConfig c = (SocketSessionConfig) io.getConfig();
- c.setKeepAlive(true);
+ if (io instanceof MinaSession) {
+ if (((MinaSession) io).getSession().getConfig() instanceof SocketSessionConfig) {
+ ((SocketSessionConfig) ((MinaSession) io).getSession()
+ .getConfig()).setKeepAlive(true);
+ }
}
- final ServerSession s = (ServerSession) super.createSession(io);
+ final GitblitServerSession s = (GitblitServerSession) super
+ .createSession(io);
SocketAddress peer = io.getRemoteAddress();
SshSession session = new SshSession(idGenerator.next(), peer);
s.setAttribute(SshSession.KEY, session);
- io.getCloseFuture().addListener(new IoFutureListener<IoFuture>() {
+ // TODO(davido): Log a session close without authentication as a
+ // failure.
+ s.addCloseSessionListener(new SshFutureListener<CloseFuture>() {
@Override
- public void operationComplete(IoFuture future) {
+ public void operationComplete(CloseFuture future) {
log.info("connection closed on " + io);
}
});
return s;
}
+
+ @Override
+ protected AbstractSession doCreateSession(IoSession ioSession)
+ throws Exception {
+ return new GitblitServerSession(server, ioSession);
+ }
}
--
Gitblit v1.9.1