add domain validation

This commit is contained in:
Mengyi Zhou 2016-04-14 19:07:53 +08:00
parent 280ceeb2f3
commit 76c4277fde

View file

@ -12,6 +12,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.*;
import java.util.regex.Pattern;
/**
* Created by zhoumy on 2015/9/24.
@ -27,6 +28,12 @@ public class DefaultVirtualServerValidator implements VirtualServerValidator {
@Resource
private RVsStatusDao rVsStatusDao;
private final Pattern pattern;
public DefaultVirtualServerValidator() {
pattern = Pattern.compile("([\\w\\.\\-]+)");
}
@Override
public boolean exists(Long vsId) throws Exception {
return slbVirtualServerDao.findByPK(vsId, SlbVirtualServerEntity.READSET_FULL) != null;
@ -46,6 +53,9 @@ public class DefaultVirtualServerValidator implements VirtualServerValidator {
if (!getPortWhiteList().contains(virtualServer.getPort())) {
throw new ValidationException("Port " + virtualServer.getPort() + " is not allowed.");
}
if (!pattern.matcher(domain.getName()).matches()) {
throw new ValidationException("Invalid domain name.");
}
String key = domain.getName().toLowerCase() + ":" + virtualServer.getPort();
if (existingHost.contains(key))
throw new ValidationException("Duplicate domain and port combination is found: " + key);