http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/OpenSSHStatPathExtension.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/OpenSSHStatPathExtension.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/OpenSSHStatPathExtension.java index a2450af..a268f1f 100644 --- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/OpenSSHStatPathExtension.java +++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/OpenSSHStatPathExtension.java @@ -25,6 +25,7 @@ import org.apache.sshd.client.subsystem.sftp.extensions.SftpClientExtension; /** * Implements the "[email protected]" extension command + * * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> * @see <A HREF="http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.bin/ssh/PROTOCOL?rev=1.28&content-type=text/plain">OpenSSH section 3.4</A> */
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/AbstractOpenSSHStatCommandExtension.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/AbstractOpenSSHStatCommandExtension.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/AbstractOpenSSHStatCommandExtension.java index 51b6817..23d4e80 100644 --- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/AbstractOpenSSHStatCommandExtension.java +++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/AbstractOpenSSHStatCommandExtension.java @@ -34,17 +34,17 @@ import org.apache.sshd.common.util.buffer.BufferUtils; * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ public abstract class AbstractOpenSSHStatCommandExtension extends AbstractSftpClientExtension { - protected AbstractOpenSSHStatCommandExtension(String name, SftpClient client, RawSftpClient raw, Map<String,byte[]> extensions) { + protected AbstractOpenSSHStatCommandExtension(String name, SftpClient client, RawSftpClient raw, Map<String, byte[]> extensions) { super(name, client, raw, extensions); } - + protected OpenSSHStatExtensionInfo doGetStat(Object target) throws IOException { Buffer buffer = getCommandBuffer(target); putTarget(buffer, target); - + if (log.isDebugEnabled()) { log.debug("doGetStat({})[{}]", getName(), - (target instanceof CharSequence) ? target : BufferUtils.printHex(BufferUtils.EMPTY_HEX_SEPARATOR, (byte[]) target)); + (target instanceof CharSequence) ? target : BufferUtils.printHex(BufferUtils.EMPTY_HEX_SEPARATOR, (byte[]) target)); } buffer = checkExtendedReplyBuffer(receive(sendExtendedCommand(buffer))); http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHFsyncExtensionImpl.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHFsyncExtensionImpl.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHFsyncExtensionImpl.java index 5032fc0..207962d 100644 --- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHFsyncExtensionImpl.java +++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHFsyncExtensionImpl.java @@ -35,7 +35,7 @@ import org.apache.sshd.common.util.buffer.Buffer; * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ public class OpenSSHFsyncExtensionImpl extends AbstractSftpClientExtension implements OpenSSHFsyncExtension { - public OpenSSHFsyncExtensionImpl(SftpClient client, RawSftpClient raw, Map<String,byte[]> extensions) { + public OpenSSHFsyncExtensionImpl(SftpClient client, RawSftpClient raw, Map<String, byte[]> extensions) { super(FsyncExtensionParser.NAME, client, raw, extensions); } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHStatHandleExtensionImpl.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHStatHandleExtensionImpl.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHStatHandleExtensionImpl.java index ec0ab90..355eec4 100644 --- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHStatHandleExtensionImpl.java +++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHStatHandleExtensionImpl.java @@ -33,7 +33,7 @@ import org.apache.sshd.common.subsystem.sftp.extensions.openssh.FstatVfsExtensio * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ public class OpenSSHStatHandleExtensionImpl extends AbstractOpenSSHStatCommandExtension implements OpenSSHStatHandleExtension { - public OpenSSHStatHandleExtensionImpl(SftpClient client, RawSftpClient raw, Map<String,byte[]> extensions) { + public OpenSSHStatHandleExtensionImpl(SftpClient client, RawSftpClient raw, Map<String, byte[]> extensions) { super(FstatVfsExtensionParser.NAME, client, raw, extensions); } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHStatPathExtensionImpl.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHStatPathExtensionImpl.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHStatPathExtensionImpl.java index 7ed085c..cf3a215 100644 --- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHStatPathExtensionImpl.java +++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/impl/OpenSSHStatPathExtensionImpl.java @@ -32,7 +32,7 @@ import org.apache.sshd.common.subsystem.sftp.extensions.openssh.StatVfsExtension * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ public class OpenSSHStatPathExtensionImpl extends AbstractOpenSSHStatCommandExtension implements OpenSSHStatPathExtension { - public OpenSSHStatPathExtensionImpl(SftpClient client, RawSftpClient raw, Map<String,byte[]> extensions) { + public OpenSSHStatPathExtensionImpl(SftpClient client, RawSftpClient raw, Map<String, byte[]> extensions) { super(StatVfsExtensionParser.NAME, client, raw, extensions); } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/AbstractFactoryManager.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/AbstractFactoryManager.java b/sshd-core/src/main/java/org/apache/sshd/common/AbstractFactoryManager.java index 4a3598f..67de78e 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/AbstractFactoryManager.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/AbstractFactoryManager.java @@ -45,7 +45,6 @@ import org.apache.sshd.common.session.ConnectionService; import org.apache.sshd.common.session.SessionTimeoutListener; import org.apache.sshd.common.signature.Signature; import org.apache.sshd.common.util.CloseableUtils; -import org.apache.sshd.common.util.GenericUtils; import org.apache.sshd.common.util.ValidateUtils; import org.apache.sshd.common.util.threads.ThreadUtils; import org.apache.sshd.server.forward.ForwardingFilter; @@ -57,7 +56,7 @@ import org.apache.sshd.server.forward.ForwardingFilter; */ public abstract class AbstractFactoryManager extends CloseableUtils.AbstractInnerCloseable implements FactoryManager { - protected Map<String,Object> properties = new HashMap<String,Object>(); + protected Map<String, Object> properties = new HashMap<String, Object>(); protected IoServiceFactoryFactory ioServiceFactoryFactory; protected IoServiceFactory ioServiceFactory; protected List<NamedFactory<KeyExchange>> keyExchangeFactories; @@ -188,7 +187,7 @@ public abstract class AbstractFactoryManager extends CloseableUtils.AbstractInne } public int getNioWorkers() { - int nb=FactoryManagerUtils.getIntProperty(this, NIO_WORKERS, DEFAULT_NIO_WORKERS); + int nb = FactoryManagerUtils.getIntProperty(this, NIO_WORKERS, DEFAULT_NIO_WORKERS); if (nb > 0) { return nb; } else { // it may have been configured to a negative value @@ -303,7 +302,7 @@ public abstract class AbstractFactoryManager extends CloseableUtils.AbstractInne } sessionTimeoutListener = null; } - + protected void checkConfig() { ValidateUtils.checkNotNullAndNotEmpty(getKeyExchangeFactories(), "KeyExchangeFactories not set"); http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/BaseBuilder.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/BaseBuilder.java b/sshd-core/src/main/java/org/apache/sshd/common/BaseBuilder.java index c79acbc..f4629d8 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/BaseBuilder.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/BaseBuilder.java @@ -49,9 +49,89 @@ import org.apache.sshd.server.forward.RejectAllForwardingFilter; /** * Base class for dedicated client/server instance builders + * * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ public class BaseBuilder<T extends AbstractFactoryManager, S extends BaseBuilder<T, S>> implements ObjectBuilder<T> { + + // Compression is not enabled by default + public static final List<NamedFactory<Compression>> DEFAULT_COMPRESSION_FACTORIES = + Collections.unmodifiableList(Arrays.<NamedFactory<Compression>>asList(BuiltinCompressions.none)); + + public static final FileSystemFactory DEFAULT_FILE_SYSTEM_FACTORY = NativeFileSystemFactory.INSTANCE; + + public static final ForwardingFilter DEFAULT_FORWARDING_FILTER = RejectAllForwardingFilter.INSTANCE; + + public static final TcpipForwarderFactory DEFAULT_FORWARDER_FACTORY = DefaultTcpipForwarderFactory.INSTANCE; + + /** + * The default {@link BuiltinCiphers} setup in order of preference + * as specified by <A HREF="https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5"> + * ssh_config(5)</A> + */ + public static final List<BuiltinCiphers> DEFAULT_CIPHERS_PREFERENCE = + Collections.unmodifiableList(Arrays.asList( + BuiltinCiphers.aes128ctr, + BuiltinCiphers.aes192ctr, + BuiltinCiphers.aes256ctr, + BuiltinCiphers.arcfour256, + BuiltinCiphers.arcfour128, + BuiltinCiphers.aes128cbc, + BuiltinCiphers.tripledescbc, + BuiltinCiphers.blowfishcbc, + // TODO add support for cast128-cbc cipher + BuiltinCiphers.aes192cbc, + BuiltinCiphers.aes256cbc + // TODO add support for arcfour cipher + )); + + /** + * The default {@link BuiltinDHFactories} setup in order of preference + * as specified by <A HREF="https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5"> + * ssh_config(5)</A> + */ + public static final List<BuiltinDHFactories> DEFAULT_KEX_PREFERENCE = + Collections.unmodifiableList(Arrays.asList( + BuiltinDHFactories.ecdhp521, + BuiltinDHFactories.ecdhp384, + BuiltinDHFactories.ecdhp256, + + BuiltinDHFactories.dhgex256, + BuiltinDHFactories.dhgex, + + BuiltinDHFactories.dhg14, + BuiltinDHFactories.dhg1 + )); + + /** + * The default {@link BuiltinMacs} setup in order of preference + * as specified by <A HREF="https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5"> + * ssh_config(5)</A> + */ + public static final List<BuiltinMacs> DEFAULT_MAC_PREFERENCE = + Collections.unmodifiableList(Arrays.asList( + BuiltinMacs.hmacmd5, + BuiltinMacs.hmacsha1, + BuiltinMacs.hmacsha256, + BuiltinMacs.hmacsha512, + BuiltinMacs.hmacsha196, + BuiltinMacs.hmacmd596 + )); + + /** + * Preferred {@link BuiltinSignatures} according to + * <A HREF="https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5>sshd_config(5)</A> + * {@code HostKeyAlgorithms} recommendation + */ + public static final List<BuiltinSignatures> DEFAULT_SIGNATURE_PREFERENCE = + Collections.unmodifiableList(Arrays.asList( + BuiltinSignatures.nistp256, + BuiltinSignatures.nistp384, + BuiltinSignatures.nistp521, + BuiltinSignatures.rsa, + BuiltinSignatures.dsa + )); + protected Factory<T> factory; protected List<NamedFactory<KeyExchange>> keyExchangeFactories; protected List<NamedFactory<Cipher>> cipherFactories; @@ -69,13 +149,6 @@ public class BaseBuilder<T extends AbstractFactoryManager, S extends BaseBuilder super(); } - // Compression is not enabled by default - public static final List<NamedFactory<Compression>> DEFAULT_COMPRESSION_FACTORIES = - Collections.unmodifiableList(Arrays.<NamedFactory<Compression>>asList(BuiltinCompressions.none)); - public static final FileSystemFactory DEFAULT_FILE_SYSTEM_FACTORY = NativeFileSystemFactory.INSTANCE; - public static final ForwardingFilter DEFAULT_FORWARDING_FILTER = RejectAllForwardingFilter.INSTANCE; - public static final TcpipForwarderFactory DEFAULT_FORWARDER_FACTORY = DefaultTcpipForwarderFactory.INSTANCE; - protected S fillWithDefaultValues() { if (signatureFactories == null) { signatureFactories = setUpDefaultSignatures(false); @@ -204,32 +277,10 @@ public class BaseBuilder<T extends AbstractFactoryManager, S extends BaseBuilder } /** - * The default {@link BuiltinCiphers} setup in order of preference - * as specified by <A HREF="https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5"> - * ssh_config(5)</A> - */ - public static final List<BuiltinCiphers> DEFAULT_CIPHERS_PREFERENCE = - Collections.unmodifiableList( - Arrays.asList( - BuiltinCiphers.aes128ctr, - BuiltinCiphers.aes192ctr, - BuiltinCiphers.aes256ctr, - BuiltinCiphers.arcfour256, - BuiltinCiphers.arcfour128, - BuiltinCiphers.aes128cbc, - BuiltinCiphers.tripledescbc, - BuiltinCiphers.blowfishcbc, - // TODO add support for cast128-cbc cipher - BuiltinCiphers.aes192cbc, - BuiltinCiphers.aes256cbc - // TODO add support for arcfour cipher - )); - - /** * @param ignoreUnsupported If {@code true} then all the default - * ciphers are included, regardless of whether they are currently - * supported by the JCE. Otherwise, only the supported ones out of the - * list are included + * ciphers are included, regardless of whether they are currently + * supported by the JCE. Otherwise, only the supported ones out of the + * list are included * @return A {@link List} of the default {@link NamedFactory} * instances of the {@link Cipher}s according to the preference * order defined by {@link #DEFAULT_CIPHERS_PREFERENCE}. @@ -240,45 +291,11 @@ public class BaseBuilder<T extends AbstractFactoryManager, S extends BaseBuilder public static List<NamedFactory<Cipher>> setUpDefaultCiphers(boolean ignoreUnsupported) { return NamedFactory.Utils.setUpBuiltinFactories(ignoreUnsupported, DEFAULT_CIPHERS_PREFERENCE); } - - /** - * The default {@link BuiltinDHFactories} setup in order of preference - * as specified by <A HREF="https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5"> - * ssh_config(5)</A> - */ - public static final List<BuiltinDHFactories> DEFAULT_KEX_PREFERENCE= - Collections.unmodifiableList( - Arrays.asList( - BuiltinDHFactories.ecdhp521, - BuiltinDHFactories.ecdhp384, - BuiltinDHFactories.ecdhp256, - - BuiltinDHFactories.dhgex256, - BuiltinDHFactories.dhgex, - - BuiltinDHFactories.dhg14, - BuiltinDHFactories.dhg1 - )); /** - * The default {@link BuiltinMacs} setup in order of preference - * as specified by <A HREF="https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5"> - * ssh_config(5)</A> - */ - public static final List<BuiltinMacs> DEFAULT_MAC_PREFERENCE= - Collections.unmodifiableList( - Arrays.asList( - BuiltinMacs.hmacmd5, - BuiltinMacs.hmacsha1, - BuiltinMacs.hmacsha256, - BuiltinMacs.hmacsha512, - BuiltinMacs.hmacsha196, - BuiltinMacs.hmacmd596 - )); - /** * @param ignoreUnsupported If {@code true} all the available built-in - * {@link Mac} factories are added, otherwise only those that are supported - * by the current JDK setup + * {@link Mac} factories are added, otherwise only those that are supported + * by the current JDK setup * @return A {@link List} of the default {@link NamedFactory} * instances of the {@link Mac}s according to the preference * order defined by {@link #DEFAULT_MAC_PREFERENCE}. @@ -289,26 +306,11 @@ public class BaseBuilder<T extends AbstractFactoryManager, S extends BaseBuilder public static List<NamedFactory<Mac>> setUpDefaultMacs(boolean ignoreUnsupported) { return NamedFactory.Utils.setUpBuiltinFactories(ignoreUnsupported, DEFAULT_MAC_PREFERENCE); } - - /** - * Preferred {@link BuiltinSignatures} according to - * <A HREF="https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5>sshd_config(5)</A> - * {@code HostKeyAlgorithms} recommendation - */ - public static final List<BuiltinSignatures> DEFAULT_SIGNATURE_PREFERENCE= - Collections.unmodifiableList( - Arrays.asList( - BuiltinSignatures.nistp256, - BuiltinSignatures.nistp384, - BuiltinSignatures.nistp521, - BuiltinSignatures.rsa, - BuiltinSignatures.dsa - )); /** * @param ignoreUnsupported If {@code true} all the available built-in - * {@link Signature} factories are added, otherwise only those that are supported - * by the current JDK setup + * {@link Signature} factories are added, otherwise only those that are supported + * by the current JDK setup * @return A {@link List} of the default {@link NamedFactory} * instances of the {@link Signature}s according to the preference * order defined by {@link #DEFAULT_SIGNATURE_PREFERENCE}. http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/BuiltinFactory.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/BuiltinFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/BuiltinFactory.java new file mode 100644 index 0000000..788a4ca --- /dev/null +++ b/sshd-core/src/main/java/org/apache/sshd/common/BuiltinFactory.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.sshd.common; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * A named optional factory. + * + * @param <T> The create object instance type + * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> + */ +public interface BuiltinFactory<T> extends NamedFactory<T>, OptionalFeature { + + final class Utils { + + private Utils() { + throw new UnsupportedOperationException("No instance allowed"); + } + + public static <T, E extends BuiltinFactory<T>> List<NamedFactory<T>> setUpFactories( + boolean ignoreUnsupported, Collection<? extends E> preferred) { + List<NamedFactory<T>> avail = new ArrayList<>(preferred.size()); + for (E f : preferred) { + if (ignoreUnsupported || f.isSupported()) { + avail.add(f); + } + } + return avail; + } + + } +} http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/Factory.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/Factory.java b/sshd-core/src/main/java/org/apache/sshd/common/Factory.java index 3d3590e..5fccf45 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/Factory.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/Factory.java @@ -23,7 +23,6 @@ package org.apache.sshd.common; * Fatory is a simple interface that is used to create other objects. * * @param <T> type of objets this factory will create - * * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ public interface Factory<T> { http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/FactoryManager.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/FactoryManager.java b/sshd-core/src/main/java/org/apache/sshd/common/FactoryManager.java index bdb63d3..b9ed1e6 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/FactoryManager.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/FactoryManager.java @@ -153,6 +153,12 @@ public interface FactoryManager { String NIO2_READ_BUFFER_SIZE = "nio2-read-buf-size"; /** + * The default reported version of {@link #getVersion()} if the built-in + * version information cannot be accessed + */ + String DEFAULT_VERSION = "SSHD-UNKNOWN"; + + /** * <P>A map of properties that can be used to configure the SSH server * or client. This map will never be changed by either the server or * client and is not supposed to be changed at runtime (changes are not @@ -167,21 +173,17 @@ public interface FactoryManager { * value is a {@code long} then it will be parsed into one. Also, if * the mapped value is an {@code Integer} but a {@code long} is expected, * then it will be converted into one. + * * @return a valid <code>Map</code> containing configuration values, never {@code null} */ - Map<String,Object> getProperties(); - - /** - * The default reported version of {@link #getVersion()} if the built-in - * version information cannot be accessed - */ - String DEFAULT_VERSION = "SSHD-UNKNOWN"; + Map<String, Object> getProperties(); /** * An upper case string identifying the version of the * software used on client or server side. * This version includes the name of the software and usually * looks like: <code>SSHD-1.0</code> + * * @return the version of the software */ String getVersion(); @@ -279,7 +281,7 @@ public interface FactoryManager { * Retrieve the <code>FileSystemFactory</code> to be used to traverse the file system. * * @return a valid <code>FileSystemFactory</code> object or {@code null} if file based - * interactions are not supported on this server + * interactions are not supported on this server */ FileSystemFactory getFileSystemFactory(); http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerUtils.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerUtils.java b/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerUtils.java index 10ecbd9..f3eee61 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerUtils.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerUtils.java @@ -27,7 +27,12 @@ import org.apache.sshd.common.util.GenericUtils; /** * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ -public class FactoryManagerUtils { +public final class FactoryManagerUtils { + + private FactoryManagerUtils() { + throw new UnsupportedOperationException("No instance allowed"); + } + /** * @param session The {@link Session} instance * @param name The property name @@ -60,7 +65,7 @@ public class FactoryManagerUtils { * @return The resolved property * @throws NumberFormatException if malformed value */ - public static long getLongProperty(Map<String,?> props, String name, long defaultValue) { + public static long getLongProperty(Map<String, ?> props, String name, long defaultValue) { Object value = GenericUtils.isEmpty(props) ? null : props.get(name); if (value == null) { return defaultValue; @@ -98,7 +103,7 @@ public class FactoryManagerUtils { * empty string * @throws NumberFormatException if malformed value */ - public static Long getLong(Map<String,?> props, String name) { + public static Long getLong(Map<String, ?> props, String name) { Object value = GenericUtils.isEmpty(props) ? null : props.get(name); if (value == null) { return null; @@ -117,7 +122,7 @@ public class FactoryManagerUtils { return updateProperty(manager.getProperties(), name, value); } - public static Object updateProperty(Map<String,Object> props, String name, long value) { + public static Object updateProperty(Map<String, Object> props, String name, long value) { return updateProperty(props, name, Long.valueOf(value)); } @@ -129,7 +134,7 @@ public class FactoryManagerUtils { return getIntProperty(manager.getProperties(), name, defaultValue); } - public static int getIntProperty(Map<String,?> props, String name, int defaultValue) { + public static int getIntProperty(Map<String, ?> props, String name, int defaultValue) { Object value = GenericUtils.isEmpty(props) ? null : props.get(name); if (value == null) { return defaultValue; @@ -148,7 +153,7 @@ public class FactoryManagerUtils { return getInteger(manager.getProperties(), name); } - public static Integer getInteger(Map<String,?> props, String name) { + public static Integer getInteger(Map<String, ?> props, String name) { Object value = GenericUtils.isEmpty(props) ? null : props.get(name); if (value == null) { return null; @@ -167,7 +172,7 @@ public class FactoryManagerUtils { return updateProperty(manager.getProperties(), name, value); } - public static Object updateProperty(Map<String,Object> props, String name, int value) { + public static Object updateProperty(Map<String, Object> props, String name, int value) { return updateProperty(props, name, Integer.valueOf(value)); } @@ -179,7 +184,7 @@ public class FactoryManagerUtils { return getBooleanProperty(manager.getProperties(), name, defaultValue); } - public static boolean getBooleanProperty(Map<String,?> props, String name, boolean defaultValue) { + public static boolean getBooleanProperty(Map<String, ?> props, String name, boolean defaultValue) { Boolean value = getBoolean(props, name); if (value == null) { return defaultValue; @@ -196,8 +201,8 @@ public class FactoryManagerUtils { return getBoolean(manager.getProperties(), name); } - public static Boolean getBoolean(Map<String,?> props, String name) { - Object value = GenericUtils.isEmpty(props) ? null : props.get(name); + public static Boolean getBoolean(Map<String, ?> props, String name) { + Object value = GenericUtils.isEmpty(props) ? null : props.get(name); if (value == null) { return null; } else if (value instanceof Boolean) { @@ -215,7 +220,7 @@ public class FactoryManagerUtils { return updateProperty(manager.getProperties(), name, value); } - public static Object updateProperty(Map<String,Object> props, String name, boolean value) { + public static Object updateProperty(Map<String, Object> props, String name, boolean value) { return updateProperty(props, name, Boolean.valueOf(value)); } @@ -235,11 +240,11 @@ public class FactoryManagerUtils { return getStringProperty(manager.getProperties(), name, defaultValue); } - public static String getString(Map<String,?> props, String name) { + public static String getString(Map<String, ?> props, String name) { return getStringProperty(props, name, null); } - public static String getStringProperty(Map<String,?> props, String name, String defaultValue) { + public static String getStringProperty(Map<String, ?> props, String name, String defaultValue) { Object value = GenericUtils.isEmpty(props) ? null : props.get(name); String s = (value == null) ? null : value.toString(); if (GenericUtils.isEmpty(s)) { @@ -261,10 +266,10 @@ public class FactoryManagerUtils { * @param props The {@link Map} of properties to update * @param name The property name * @param value The property value - if {@code null}/empty then the - * specified property is <U>removed</U> from the properties map + * specified property is <U>removed</U> from the properties map * @return The removed or previous value (if any) */ - public static Object updateProperty(Map<String,Object> props, String name, Object value) { + public static Object updateProperty(Map<String, Object> props, String name, Object value) { if ((value == null) || ((value instanceof CharSequence) && GenericUtils.isEmpty((CharSequence) value))) { return props.remove(name); } else { http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/NamedFactory.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/NamedFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/NamedFactory.java index 647fbbf..5eb6ff2 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/NamedFactory.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/NamedFactory.java @@ -27,6 +27,7 @@ import org.apache.sshd.common.util.Transformer; /** * A named factory is a factory identified by a name. * Such names are used mainly in the algorithm negotiation at the beginning of the SSH connection. + * * @param <T> The create object instance type * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ @@ -35,16 +36,22 @@ public interface NamedFactory<T> extends Factory<T>, NamedResource { * Utility class to help using NamedFactories */ final class Utils { + + private Utils() { + throw new UnsupportedOperationException("No instance allowed"); + } + /** * Create an instance of the specified name by looking up the needed factory * in the list. + * * @param factories list of available factories - * @param name the factory name to use - * @param <T> type of object to create + * @param name the factory name to use + * @param <T> type of object to create * @return a newly created object or {@code null} if the factory is not in the list */ public static <T> T create(Collection<? extends NamedFactory<T>> factories, String name) { - NamedFactory<? extends T> f=NamedResource.Utils.findByName(name, String.CASE_INSENSITIVE_ORDER, factories); + NamedFactory<? extends T> f = NamedResource.Utils.findByName(name, String.CASE_INSENSITIVE_ORDER, factories); if (f != null) { return f.create(); } else { @@ -52,27 +59,26 @@ public interface NamedFactory<T> extends Factory<T>, NamedResource { } } - public static <S extends OptionalFeature,T,E extends NamedFactory<T>> List<NamedFactory<T>> setUpTransformedFactories( - boolean ignoreUnsupported, Collection<? extends S> preferred, Transformer<? super S,? extends E> xform) { - List<NamedFactory<T>> avail=new ArrayList<>(preferred.size()); + public static <S extends OptionalFeature, T, E extends NamedFactory<T>> List<NamedFactory<T>> setUpTransformedFactories( + boolean ignoreUnsupported, Collection<? extends S> preferred, Transformer<? super S, ? extends E> xform) { + List<NamedFactory<T>> avail = new ArrayList<>(preferred.size()); for (S f : preferred) { if (ignoreUnsupported || f.isSupported()) { avail.add(xform.transform(f)); } } - return avail; } - public static <T,E extends NamedFactory<T> & OptionalFeature> List<NamedFactory<T>> setUpBuiltinFactories( + public static <T, E extends NamedFactory<T> & OptionalFeature> List<NamedFactory<T>> setUpBuiltinFactories( boolean ignoreUnsupported, Collection<? extends E> preferred) { - List<NamedFactory<T>> avail=new ArrayList<>(preferred.size()); + List<NamedFactory<T>> avail = new ArrayList<>(preferred.size()); for (E f : preferred) { if (ignoreUnsupported || f.isSupported()) { avail.add(f); } } - + return avail; } } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java b/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java index 6c59134..c1bf654 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java @@ -32,41 +32,48 @@ import org.apache.sshd.common.util.Transformer; * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ public interface NamedResource { - /** - * @return The resource name - */ - String getName(); - + /** * Compares 2 {@link NamedResource}s according to their {@link #getName()} * value case <U>insensitive</U> */ - Comparator<NamedResource> BY_NAME_COMPARATOR=new Comparator<NamedResource>() { - @Override - public int compare(NamedResource r1, NamedResource r2) { - String n1=r1.getName(), n2=r2.getName(); - return String.CASE_INSENSITIVE_ORDER.compare(n1, n2); - } - }; + Comparator<NamedResource> BY_NAME_COMPARATOR = new Comparator<NamedResource>() { + @Override + public int compare(NamedResource r1, NamedResource r2) { + String n1 = r1.getName(); + String n2 = r2.getName(); + return String.CASE_INSENSITIVE_ORDER.compare(n1, n2); + } + }; /** * Returns the value of {@link #getName()} - or {@code null} if argument is {@code null} */ - Transformer<NamedResource,String> NAME_EXTRACTOR=new Transformer<NamedResource,String>() { - @Override - public String transform(NamedResource input) { - if (input == null) { - return null; - } else { - return input.getName(); - } + Transformer<NamedResource, String> NAME_EXTRACTOR = new Transformer<NamedResource, String>() { + @Override + public String transform(NamedResource input) { + if (input == null) { + return null; + } else { + return input.getName(); } - }; + } + }; + + /** + * @return The resource name + */ + String getName(); /** * Utility class to help using {@link NamedResource}s */ final class Utils { + + private Utils() { + throw new UnsupportedOperationException("No instance allowed"); + } + /** * @param resources The named resources * @return A {@link List} of all the factories names - in same order @@ -84,7 +91,7 @@ public interface NamedResource { return names; } - + /** * @param resources list of available resources * @return A comma separated list of factory names @@ -92,12 +99,13 @@ public interface NamedResource { public static String getNames(Collection<? extends NamedResource> resources) { return GenericUtils.join(getNameList(resources), ','); } - + /** * Remove the resource identified by the name from the list. - * @param name Name of the resource - ignored if {@code null}/empty - * @param c The {@link Comparator} to decide whether the {@link NamedResource#getName()} - * matches the <tt>name</tt> parameter + * + * @param name Name of the resource - ignored if {@code null}/empty + * @param c The {@link Comparator} to decide whether the {@link NamedResource#getName()} + * matches the <tt>name</tt> parameter * @param resources The {@link NamedResource} to check - ignored if {@code null}/empty * @return the removed resource from the list or {@code null} if not in the list */ @@ -106,14 +114,14 @@ public interface NamedResource { if (r != null) { resources.remove(r); } - + return r; } /** - * @param name Name of the resource - ignored if {@code null}/empty - * @param c The {@link Comparator} to decide whether the {@link NamedResource#getName()} - * matches the <tt>name</tt> parameter + * @param name Name of the resource - ignored if {@code null}/empty + * @param c The {@link Comparator} to decide whether the {@link NamedResource#getName()} + * matches the <tt>name</tt> parameter * @param resources The {@link NamedResource} to check - ignored if {@code null}/empty * @return The <U>first</U> resource whose name matches the parameter (by invoking * {@link Comparator#compare(Object, Object)} - {@code null} if no match found @@ -122,7 +130,7 @@ public interface NamedResource { if (GenericUtils.isEmpty(name) || GenericUtils.isEmpty(resources)) { return null; } - + for (R r : resources) { String n = r.getName(); int nRes = c.compare(name, n); @@ -130,7 +138,7 @@ public interface NamedResource { return r; } } - + return null; } } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/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 054816b..c11fdc0 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,7 +18,6 @@ */ package org.apache.sshd.common; -import org.apache.sshd.common.future.CloseFuture; import org.apache.sshd.common.session.Session; import org.apache.sshd.common.util.buffer.Buffer; @@ -37,7 +36,8 @@ public interface Service extends Closeable { /** * Service the request. - * @param cmd The incoming command type + * + * @param cmd The incoming command type * @param buffer The {@link Buffer} containing optional command parameters * @throws Exception If failed to process the command */ http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/ServiceFactory.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/ServiceFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/ServiceFactory.java index c2be440..6df16cc 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/ServiceFactory.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/ServiceFactory.java @@ -29,12 +29,18 @@ public interface ServiceFactory extends NamedResource { /** * Utility class to help using NamedFactories */ - class Utils { + final class Utils { + + private Utils() { + throw new UnsupportedOperationException("No instance allowed"); + } + /** * Create an instance of the specified name by looking up the needed factory * in the list (case <U>insensitive</U>. + * * @param factories list of available factories - * @param name the factory name to use + * @param name the factory name to use * @return a newly created object or {@code null} if the factory is not in the list * @throws IOException if session creation failed * @see ServiceFactory#create(Session) http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/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 606e774..3242077 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 @@ -30,84 +30,88 @@ public final class SshConstants { // SSH message identifiers // - public static final byte SSH_MSG_DISCONNECT= 1; - public static final byte SSH_MSG_IGNORE= 2; - public static final byte SSH_MSG_UNIMPLEMENTED= 3; - public static final byte SSH_MSG_DEBUG= 4; - public static final byte SSH_MSG_SERVICE_REQUEST= 5; - public static final byte SSH_MSG_SERVICE_ACCEPT= 6; - public static final byte SSH_MSG_KEXINIT= 20; - public static final int MSG_KEX_COOKIE_SIZE = 16; - public static final byte SSH_MSG_NEWKEYS= 21; - - public static final byte SSH_MSG_KEX_FIRST= 30; - public static final byte SSH_MSG_KEX_LAST= 49; - - public static final byte SSH_MSG_KEXDH_INIT= 30; - public static final byte SSH_MSG_KEXDH_REPLY= 31; - - public static final byte SSH_MSG_KEX_DH_GEX_REQUEST_OLD= 30; - public static final byte SSH_MSG_KEX_DH_GEX_GROUP= 31; - public static final byte SSH_MSG_KEX_DH_GEX_INIT= 32; - public static final byte SSH_MSG_KEX_DH_GEX_REPLY= 33; - public static final byte SSH_MSG_KEX_DH_GEX_REQUEST= 34; - - public static final byte SSH_MSG_USERAUTH_REQUEST= 50; - public static final byte SSH_MSG_USERAUTH_FAILURE= 51; - public static final byte SSH_MSG_USERAUTH_SUCCESS= 52; - public static final byte SSH_MSG_USERAUTH_BANNER= 53; - - public static final byte SSH_MSG_USERAUTH_INFO_REQUEST= 60; - public static final byte SSH_MSG_USERAUTH_INFO_RESPONSE= 61; - - public static final byte SSH_MSG_USERAUTH_PK_OK= 60; - - public static final byte SSH_MSG_USERAUTH_PASSWD_CHANGEREQ= 60; - - public static final byte SSH_MSG_USERAUTH_GSSAPI_MIC= 66; - - public static final byte SSH_MSG_GLOBAL_REQUEST= 80; - public static final byte SSH_MSG_REQUEST_SUCCESS= 81; - public static final byte SSH_MSG_REQUEST_FAILURE= 82; - public static final byte SSH_MSG_CHANNEL_OPEN= 90; - public static final byte SSH_MSG_CHANNEL_OPEN_CONFIRMATION= 91; - public static final byte SSH_MSG_CHANNEL_OPEN_FAILURE= 92; - public static final byte SSH_MSG_CHANNEL_WINDOW_ADJUST= 93; - public static final byte SSH_MSG_CHANNEL_DATA= 94; - public static final byte SSH_MSG_CHANNEL_EXTENDED_DATA= 95; - public static final byte SSH_MSG_CHANNEL_EOF= 96; - public static final byte SSH_MSG_CHANNEL_CLOSE= 97; - public static final byte SSH_MSG_CHANNEL_REQUEST= 98; - public static final byte SSH_MSG_CHANNEL_SUCCESS= 99; - public static final byte SSH_MSG_CHANNEL_FAILURE= 100; + public static final byte SSH_MSG_DISCONNECT = 1; + public static final byte SSH_MSG_IGNORE = 2; + public static final byte SSH_MSG_UNIMPLEMENTED = 3; + public static final byte SSH_MSG_DEBUG = 4; + public static final byte SSH_MSG_SERVICE_REQUEST = 5; + public static final byte SSH_MSG_SERVICE_ACCEPT = 6; + public static final byte SSH_MSG_KEXINIT = 20; + public static final int MSG_KEX_COOKIE_SIZE = 16; + public static final byte SSH_MSG_NEWKEYS = 21; + + public static final byte SSH_MSG_KEX_FIRST = 30; + public static final byte SSH_MSG_KEX_LAST = 49; + + public static final byte SSH_MSG_KEXDH_INIT = 30; + public static final byte SSH_MSG_KEXDH_REPLY = 31; + + public static final byte SSH_MSG_KEX_DH_GEX_REQUEST_OLD = 30; + public static final byte SSH_MSG_KEX_DH_GEX_GROUP = 31; + public static final byte SSH_MSG_KEX_DH_GEX_INIT = 32; + public static final byte SSH_MSG_KEX_DH_GEX_REPLY = 33; + public static final byte SSH_MSG_KEX_DH_GEX_REQUEST = 34; + + public static final byte SSH_MSG_USERAUTH_REQUEST = 50; + public static final byte SSH_MSG_USERAUTH_FAILURE = 51; + public static final byte SSH_MSG_USERAUTH_SUCCESS = 52; + public static final byte SSH_MSG_USERAUTH_BANNER = 53; + + public static final byte SSH_MSG_USERAUTH_INFO_REQUEST = 60; + public static final byte SSH_MSG_USERAUTH_INFO_RESPONSE = 61; + + public static final byte SSH_MSG_USERAUTH_PK_OK = 60; + + public static final byte SSH_MSG_USERAUTH_PASSWD_CHANGEREQ = 60; + + public static final byte SSH_MSG_USERAUTH_GSSAPI_MIC = 66; + + public static final byte SSH_MSG_GLOBAL_REQUEST = 80; + public static final byte SSH_MSG_REQUEST_SUCCESS = 81; + public static final byte SSH_MSG_REQUEST_FAILURE = 82; + public static final byte SSH_MSG_CHANNEL_OPEN = 90; + public static final byte SSH_MSG_CHANNEL_OPEN_CONFIRMATION = 91; + public static final byte SSH_MSG_CHANNEL_OPEN_FAILURE = 92; + public static final byte SSH_MSG_CHANNEL_WINDOW_ADJUST = 93; + public static final byte SSH_MSG_CHANNEL_DATA = 94; + public static final byte SSH_MSG_CHANNEL_EXTENDED_DATA = 95; + public static final byte SSH_MSG_CHANNEL_EOF = 96; + public static final byte SSH_MSG_CHANNEL_CLOSE = 97; + public static final byte SSH_MSG_CHANNEL_REQUEST = 98; + public static final byte SSH_MSG_CHANNEL_SUCCESS = 99; + public static final byte SSH_MSG_CHANNEL_FAILURE = 100; // // Disconnect error codes // - public static final int SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT = 1; - public static final int SSH2_DISCONNECT_PROTOCOL_ERROR = 2; - public static final int SSH2_DISCONNECT_KEY_EXCHANGE_FAILED = 3; - public static final int SSH2_DISCONNECT_HOST_AUTHENTICATION_FAILED = 4; - public static final int SSH2_DISCONNECT_RESERVED = 4; - public static final int SSH2_DISCONNECT_MAC_ERROR = 5; - public static final int SSH2_DISCONNECT_COMPRESSION_ERROR = 6; - public static final int SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE = 7; - public static final int SSH2_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED = 8; - public static final int SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE = 9; - public static final int SSH2_DISCONNECT_CONNECTION_LOST = 10; - public static final int SSH2_DISCONNECT_BY_APPLICATION = 11; - public static final int SSH2_DISCONNECT_TOO_MANY_CONNECTIONS = 12; - public static final int SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER = 13; + public static final int SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT = 1; + public static final int SSH2_DISCONNECT_PROTOCOL_ERROR = 2; + public static final int SSH2_DISCONNECT_KEY_EXCHANGE_FAILED = 3; + public static final int SSH2_DISCONNECT_HOST_AUTHENTICATION_FAILED = 4; + public static final int SSH2_DISCONNECT_RESERVED = 4; + public static final int SSH2_DISCONNECT_MAC_ERROR = 5; + public static final int SSH2_DISCONNECT_COMPRESSION_ERROR = 6; + public static final int SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE = 7; + public static final int SSH2_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED = 8; + public static final int SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE = 9; + public static final int SSH2_DISCONNECT_CONNECTION_LOST = 10; + public static final int SSH2_DISCONNECT_BY_APPLICATION = 11; + public static final int SSH2_DISCONNECT_TOO_MANY_CONNECTIONS = 12; + public static final int SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER = 13; public static final int SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE = 14; - public static final int SSH2_DISCONNECT_ILLEGAL_USER_NAME = 15; + public static final int SSH2_DISCONNECT_ILLEGAL_USER_NAME = 15; // // Open error codes // - public static final int SSH_OPEN_ADMINISTRATIVELY_PROHIBITED= 1; - public static final int SSH_OPEN_CONNECT_FAILED= 2; - public static final int SSH_OPEN_UNKNOWN_CHANNEL_TYPE= 3; - public static final int SSH_OPEN_RESOURCE_SHORTAGE= 4; + public static final int SSH_OPEN_ADMINISTRATIVELY_PROHIBITED = 1; + public static final int SSH_OPEN_CONNECT_FAILED = 2; + public static final int SSH_OPEN_UNKNOWN_CHANNEL_TYPE = 3; + public static final int SSH_OPEN_RESOURCE_SHORTAGE = 4; + + private SshConstants() { + throw new UnsupportedOperationException("No instance allowed"); + } } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/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 d7d6234..e4aab99 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 @@ -29,26 +29,30 @@ import org.apache.sshd.common.util.ValidateUtils; * <P>A simple socket address holding the host name and port number. The reason * it does not extend {@link InetSocketAddress} is twofold:</P></BR> * <OL> - * <LI><P> - * The {@link InetSocketAddress} performs a DNS resolution on the - * provided host name - which we don't want do use until we want to - * create a connection using this address (thus the {@link #toInetSocketAddress()} - * call which executes this query - * </P></LI> - * - * <LI><P> - * If empty host name is provided we replace it with the <I>any</I> - * address of 0.0.0.0 - * </P></LI> + * <LI><P> + * The {@link InetSocketAddress} performs a DNS resolution on the + * provided host name - which we don't want do use until we want to + * create a connection using this address (thus the {@link #toInetSocketAddress()} + * call which executes this query + * </P></LI> + * <p/> + * <LI><P> + * If empty host name is provided we replace it with the <I>any</I> + * address of 0.0.0.0 + * </P></LI> * </OL> + * * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ public class SshdSocketAddress extends SocketAddress { - private static final long serialVersionUID = 6461645947151952729L; + /** - * A dummy placeholder that can be used instead of {@code null}s + * A dummy placeholder that can be used instead of {@code null}s */ public static final SshdSocketAddress LOCALHOST_ADDRESS = new SshdSocketAddress("localhost", 0); + + private static final long serialVersionUID = 6461645947151952729L; + private final String hostName; private final int port; @@ -57,7 +61,7 @@ public class SshdSocketAddress extends SocketAddress { this.hostName = GenericUtils.isEmpty(hostName) ? "0.0.0.0" : hostName; ValidateUtils.checkTrue(port >= 0, "Port must be >= 0", Integer.valueOf(port)); - this.port = port; + this.port = port; } public String getHostName() { @@ -82,21 +86,20 @@ public class SshdSocketAddress extends SocketAddress { return false; } else if (that == this) { return true; - } else if ((this.getPort() == that.getPort()) - && Objects.equals(this.getHostName(), that.getHostName())) { - return true; - } else { - return false; // debug breakpoint - } + } else { + return (this.getPort() == that.getPort()) + && Objects.equals(this.getHostName(), that.getHostName()); + } } @Override public boolean equals(Object o) { - if (o == null) + if (o == null) { return false; - if (getClass() != o.getClass()) + } + if (getClass() != o.getClass()) { return false; - + } return isEquivalent((SshdSocketAddress) o); } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java index 2ec3f3f..7b613f5 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java @@ -51,8 +51,8 @@ import org.apache.sshd.common.util.threads.ExecutorServiceConfigurer; * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ public abstract class AbstractChannel - extends CloseableUtils.AbstractInnerCloseable - implements Channel, ExecutorServiceConfigurer { + extends CloseableUtils.AbstractInnerCloseable + implements Channel, ExecutorServiceConfigurer { public static final int DEFAULT_WINDOW_SIZE = 0x200000; public static final int DEFAULT_PACKET_SIZE = 0x8000; @@ -63,15 +63,15 @@ public abstract class AbstractChannel Opened, CloseSent, CloseReceived, Closed } - private ExecutorService executor; - private boolean shutdownExecutor; + protected ExecutorService executor; + protected boolean shutdownExecutor; protected final Window localWindow = new Window(this, null, getClass().getName().contains(".client."), true); protected final Window remoteWindow = new Window(this, null, getClass().getName().contains(".client."), false); protected ConnectionService service; protected Session session; protected int id; protected int recipient; - private final AtomicBoolean eof = new AtomicBoolean(false); + protected final AtomicBoolean eof = new AtomicBoolean(false); protected AtomicReference<GracefulState> gracefulState = new AtomicReference<GracefulState>(GracefulState.Opened); protected final DefaultCloseFuture gracefulFuture = new DefaultCloseFuture(lock); protected final List<RequestHandler<Channel>> handlers = new ArrayList<RequestHandler<Channel>>(); @@ -178,8 +178,7 @@ public abstract class AbstractChannel byte cmd = RequestHandler.Result.ReplySuccess.equals(result) ? SshConstants.SSH_MSG_CHANNEL_SUCCESS - : SshConstants.SSH_MSG_CHANNEL_FAILURE - ; + : SshConstants.SSH_MSG_CHANNEL_FAILURE; buffer.clear(); // leave room for the SSH header buffer.ensureCapacity(5 + 1 + (Integer.SIZE / Byte.SIZE), Int2IntFunction.Utils.add(Byte.SIZE)); @@ -274,10 +273,10 @@ public abstract class AbstractChannel AbstractChannel.this.close(true); } } - + ExecutorService service = getExecutorService(); if ((service != null) && isShutdownOnExit() && (!service.isShutdown())) { - Collection<?> running = service.shutdownNow(); + Collection<?> running = service.shutdownNow(); if (log.isDebugEnabled()) { log.debug("Shutdown executor service on close - running count=" + GenericUtils.size(running)); } @@ -341,7 +340,7 @@ public abstract class AbstractChannel public boolean isEofSignalled() { return eof.get(); } - + public void setEofSignalled(boolean on) { eof.set(on); } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java index 6dcb31b..b950afc 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java @@ -141,7 +141,7 @@ public class ChannelAsyncInputStream extends CloseableUtils.AbstractCloseable im @Override // TODO for JDK-8 make this a default method public void verify(long timeout, TimeUnit unit) throws IOException { - verify(unit.toMillis(timeout)); + verify(unit.toMillis(timeout)); } @Override // TODO for JDK-8 make this a default method http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelFactory.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelFactory.java index bbfd1ad..142d6a9 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelFactory.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelFactory.java @@ -20,17 +20,11 @@ package org.apache.sshd.common.channel; import org.apache.sshd.common.NamedFactory; -import org.apache.sshd.common.util.Transformer; /** * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ +// CHECKSTYLE:OFF public interface ChannelFactory extends NamedFactory<Channel> { - // required because of generics issues - Transformer<ChannelFactory,NamedFactory<Channel>> FAC2NAMED=new Transformer<ChannelFactory,NamedFactory<Channel>>() { - @Override - public NamedFactory<Channel> transform(ChannelFactory input) { - return input; - } - }; + } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java index 83aaaff..3888c14 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java @@ -87,8 +87,8 @@ public class ChannelOutputStream extends OutputStream implements Channel { // out the next packet before we block and wait for space to // become available again. // - int _l = Math.min(l, Math.min(remoteWindow.getSize() + lastSize, remoteWindow.getPacketSize()) - bufferLength); - if (_l <= 0) { + int l2 = Math.min(l, Math.min(remoteWindow.getSize() + lastSize, remoteWindow.getPacketSize()) - bufferLength); + if (l2 <= 0) { if (bufferLength > 0) { flush(); } else { @@ -98,15 +98,15 @@ public class ChannelOutputStream extends OutputStream implements Channel { closed = true; throw e; } catch (InterruptedException e) { - throw (IOException)new InterruptedIOException("Interrupted while waiting for remote space").initCause(e); + throw (IOException) new InterruptedIOException("Interrupted while waiting for remote space").initCause(e); } } continue; } - buffer.putRawBytes(buf, s, _l); - bufferLength += _l; - s += _l; - l -= _l; + buffer.putRawBytes(buf, s, l2); + bufferLength += l2; + s += l2; + l -= l2; } if (noDelay) { flush(); @@ -140,15 +140,15 @@ public class ChannelOutputStream extends OutputStream implements Channel { remoteWindow.waitAndConsume(length); if (log.isDebugEnabled()) { log.debug("Send {} on channel {}", - (cmd == SshConstants.SSH_MSG_CHANNEL_DATA) ? "SSH_MSG_CHANNEL_DATA" : "SSH_MSG_CHANNEL_EXTENDED_DATA", - Integer.valueOf(channel.getId())); + (cmd == SshConstants.SSH_MSG_CHANNEL_DATA) ? "SSH_MSG_CHANNEL_DATA" : "SSH_MSG_CHANNEL_EXTENDED_DATA", + Integer.valueOf(channel.getId())); } channel.writePacket(buf); } - } catch(WindowClosedException e) { + } catch (WindowClosedException e) { closed = true; throw e; - } catch(Exception e) { + } catch (Exception e) { if (e instanceof IOException) { throw (IOException) e; } else { http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelPipedInputStream.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelPipedInputStream.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelPipedInputStream.java index e68ac88..84874bc 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelPipedInputStream.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelPipedInputStream.java @@ -29,7 +29,6 @@ import java.util.concurrent.locks.ReentrantLock; import org.apache.sshd.common.FactoryManager; import org.apache.sshd.common.FactoryManagerUtils; -import org.apache.sshd.common.util.GenericUtils; import org.apache.sshd.common.util.ValidateUtils; import org.apache.sshd.common.util.buffer.Buffer; import org.apache.sshd.common.util.buffer.ByteArrayBuffer; @@ -94,7 +93,7 @@ public class ChannelPipedInputStream extends InputStream implements ChannelPiped if (l == -1) { return -1; } - return (b[0] & 0xff); + return b[0] & 0xff; } } @@ -103,7 +102,7 @@ public class ChannelPipedInputStream extends InputStream implements ChannelPiped long startTime = System.currentTimeMillis(); lock.lock(); try { - for (int index=0;; index++) { + for (int index = 0;; index++) { if ((closed && writerClosed && eofSent) || (closed && !writerClosed)) { throw new IOException("Pipe closed after " + index + " cycles"); } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelPipedSink.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelPipedSink.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelPipedSink.java index 62dacaf..840c560 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelPipedSink.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelPipedSink.java @@ -27,8 +27,8 @@ import java.io.IOException; public interface ChannelPipedSink { /** * @param bytes Bytes to be sent to the sink - * @param off Offset in buffer - * @param len Number of bytes + * @param off Offset in buffer + * @param len Number of bytes * @throws IOException If failed to send the data */ void receive(byte[] bytes, int off, int len) throws IOException; http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelRequestHandler.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelRequestHandler.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelRequestHandler.java index 1871068..e7d5e65 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelRequestHandler.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelRequestHandler.java @@ -20,17 +20,22 @@ package org.apache.sshd.common.channel; import org.apache.sshd.common.util.Transformer; +import org.apache.sshd.common.util.buffer.Buffer; /** * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ public interface ChannelRequestHandler extends RequestHandler<Channel> { + // required because of generics issues - Transformer<ChannelRequestHandler,RequestHandler<Channel>> CHANN2HNDLR = - new Transformer<ChannelRequestHandler, RequestHandler<Channel>>() { - @Override - public RequestHandler<Channel> transform(ChannelRequestHandler input) { - return input; - } - }; + Transformer<ChannelRequestHandler, RequestHandler<Channel>> CHANN2HNDLR = + new Transformer<ChannelRequestHandler, RequestHandler<Channel>>() { + @Override + public RequestHandler<Channel> transform(ChannelRequestHandler input) { + return input; + } + }; + + Result process(Channel channel, String request, boolean wantReply, Buffer buffer) throws Exception; + } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/IoWriteFutureImpl.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/IoWriteFutureImpl.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/IoWriteFutureImpl.java index 9bd3cbe..294c970 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/IoWriteFutureImpl.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/IoWriteFutureImpl.java @@ -20,7 +20,6 @@ package org.apache.sshd.common.channel; import org.apache.sshd.common.io.AbstractIoWriteFuture; -import org.apache.sshd.common.util.GenericUtils; import org.apache.sshd.common.util.ValidateUtils; import org.apache.sshd.common.util.buffer.Buffer; http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/PtyMode.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/PtyMode.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/PtyMode.java index bd2bdbd..b0ec6db 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/PtyMode.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/PtyMode.java @@ -51,6 +51,18 @@ public enum PtyMode { // Speeed TTY_OP_ISPEED(128), TTY_OP_OSPEED(129); + public static final byte TTY_OP_END = 0x00; + + private static final Map<Integer, PtyMode> COMMANDS; + + static { + Map<Integer, PtyMode> commands = new java.util.HashMap<>(); + for (PtyMode c : PtyMode.values()) { + commands.put(c.toInt(), c); + } + COMMANDS = Collections.unmodifiableMap(commands); + } + private int v; PtyMode(int v) { @@ -61,20 +73,7 @@ public enum PtyMode { return v; } - public static final byte TTY_OP_END = 0x00; - - private static final Map<Integer, PtyMode> commands = - Collections.unmodifiableMap(new HashMap<Integer, PtyMode>() { - private static final long serialVersionUID = 1L; // we're not serializing it - - { - for (PtyMode c : PtyMode.values()) { - put(c.toInt(), c); - } - } - }); - public static PtyMode fromInt(int b) { - return commands.get(0x00FF & (b + 0x100)); + return COMMANDS.get(0x00FF & (b + 0x100)); } } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java index f6f2527..7bdf320 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java @@ -30,12 +30,16 @@ import java.util.TreeMap; * * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ -public class SttySupport { +public final class SttySupport { private static String sttyCommand = System.getProperty("sshd.sttyCommand", "stty"); private static String ttyProps; private static long ttyPropsLastFetched; + private SttySupport() { + throw new UnsupportedOperationException("No instance allowed"); + } + public static Map<PtyMode, Integer> getUnixPtyModes() throws IOException, InterruptedException { return parsePtyModes(getTtyProps()); } @@ -121,12 +125,12 @@ public class SttySupport { } /** - * Returns the value of "stty size" width param. - * - * <strong>Note</strong>: this method caches the value from the - * first time it is called in order to increase speed, which means - * that changing to size of the terminal will not be reflected - * in the console. + * Returns the value of "stty size" width param. + * <p/> + * <strong>Note</strong>: this method caches the value from the + * first time it is called in order to increase speed, which means + * that changing to size of the terminal will not be reflected + * in the console. */ public static int getTerminalWidth() { int val = -1; @@ -145,12 +149,12 @@ public class SttySupport { } /** - * Returns the value of "stty size" height param. - * - * <strong>Note</strong>: this method caches the value from the - * first time it is called in order to increase speed, which means - * that changing to size of the terminal will not be reflected - * in the console. + * Returns the value of "stty size" height param. + * <p/> + * <strong>Note</strong>: this method caches the value from the + * first time it is called in order to increase speed, which means + * that changing to size of the terminal will not be reflected + * in the console. */ public static int getTerminalHeight() { int val = -1; @@ -169,13 +173,12 @@ public class SttySupport { } private static int getTerminalProperty(String prop) - throws IOException, InterruptedException { + throws IOException, InterruptedException { // need to be able handle both output formats: // speed 9600 baud; 24 rows; 140 columns; // and: // speed 38400 baud; rows = 49; columns = 111; ypixels = 0; xpixels = 0; - for (StringTokenizer tok = new StringTokenizer(getTtyProps(), ";\n"); - tok.hasMoreTokens();) { + for (StringTokenizer tok = new StringTokenizer(getTtyProps(), ";\n"); tok.hasMoreTokens();) { String str = tok.nextToken().trim(); if (str.startsWith(prop)) { @@ -203,33 +206,33 @@ public class SttySupport { /** - * Execute the stty command with the specified arguments - * against the current active terminal. + * Execute the stty command with the specified arguments + * against the current active terminal. */ public static String stty(final String args) - throws IOException, InterruptedException { + throws IOException, InterruptedException { return exec("stty " + args + " < /dev/tty").trim(); } /** - * Execute the specified command and return the output - * (both stdout and stderr). + * Execute the specified command and return the output + * (both stdout and stderr). */ public static String exec(final String cmd) - throws IOException, InterruptedException { + throws IOException, InterruptedException { return exec(new String[] { - "sh", - "-c", - cmd - }); + "sh", + "-c", + cmd + }); } /** - * Execute the specified command and return the output - * (both stdout and stderr). + * Execute the specified command and return the output + * (both stdout and stderr). */ private static String exec(final String[] cmd) - throws IOException, InterruptedException { + throws IOException, InterruptedException { ByteArrayOutputStream bout = new ByteArrayOutputStream(); Process p = Runtime.getRuntime().exec(cmd); @@ -256,16 +259,16 @@ public class SttySupport { } /** - * The command to use to set the terminal options. Defaults - * to "stty", or the value of the system property "jline.sttyCommand". + * The command to use to set the terminal options. Defaults + * to "stty", or the value of the system property "jline.sttyCommand". */ public static void setSttyCommand(String cmd) { sttyCommand = cmd; } /** - * The command to use to set the terminal options. Defaults - * to "stty", or the value of the system property "jline.sttyCommand". + * The command to use to set the terminal options. Defaults + * to "stty", or the value of the system property "jline.sttyCommand". */ public static String getSttyCommand() { return sttyCommand; http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/Window.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/Window.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/Window.java index d3b693d..1bd7031 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/Window.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/Window.java @@ -25,7 +25,6 @@ import java.util.Map; import org.apache.sshd.common.FactoryManager; import org.apache.sshd.common.FactoryManagerUtils; import org.apache.sshd.common.session.Session; -import org.apache.sshd.common.util.GenericUtils; import org.apache.sshd.common.util.ValidateUtils; import org.apache.sshd.common.util.logging.AbstractLoggingBean; @@ -34,7 +33,7 @@ import org.apache.sshd.common.util.logging.AbstractLoggingBean; * Windows are used to not overflow the client or server when sending datas. * Both clients and servers have a local and remote window and won't send * anymore data until the window has been expanded. When the local window - * is + * is * * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ @@ -48,7 +47,7 @@ public class Window extends AbstractLoggingBean { private int packetSize; private boolean waiting; private boolean closed; - private Map<String,?> props = Collections.<String,Object>emptyMap(); + private Map<String, ?> props = Collections.<String, Object>emptyMap(); public Window(AbstractChannel channel, Object lock, boolean client, boolean local) { this.channel = ValidateUtils.checkNotNull(channel, "No channel provided"); @@ -56,7 +55,7 @@ public class Window extends AbstractLoggingBean { this.name = String.valueOf(channel) + ": " + (client ? "client" : "server") + " " + (local ? "local " : "remote") + " window"; } - public Map<String,?> getProperties() { + public Map<String, ?> getProperties() { return props; } @@ -77,18 +76,18 @@ public class Window extends AbstractLoggingBean { public void init(Session session) { init(session.getFactoryManager()); } - + public void init(FactoryManager manager) { init(manager.getProperties()); } - public void init(Map<String,?> props) { + public void init(Map<String, ?> props) { init(FactoryManagerUtils.getIntProperty(props, FactoryManager.WINDOW_SIZE, AbstractChannel.DEFAULT_WINDOW_SIZE), - FactoryManagerUtils.getIntProperty(props, FactoryManager.MAX_PACKET_SIZE, AbstractChannel.DEFAULT_PACKET_SIZE), - props); + FactoryManagerUtils.getIntProperty(props, FactoryManager.MAX_PACKET_SIZE, AbstractChannel.DEFAULT_PACKET_SIZE), + props); } - public void init(int size, int packetSize, Map<String,?> props) { + public void init(int size, int packetSize, Map<String, ?> props) { synchronized (lock) { this.size = size; this.maxSize = size; http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/channel/WindowClosedException.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/WindowClosedException.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/WindowClosedException.java index 039a72d..050f8ce 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/WindowClosedException.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/WindowClosedException.java @@ -22,7 +22,7 @@ import org.apache.sshd.common.SshException; /** * Indicates a {@link Window} has been closed. - * + * * @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a> */ public class WindowClosedException extends SshException { http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseCipher.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseCipher.java b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseCipher.java index de22140..605515c 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseCipher.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseCipher.java @@ -61,11 +61,10 @@ public class BaseCipher implements Cipher { iv = resize(iv, ivsize); try { cipher = SecurityUtils.getCipher(transformation); - cipher.init((mode == Mode.Encrypt ? javax.crypto.Cipher.ENCRYPT_MODE : javax.crypto.Cipher.DECRYPT_MODE), - new SecretKeySpec(key, algorithm), - new IvParameterSpec(iv)); - } - catch (Exception e) { + cipher.init(mode == Mode.Encrypt ? javax.crypto.Cipher.ENCRYPT_MODE : javax.crypto.Cipher.DECRYPT_MODE, + new SecretKeySpec(key, algorithm), + new IvParameterSpec(iv)); + } catch (Exception e) { cipher = null; throw new SshException("Unable to initialize cipher " + this, e); } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseRC4Cipher.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseRC4Cipher.java b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseRC4Cipher.java index a6cdc68..45e5a5b 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseRC4Cipher.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseRC4Cipher.java @@ -27,7 +27,7 @@ import org.apache.sshd.common.util.SecurityUtils; */ public class BaseRC4Cipher extends BaseCipher { - public static final int SKIP_SIZE = 1536; + public static final int SKIP_SIZE = 1536; public BaseRC4Cipher(int ivsize, int bsize) { super(ivsize, bsize, "ARCFOUR", "RC4"); @@ -38,7 +38,7 @@ public class BaseRC4Cipher extends BaseCipher { key = resize(key, bsize); try { cipher = SecurityUtils.getCipher(transformation); - cipher.init((mode == Mode.Encrypt ? javax.crypto.Cipher.ENCRYPT_MODE : javax.crypto.Cipher.DECRYPT_MODE), + cipher.init(mode == Mode.Encrypt ? javax.crypto.Cipher.ENCRYPT_MODE : javax.crypto.Cipher.DECRYPT_MODE, new SecretKeySpec(key, algorithm)); byte[] foo = new byte[1];
