This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git
The following commit(s) were added to refs/heads/master by this push:
new 4f4a752 [SSHD-1039] Fix support for some basic options in ssh/sshd cli
4f4a752 is described below
commit 4f4a75297878a9dfb335138ebf65c205e46b160c
Author: Guillaume Nodet <[email protected]>
AuthorDate: Tue Jul 21 11:48:49 2020 +0200
[SSHD-1039] Fix support for some basic options in ssh/sshd cli
---
CHANGES.md | 3 +-
.../sshd/cli/client/SshClientCliSupport.java | 12 +-
.../org/apache/sshd/cli/server/SshServerMain.java | 8 +-
.../common/config/ConfigFileReaderSupport.java | 26 ----
.../client/config/SshClientConfigFileReader.java | 3 +-
.../sshd/common/config/SshConfigFileReader.java | 132 +++++++++++----------
.../server/config/SshServerConfigFileReader.java | 3 +-
.../common/config/SshConfigFileReaderTest.java | 32 +----
8 files changed, 82 insertions(+), 137 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index e1a255b..6f08d43 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -19,4 +19,5 @@
## Behavioral changes and enhancements
-* [SSHD-1033](https://issues.apache.org/jira/browse/SSHD-1033) Fix
simultaneous usage of dynamic and local port forwarding.
\ No newline at end of file
+* [SSHD-1033](https://issues.apache.org/jira/browse/SSHD-1033) Fix
simultaneous usage of dynamic and local port forwarding.
+* [SSHD-1039](https://issues.apache.org/jira/browse/SSHD-1039) Fix support for
some basic options in ssh/sshd cli.
diff --git
a/sshd-cli/src/main/java/org/apache/sshd/cli/client/SshClientCliSupport.java
b/sshd-cli/src/main/java/org/apache/sshd/cli/client/SshClientCliSupport.java
index 7a04074..c7ab0e3 100644
--- a/sshd-cli/src/main/java/org/apache/sshd/cli/client/SshClientCliSupport.java
+++ b/sshd-cli/src/main/java/org/apache/sshd/cli/client/SshClientCliSupport.java
@@ -28,7 +28,6 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@@ -71,6 +70,7 @@ import org.apache.sshd.common.compression.BuiltinCompressions;
import org.apache.sshd.common.compression.Compression;
import org.apache.sshd.common.config.CompressionConfigValue;
import org.apache.sshd.common.config.ConfigFileReaderSupport;
+import org.apache.sshd.common.config.SshConfigFileReader;
import org.apache.sshd.common.config.keys.BuiltinIdentities;
import org.apache.sshd.common.config.keys.KeyUtils;
import org.apache.sshd.common.config.keys.PublicKeyEntry;
@@ -176,13 +176,7 @@ public abstract class SshClientCliSupport extends
CliSupport {
Path idFile = resolveIdentityFile(argVal);
identities.add(idFile);
} else if ("-C".equals(argName)) {
- compressions = setupCompressions(argName,
- GenericUtils.join(
- Arrays.asList(
- BuiltinCompressions.Constants.ZLIB,
-
BuiltinCompressions.Constants.DELAYED_ZLIB),
- ','),
- compressions, stderr);
+ compressions = setupCompressions(argName, argVal,
compressions, stderr);
if (GenericUtils.isEmpty(compressions)) {
error = true;
break;
@@ -392,6 +386,8 @@ public abstract class SshClientCliSupport extends
CliSupport {
PrintStream stdout, PrintStream stderr, String... args) {
SshClient client = setupIoServiceFactory(
SshClient.setUpDefaultClient(), resolver, level, stdout,
stderr, args);
+ SshConfigFileReader.configureKeyExchanges(client, resolver, true,
ClientBuilder.DH2KEX, true);
+ SshConfigFileReader.configureSignatures(client, resolver, true, true);
SshClientConfigFileReader.setupClientHeartbeat(client, resolver);
return client;
}
diff --git
a/sshd-cli/src/main/java/org/apache/sshd/cli/server/SshServerMain.java
b/sshd-cli/src/main/java/org/apache/sshd/cli/server/SshServerMain.java
index a6e6e51..07f38a9 100644
--- a/sshd-cli/src/main/java/org/apache/sshd/cli/server/SshServerMain.java
+++ b/sshd-cli/src/main/java/org/apache/sshd/cli/server/SshServerMain.java
@@ -33,7 +33,6 @@ import org.apache.sshd.common.NamedResource;
import org.apache.sshd.common.PropertyResolver;
import org.apache.sshd.common.PropertyResolverUtils;
import org.apache.sshd.common.config.ConfigFileReaderSupport;
-import org.apache.sshd.common.config.SshConfigFileReader;
import org.apache.sshd.common.keyprovider.FileHostKeyCertificateProvider;
import org.apache.sshd.common.keyprovider.HostKeyCertificateProvider;
import org.apache.sshd.common.keyprovider.KeyPairProvider;
@@ -179,7 +178,7 @@ public class SshServerMain extends SshServerCliSupport {
Map<String, Object> props = sshd.getProperties();
props.putAll(options);
- SshServerConfigFileReader.setupServerHeartbeat(sshd, resolver);
+ SshServerConfigFileReader.configure(sshd, resolver, true, true);
KeyPairProvider hostKeyProvider = resolveServerKeys(System.err,
hostKeyType, hostKeySize, keyFiles);
sshd.setKeyPairProvider(hostKeyProvider);
if (GenericUtils.isNotEmpty(certFiles)) {
@@ -191,11 +190,6 @@ public class SshServerMain extends SshServerCliSupport {
setupServerBanner(sshd, resolver);
sshd.setPort(port);
- String macsOverride =
resolver.getString(ConfigFileReaderSupport.MACS_CONFIG_PROP);
- if (GenericUtils.isNotEmpty(macsOverride)) {
- SshConfigFileReader.configureMacs(sshd, macsOverride, true, true);
- }
-
ShellFactory shellFactory = resolveShellFactory(System.err, resolver);
if (shellFactory != null) {
System.out.append("Using
shell=").println(shellFactory.getClass().getName());
diff --git
a/sshd-common/src/main/java/org/apache/sshd/common/config/ConfigFileReaderSupport.java
b/sshd-common/src/main/java/org/apache/sshd/common/config/ConfigFileReaderSupport.java
index cd794c5..9f9ebdf 100644
---
a/sshd-common/src/main/java/org/apache/sshd/common/config/ConfigFileReaderSupport.java
+++
b/sshd-common/src/main/java/org/apache/sshd/common/config/ConfigFileReaderSupport.java
@@ -30,15 +30,10 @@ import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.OpenOption;
import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
import org.apache.sshd.common.PropertyResolverUtils;
-import org.apache.sshd.common.auth.UserAuthMethodFactory;
-import org.apache.sshd.common.keyprovider.KeyPairProvider;
import org.apache.sshd.common.util.GenericUtils;
import org.apache.sshd.common.util.io.NoCloseInputStream;
import org.apache.sshd.common.util.io.NoCloseReader;
@@ -70,12 +65,6 @@ public final class ConfigFileReaderSupport {
public static final boolean DEFAULT_KBD_INTERACTIVE_AUTH_VALUE =
parseBooleanValue(DEFAULT_KBD_INTERACTIVE_AUTH);
public static final String PREFERRED_AUTHS_CONFIG_PROP =
"PreferredAuthentications";
- public static final List<String> DEFAULT_PREFERRED_AUTHS =
Collections.unmodifiableList(
- Arrays.asList(
- UserAuthMethodFactory.PUBLIC_KEY,
- UserAuthMethodFactory.KB_INTERACTIVE,
- UserAuthMethodFactory.PASSWORD));
- public static final String DEFAULT_PREFERRED_AUTHS_VALUE =
GenericUtils.join(DEFAULT_PREFERRED_AUTHS, ',');
public static final String LISTEN_ADDRESS_CONFIG_PROP = "ListenAddress";
public static final String DEFAULT_BIND_ADDRESS =
SshdSocketAddress.IPV4_ANYADDR;
@@ -96,27 +85,12 @@ public final class ConfigFileReaderSupport {
public static final long DEFAULT_REKEY_TIME_LIMIT =
TimeUnit.HOURS.toMillis(1L);
// see
http://manpages.ubuntu.com/manpages/precise/en/man5/sshd_config.5.html
public static final String CIPHERS_CONFIG_PROP = "Ciphers";
- public static final String DEFAULT_CIPHERS =
"aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc"
- +
",blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour";
// see
http://manpages.ubuntu.com/manpages/precise/en/man5/sshd_config.5.html
public static final String MACS_CONFIG_PROP = "MACs";
- public static final String DEFAULT_MACS =
"hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,hmac-sha1-96"
- +
",hmac-md5-96,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96";
// see
http://manpages.ubuntu.com/manpages/precise/en/man5/sshd_config.5.html
public static final String KEX_ALGORITHMS_CONFIG_PROP = "KexAlgorithms";
- public static final String DEFAULT_KEX_ALGORITHMS =
"ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521"
- + ","
- +
"diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1"
- // RFC-8268 groups
- + "," +
"diffie-hellman-group18-sha512,diffie-hellman-group17-sha512"
- + "," +
"diffie-hellman-group16-sha512,diffie-hellman-group15-sha512"
- + "," +
"diffie-hellman-group14-sha256"
- // Legacy groups
- + "," +
"diffie-hellman-group14-sha1,diffie-hellman-group1-sha1";
// see http://linux.die.net/man/5/ssh_config
public static final String HOST_KEY_ALGORITHMS_CONFIG_PROP =
"HostKeyAlgorithms";
- // see https://tools.ietf.org/html/rfc5656
- public static final String DEFAULT_HOST_KEY_ALGORITHMS =
KeyPairProvider.SSH_RSA + "," + KeyPairProvider.SSH_DSS;
// see
http://manpages.ubuntu.com/manpages/precise/en/man5/sshd_config.5.html
public static final String LOG_LEVEL_CONFIG_PROP = "LogLevel";
public static final LogLevelValue DEFAULT_LOG_LEVEL = LogLevelValue.INFO;
diff --git
a/sshd-core/src/main/java/org/apache/sshd/client/config/SshClientConfigFileReader.java
b/sshd-core/src/main/java/org/apache/sshd/client/config/SshClientConfigFileReader.java
index f93a2e9..742cda4 100644
---
a/sshd-core/src/main/java/org/apache/sshd/client/config/SshClientConfigFileReader.java
+++
b/sshd-core/src/main/java/org/apache/sshd/client/config/SshClientConfigFileReader.java
@@ -28,7 +28,6 @@ import org.apache.sshd.common.Property;
import org.apache.sshd.common.PropertyResolver;
import org.apache.sshd.common.PropertyResolverUtils;
import org.apache.sshd.common.config.SshConfigFileReader;
-import org.apache.sshd.common.helpers.AbstractFactoryManager;
import org.apache.sshd.common.session.SessionHeartbeatController.HeartbeatType;
import org.apache.sshd.common.util.GenericUtils;
import org.apache.sshd.core.CoreModuleProperties;
@@ -89,7 +88,7 @@ public final class SshClientConfigFileReader {
public static <C extends SshClient> C configure(
C client, PropertyResolver props, boolean lenient, boolean
ignoreUnsupported) {
- SshConfigFileReader.configure((AbstractFactoryManager) client, props,
lenient, ignoreUnsupported);
+ SshConfigFileReader.configure(client, props, lenient,
ignoreUnsupported);
SshConfigFileReader.configureKeyExchanges(client, props, lenient,
ClientBuilder.DH2KEX, ignoreUnsupported);
setupClientHeartbeat(client, props);
return client;
diff --git
a/sshd-core/src/main/java/org/apache/sshd/common/config/SshConfigFileReader.java
b/sshd-core/src/main/java/org/apache/sshd/common/config/SshConfigFileReader.java
index 4be1aaf..6aa3b52 100644
---
a/sshd-core/src/main/java/org/apache/sshd/common/config/SshConfigFileReader.java
+++
b/sshd-core/src/main/java/org/apache/sshd/common/config/SshConfigFileReader.java
@@ -162,8 +162,7 @@ public final class SshConfigFileReader {
M manager, PropertyResolver props, boolean lenient, boolean
ignoreUnsupported) {
Objects.requireNonNull(props, "No properties to configure");
return configureCiphers(manager,
- props.getStringProperty(
- ConfigFileReaderSupport.CIPHERS_CONFIG_PROP,
ConfigFileReaderSupport.DEFAULT_CIPHERS),
+ props.getString(ConfigFileReaderSupport.CIPHERS_CONFIG_PROP),
lenient, ignoreUnsupported);
}
@@ -171,14 +170,17 @@ public final class SshConfigFileReader {
M manager, String value, boolean lenient, boolean
ignoreUnsupported) {
Objects.requireNonNull(manager, "No manager to configure");
- BuiltinCiphers.ParseResult result =
BuiltinCiphers.parseCiphersList(value);
- Collection<String> unsupported = result.getUnsupportedFactories();
- ValidateUtils.checkTrue(lenient || GenericUtils.isEmpty(unsupported),
- "Unsupported cipher(s) (%s) in %s", unsupported, value);
+ if (!GenericUtils.isEmpty(value)) {
+ BuiltinCiphers.ParseResult result =
BuiltinCiphers.parseCiphersList(value);
+ Collection<String> unsupported = result.getUnsupportedFactories();
+ ValidateUtils.checkTrue(lenient ||
GenericUtils.isEmpty(unsupported),
+ "Unsupported cipher(s) (%s) in %s", unsupported, value);
- List<NamedFactory<Cipher>> factories =
BuiltinFactory.setUpFactories(ignoreUnsupported, result.getParsedFactories());
- manager.setCipherFactories(
- ValidateUtils.checkNotNullAndNotEmpty(factories, "No
known/unsupported ciphers(s): %s", value));
+ List<NamedFactory<Cipher>> factories
+ = BuiltinFactory.setUpFactories(ignoreUnsupported,
result.getParsedFactories());
+ manager.setCipherFactories(
+ ValidateUtils.checkNotNullAndNotEmpty(factories, "No
known/unsupported ciphers(s): %s", value));
+ }
return manager;
}
@@ -186,9 +188,7 @@ public final class SshConfigFileReader {
M manager, PropertyResolver props, boolean lenient, boolean
ignoreUnsupported) {
Objects.requireNonNull(props, "No properties to configure");
return configureSignatures(manager,
- props.getStringProperty(
-
ConfigFileReaderSupport.HOST_KEY_ALGORITHMS_CONFIG_PROP,
- ConfigFileReaderSupport.DEFAULT_HOST_KEY_ALGORITHMS),
+
props.getString(ConfigFileReaderSupport.HOST_KEY_ALGORITHMS_CONFIG_PROP),
lenient, ignoreUnsupported);
}
@@ -196,14 +196,17 @@ public final class SshConfigFileReader {
M manager, String value, boolean lenient, boolean
ignoreUnsupported) {
Objects.requireNonNull(manager, "No manager to configure");
- BuiltinSignatures.ParseResult result =
BuiltinSignatures.parseSignatureList(value);
- Collection<String> unsupported = result.getUnsupportedFactories();
- ValidateUtils.checkTrue(lenient || GenericUtils.isEmpty(unsupported),
- "Unsupported signatures (%s) in %s", unsupported, value);
+ if (!GenericUtils.isEmpty(value)) {
+ BuiltinSignatures.ParseResult result =
BuiltinSignatures.parseSignatureList(value);
+ Collection<String> unsupported = result.getUnsupportedFactories();
+ ValidateUtils.checkTrue(lenient ||
GenericUtils.isEmpty(unsupported),
+ "Unsupported signatures (%s) in %s", unsupported, value);
- List<NamedFactory<Signature>> factories =
BuiltinFactory.setUpFactories(ignoreUnsupported, result.getParsedFactories());
- manager.setSignatureFactories(
- ValidateUtils.checkNotNullAndNotEmpty(factories, "No
known/supported signatures: %s", value));
+ List<NamedFactory<Signature>> factories
+ = BuiltinFactory.setUpFactories(ignoreUnsupported,
result.getParsedFactories());
+ manager.setSignatureFactories(
+ ValidateUtils.checkNotNullAndNotEmpty(factories, "No
known/supported signatures: %s", value));
+ }
return manager;
}
@@ -211,8 +214,7 @@ public final class SshConfigFileReader {
M manager, PropertyResolver resolver, boolean lenient, boolean
ignoreUnsupported) {
Objects.requireNonNull(resolver, "No properties to configure");
return configureMacs(manager,
- resolver.getStringProperty(
- ConfigFileReaderSupport.MACS_CONFIG_PROP,
ConfigFileReaderSupport.DEFAULT_MACS),
+ resolver.getString(ConfigFileReaderSupport.MACS_CONFIG_PROP),
lenient, ignoreUnsupported);
}
@@ -220,14 +222,16 @@ public final class SshConfigFileReader {
M manager, String value, boolean lenient, boolean
ignoreUnsupported) {
Objects.requireNonNull(manager, "No manager to configure");
- BuiltinMacs.ParseResult result = BuiltinMacs.parseMacsList(value);
- Collection<String> unsupported = result.getUnsupportedFactories();
- ValidateUtils.checkTrue(lenient || GenericUtils.isEmpty(unsupported),
- "Unsupported MAC(s) (%s) in %s", unsupported, value);
+ if (!GenericUtils.isEmpty(value)) {
+ BuiltinMacs.ParseResult result = BuiltinMacs.parseMacsList(value);
+ Collection<String> unsupported = result.getUnsupportedFactories();
+ ValidateUtils.checkTrue(lenient ||
GenericUtils.isEmpty(unsupported),
+ "Unsupported MAC(s) (%s) in %s", unsupported, value);
- List<NamedFactory<Mac>> factories =
BuiltinFactory.setUpFactories(ignoreUnsupported, result.getParsedFactories());
- manager.setMacFactories(
- ValidateUtils.checkNotNullAndNotEmpty(factories, "No
known/supported MAC(s): %s", value));
+ List<NamedFactory<Mac>> factories =
BuiltinFactory.setUpFactories(ignoreUnsupported, result.getParsedFactories());
+ manager.setMacFactories(
+ ValidateUtils.checkNotNullAndNotEmpty(factories, "No
known/supported MAC(s): %s", value));
+ }
return manager;
}
@@ -251,8 +255,7 @@ public final class SshConfigFileReader {
Function<? super DHFactory, ? extends KeyExchangeFactory> xformer,
boolean ignoreUnsupported) {
Objects.requireNonNull(props, "No properties to configure");
return configureKeyExchanges(manager,
- props.getStringProperty(
- ConfigFileReaderSupport.KEX_ALGORITHMS_CONFIG_PROP,
ConfigFileReaderSupport.DEFAULT_KEX_ALGORITHMS),
+
props.getString(ConfigFileReaderSupport.KEX_ALGORITHMS_CONFIG_PROP),
lenient, xformer, ignoreUnsupported);
}
@@ -262,15 +265,17 @@ public final class SshConfigFileReader {
Objects.requireNonNull(manager, "No manager to configure");
Objects.requireNonNull(xformer, "No DHFactory transformer");
- BuiltinDHFactories.ParseResult result =
BuiltinDHFactories.parseDHFactoriesList(value);
- Collection<String> unsupported = result.getUnsupportedFactories();
- ValidateUtils.checkTrue(lenient || GenericUtils.isEmpty(unsupported),
- "Unsupported KEX(s) (%s) in %s", unsupported, value);
+ if (!GenericUtils.isEmpty(value)) {
+ BuiltinDHFactories.ParseResult result =
BuiltinDHFactories.parseDHFactoriesList(value);
+ Collection<String> unsupported = result.getUnsupportedFactories();
+ ValidateUtils.checkTrue(lenient ||
GenericUtils.isEmpty(unsupported),
+ "Unsupported KEX(s) (%s) in %s", unsupported, value);
- List<KeyExchangeFactory> factories
- = NamedFactory.setUpTransformedFactories(ignoreUnsupported,
result.getParsedFactories(), xformer);
- manager.setKeyExchangeFactories(
- ValidateUtils.checkNotNullAndNotEmpty(factories, "No
known/supported KEXS(s): %s", value));
+ List<KeyExchangeFactory> factories
+ =
NamedFactory.setUpTransformedFactories(ignoreUnsupported,
result.getParsedFactories(), xformer);
+ manager.setKeyExchangeFactories(
+ ValidateUtils.checkNotNullAndNotEmpty(factories, "No
known/supported KEXS(s): %s", value));
+ }
return manager;
}
@@ -290,14 +295,14 @@ public final class SshConfigFileReader {
Objects.requireNonNull(manager, "No manager to configure");
Objects.requireNonNull(props, "No properties to configure");
- String value =
props.getStringProperty(ConfigFileReaderSupport.COMPRESSION_PROP,
- ConfigFileReaderSupport.DEFAULT_COMPRESSION);
- CompressionFactory factory = CompressionConfigValue.fromName(value);
- ValidateUtils.checkTrue(lenient || (factory != null), "Unsupported
compression value: %s", value);
- if ((factory != null) && factory.isSupported()) {
-
manager.setCompressionFactories(Collections.singletonList(factory));
+ String value =
props.getString(ConfigFileReaderSupport.COMPRESSION_PROP);
+ if (!GenericUtils.isEmpty(value)) {
+ CompressionFactory factory =
CompressionConfigValue.fromName(value);
+ ValidateUtils.checkTrue(lenient || (factory != null), "Unsupported
compression value: %s", value);
+ if ((factory != null) && factory.isSupported()) {
+
manager.setCompressionFactories(Collections.singletonList(factory));
+ }
}
-
return manager;
}
@@ -306,26 +311,27 @@ public final class SshConfigFileReader {
M manager, String value, boolean lenient, boolean
ignoreUnsupported) {
Objects.requireNonNull(manager, "No manager to configure");
- CompressionFactory factory = CompressionConfigValue.fromName(value);
- if (factory != null) {
- // SSH can work without compression
- if (ignoreUnsupported || factory.isSupported()) {
-
manager.setCompressionFactories(Collections.singletonList(factory));
- }
- } else {
- BuiltinCompressions.ParseResult result =
BuiltinCompressions.parseCompressionsList(value);
- Collection<String> unsupported = result.getUnsupportedFactories();
- ValidateUtils.checkTrue(lenient ||
GenericUtils.isEmpty(unsupported), "Unsupported compressions(s) (%s) in %s",
- unsupported, value);
-
- List<NamedFactory<Compression>> factories
- = BuiltinFactory.setUpFactories(ignoreUnsupported,
result.getParsedFactories());
- // SSH can work without compression
- if (GenericUtils.size(factories) > 0) {
- manager.setCompressionFactories(factories);
+ if (!GenericUtils.isEmpty(value)) {
+ CompressionFactory factory =
CompressionConfigValue.fromName(value);
+ if (factory != null) {
+ // SSH can work without compression
+ if (ignoreUnsupported || factory.isSupported()) {
+
manager.setCompressionFactories(Collections.singletonList(factory));
+ }
+ } else {
+ BuiltinCompressions.ParseResult result =
BuiltinCompressions.parseCompressionsList(value);
+ Collection<String> unsupported =
result.getUnsupportedFactories();
+ ValidateUtils.checkTrue(lenient ||
GenericUtils.isEmpty(unsupported), "Unsupported compressions(s) (%s) in %s",
+ unsupported, value);
+
+ List<NamedFactory<Compression>> factories
+ = BuiltinFactory.setUpFactories(ignoreUnsupported,
result.getParsedFactories());
+ // SSH can work without compression
+ if (GenericUtils.size(factories) > 0) {
+ manager.setCompressionFactories(factories);
+ }
}
}
-
return manager;
}
}
diff --git
a/sshd-core/src/main/java/org/apache/sshd/server/config/SshServerConfigFileReader.java
b/sshd-core/src/main/java/org/apache/sshd/server/config/SshServerConfigFileReader.java
index 1efbc40..9eb79aa 100644
---
a/sshd-core/src/main/java/org/apache/sshd/server/config/SshServerConfigFileReader.java
+++
b/sshd-core/src/main/java/org/apache/sshd/server/config/SshServerConfigFileReader.java
@@ -27,7 +27,6 @@ import org.apache.sshd.common.PropertyResolver;
import org.apache.sshd.common.PropertyResolverUtils;
import org.apache.sshd.common.config.ConfigFileReaderSupport;
import org.apache.sshd.common.config.SshConfigFileReader;
-import org.apache.sshd.common.helpers.AbstractFactoryManager;
import org.apache.sshd.common.session.SessionHeartbeatController.HeartbeatType;
import org.apache.sshd.common.util.GenericUtils;
import org.apache.sshd.common.util.ValidateUtils;
@@ -104,7 +103,7 @@ public final class SshServerConfigFileReader {
public static <S extends SshServer> S configure(
S server, PropertyResolver props, boolean lenient, boolean
ignoreUnsupported) {
- SshConfigFileReader.configure((AbstractFactoryManager) server, props,
lenient, ignoreUnsupported);
+ SshConfigFileReader.configure(server, props, lenient,
ignoreUnsupported);
SshConfigFileReader.configureKeyExchanges(server, props, lenient,
ServerBuilder.DH2KEX, ignoreUnsupported);
setupServerHeartbeat(server, props);
return server;
diff --git
a/sshd-core/src/test/java/org/apache/sshd/common/config/SshConfigFileReaderTest.java
b/sshd-core/src/test/java/org/apache/sshd/common/config/SshConfigFileReaderTest.java
index fec9e6f..9b529d9 100644
---
a/sshd-core/src/test/java/org/apache/sshd/common/config/SshConfigFileReaderTest.java
+++
b/sshd-core/src/test/java/org/apache/sshd/common/config/SshConfigFileReaderTest.java
@@ -93,12 +93,6 @@ public class SshConfigFileReaderTest extends BaseTestSupport
{
}
@Test
- public void testKnownDefaultCipherFactoriesList() {
- testKnownDefaultFactoriesList(ConfigFileReaderSupport.DEFAULT_CIPHERS,
BuiltinCiphers::fromFactoryName,
- GenericUtils.asSortedSet(String.CASE_INSENSITIVE_ORDER,
"cast128-cbc", "arcfour"));
- }
-
- @Test
public void testParseMacsList() {
List<? extends NamedResource> expected =
BaseBuilder.DEFAULT_MAC_PREFERENCE;
Properties props =
initNamedResourceProperties(ConfigFileReaderSupport.MACS_CONFIG_PROP, expected);
@@ -107,13 +101,6 @@ public class SshConfigFileReaderTest extends
BaseTestSupport {
}
@Test
- public void testKnownDefaultMacFactoriesList() {
- testKnownDefaultFactoriesList(ConfigFileReaderSupport.DEFAULT_MACS,
BuiltinMacs::fromFactoryName,
- GenericUtils.asSortedSet(String.CASE_INSENSITIVE_ORDER,
"[email protected]", "hmac-ripemd160",
- "hmac-sha2-256-96", "hmac-sha2-512-96"));
- }
-
- @Test
public void testParseSignaturesList() {
List<? extends NamedResource> expected =
ClientBuilder.DEFAULT_SIGNATURE_PREFERENCE;
Properties props =
initNamedResourceProperties(ConfigFileReaderSupport.HOST_KEY_ALGORITHMS_CONFIG_PROP,
expected);
@@ -123,11 +110,6 @@ public class SshConfigFileReaderTest extends
BaseTestSupport {
}
@Test
- public void testKnownDefaultSignatureFactoriesList() {
-
testKnownDefaultFactoriesList(ConfigFileReaderSupport.DEFAULT_HOST_KEY_ALGORITHMS,
BuiltinSignatures::fromFactoryName);
- }
-
- @Test
public void testParseKexFactoriesList() {
List<? extends NamedResource> expected =
BaseBuilder.DEFAULT_KEX_PREFERENCE;
Properties props =
initNamedResourceProperties(ConfigFileReaderSupport.KEX_ALGORITHMS_CONFIG_PROP,
expected);
@@ -136,11 +118,6 @@ public class SshConfigFileReaderTest extends
BaseTestSupport {
testParsedFactoriesList(expected, result.getParsedFactories(),
result.getUnsupportedFactories());
}
- @Test
- public void testKnownDefaultKexFactoriesList() {
-
testKnownDefaultFactoriesList(ConfigFileReaderSupport.DEFAULT_KEX_ALGORITHMS,
BuiltinDHFactories::fromFactoryName);
- }
-
private static void testKnownDefaultFactoriesList(
String factories, Function<? super String, ? extends
NamedResource> resolver) {
testKnownDefaultFactoriesList(factories, resolver,
Collections.emptySet());
@@ -294,7 +271,7 @@ public class SshConfigFileReaderTest extends
BaseTestSupport {
private static <M extends FactoryManager> M
validateFactoryManagerCiphers(M manager, Properties props) {
return validateFactoryManagerCiphers(manager,
- props.getProperty(ConfigFileReaderSupport.CIPHERS_CONFIG_PROP,
ConfigFileReaderSupport.DEFAULT_CIPHERS));
+
props.getProperty(ConfigFileReaderSupport.CIPHERS_CONFIG_PROP));
}
private static <M extends FactoryManager> M
validateFactoryManagerCiphers(M manager, String value) {
@@ -305,8 +282,7 @@ public class SshConfigFileReaderTest extends
BaseTestSupport {
private static <M extends FactoryManager> M
validateFactoryManagerSignatures(M manager, Properties props) {
return validateFactoryManagerSignatures(manager,
-
props.getProperty(ConfigFileReaderSupport.HOST_KEY_ALGORITHMS_CONFIG_PROP,
- ConfigFileReaderSupport.DEFAULT_HOST_KEY_ALGORITHMS));
+
props.getProperty(ConfigFileReaderSupport.HOST_KEY_ALGORITHMS_CONFIG_PROP));
}
private static <M extends FactoryManager> M
validateFactoryManagerSignatures(M manager, String value) {
@@ -317,7 +293,7 @@ public class SshConfigFileReaderTest extends
BaseTestSupport {
private static <M extends FactoryManager> M validateFactoryManagerMacs(M
manager, Properties props) {
return validateFactoryManagerMacs(manager,
- props.getProperty(ConfigFileReaderSupport.MACS_CONFIG_PROP,
ConfigFileReaderSupport.DEFAULT_MACS));
+ props.getProperty(ConfigFileReaderSupport.MACS_CONFIG_PROP));
}
private static <M extends FactoryManager> M validateFactoryManagerMacs(M
manager, String value) {
@@ -329,7 +305,7 @@ public class SshConfigFileReaderTest extends
BaseTestSupport {
private static <
M extends FactoryManager> M validateFactoryManagerCompressions(M
manager, Properties props, boolean lenient) {
return validateFactoryManagerCompressions(manager,
- props.getProperty(ConfigFileReaderSupport.COMPRESSION_PROP,
ConfigFileReaderSupport.DEFAULT_COMPRESSION),
+ props.getProperty(ConfigFileReaderSupport.COMPRESSION_PROP),
lenient);
}