diff --git a/openvidu-server/pom.xml b/openvidu-server/pom.xml
index a1cb413a..39e27f83 100644
--- a/openvidu-server/pom.xml
+++ b/openvidu-server/pom.xml
@@ -267,6 +267,11 @@
spring-boot-starter-websocket
${version.spring-boot}
+
+ commons-validator
+ commons-validator
+ ${version.commons-validator}
+
com.github.docker-java
docker-java
diff --git a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java
index c219b9a9..1034bc5a 100644
--- a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java
+++ b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java
@@ -40,6 +40,8 @@ import javax.annotation.PostConstruct;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.validator.routines.DomainValidator;
+import org.apache.commons.validator.routines.InetAddressValidator;
import org.apache.http.Header;
import org.apache.http.message.BasicHeader;
import org.kurento.jsonrpc.JsonUtils;
@@ -521,8 +523,8 @@ public class OpenviduConfig {
protected List getNonUserProperties() {
return Arrays.asList("server.port", "SERVER_PORT", "DOTENV_PATH", "COTURN_IP", "COTURN_REDIS_IP",
- "COTURN_REDIS_DBNAME", "COTURN_REDIS_PASSWORD", "COTURN_REDIS_CONNECT_TIMEOUT",
- "COTURN_INTERNAL_RELAY", "OPENVIDU_RECORDING_IMAGE", "OPENVIDU_RECORDING_ENABLE_GPU");
+ "COTURN_REDIS_DBNAME", "COTURN_REDIS_PASSWORD", "COTURN_REDIS_CONNECT_TIMEOUT", "COTURN_INTERNAL_RELAY",
+ "OPENVIDU_RECORDING_IMAGE", "OPENVIDU_RECORDING_ENABLE_GPU");
}
// Properties
@@ -544,7 +546,8 @@ public class OpenviduConfig {
coturnRedisConnectTimeout = getValue("COTURN_REDIS_CONNECT_TIMEOUT");
- // If true, coturn is using private IPs as relay IPs to enable relay connections pass through internal network
+ // If true, coturn is using private IPs as relay IPs to enable relay connections
+ // pass through internal network
coturnInternalRelay = asBoolean("COTURN_INTERNAL_RELAY");
openviduSecret = asNonEmptyAlphanumericString("OPENVIDU_SECRET",
@@ -864,8 +867,17 @@ public class OpenviduConfig {
protected String asOptionalInetAddress(String property) {
String inetAddress = getValue(property);
if (inetAddress != null && !inetAddress.isEmpty()) {
+ DomainValidator domainValidator = DomainValidator.getInstance();
+ if (domainValidator.isValid(inetAddress)) {
+ return inetAddress;
+ }
+ InetAddressValidator ipValidator = InetAddressValidator.getInstance();
+ if (ipValidator.isValid(inetAddress)) {
+ return inetAddress;
+ }
try {
Inet6Address.getByName(inetAddress).getHostAddress();
+ return inetAddress;
} catch (UnknownHostException e) {
addError(property, "Is not a valid Internet Address (IP or Domain Name): " + e.getMessage());
}
@@ -1042,8 +1054,8 @@ public class OpenviduConfig {
} else {
String[] customImageSplit = configuredImage.split(":");
if (customImageSplit.length != 2) {
- addError(recordingImageProperty, "The docker image configured is not valid. " +
- "This parameter must have this format: ':'");
+ addError(recordingImageProperty, "The docker image configured is not valid. "
+ + "This parameter must have this format: ':'");
} else {
String customImageName = customImageSplit[0];
String customVersion = customImageSplit[1];
@@ -1061,7 +1073,7 @@ public class OpenviduConfig {
return mediaNodesPublicIps;
}
List mediaNodesPublicIpsList = asJsonStringsArray(propertyName);
- for(String ipPairStr: mediaNodesPublicIpsList) {
+ for (String ipPairStr : mediaNodesPublicIpsList) {
String[] ipPair = ipPairStr.trim().split(":");
if (ipPair.length != 2) {
addError(propertyName, "Not valid ip pair in " + propertyName + ": " + ipPairStr);
diff --git a/pom.xml b/pom.xml
index 8b121f7d..df04a920 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,6 +59,7 @@
2.8.6
1.4.9
0.2.5
+ 1.7
4.2.2