You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2015/05/20 11:11:53 UTC
[2/2] mina-sshd git commit: [SSHD-414] Make the source code
(including tests) truly 1.5 compatible
[SSHD-414] Make the source code (including tests) truly 1.5 compatible
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/e2f7ff72
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/e2f7ff72
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/e2f7ff72
Branch: refs/heads/master
Commit: e2f7ff7206284b8d0e1b217a8975b9c61775b178
Parents: a7e2e3f
Author: Lyor Goldstein <lg...@vmware.com>
Authored: Wed May 20 12:11:40 2015 +0300
Committer: Lyor Goldstein <lg...@vmware.com>
Committed: Wed May 20 12:11:40 2015 +0300
----------------------------------------------------------------------
.../java/org/apache/sshd/ClientSession.java | 2 +
.../org/apache/sshd/agent/SshAgentFactory.java | 1 -
.../sshd/agent/common/AbstractAgentClient.java | 3 +-
.../apache/sshd/agent/common/AgentDelegate.java | 5 +
.../sshd/agent/common/AgentForwardSupport.java | 2 +
.../org/apache/sshd/agent/local/AgentImpl.java | 5 +
.../agent/local/ChannelAgentForwarding.java | 4 +-
.../sshd/agent/local/ProxyAgentFactory.java | 3 +
.../sshd/agent/unix/AgentForwardedChannel.java | 2 +
.../org/apache/sshd/agent/unix/AgentServer.java | 10 +-
.../sshd/agent/unix/ChannelAgentForwarding.java | 2 +
.../sshd/client/ClientFactoryManager.java | 1 +
.../org/apache/sshd/client/SessionFactory.java | 1 +
.../org/apache/sshd/client/SftpException.java | 2 +-
.../auth/UserAuthKeyboardInteractive.java | 4 +-
.../sshd/client/channel/ChannelDirectTcpip.java | 7 +-
.../sshd/client/channel/ChannelSession.java | 3 +-
.../sshd/client/channel/ChannelShell.java | 1 +
.../sshd/client/channel/ChannelSubsystem.java | 2 +
.../channel/PtyCapableChannelSession.java | 34 ++--
.../client/future/DefaultConnectFuture.java | 5 +
.../client/kex/AbstractDHClientKeyExchange.java | 1 +
.../sshd/client/scp/DefaultScpClient.java | 4 +-
.../client/session/ClientConnectionService.java | 9 +-
.../sshd/client/session/ClientSessionImpl.java | 2 +-
.../client/session/ClientUserAuthService.java | 6 +
.../client/sftp/SftpFileSystemProvider.java | 195 +++++++++++--------
.../org/apache/sshd/client/sftp/SftpPath.java | 2 +
.../sshd/common/AbstractSessionIoHandler.java | 4 +
.../java/org/apache/sshd/common/Channel.java | 1 +
.../org/apache/sshd/common/KeyPairProvider.java | 1 -
.../java/org/apache/sshd/common/PtyMode.java | 4 +-
.../org/apache/sshd/common/RequestHandler.java | 1 -
.../apache/sshd/common/RuntimeSshException.java | 1 +
.../java/org/apache/sshd/common/Service.java | 3 +-
.../java/org/apache/sshd/common/Session.java | 3 +
.../org/apache/sshd/common/SshConstants.java | 4 -
.../apache/sshd/common/SshdSocketAddress.java | 2 +-
.../apache/sshd/common/digest/BaseDigest.java | 4 +
.../sshd/common/file/root/RootedFileSystem.java | 2 +-
.../sshd/common/file/root/RootedPath.java | 2 +
.../apache/sshd/common/file/util/BasePath.java | 24 +++
.../virtualfs/VirtualFileSystemFactory.java | 1 +
.../common/forward/DefaultTcpipForwarder.java | 20 +-
.../forward/DefaultTcpipForwarderFactory.java | 4 +-
.../apache/sshd/common/forward/SocksProxy.java | 13 +-
.../sshd/common/forward/TcpipClientChannel.java | 7 +-
.../sshd/common/forward/TcpipServerChannel.java | 20 +-
.../sshd/common/future/DefaultCloseFuture.java | 4 +-
.../org/apache/sshd/common/io/IoSession.java | 1 +
.../sshd/common/io/mina/MinaAcceptor.java | 6 +
.../sshd/common/io/mina/MinaConnector.java | 7 +
.../apache/sshd/common/io/mina/MinaService.java | 19 +-
.../apache/sshd/common/io/mina/MinaSession.java | 21 +-
.../apache/sshd/common/io/mina/MinaSupport.java | 2 +
.../java/org/apache/sshd/common/kex/DHG.java | 3 +
.../common/kex/dh/AbstractDHKeyExchange.java | 4 +
.../session/AbstractConnectionService.java | 33 +++-
.../sshd/common/session/ConnectionService.java | 2 -
.../sshd/common/util/EventListenerUtils.java | 1 +
.../apache/sshd/common/util/SecurityUtils.java | 2 +
.../apache/sshd/common/util/SelectorUtils.java | 12 +-
.../apache/sshd/common/util/SttySupport.java | 8 +-
.../org/apache/sshd/server/AsyncCommand.java | 4 -
.../auth/CachingPublicKeyAuthenticator.java | 21 +-
.../sshd/server/auth/gss/CredentialHelper.java | 8 +-
.../server/channel/ChannelDataReceiver.java | 1 +
.../server/channel/OpenChannelException.java | 1 +
.../sshd/server/command/UnknownCommand.java | 8 +-
.../global/CancelTcpipForwardHandler.java | 1 +
.../sshd/server/global/KeepAliveHandler.java | 2 +-
.../server/global/NoMoreSessionsHandler.java | 2 +-
.../sshd/server/global/TcpipForwardHandler.java | 1 +
.../server/jaas/JaasPasswordAuthenticator.java | 2 -
.../server/kex/AbstractDHServerKeyExchange.java | 2 +
.../server/session/ServerConnectionService.java | 4 +
.../server/session/ServerUserAuthService.java | 17 +-
.../sshd/server/session/SessionFactory.java | 1 +
.../sshd/server/shell/InvertedShellWrapper.java | 8 +
.../sshd/server/x11/X11ForwardSupport.java | 4 +-
.../deprecated/ClientUserAuthServiceOld.java | 8 +-
.../sshd/deprecated/UserAuthPassword.java | 4 +-
82 files changed, 465 insertions(+), 198 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/ClientSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/ClientSession.java b/sshd-core/src/main/java/org/apache/sshd/ClientSession.java
index e1d587c..fca6b4a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/ClientSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/ClientSession.java
@@ -214,6 +214,7 @@ public interface ClientSession extends Session {
/**
* Close this session.
*/
+ @Override
CloseFuture close(boolean immediately);
/**
@@ -224,6 +225,7 @@ public interface ClientSession extends Session {
/**
* Return ClientFactoryManager for this session.
*/
+ @Override
ClientFactoryManager getFactoryManager();
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentFactory.java b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentFactory.java
index ff50ac5..7fb8ebc 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentFactory.java
@@ -23,7 +23,6 @@ import java.io.IOException;
import org.apache.sshd.common.Channel;
import org.apache.sshd.common.FactoryManager;
import org.apache.sshd.common.NamedFactory;
-import org.apache.sshd.common.Session;
import org.apache.sshd.common.session.ConnectionService;
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/agent/common/AbstractAgentClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/common/AbstractAgentClient.java b/sshd-core/src/main/java/org/apache/sshd/agent/common/AbstractAgentClient.java
index 6f68856..44d6c23 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/common/AbstractAgentClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/common/AbstractAgentClient.java
@@ -33,11 +33,12 @@ import java.security.PublicKey;
import java.util.List;
import org.apache.sshd.agent.SshAgent;
+import org.apache.sshd.common.util.AbstractLoggingBean;
import org.apache.sshd.common.util.KeyUtils;
import org.apache.sshd.common.util.buffer.Buffer;
import org.apache.sshd.common.util.buffer.ByteArrayBuffer;
-public abstract class AbstractAgentClient {
+public abstract class AbstractAgentClient extends AbstractLoggingBean {
private final Buffer buffer = new ByteArrayBuffer();
private final SshAgent agent;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentDelegate.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentDelegate.java b/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentDelegate.java
index c3ef510..26df439 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentDelegate.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentDelegate.java
@@ -38,22 +38,27 @@ public class AgentDelegate implements SshAgent {
// ignored
}
+ @Override
public List<Pair<PublicKey, String>> getIdentities() throws IOException {
return agent.getIdentities();
}
+ @Override
public byte[] sign(PublicKey key, byte[] data) throws IOException {
return agent.sign(key, data);
}
+ @Override
public void addIdentity(KeyPair key, String comment) throws IOException {
agent.addIdentity(key, comment);
}
+ @Override
public void removeIdentity(PublicKey key) throws IOException {
agent.removeIdentity(key);
}
+ @Override
public void removeAllIdentities() throws IOException {
agent.removeAllIdentities();
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentForwardSupport.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentForwardSupport.java b/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentForwardSupport.java
index 38d75ce..8184498 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentForwardSupport.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentForwardSupport.java
@@ -52,6 +52,7 @@ public class AgentForwardSupport extends CloseableUtils.AbstractCloseable {
}
}
+ @Override
public synchronized void close() throws IOException {
if (agentId != null) {
agentId = null;
@@ -70,6 +71,7 @@ public class AgentForwardSupport extends CloseableUtils.AbstractCloseable {
super.doCloseImmediately();
}
+ @Override
public String toString() {
return getClass().getSimpleName() + "[" + service.getSession() + "]";
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentImpl.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentImpl.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentImpl.java
index 6385d9a..d4c6850 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentImpl.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentImpl.java
@@ -42,6 +42,7 @@ public class AgentImpl implements SshAgent {
private final List<Pair<KeyPair, String>> keys = new ArrayList<Pair<KeyPair, String>>();
private boolean closed;
+ @Override
public List<Pair<PublicKey, String>> getIdentities() throws IOException {
if (closed) {
throw new SshException("Agent closed");
@@ -53,6 +54,7 @@ public class AgentImpl implements SshAgent {
return pks;
}
+ @Override
public byte[] sign(PublicKey key, byte[] data) throws IOException {
if (closed) {
throw new SshException("Agent closed");
@@ -83,6 +85,7 @@ public class AgentImpl implements SshAgent {
}
}
+ @Override
public void addIdentity(KeyPair key, String comment) throws IOException {
if (closed) {
throw new SshException("Agent closed");
@@ -90,6 +93,7 @@ public class AgentImpl implements SshAgent {
keys.add(new Pair<KeyPair, String>(key, comment));
}
+ @Override
public void removeIdentity(PublicKey key) throws IOException {
if (closed) {
throw new SshException("Agent closed");
@@ -101,6 +105,7 @@ public class AgentImpl implements SshAgent {
keys.remove(kp);
}
+ @Override
public void removeAllIdentities() throws IOException {
if (closed) {
throw new SshException("Agent closed");
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
index e06298c..5b59be4 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
@@ -67,6 +67,7 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
private AgentClient client;
public ChannelAgentForwarding() {
+ super();
}
@Override
@@ -101,6 +102,7 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
public CloseFuture close(boolean immediately) {
return super.close(immediately).addListener(new SshFutureListener<CloseFuture>() {
@Override
+ @SuppressWarnings("synthetic-access")
public void operationComplete(CloseFuture sshFuture) {
closeImmediately0();
}
@@ -123,8 +125,8 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
throw new UnsupportedOperationException("AgentForward channel does not support extended data");
}
+ @SuppressWarnings("synthetic-access")
protected class AgentClient extends AbstractAgentClient {
-
public AgentClient() {
super(agent);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/agent/local/ProxyAgentFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/ProxyAgentFactory.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/ProxyAgentFactory.java
index ec93844..6f5e307 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/ProxyAgentFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/ProxyAgentFactory.java
@@ -38,10 +38,12 @@ public class ProxyAgentFactory implements SshAgentFactory {
private final Map<String, AgentServerProxy> proxies = new ConcurrentHashMap<String, AgentServerProxy>();
+ @Override
public NamedFactory<Channel> getChannelForwardingFactory() {
return new ChannelAgentForwarding.ChannelAgentForwardingFactory();
}
+ @Override
public SshAgent createClient(FactoryManager manager) throws IOException {
String proxyId = FactoryManagerUtils.getString(manager, SshAgent.SSH_AUTHSOCKET_ENV_NAME);
if (GenericUtils.isEmpty(proxyId)) {
@@ -56,6 +58,7 @@ public class ProxyAgentFactory implements SshAgentFactory {
return proxy.createClient();
}
+ @Override
public SshAgentServer createServer(ConnectionService service) throws IOException {
Session session = service.getSession();
if (!(session instanceof ServerSession)) {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentForwardedChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentForwardedChannel.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentForwardedChannel.java
index 486c837..418b05d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentForwardedChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentForwardedChannel.java
@@ -35,6 +35,7 @@ public class AgentForwardedChannel extends AbstractClientChannel implements Runn
this.socket = socket;
}
+ @Override
public void run() {
try {
byte[] buf = new byte[1024];
@@ -69,6 +70,7 @@ public class AgentForwardedChannel extends AbstractClientChannel implements Runn
super.doCloseImmediately();
}
+ @Override
protected synchronized void doWriteData(byte[] data, int off, int len) throws IOException {
localWindow.consumeAndCheck(len);
int result = Socket.send(socket, data, off, len);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
index 4536df0..52146da 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
@@ -24,6 +24,7 @@ import java.io.IOException;
import org.apache.sshd.agent.SshAgent;
import org.apache.sshd.agent.common.AbstractAgentClient;
import org.apache.sshd.agent.local.AgentImpl;
+import org.apache.sshd.common.util.AbstractLoggingBean;
import org.apache.sshd.common.util.buffer.Buffer;
import org.apache.sshd.common.util.buffer.ByteArrayBuffer;
import org.apache.tomcat.jni.Local;
@@ -35,7 +36,7 @@ import org.apache.tomcat.jni.Status;
/**
* A server for an SSH Agent
*/
-public class AgentServer implements Closeable {
+public class AgentServer extends AbstractLoggingBean implements Closeable {
private final SshAgent agent;
private String authSocket;
@@ -69,6 +70,7 @@ public class AgentServer implements Closeable {
throwException(result);
}
thread = new Thread() {
+ @SuppressWarnings("synthetic-access")
@Override
public void run() {
try {
@@ -78,7 +80,7 @@ public class AgentServer implements Closeable {
new SshAgentSession(clientSock, agent);
}
} catch (Exception e) {
- e.printStackTrace();
+ log.error("Failed to run session", e);
}
}
};
@@ -102,6 +104,7 @@ public class AgentServer implements Closeable {
new Thread(this).start();
}
+ @SuppressWarnings("synthetic-access")
@Override
public void run() {
try {
@@ -116,12 +119,13 @@ public class AgentServer implements Closeable {
messageReceived(new ByteArrayBuffer(buf, 0, result));
}
} catch (Exception e) {
- e.printStackTrace();
+ log.error("Failed to process", e);
} finally {
Socket.close(socket);
}
}
+ @SuppressWarnings("synthetic-access")
@Override
protected void reply(Buffer buf) throws IOException {
int result = Socket.send(socket, buf.array(), buf.rpos(), buf.available());
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
index decd46c..1913652 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
@@ -83,6 +83,7 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
throwException(result);
}
thread = new Thread() {
+ @SuppressWarnings("synthetic-access")
@Override
public void run() {
try {
@@ -124,6 +125,7 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
@Override
public CloseFuture close(boolean immediately) {
return super.close(immediately).addListener(new SshFutureListener<CloseFuture>() {
+ @SuppressWarnings("synthetic-access")
@Override
public void operationComplete(CloseFuture sshFuture) {
closeImmediately0();
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/ClientFactoryManager.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/ClientFactoryManager.java b/sshd-core/src/main/java/org/apache/sshd/client/ClientFactoryManager.java
index 2121ae7..a9014ed 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/ClientFactoryManager.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/ClientFactoryManager.java
@@ -68,6 +68,7 @@ public interface ClientFactoryManager extends FactoryManager {
*
* @return A <code>TcpipForwarderFactory</code>
*/
+ @Override
TcpipForwarderFactory getTcpipForwarderFactory();
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/SessionFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/SessionFactory.java b/sshd-core/src/main/java/org/apache/sshd/client/SessionFactory.java
index c5b3885..c5d011a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/SessionFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/SessionFactory.java
@@ -39,6 +39,7 @@ public class SessionFactory extends AbstractSessionFactory {
this.client = client;
}
+ @Override
protected AbstractSession doCreateSession(IoSession ioSession) throws Exception {
return new ClientSessionImpl(client, ioSession);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/SftpException.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/SftpException.java b/sshd-core/src/main/java/org/apache/sshd/client/SftpException.java
index 80e9064..f06d406 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/SftpException.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/SftpException.java
@@ -24,7 +24,7 @@ import java.io.IOException;
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/
public class SftpException extends IOException {
-
+ private static final long serialVersionUID = 8096963562429466995L;
private final int status;
public SftpException(int status, String msg) {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthKeyboardInteractive.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthKeyboardInteractive.java b/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthKeyboardInteractive.java
index b27b182..241381b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthKeyboardInteractive.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthKeyboardInteractive.java
@@ -111,7 +111,9 @@ public class UserAuthKeyboardInteractive extends AbstractLoggingBean implements
String name = buffer.getString();
String instruction = buffer.getString();
String language_tag = buffer.getString();
- log.info("Received {} {} {}", new Object[]{name, instruction, language_tag});
+ if (log.isDebugEnabled()) {
+ log.debug("SSH_MSG_USERAUTH_INFO_REQUEST {} {} {}", name, instruction, language_tag);
+ }
int num = buffer.getInt();
String[] prompt = new String[num];
boolean[] echo = new boolean[num];
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
index bb3c94f..da3f0ad 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
@@ -19,8 +19,6 @@
package org.apache.sshd.client.channel;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
import java.net.InetAddress;
import java.net.UnknownHostException;
@@ -69,7 +67,10 @@ public class ChannelDirectTcpip extends AbstractClientChannel {
throw new SshException("Session has been closed");
}
openFuture = new DefaultOpenFuture(lock);
- log.info("Send SSH_MSG_CHANNEL_OPEN on channel {}", id);
+ if (log.isDebugEnabled()) {
+ log.debug("Send SSH_MSG_CHANNEL_OPEN on channel {}", Integer.valueOf(id));
+ }
+
Buffer buffer = session.createBuffer(SshConstants.SSH_MSG_CHANNEL_OPEN);
buffer.putString(type);
buffer.putInt(id);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java
index fe254fc..91d6153 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java
@@ -46,6 +46,7 @@ public class ChannelSession extends AbstractClientChannel {
protected void doOpen() throws IOException {
if (streaming == Streaming.Async) {
asyncIn = new ChannelAsyncOutputStream(this, SshConstants.SSH_MSG_CHANNEL_DATA) {
+ @SuppressWarnings("synthetic-access")
@Override
protected CloseFuture doCloseGracefully() {
try {
@@ -113,7 +114,7 @@ public class ChannelSession extends AbstractClientChannel {
}
} catch (Exception e) {
if (!isClosing()) {
- log.info("Caught exception", e);
+ log.debug("Caught exception", e);
close(false);
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
index f9a1c25..f7d24e7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
@@ -34,6 +34,7 @@ public class ChannelShell extends PtyCapableChannelSession {
super(true);
}
+ @Override
protected void doOpen() throws IOException {
doOpenPty();
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSubsystem.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSubsystem.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSubsystem.java
index 1073b05..9250847 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSubsystem.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSubsystem.java
@@ -41,6 +41,7 @@ public class ChannelSubsystem extends ChannelSession {
this.subsystem = subsystem;
}
+ @Override
protected void doOpen() throws IOException {
log.debug("Send SSH_MSG_CHANNEL_REQUEST exec");
Buffer buffer = session.createBuffer(SshConstants.SSH_MSG_CHANNEL_REQUEST);
@@ -55,6 +56,7 @@ public class ChannelSubsystem extends ChannelSession {
public void onClose(final Runnable run) {
closeFuture.addListener(new SshFutureListener<CloseFuture>() {
+ @Override
public void operationComplete(CloseFuture future) {
run.run();
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/channel/PtyCapableChannelSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/PtyCapableChannelSession.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/PtyCapableChannelSession.java
index 2c7448b..a345b8b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/PtyCapableChannelSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/PtyCapableChannelSession.java
@@ -58,13 +58,13 @@ public class PtyCapableChannelSession extends ChannelSession {
ptyHeight = 480;
// Set up default pty modes
ptyModes = new HashMap<PtyMode, Integer>();
- ptyModes.put(PtyMode.ISIG, 1);
- ptyModes.put(PtyMode.ICANON, 1);
- ptyModes.put(PtyMode.ECHO, 1);
- ptyModes.put(PtyMode.ECHOE, 1);
- ptyModes.put(PtyMode.ECHOK, 1);
- ptyModes.put(PtyMode.ECHONL, 0);
- ptyModes.put(PtyMode.NOFLSH, 0);
+ ptyModes.put(PtyMode.ISIG, Integer.valueOf(1));
+ ptyModes.put(PtyMode.ICANON, Integer.valueOf(1));
+ ptyModes.put(PtyMode.ECHO, Integer.valueOf(1));
+ ptyModes.put(PtyMode.ECHOE, Integer.valueOf(1));
+ ptyModes.put(PtyMode.ECHOK, Integer.valueOf(1));
+ ptyModes.put(PtyMode.ECHONL, Integer.valueOf(0));
+ ptyModes.put(PtyMode.NOFLSH, Integer.valueOf(0));
}
public void setupSensibleDefaultPty() {
@@ -153,7 +153,9 @@ public class PtyCapableChannelSession extends ChannelSession {
Buffer buffer;
if (agentForwarding) {
- log.debug("Send agent forwarding request");
+ if (log.isDebugEnabled()) {
+ log.debug("Send agent forwarding request - recipient={}", Integer.valueOf(recipient));
+ }
buffer = session.createBuffer(SshConstants.SSH_MSG_CHANNEL_REQUEST);
buffer.putInt(recipient);
buffer.putString("auth-agent-req@openssh.com");
@@ -162,7 +164,12 @@ public class PtyCapableChannelSession extends ChannelSession {
}
if (usePty) {
- log.debug("Send SSH_MSG_CHANNEL_REQUEST pty-req");
+ if (log.isDebugEnabled()) {
+ log.debug("Send SSH_MSG_CHANNEL_REQUEST pty-req: type={}, cols={}, lines={}, height={}, width={}, modes={}",
+ ptyType, Integer.valueOf(ptyColumns), Integer.valueOf(ptyLines),
+ Integer.valueOf(ptyHeight), Integer.valueOf(ptyWidth), ptyModes);
+ }
+
buffer = session.createBuffer(SshConstants.SSH_MSG_CHANNEL_REQUEST);
buffer.putInt(recipient);
buffer.putString("pty-req");
@@ -172,10 +179,13 @@ public class PtyCapableChannelSession extends ChannelSession {
buffer.putInt(ptyLines);
buffer.putInt(ptyHeight);
buffer.putInt(ptyWidth);
+
Buffer modes = new ByteArrayBuffer();
- for (PtyMode mode : ptyModes.keySet()) {
+ for (Map.Entry<PtyMode,? extends Number> modeEntry : ptyModes.entrySet()) {
+ PtyMode mode = modeEntry.getKey();
+ Number value = modeEntry.getValue();
modes.putByte((byte) mode.toInt());
- modes.putInt(ptyModes.get(mode));
+ modes.putInt(value.longValue());
}
modes.putByte((byte) 0);
buffer.putBytes(modes.getCompactData());
@@ -183,7 +193,7 @@ public class PtyCapableChannelSession extends ChannelSession {
}
if (!env.isEmpty()) {
- log.debug("Send SSH_MSG_CHANNEL_REQUEST env");
+ log.debug("Send SSH_MSG_CHANNEL_REQUEST env: {}", env);
for (Map.Entry<String, String> entry : env.entrySet()) {
buffer = session.createBuffer(SshConstants.SSH_MSG_CHANNEL_REQUEST);
buffer.putInt(recipient);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
index 34819f4..547890c 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
@@ -33,6 +33,7 @@ public class DefaultConnectFuture extends DefaultSshFuture<ConnectFuture> implem
super(lock);
}
+ @Override
public ClientSession getSession() {
Object v = getValue();
if (v instanceof RuntimeException) {
@@ -48,6 +49,7 @@ public class DefaultConnectFuture extends DefaultSshFuture<ConnectFuture> implem
}
}
+ @Override
public Throwable getException() {
Object v = getValue();
if (v instanceof Throwable) {
@@ -57,10 +59,12 @@ public class DefaultConnectFuture extends DefaultSshFuture<ConnectFuture> implem
}
}
+ @Override
public boolean isConnected() {
return getValue() instanceof ClientSession;
}
+ @Override
public void setSession(ClientSession session) {
if (session == null) {
throw new NullPointerException("session");
@@ -68,6 +72,7 @@ public class DefaultConnectFuture extends DefaultSshFuture<ConnectFuture> implem
setValue(session);
}
+ @Override
public void setException(Throwable exception) {
if (exception == null) {
throw new NullPointerException("exception");
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/kex/AbstractDHClientKeyExchange.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/kex/AbstractDHClientKeyExchange.java b/sshd-core/src/main/java/org/apache/sshd/client/kex/AbstractDHClientKeyExchange.java
index 077f159..f55943f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/kex/AbstractDHClientKeyExchange.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/kex/AbstractDHClientKeyExchange.java
@@ -46,6 +46,7 @@ public abstract class AbstractDHClientKeyExchange extends AbstractDHKeyExchange
session = (ClientSessionImpl) s;
}
+ @Override
public PublicKey getServerKey() {
return serverKey;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/scp/DefaultScpClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/scp/DefaultScpClient.java b/sshd-core/src/main/java/org/apache/sshd/client/scp/DefaultScpClient.java
index e42cf80..9c72dda 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/scp/DefaultScpClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/scp/DefaultScpClient.java
@@ -135,6 +135,7 @@ public class DefaultScpClient extends AbstractScpClient {
public void upload(String[] local, String remote, Collection<Option> options) throws IOException {
final Collection<String> paths=Arrays.asList(ValidateUtils.checkNotNullAndNotEmpty(local, "Invalid argument local: %s", (Object) local));
runUpload(remote, options, paths, new ScpOperationExecutor<String>() {
+ @Override
public void execute(ScpHelper helper, Collection<String> local, Collection<Option> options) throws IOException {
helper.send(local,
options.contains(Option.Recursive),
@@ -146,8 +147,9 @@ public class DefaultScpClient extends AbstractScpClient {
@Override
public void upload(Path[] local, String remote, Collection<Option> options) throws IOException {
- final Collection<Path> paths=Arrays.asList(ValidateUtils.checkNotNullAndNotEmpty(local, "Invalid argument local: %s", local));
+ final Collection<Path> paths=Arrays.asList(ValidateUtils.checkNotNullAndNotEmpty(local, "Invalid argument local: %s", (Object) local));
runUpload(remote, options, paths, new ScpOperationExecutor<Path>() {
+ @Override
public void execute(ScpHelper helper, Collection<Path> local, Collection<Option> options) throws IOException {
helper.sendPaths(local,
options.contains(Option.Recursive),
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/session/ClientConnectionService.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientConnectionService.java b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientConnectionService.java
index d9988f2..10654d8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientConnectionService.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientConnectionService.java
@@ -45,10 +45,12 @@ public class ClientConnectionService extends AbstractConnectionService {
public static class Factory implements ServiceFactory {
+ @Override
public String getName() {
return "ssh-connection";
}
+ @Override
public Service create(Session session) throws IOException {
return new ClientConnectionService(session);
}
@@ -75,11 +77,14 @@ public class ClientConnectionService extends AbstractConnectionService {
FactoryManager manager = session.getFactoryManager();
ScheduledExecutorService service = manager.getScheduledExecutorService();
service.scheduleAtFixedRate(new Runnable() {
+ @Override
public void run() {
sendHeartBeat();
}
}, interval, interval, TimeUnit.MILLISECONDS);
- log.debug("startHeartbeat - started at interval={}", interval);
+ if (log.isDebugEnabled()) {
+ log.debug("startHeartbeat - started at interval={}", Long.valueOf(interval));
+ }
}
}
@@ -96,11 +101,13 @@ public class ClientConnectionService extends AbstractConnectionService {
}
// TODO: remove from interface
+ @Override
public String initAgentForward() throws IOException {
throw new IllegalStateException("Server side operation");
}
// TODO: remove from interface
+ @Override
public String createX11Display(boolean singleConnection, String authenticationProtocol, String authenticationCookie, int screen) throws IOException {
throw new IllegalStateException("Server side operation");
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java
index beac954..6761a88 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java
@@ -86,7 +86,7 @@ public class ClientSessionImpl extends AbstractSession implements ClientSession
public ClientSessionImpl(ClientFactoryManager client, IoSession session) throws Exception {
super(false, client, session);
- log.info("Client session created");
+ log.info("Client session created: {}", session);
// Need to set the initial service early as calling code likes to start trying to
// manipulate it before the connection has even been established. For instance, to
// set the authPassword.
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/session/ClientUserAuthService.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientUserAuthService.java b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientUserAuthService.java
index 3e8d64d..d36251f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientUserAuthService.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientUserAuthService.java
@@ -48,10 +48,12 @@ public class ClientUserAuthService extends CloseableUtils.AbstractCloseable impl
public static class Factory implements ServiceFactory {
+ @Override
public String getName() {
return "ssh-userauth";
}
+ @Override
public Service create(Session session) throws IOException {
return new ClientUserAuthService(session);
}
@@ -98,11 +100,14 @@ public class ClientUserAuthService extends CloseableUtils.AbstractCloseable impl
}
}
+ @Override
public ClientSessionImpl getSession() {
return session;
}
+ @Override
public void start() {
+ // ignored
}
public AuthFuture auth(List<Object> identities, String service) throws IOException {
@@ -120,6 +125,7 @@ public class ClientUserAuthService extends CloseableUtils.AbstractCloseable impl
return authFuture;
}
+ @Override
public void process(byte cmd, Buffer buffer) throws Exception {
if (this.authFuture.isSuccess()) {
throw new IllegalStateException("UserAuth message delivered to authenticated client");
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/sftp/SftpFileSystemProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/sftp/SftpFileSystemProvider.java b/sshd-core/src/main/java/org/apache/sshd/client/sftp/SftpFileSystemProvider.java
index c765712..ec3c2f3 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/sftp/SftpFileSystemProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/sftp/SftpFileSystemProvider.java
@@ -18,6 +18,17 @@
*/
package org.apache.sshd.client.sftp;
+import static org.apache.sshd.common.sftp.SftpConstants.SFTP_V3;
+import static org.apache.sshd.common.sftp.SftpConstants.S_IRGRP;
+import static org.apache.sshd.common.sftp.SftpConstants.S_IROTH;
+import static org.apache.sshd.common.sftp.SftpConstants.S_IRUSR;
+import static org.apache.sshd.common.sftp.SftpConstants.S_IWGRP;
+import static org.apache.sshd.common.sftp.SftpConstants.S_IWOTH;
+import static org.apache.sshd.common.sftp.SftpConstants.S_IWUSR;
+import static org.apache.sshd.common.sftp.SftpConstants.S_IXGRP;
+import static org.apache.sshd.common.sftp.SftpConstants.S_IXOTH;
+import static org.apache.sshd.common.sftp.SftpConstants.S_IXUSR;
+
import java.io.IOException;
import java.io.InputStream;
import java.io.InterruptedIOException;
@@ -34,7 +45,6 @@ import java.nio.file.FileStore;
import java.nio.file.FileSystem;
import java.nio.file.FileSystemAlreadyExistsException;
import java.nio.file.FileSystemNotFoundException;
-import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.NoSuchFileException;
import java.nio.file.OpenOption;
@@ -53,6 +63,7 @@ import java.nio.file.attribute.PosixFileAttributes;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.UserPrincipal;
import java.nio.file.spi.FileSystemProvider;
+import java.util.Collection;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
@@ -70,29 +81,22 @@ import org.apache.sshd.client.SftpException;
import org.apache.sshd.common.SshException;
import org.apache.sshd.common.config.SshConfigFileReader;
import org.apache.sshd.common.sftp.SftpConstants;
+import org.apache.sshd.common.util.GenericUtils;
import org.apache.sshd.common.util.IoUtils;
-
-import static org.apache.sshd.common.sftp.SftpConstants.SFTP_V3;
-import static org.apache.sshd.common.sftp.SftpConstants.S_IRGRP;
-import static org.apache.sshd.common.sftp.SftpConstants.S_IROTH;
-import static org.apache.sshd.common.sftp.SftpConstants.S_IRUSR;
-import static org.apache.sshd.common.sftp.SftpConstants.S_IWGRP;
-import static org.apache.sshd.common.sftp.SftpConstants.S_IWOTH;
-import static org.apache.sshd.common.sftp.SftpConstants.S_IWUSR;
-import static org.apache.sshd.common.sftp.SftpConstants.S_IXGRP;
-import static org.apache.sshd.common.sftp.SftpConstants.S_IXOTH;
-import static org.apache.sshd.common.sftp.SftpConstants.S_IXUSR;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class SftpFileSystemProvider extends FileSystemProvider {
-
- final SshClient client;
- final Map<String, SftpFileSystem> fileSystems = new HashMap<String, SftpFileSystem>();
+ private final SshClient client;
+ private final Map<String, SftpFileSystem> fileSystems = new HashMap<String, SftpFileSystem>();
+ protected final Logger log;
public SftpFileSystemProvider() {
this(null);
}
public SftpFileSystemProvider(SshClient client) {
+ this.log = LoggerFactory.getLogger(getClass());
if (client == null) {
// TODO: make this configurable using system properties
client = SshBuilder.client().build();
@@ -477,6 +481,7 @@ public class SftpFileSystemProvider extends FileSystemProvider {
return "view";
}
+ @SuppressWarnings("synthetic-access")
@Override
public PosixFileAttributes readAttributes() throws IOException {
SftpPath p = toSftpPath(path);
@@ -600,9 +605,10 @@ public class SftpFileSystemProvider extends FileSystemProvider {
@Override
public <A extends BasicFileAttributes> A readAttributes(Path path, Class<A> type, LinkOption... options) throws IOException {
if (type.isAssignableFrom(PosixFileAttributes.class)) {
- return (A) getFileAttributeView(path, PosixFileAttributeView.class, options).readAttributes();
+ return type.cast(getFileAttributeView(path, PosixFileAttributeView.class, options).readAttributes());
}
- throw new UnsupportedOperationException();
+
+ throw new UnsupportedOperationException("readAttributes(" + path + ")[" + type.getSimpleName() + "] N/A");
}
@Override
@@ -628,42 +634,46 @@ public class SftpFileSystemProvider extends FileSystemProvider {
Map<String, Object> map = new HashMap<>();
for (String attr : attrs.split(",")) {
switch (attr) {
- case "lastModifiedTime":
- map.put(attr, v.lastModifiedTime());
- break;
- case "lastAccessTime":
- map.put(attr, v.lastAccessTime());
- break;
- case "creationTime":
- map.put(attr, v.creationTime());
- break;
- case "size":
- map.put(attr, v.size());
- break;
- case "isRegularFile":
- map.put(attr, v.isRegularFile());
- break;
- case "isDirectory":
- map.put(attr, v.isDirectory());
- break;
- case "isSymbolicLink":
- map.put(attr, v.isSymbolicLink());
- break;
- case "isOther":
- map.put(attr, v.isOther());
- break;
- case "fileKey":
- map.put(attr, v.fileKey());
- break;
- case "owner":
- map.put(attr, v.owner());
- break;
- case "permissions":
- map.put(attr, v.permissions());
- break;
- case "group":
- map.put(attr, v.group());
- break;
+ case "lastModifiedTime":
+ map.put(attr, v.lastModifiedTime());
+ break;
+ case "lastAccessTime":
+ map.put(attr, v.lastAccessTime());
+ break;
+ case "creationTime":
+ map.put(attr, v.creationTime());
+ break;
+ case "size":
+ map.put(attr, Long.valueOf(v.size()));
+ break;
+ case "isRegularFile":
+ map.put(attr, Boolean.valueOf(v.isRegularFile()));
+ break;
+ case "isDirectory":
+ map.put(attr, Boolean.valueOf(v.isDirectory()));
+ break;
+ case "isSymbolicLink":
+ map.put(attr, Boolean.valueOf(v.isSymbolicLink()));
+ break;
+ case "isOther":
+ map.put(attr, Boolean.valueOf(v.isOther()));
+ break;
+ case "fileKey":
+ map.put(attr, v.fileKey());
+ break;
+ case "owner":
+ map.put(attr, v.owner());
+ break;
+ case "permissions":
+ map.put(attr, v.permissions());
+ break;
+ case "group":
+ map.put(attr, v.group());
+ break;
+ default:
+ if (log.isTraceEnabled()) {
+ log.trace("readAttributes({})[{}] ignored {}={}", path, attributes, attr, v);
+ }
}
}
return map;
@@ -687,34 +697,42 @@ public class SftpFileSystemProvider extends FileSystemProvider {
}
SftpClient.Attributes attributes = new SftpClient.Attributes();
switch (attr) {
- case "lastModifiedTime":
- attributes.mtime((int) ((FileTime) value).to(TimeUnit.SECONDS));
- break;
- case "lastAccessTime":
- attributes.atime((int) ((FileTime) value).to(TimeUnit.SECONDS));
- break;
- case "creationTime":
- attributes.ctime((int) ((FileTime) value).to(TimeUnit.SECONDS));
- break;
- case "size":
- attributes.size((long) value);
- break;
- case "permissions":
- attributes.perms(attributesToPermissions((Set<PosixFilePermission>) value));
- break;
- case "owner":
- attributes.owner(((UserPrincipal) value).getName());
- break;
- case "group":
- attributes.group(((GroupPrincipal) value).getName());
- break;
- case "isRegularFile":
- case "isDirectory":
- case "isSymbolicLink":
- case "isOther":
- case "fileKey":
- throw new IllegalArgumentException(attr);
+ case "lastModifiedTime":
+ attributes.mtime((int) ((FileTime) value).to(TimeUnit.SECONDS));
+ break;
+ case "lastAccessTime":
+ attributes.atime((int) ((FileTime) value).to(TimeUnit.SECONDS));
+ break;
+ case "creationTime":
+ attributes.ctime((int) ((FileTime) value).to(TimeUnit.SECONDS));
+ break;
+ case "size":
+ attributes.size(((Number) value).longValue());
+ break;
+ case "permissions": {
+ @SuppressWarnings("unchecked")
+ Set<PosixFilePermission> attrSet = (Set<PosixFilePermission>) value;
+ attributes.perms(attributesToPermissions(path, attrSet));
+ }
+ break;
+ case "owner":
+ attributes.owner(((UserPrincipal) value).getName());
+ break;
+ case "group":
+ attributes.group(((GroupPrincipal) value).getName());
+ break;
+ case "isRegularFile":
+ case "isDirectory":
+ case "isSymbolicLink":
+ case "isOther":
+ case "fileKey":
+ throw new UnsupportedOperationException("setAttribute(" + path + ")[" + attribute + "] unknown view attribute: " + attr);
+ default:
+ if (log.isTraceEnabled()) {
+ log.trace("setAttribute({})[{}] ignore {}={}", path, attribute, attr, value);
+ }
}
+
try (SftpClient client = p.getFileSystem().getClient()) {
client.setStat(p.toString(), attributes);
}
@@ -772,11 +790,14 @@ public class SftpFileSystemProvider extends FileSystemProvider {
return p;
}
- protected int attributesToPermissions(Set<PosixFilePermission> perms) {
+ protected int attributesToPermissions(Path path, Collection<PosixFilePermission> perms) {
+ if (GenericUtils.isEmpty(perms)) {
+ return 0;
+ }
+
int pf = 0;
- if (perms != null) {
- for (PosixFilePermission p : perms) {
- switch (p) {
+ for (PosixFilePermission p : perms) {
+ switch (p) {
case OWNER_READ:
pf |= S_IRUSR;
break;
@@ -804,9 +825,13 @@ public class SftpFileSystemProvider extends FileSystemProvider {
case OTHERS_EXECUTE:
pf |= S_IXOTH;
break;
- }
+ default:
+ if (log.isTraceEnabled()) {
+ log.trace("attributesToPermissions(" + path + ") ignored " + p);
+ }
}
}
+
return pf;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/client/sftp/SftpPath.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/sftp/SftpPath.java b/sshd-core/src/main/java/org/apache/sshd/client/sftp/SftpPath.java
index 8e70c62..a1afbd8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/sftp/SftpPath.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/sftp/SftpPath.java
@@ -31,11 +31,13 @@ public class SftpPath extends BasePath<SftpPath, SftpFileSystem> {
super(fileSystem, root, names);
}
+ @Override
public URI toUri() {
// TODO
return null;
}
+ @Override
public SftpPath toRealPath(LinkOption... options) throws IOException {
// try (SftpClient client = fileSystem.getClient()) {
// client.realP
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/AbstractSessionIoHandler.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/AbstractSessionIoHandler.java b/sshd-core/src/main/java/org/apache/sshd/common/AbstractSessionIoHandler.java
index 80f14d2..2ca762a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/AbstractSessionIoHandler.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/AbstractSessionIoHandler.java
@@ -32,15 +32,18 @@ public abstract class AbstractSessionIoHandler implements IoHandler {
protected abstract AbstractSession createSession(IoSession ioSession) throws Exception;
+ @Override
public void sessionCreated(IoSession ioSession) throws Exception {
AbstractSession session = createSession(ioSession);
AbstractSession.attachSession(ioSession, session);
}
+ @Override
public void sessionClosed(IoSession ioSession) throws Exception {
AbstractSession.getSession(ioSession).close(true);
}
+ @Override
public void exceptionCaught(IoSession ioSession, Throwable cause) throws Exception {
AbstractSession session = AbstractSession.getSession(ioSession, true);
if (session != null) {
@@ -50,6 +53,7 @@ public abstract class AbstractSessionIoHandler implements IoHandler {
}
}
+ @Override
public void messageReceived(IoSession ioSession, Readable message) throws Exception {
AbstractSession.getSession(ioSession).messageReceived(message);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/Channel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/Channel.java b/sshd-core/src/main/java/org/apache/sshd/common/Channel.java
index e353b38..f343686 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/Channel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/Channel.java
@@ -57,6 +57,7 @@ public interface Channel extends Closeable {
void handleFailure() throws IOException;
+ @Override
CloseFuture close(boolean immediately);
void init(ConnectionService service, Session session, int id) throws IOException;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/KeyPairProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/KeyPairProvider.java b/sshd-core/src/main/java/org/apache/sshd/common/KeyPairProvider.java
index 15b7941..52a8553 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/KeyPairProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/KeyPairProvider.java
@@ -19,7 +19,6 @@
package org.apache.sshd.common;
import java.security.KeyPair;
-import java.util.List;
/**
* Provider for key pairs. This provider is used on the server side to provide
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/PtyMode.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/PtyMode.java b/sshd-core/src/main/java/org/apache/sshd/common/PtyMode.java
index 47ec123..5b06714 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/PtyMode.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/PtyMode.java
@@ -65,11 +65,11 @@ public enum PtyMode {
static {
commands = new HashMap<Integer, PtyMode>();
for (PtyMode c : PtyMode.values()) {
- commands.put(c.toInt(), c);
+ commands.put(Integer.valueOf(c.toInt()), c);
}
}
public static PtyMode fromInt(int b) {
- return commands.get(0x00FF & (b + 256));
+ return commands.get(Integer.valueOf(0x00FF & (b + 256)));
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/RequestHandler.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/RequestHandler.java b/sshd-core/src/main/java/org/apache/sshd/common/RequestHandler.java
index 0a78f45..db688eb 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/RequestHandler.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/RequestHandler.java
@@ -18,7 +18,6 @@
*/
package org.apache.sshd.common;
-import org.apache.sshd.common.session.ConnectionService;
import org.apache.sshd.common.util.buffer.Buffer;
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/RuntimeSshException.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/RuntimeSshException.java b/sshd-core/src/main/java/org/apache/sshd/common/RuntimeSshException.java
index 11ae5e5..9ff4246 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/RuntimeSshException.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/RuntimeSshException.java
@@ -24,6 +24,7 @@ package org.apache.sshd.common;
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public class RuntimeSshException extends RuntimeException {
+ private static final long serialVersionUID = -2423550196146939503L;
public RuntimeSshException() {
this(null, null);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/Service.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/Service.java b/sshd-core/src/main/java/org/apache/sshd/common/Service.java
index fabdac0..b62a905 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/Service.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/Service.java
@@ -18,8 +18,6 @@
*/
package org.apache.sshd.common;
-import java.io.IOException;
-
import org.apache.sshd.common.future.CloseFuture;
import org.apache.sshd.common.util.buffer.Buffer;
@@ -48,6 +46,7 @@ public interface Service extends Closeable {
* @param immediately
*
*/
+ @Override
CloseFuture close(boolean immediately);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/Session.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/Session.java b/sshd-core/src/main/java/org/apache/sshd/common/Session.java
index 6ec08d1..50f7144 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/Session.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/Session.java
@@ -227,6 +227,9 @@ public interface Session extends Closeable {
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public class AttributeKey<T> {
+ public AttributeKey() {
+ super();
+ }
}
public void resetIdleTimeout();
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java b/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
index 648ec88..eebd1b1 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
@@ -18,10 +18,6 @@
*/
package org.apache.sshd.common;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
/**
* This interface defines constants for the SSH protocol.
*
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/SshdSocketAddress.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/SshdSocketAddress.java b/sshd-core/src/main/java/org/apache/sshd/common/SshdSocketAddress.java
index caa2a96..eb2e53d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/SshdSocketAddress.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/SshdSocketAddress.java
@@ -27,7 +27,7 @@ import java.net.SocketAddress;
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public class SshdSocketAddress extends SocketAddress {
-
+ private static final long serialVersionUID = 6461645947151952729L;
private final String hostName;
private final int port;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java b/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
index 52e583b..a540c8c 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
@@ -47,18 +47,22 @@ public class BaseDigest implements Digest {
this.bsize = bsize;
}
+ @Override
public int getBlockSize() {
return bsize;
}
+ @Override
public void init() throws Exception {
this.md = SecurityUtils.getMessageDigest(algorithm);
}
+ @Override
public void update(byte[] foo, int start, int len) throws Exception {
md.update(foo, start, len);
}
+ @Override
public byte[] digest() throws Exception {
return md.digest();
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedFileSystem.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedFileSystem.java b/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedFileSystem.java
index 293d054..fa24a39 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedFileSystem.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedFileSystem.java
@@ -20,7 +20,6 @@ package org.apache.sshd.common.file.root;
import java.io.IOException;
import java.nio.file.Path;
-import java.nio.file.WatchService;
import java.nio.file.attribute.UserPrincipalLookupService;
import java.util.Map;
import java.util.Set;
@@ -46,6 +45,7 @@ public class RootedFileSystem extends BaseFileSystem<RootedPath> {
@Override
public void close() throws IOException {
+ // ignored
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedPath.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedPath.java b/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedPath.java
index e7be13e..8b06584 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedPath.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedPath.java
@@ -34,11 +34,13 @@ public class RootedPath extends BasePath<RootedPath, RootedFileSystem> {
super(fileSystem, root, names);
}
+ @Override
public URI toUri() {
// TODO
return null;
}
+ @Override
public RootedPath toRealPath(LinkOption... options) throws IOException {
RootedPath absolute = toAbsolutePath();
fileSystem.provider().checkAccess(absolute);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java b/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
index a5fde82..2bc3542 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
@@ -63,14 +63,17 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return fileSystem.create(root, names);
}
+ @Override
public FS getFileSystem() {
return fileSystem;
}
+ @Override
public boolean isAbsolute() {
return root != null;
}
+ @Override
public T getRoot() {
if (isAbsolute()) {
return create(root);
@@ -78,6 +81,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return null;
}
+ @Override
public T getFileName() {
if (!names.isEmpty()) {
return create(null, names.get(names.size() - 1));
@@ -85,6 +89,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return null;
}
+ @Override
public T getParent() {
if (names.isEmpty() || names.size() == 1 && root == null) {
return null;
@@ -92,10 +97,12 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return create(root, names.subList(0, names.size() - 1));
}
+ @Override
public int getNameCount() {
return names.size();
}
+ @Override
public T getName(int index) {
if (index < 0 || index >= names.size()) {
throw new IllegalArgumentException();
@@ -103,6 +110,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return create(null, names.subList(index, index + 1));
}
+ @Override
public T subpath(int beginIndex, int endIndex) {
if ((beginIndex < 0) || (beginIndex >= names.size()) || (endIndex > names.size()) || (beginIndex >= endIndex)) {
throw new IllegalArgumentException();
@@ -114,6 +122,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return list.size() >= other.size() && list.subList(0, other.size()).equals(other);
}
+ @Override
public boolean startsWith(Path other) {
T p1 = asT();
T p2 = checkPath(other);
@@ -122,6 +131,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
&& startsWith(p1.names, p2.names);
}
+ @Override
public boolean startsWith(String other) {
return startsWith(getFileSystem().getPath(other));
}
@@ -130,6 +140,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return other.size() <= list.size() && list.subList(list.size() - other.size(), list.size()).equals(other);
}
+ @Override
public boolean endsWith(Path other) {
T p1 = asT();
T p2 = checkPath(other);
@@ -139,6 +150,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return endsWith(p1.names, p2.names);
}
+ @Override
public boolean endsWith(String other) {
return endsWith(getFileSystem().getPath(other));
}
@@ -166,6 +178,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return normal;
}
+ @Override
public T normalize() {
if (isNormal()) {
return asT();
@@ -189,6 +202,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return newNames.equals(names) ? asT() : create(root, newNames);
}
+ @Override
public T resolve(Path other) {
T p1 = asT();
T p2 = checkPath(other);
@@ -209,10 +223,12 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return create(p1.root, names);
}
+ @Override
public T resolve(String other) {
return resolve(getFileSystem().getPath(other));
}
+ @Override
public Path resolveSibling(Path other) {
if (other == null) {
throw new NullPointerException();
@@ -221,10 +237,12 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return parent == null ? other : parent.resolve(other);
}
+ @Override
public Path resolveSibling(String other) {
return resolveSibling(getFileSystem().getPath(other));
}
+ @Override
public T relativize(Path other) {
T p1 = asT();
T p2 = checkPath(other);
@@ -258,6 +276,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return create(null, parts);
}
+ @Override
public T toAbsolutePath() {
if (isAbsolute()) {
return asT();
@@ -265,18 +284,22 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
return fileSystem.getDefaultDir().resolve(this);
}
+ @Override
public File toFile() {
throw new UnsupportedOperationException();
}
+ @Override
public WatchKey register(WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers) throws IOException {
throw new UnsupportedOperationException();
}
+ @Override
public WatchKey register(WatchService watcher, WatchEvent.Kind<?>... events) throws IOException {
throw new UnsupportedOperationException();
}
+ @Override
public Iterator<Path> iterator() {
return new AbstractList<Path>() {
@Override
@@ -291,6 +314,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
}.iterator();
}
+ @Override
public int compareTo(Path paramPath) {
T p1 = asT();
T p2 = checkPath(paramPath);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
index 2d74509..7b60d65 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
@@ -70,6 +70,7 @@ public class VirtualFileSystemFactory implements FileSystemFactory {
return homeDir;
}
+ @Override
public FileSystem createFileSystem(Session session) throws IOException {
String dir = computeRootDir(session.getUsername());
return new RootedFileSystemProvider().newFileSystem(Paths.get(dir), null);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
index 458b483..d85da03 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
@@ -87,13 +87,13 @@ public class DefaultTcpipForwarder extends CloseableUtils.AbstractInnerCloseable
throw new IllegalStateException("TcpipForwarder is closing");
}
SshdSocketAddress bound = doBind(local, new StaticIoHandler());
- localToRemote.put(bound.getPort(), remote);
+ localToRemote.put(Integer.valueOf(bound.getPort()), remote);
return bound;
}
@Override
public synchronized void stopLocalPortForwarding(SshdSocketAddress local) throws IOException {
- if (localToRemote.remove(local.getPort()) != null && acceptor != null) {
+ if (localToRemote.remove(Integer.valueOf(local.getPort())) != null && acceptor != null) {
acceptor.unbind(local.toInetSocketAddress());
}
}
@@ -111,13 +111,13 @@ public class DefaultTcpipForwarder extends CloseableUtils.AbstractInnerCloseable
}
int port = remote.getPort() == 0 ? result.getInt() : remote.getPort();
// TODO: Is it really safe to only store the local address after the request ?
- remoteToLocal.put(port, local);
+ remoteToLocal.put(Integer.valueOf(port), local);
return new SshdSocketAddress(remote.getHostName(), port);
}
@Override
public synchronized void stopRemotePortForwarding(SshdSocketAddress remote) throws IOException {
- if (remoteToLocal.remove(remote.getPort()) != null) {
+ if (remoteToLocal.remove(Integer.valueOf(remote.getPort())) != null) {
Buffer buffer = session.createBuffer(SshConstants.SSH_MSG_GLOBAL_REQUEST);
buffer.putString("cancel-tcpip-forward");
buffer.putBoolean(false);
@@ -143,13 +143,13 @@ public class DefaultTcpipForwarder extends CloseableUtils.AbstractInnerCloseable
}
SocksProxy socksProxy = new SocksProxy(service);
SshdSocketAddress bound = doBind(local, new SocksProxy(service));
- dynamicLocal.put(bound.getPort(), socksProxy);
+ dynamicLocal.put(Integer.valueOf(bound.getPort()), socksProxy);
return bound;
}
@Override
public synchronized void stopDynamicPortForwarding(SshdSocketAddress local) throws IOException {
- Closeable obj = dynamicLocal.remove(local.getPort());
+ Closeable obj = dynamicLocal.remove(Integer.valueOf(local.getPort()));
if (obj != null) {
obj.close(true);
acceptor.unbind(local.toInetSocketAddress());
@@ -158,7 +158,7 @@ public class DefaultTcpipForwarder extends CloseableUtils.AbstractInnerCloseable
@Override
public synchronized SshdSocketAddress getForwardedPort(int remotePort) {
- return remoteToLocal.get(remotePort);
+ return remoteToLocal.get(Integer.valueOf(remotePort));
}
@Override
@@ -230,12 +230,13 @@ public class DefaultTcpipForwarder extends CloseableUtils.AbstractInnerCloseable
class StaticIoHandler implements IoHandler {
+ @SuppressWarnings("synthetic-access")
@Override
public void sessionCreated(final IoSession session) throws Exception {
final TcpipClientChannel channel;
int localPort = ((InetSocketAddress) session.getLocalAddress()).getPort();
- if (localToRemote.containsKey(localPort)) {
- SshdSocketAddress remote = localToRemote.get(localPort);
+ SshdSocketAddress remote = localToRemote.get(Integer.valueOf(localPort));
+ if (remote != null) {
channel = new TcpipClientChannel(TcpipClientChannel.Type.Direct, session, remote);
} else {
channel = new TcpipClientChannel(TcpipClientChannel.Type.Forwarded, session, null);
@@ -254,6 +255,7 @@ public class DefaultTcpipForwarder extends CloseableUtils.AbstractInnerCloseable
});
}
+ @SuppressWarnings("synthetic-access")
@Override
public void sessionClosed(IoSession session) throws Exception {
TcpipClientChannel channel = (TcpipClientChannel) session.getAttribute(TcpipClientChannel.class);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
index a732d7e..62acbf8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
@@ -18,7 +18,6 @@
*/
package org.apache.sshd.common.forward;
-import org.apache.sshd.common.Session;
import org.apache.sshd.common.TcpipForwarder;
import org.apache.sshd.common.TcpipForwarderFactory;
import org.apache.sshd.common.session.ConnectionService;
@@ -31,7 +30,8 @@ import org.apache.sshd.common.session.ConnectionService;
*/
public class DefaultTcpipForwarderFactory implements TcpipForwarderFactory
{
- public TcpipForwarder create( ConnectionService service )
+ @Override
+public TcpipForwarder create( ConnectionService service )
{
return new DefaultTcpipForwarder( service );
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
index a009144..21df217 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
@@ -125,6 +125,7 @@ public class SocksProxy extends CloseableUtils.AbstractCloseable implements IoHa
super(session);
}
+ @SuppressWarnings("synthetic-access")
@Override
protected void onMessage(Buffer buffer) throws IOException {
if (channel == null) {
@@ -142,7 +143,10 @@ public class SocksProxy extends CloseableUtils.AbstractCloseable implements IoHa
if (host.startsWith("0.0.0.")) {
host = getNTString(buffer);
}
- log.debug("Received socks4 connection request to {}:{}", host, port);
+ if (log.isDebugEnabled()) {
+ log.debug("Received socks4 connection request for {} to {}:{}", userId, host, Integer.valueOf(port));
+ }
+
SshdSocketAddress remote = new SshdSocketAddress(host, port);
channel = new TcpipClientChannel(TcpipClientChannel.Type.Direct, session, remote);
service.registerChannel(channel);
@@ -157,6 +161,7 @@ public class SocksProxy extends CloseableUtils.AbstractCloseable implements IoHa
}
}
+ @SuppressWarnings("synthetic-access")
protected void onChannelOpened(OpenFuture future) {
Buffer buffer = new ByteArrayBuffer(8);
buffer.putByte((byte) 0x00);
@@ -197,6 +202,7 @@ public class SocksProxy extends CloseableUtils.AbstractCloseable implements IoHa
super(session);
}
+ @SuppressWarnings("synthetic-access")
@Override
protected void onMessage(Buffer buffer) throws IOException {
if (authMethods == null) {
@@ -249,7 +255,9 @@ public class SocksProxy extends CloseableUtils.AbstractCloseable implements IoHa
throw new IllegalStateException("Unsupported address type: " + type);
}
int port = getUShort(buffer);
- log.debug("Received socks5 connection request to {}:{}", host, port);
+ if (log.isDebugEnabled()) {
+ log.debug("Received socks5 connection request to {}:{}", host, Integer.valueOf(port));
+ }
SshdSocketAddress remote = new SshdSocketAddress(host, port);
channel = new TcpipClientChannel(TcpipClientChannel.Type.Direct, session, remote);
service.registerChannel(channel);
@@ -265,6 +273,7 @@ public class SocksProxy extends CloseableUtils.AbstractCloseable implements IoHa
}
}
+ @SuppressWarnings("synthetic-access")
protected void onChannelOpened(OpenFuture future) {
int wpos = response.wpos();
response.rpos(0);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
index cb93049..0f4d89a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
@@ -63,7 +63,7 @@ public class TcpipClientChannel extends AbstractClientChannel {
@Override
public synchronized OpenFuture open() throws IOException {
- InetSocketAddress src = null, dst = null;
+ final InetSocketAddress src, dst;
switch (typeEnum) {
case Direct:
src = (InetSocketAddress) serverSession.getRemoteAddress();
@@ -73,12 +73,15 @@ public class TcpipClientChannel extends AbstractClientChannel {
src = (InetSocketAddress) serverSession.getRemoteAddress();
dst = (InetSocketAddress) serverSession.getLocalAddress();
break;
+ default:
+ throw new SshException("Unknown client channel type: " + typeEnum);
}
if (closeFuture.isClosed()) {
throw new SshException("Session has been closed");
}
openFuture = new DefaultOpenFuture(lock);
- log.info("Send SSH_MSG_CHANNEL_OPEN on channel {}", this);
+ log.debug("Send SSH_MSG_CHANNEL_OPEN on channel {}", this);
+
Buffer buffer = session.createBuffer(SshConstants.SSH_MSG_CHANNEL_OPEN);
buffer.putString(type);
buffer.putInt(id);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e2f7ff72/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
index 8d43156..21e60df 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
@@ -114,15 +114,23 @@ public class TcpipServerChannel extends AbstractServerChannel {
int portToConnect = buffer.getInt();
String originatorIpAddress = buffer.getString();
int originatorPort = buffer.getInt();
- log.info("Receiving request for direct tcpip: hostToConnect={}, portToConnect={}, originatorIpAddress={}, originatorPort={}",
- new Object[] { hostToConnect, Integer.valueOf(portToConnect), originatorIpAddress, Integer.valueOf(originatorPort) });
-
+ if (log.isDebugEnabled()) {
+ log.debug("Receiving request for direct tcpip: hostToConnect={}, portToConnect={}, originatorIpAddress={}, originatorPort={}",
+ hostToConnect, Integer.valueOf(portToConnect), originatorIpAddress, Integer.valueOf(originatorPort));
+ }
- SshdSocketAddress address = null;
+ final SshdSocketAddress address;
switch (type) {
- case Direct: address = new SshdSocketAddress(hostToConnect, portToConnect); break;
- case Forwarded: address = service.getTcpipForwarder().getForwardedPort(portToConnect); break;
+ case Direct:
+ address = new SshdSocketAddress(hostToConnect, portToConnect);
+ break;
+ case Forwarded:
+ address = service.getTcpipForwarder().getForwardedPort(portToConnect);
+ break;
+ default:
+ throw new IllegalStateException("Unknown server channel type: " + type);
}
+
final ForwardingFilter filter = getSession().getFactoryManager().getTcpipForwardingFilter();
if (address == null || filter == null || !filter.canConnect(address, getSession())) {
super.close(true);