From 57f5d51a11e3b147432f88bcd2ba144bb9e6cdf7 Mon Sep 17 00:00:00 2001 From: amoghvk Date: Wed, 26 Nov 2014 14:54:42 -0800 Subject: [PATCH] CLOUDSTACK-7976 : Param validation for global params involving domain name (cherry picked from commit 95ea20390739a24dad92895b8db712282be31bbb) Signed-off-by: Rohit Yadav Conflicts: server/src/com/cloud/configuration/ConfigurationManagerImpl.java --- .../cloud/configuration/ConfigurationManagerImpl.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index cf94b95353e..d9ce3fd3689 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -327,6 +327,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati private int _maxVolumeSizeInGb = Integer.parseInt(Config.MaxVolumeSize.getDefaultValue()); private long _defaultPageSize = Long.parseLong(Config.DefaultPageSize.getDefaultValue()); + private static final String DOMAIN_NAME_PATTERN = "^((?!-)[A-Za-z0-9-]{1,63}(? configValuesForValidation; private Set weightBasedParametersForValidation; private Set overprovisioningFactorsForValidation; @@ -843,6 +844,15 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati if (!NetUtils.verifyInstanceName(value)) { return "Instance name can not contain hyphen, space or plus sign"; } + } else if (range.equalsIgnoreCase("domainName")) { + String domainName = value; + if (value.startsWith("*")) { + domainName = value.substring(2); //skip the "*." + } + //max length for FQDN is 253 + 2, code adds xxx-xxx-xxx-xxx to domain name when creating URL + if (domainName.length() >= 238 || !domainName.matches(DOMAIN_NAME_PATTERN)) { + return "Please enter a valid string for domain name, prefixed with '*.' if applicable"; + } } else if (range.equals("routes")) { String[] routes = value.split(","); for (String route : routes) {