Repository: incubator-slider Updated Branches: refs/heads/develop 68b96b708 -> 7ee66cd7c
SLIDER-1261 CSR creation fails for long hostnames greater than 64 chars Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/7ee66cd7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/7ee66cd7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/7ee66cd7 Branch: refs/heads/develop Commit: 7ee66cd7cc049fecc2d553f5541147702e81a5b0 Parents: 68b96b7 Author: Gour Saha <gourks...@apache.org> Authored: Wed Feb 21 22:52:47 2018 -0800 Committer: Gour Saha <gourks...@apache.org> Committed: Wed Feb 21 22:52:47 2018 -0800 ---------------------------------------------------------------------- .../apache/slider/common/tools/SliderUtils.java | 10 ++++++++++ .../services/security/CertificateManager.java | 5 ++--- .../slider/common/tools/TestSliderUtils.java | 21 ++++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/7ee66cd7/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java index 8fdf77f..d834c2e 100644 --- a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java +++ b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java @@ -2650,4 +2650,14 @@ public final class SliderUtils { } return prefix; } + + public static String extractDomainNameFromFQDN(String fqdn) { + if (fqdn != null) { + fqdn = fqdn.trim(); + if (fqdn.matches("[^\\.]+\\..+")) { + fqdn = fqdn.replaceFirst("[^\\.]+\\.", ""); + } + } + return fqdn; + } } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/7ee66cd7/slider-core/src/main/java/org/apache/slider/server/services/security/CertificateManager.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/services/security/CertificateManager.java b/slider-core/src/main/java/org/apache/slider/server/services/security/CertificateManager.java index a642369..187b470 100644 --- a/slider-core/src/main/java/org/apache/slider/server/services/security/CertificateManager.java +++ b/slider-core/src/main/java/org/apache/slider/server/services/security/CertificateManager.java @@ -20,6 +20,7 @@ package org.apache.slider.server.services.security; import com.google.inject.Singleton; import org.apache.commons.io.FileUtils; import org.apache.slider.common.SliderKeys; +import org.apache.slider.common.tools.SliderUtils; import org.apache.slider.core.conf.MapOperations; import org.apache.slider.core.exceptions.SliderException; import org.slf4j.Logger; @@ -473,10 +474,8 @@ public class CertificateManager { private String getSubjectDN(String hostname, String containerId, String appName) { return String.format("/CN=%s%s%s", - hostname, + SliderUtils.extractDomainNameFromFQDN(hostname), containerId != null ? "/OU=" + containerId : "", appName != null ? "/OU=" + appName : ""); - - } } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/7ee66cd7/slider-core/src/test/java/org/apache/slider/common/tools/TestSliderUtils.java ---------------------------------------------------------------------- diff --git a/slider-core/src/test/java/org/apache/slider/common/tools/TestSliderUtils.java b/slider-core/src/test/java/org/apache/slider/common/tools/TestSliderUtils.java index deca7a8..7bf1906 100644 --- a/slider-core/src/test/java/org/apache/slider/common/tools/TestSliderUtils.java +++ b/slider-core/src/test/java/org/apache/slider/common/tools/TestSliderUtils.java @@ -173,4 +173,25 @@ public class TestSliderUtils { Assert.assertEquals("Should be null", msg, SliderUtils.extractFirstLine(msg)); } + + @Test + public void testExtractDomainNameFromFQDN() { + String fqdn = "azure-cluster-c0.k4kldeirxsoutbyybgqoiqdsgg.fx.cloudapp.net"; + Assert.assertEquals("Returned domainname is incorrect", + "k4kldeirxsoutbyybgqoiqdsgg.fx.cloudapp.net", + SliderUtils.extractDomainNameFromFQDN(fqdn)); + fqdn = ""; + Assert.assertEquals("Returned domainname should be empty string", "", + SliderUtils.extractDomainNameFromFQDN(fqdn)); + fqdn = null; + Assert.assertEquals("Returned domainname should be null", null, + SliderUtils.extractDomainNameFromFQDN(fqdn)); + fqdn = "azure-cluster-c0"; + Assert.assertEquals("Returned domainname should be same as fqdn", + "azure-cluster-c0", SliderUtils.extractDomainNameFromFQDN(fqdn)); + // should handle whitespaces as well + fqdn = " www.example.com"; + Assert.assertEquals("Returned domainname is incorrect", "example.com", + SliderUtils.extractDomainNameFromFQDN(fqdn)); + } }