diff --git a/src/main/java/org/appng/application/manager/form/SiteForm.java b/src/main/java/org/appng/application/manager/form/SiteForm.java index 7415635..5153363 100644 --- a/src/main/java/org/appng/application/manager/form/SiteForm.java +++ b/src/main/java/org/appng/application/manager/form/SiteForm.java @@ -15,13 +15,11 @@ */ package org.appng.application.manager.form; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.util.stream.Collectors; + import javax.validation.Valid; import org.appng.api.Environment; @@ -71,30 +69,23 @@ public void setTemplate(String template) { this.template = template; } - private List _getHostAliases() { - return site.getHostNames().stream().filter(hn -> !site.getHost().equals(hn)).sorted() - .collect(Collectors.toList()); - } - public String getHostAliases() { - return String.join(System.lineSeparator(), _getHostAliases()); + return String.join(System.lineSeparator(), site.getHostAliases()); } public void setHostAliases(String hostAliases) { Set hostnames = new HashSet(); - hostnames.add(site.getHost()); - Pattern splitPattern = Pattern.compile("^[ \t]*(.+?)[ \t]*$", Pattern.MULTILINE); Matcher splitMatcher = splitPattern.matcher(hostAliases); while(splitMatcher.find()) { hostnames.add(splitMatcher.group(1)); } - site.setHostNames(hostnames); + site.setHostAliases(hostnames); } public void validate(Site site, Application application, Environment environment, Options options, Request request, FieldProcessor fp) { - for (String name : _getHostAliases()) { + for (String name : this.site.getHostAliases()) { if (! Pattern.matches(ValidationPatterns.HOST_PATTERN, name)) fp.addErrorMessage(fp.getField("hostAliases"), request.getMessage(MessageConstants.SITE_HOSTALIAS_INVALID, name)); diff --git a/src/main/java/org/appng/application/manager/service/ManagerService.java b/src/main/java/org/appng/application/manager/service/ManagerService.java index c54732e..f0ff4ae 100644 --- a/src/main/java/org/appng/application/manager/service/ManagerService.java +++ b/src/main/java/org/appng/application/manager/service/ManagerService.java @@ -1086,16 +1086,18 @@ private void checkSite(Request request, Site site, FieldProcessor fp, Site curre if (fp.hasField("site.name") && !siteRepository.isUnique(site.getId(), "name", site.getName())) { fp.addErrorMessage(fp.getField("site.name"), request.getMessage(MessageConstants.SITE_NAME_EXISTS)); } - List hostNameOverlapSites = siteRepository.findSitesForHostNames(site.getHostNames()); - for (SiteImpl ovlSite : hostNameOverlapSites) { - if (site.getId() == ovlSite.getId()) continue; + Sethostnames = new HashSet(site.getHostAliases()); + hostnames.add(site.getHost()); + List hostOverlapSites = siteRepository.findSitesForHostNames(hostnames); + for (SiteImpl ovlpSite : hostOverlapSites) { + if (site.getId() == ovlpSite.getId()) continue; else { - if (ovlSite.getHostNames().contains(site.getHost())) + if (ovlpSite.getHost().equals(site.getHost()) || ovlpSite.getHostAliases().contains(site.getHost())) fp.addErrorMessage(fp.getField("site.host"), request.getMessage(MessageConstants.SITE_HOST_EXISTS, - ovlSite.getName())); + ovlpSite.getName())); else - fp.addErrorMessage(fp.getField("hostAliases"), request.getMessage(MessageConstants.SITE_HOSTALIAS_EXISTS, - ovlSite.getName())); + fp.addErrorMessage(fp.getField("hostAliases"), + request.getMessage(MessageConstants.SITE_HOSTALIAS_EXISTS, ovlpSite.getName())); } } if (!siteRepository.isUnique(site.getId(), "domain", site.getDomain())) {