Repository: mina-sshd Updated Branches: refs/heads/master e7a75e42f -> 8e6e0313c
[SSHD-843] Fixed ability to disable registering security providers using system property Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/8e6e0313 Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/8e6e0313 Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/8e6e0313 Branch: refs/heads/master Commit: 8e6e0313c664d768e909fc989d8a2cf2e29715ae Parents: e7a75e4 Author: Lyor Goldstein <[email protected]> Authored: Fri Sep 14 18:59:32 2018 +0300 Committer: Lyor Goldstein <[email protected]> Committed: Fri Sep 14 19:34:40 2018 +0300 ---------------------------------------------------------------------- .../apache/sshd/common/PropertyResolver.java | 3 +- .../sshd/common/PropertyResolverUtils.java | 6 ++-- .../apache/sshd/common/SyspropsMapWrapper.java | 35 +++++++++++++------- .../security/SecurityProviderRegistrar.java | 5 +-- .../common/util/security/SecurityUtils.java | 8 ++--- 5 files changed, 35 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/8e6e0313/sshd-common/src/main/java/org/apache/sshd/common/PropertyResolver.java ---------------------------------------------------------------------- diff --git a/sshd-common/src/main/java/org/apache/sshd/common/PropertyResolver.java b/sshd-common/src/main/java/org/apache/sshd/common/PropertyResolver.java index c333c7f..91c3d41 100644 --- a/sshd-common/src/main/java/org/apache/sshd/common/PropertyResolver.java +++ b/sshd-common/src/main/java/org/apache/sshd/common/PropertyResolver.java @@ -81,8 +81,7 @@ public interface PropertyResolver { * be converted into one. * </P> * - * @return a valid <code>Map</code> containing configuration values, never - * {@code null} + * @return a valid <code>Map</code> containing configuration values, never {@code null} */ Map<String, Object> getProperties(); http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/8e6e0313/sshd-common/src/main/java/org/apache/sshd/common/PropertyResolverUtils.java ---------------------------------------------------------------------- diff --git a/sshd-common/src/main/java/org/apache/sshd/common/PropertyResolverUtils.java b/sshd-common/src/main/java/org/apache/sshd/common/PropertyResolverUtils.java index 6677685..39ce5f6 100644 --- a/sshd-common/src/main/java/org/apache/sshd/common/PropertyResolverUtils.java +++ b/sshd-common/src/main/java/org/apache/sshd/common/PropertyResolverUtils.java @@ -268,11 +268,13 @@ public final class PropertyResolverUtils { } public static Boolean getBoolean(PropertyResolver resolver, String name) { - return toBoolean(resolvePropertyValue(resolver, name)); + Object propValue = resolvePropertyValue(resolver, name); + return toBoolean(propValue); } public static Boolean getBoolean(Map<String, ?> props, String name) { - return toBoolean(resolvePropertyValue(props, name)); + Object propValue = resolvePropertyValue(props, name); + return toBoolean(propValue); } public static Boolean toBoolean(Object value) { http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/8e6e0313/sshd-common/src/main/java/org/apache/sshd/common/SyspropsMapWrapper.java ---------------------------------------------------------------------- diff --git a/sshd-common/src/main/java/org/apache/sshd/common/SyspropsMapWrapper.java b/sshd-common/src/main/java/org/apache/sshd/common/SyspropsMapWrapper.java index 4408be2..09ef03a 100644 --- a/sshd-common/src/main/java/org/apache/sshd/common/SyspropsMapWrapper.java +++ b/sshd-common/src/main/java/org/apache/sshd/common/SyspropsMapWrapper.java @@ -46,6 +46,13 @@ public final class SyspropsMapWrapper implements Map<String, Object> { public static final String SYSPROPS_MAPPED_PREFIX = "org.apache.sshd.config"; /** + * Exposes the "raw" system properties as a {@link PropertyResolver} + * without any further filtering + */ + public static final PropertyResolver RAW_PROPS_RESOLVER = + PropertyResolverUtils.toPropertyResolver(System.getProperties()); + + /** * The one and only wrapper instance */ public static final SyspropsMapWrapper INSTANCE = new SyspropsMapWrapper(); @@ -114,7 +121,8 @@ public final class SyspropsMapWrapper implements Map<String, Object> { Object v = props.getProperty(key); if (v != null) { - entries.add(new SimpleImmutableEntry<>(getUnmappedSyspropKey(key), v)); + String unmappedKey = getUnmappedSyspropKey(key); + entries.add(new SimpleImmutableEntry<>(unmappedKey, v)); } } @@ -123,7 +131,8 @@ public final class SyspropsMapWrapper implements Map<String, Object> { @Override public Object get(Object key) { - return (key instanceof String) ? System.getProperty(getMappedSyspropKey(key)) : null; + String propName = getMappedSyspropKey(key); + return (key instanceof String) ? System.getProperty(propName) : null; } @Override @@ -134,11 +143,12 @@ public final class SyspropsMapWrapper implements Map<String, Object> { @Override public Set<String> keySet() { return System.getProperties() - .stringPropertyNames().stream() - // filter out any non-SSHD properties - .filter(SyspropsMapWrapper::isMappedSyspropKey) - .map(SyspropsMapWrapper::getUnmappedSyspropKey) - .collect(Collectors.toSet()); + .stringPropertyNames() + .stream() + // filter out any non-SSHD properties + .filter(SyspropsMapWrapper::isMappedSyspropKey) + .map(SyspropsMapWrapper::getUnmappedSyspropKey) + .collect(Collectors.toSet()); } @Override @@ -166,15 +176,16 @@ public final class SyspropsMapWrapper implements Map<String, Object> { Properties props = System.getProperties(); // return a copy in order to avoid concurrent modifications return props - .stringPropertyNames().stream() - .filter(SyspropsMapWrapper::isMappedSyspropKey) - .map(props::get) - .collect(Collectors.toList()); + .stringPropertyNames() + .stream() + .filter(SyspropsMapWrapper::isMappedSyspropKey) + .map(props::get) + .collect(Collectors.toList()); } @Override public String toString() { - return Objects.toString(System.getProperties(), null); + return Objects.toString(entrySet(), null); } /** http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/8e6e0313/sshd-common/src/main/java/org/apache/sshd/common/util/security/SecurityProviderRegistrar.java ---------------------------------------------------------------------- diff --git a/sshd-common/src/main/java/org/apache/sshd/common/util/security/SecurityProviderRegistrar.java b/sshd-common/src/main/java/org/apache/sshd/common/util/security/SecurityProviderRegistrar.java index 31e428b..dc852eb 100644 --- a/sshd-common/src/main/java/org/apache/sshd/common/util/security/SecurityProviderRegistrar.java +++ b/sshd-common/src/main/java/org/apache/sshd/common/util/security/SecurityProviderRegistrar.java @@ -106,12 +106,13 @@ public interface SecurityProviderRegistrar extends SecurityProviderChoice, Optio return false; } - return this.getBooleanProperty(getConfigurationPropertyName(ENABLED_PROPERTY), true); + String configPropName = getConfigurationPropertyName(ENABLED_PROPERTY); + return this.getBooleanProperty(configPropName, true); } @Override default PropertyResolver getParentPropertyResolver() { - return SyspropsMapWrapper.SYSPROPS_RESOLVER; + return SyspropsMapWrapper.RAW_PROPS_RESOLVER; } @Override http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/8e6e0313/sshd-common/src/main/java/org/apache/sshd/common/util/security/SecurityUtils.java ---------------------------------------------------------------------- diff --git a/sshd-common/src/main/java/org/apache/sshd/common/util/security/SecurityUtils.java b/sshd-common/src/main/java/org/apache/sshd/common/util/security/SecurityUtils.java index ee755e6..e05f429 100644 --- a/sshd-common/src/main/java/org/apache/sshd/common/util/security/SecurityUtils.java +++ b/sshd-common/src/main/java/org/apache/sshd/common/util/security/SecurityUtils.java @@ -126,10 +126,10 @@ public final class SecurityUtils { */ public static final String SECURITY_PROVIDER_REGISTRARS = "org.apache.sshd.security.registrars"; public static final List<String> DEFAULT_SECURITY_PROVIDER_REGISTRARS = - Collections.unmodifiableList( - Arrays.asList( - "org.apache.sshd.common.util.security.bouncycastle.BouncyCastleSecurityProviderRegistrar", - "org.apache.sshd.common.util.security.eddsa.EdDSASecurityProviderRegistrar")); + Collections.unmodifiableList( + Arrays.asList( + "org.apache.sshd.common.util.security.bouncycastle.BouncyCastleSecurityProviderRegistrar", + "org.apache.sshd.common.util.security.eddsa.EdDSASecurityProviderRegistrar")); /**
