Moti Asayag has uploaded a new change for review.

Change subject: core: Add validation for IP Addresses (#852076)
......................................................................

core: Add validation for IP Addresses (#852076)

https://bugzilla.redhat.com/852076

Any IP address being sent from the clients to the engine is being
verifies to its correct format. Clients are allowed to pass empty string
or null values or a valid IP address.

Change-Id: I883deb575455c0cc2d0b7d45619a007421766df7
Signed-off-by: Moti Asayag <[email protected]>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddBondParameters.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddNetworkStoragePoolParameters.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsParameters.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UpdateNetworkToVdsParameters.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Network.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsNetworkInterface.java
7 files changed, 50 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/36/7636/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddBondParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddBondParameters.java
index a241eb9..2b75251 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddBondParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddBondParameters.java
@@ -1,7 +1,11 @@
 package org.ovirt.engine.core.common.action;
 
-import org.ovirt.engine.core.common.businessentities.NetworkBootProtocol;
+import javax.validation.Valid;
+import javax.validation.constraints.Pattern;
+
 import org.ovirt.engine.core.common.businessentities.Network;
+import org.ovirt.engine.core.common.businessentities.NetworkBootProtocol;
+import org.ovirt.engine.core.common.utils.ValidationUtils;
 import org.ovirt.engine.core.compat.Guid;
 
 public class AddBondParameters extends BondParametersBase {
@@ -9,10 +13,18 @@
     private static final long serialVersionUID = 761203751697100144L;
 
     private String[] nics;
+
+    @Valid
     private Network network;
+
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_STATIC_IP_BAD_FORMAT")
     private String address;
+
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_SUBNET_BAD_FORMAT")
     private String subnet;
     private Integer vlanId;
+
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_GATEWAY_BAD_FORMAT")
     private String gateway;
     private String bondingOptions;
     private NetworkBootProtocol privateBootProtocol = NetworkBootProtocol.None;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddNetworkStoragePoolParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddNetworkStoragePoolParameters.java
index 8b0b061..f84d1f3 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddNetworkStoragePoolParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddNetworkStoragePoolParameters.java
@@ -1,12 +1,13 @@
 package org.ovirt.engine.core.common.action;
 
-import org.ovirt.engine.core.compat.*;
-import org.ovirt.engine.core.common.businessentities.*;
-
 import javax.validation.Valid;
+
+import org.ovirt.engine.core.common.businessentities.Network;
+import org.ovirt.engine.core.compat.Guid;
 
 public class AddNetworkStoragePoolParameters extends StoragePoolParametersBase 
{
     private static final long serialVersionUID = -7392121807419409051L;
+
     @Valid
     private Network _network;
 
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java
index dd0ed7ef..4b37a66 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.core.common.action;
 
+import javax.validation.Valid;
+
 import org.ovirt.engine.core.common.businessentities.Network;
 import org.ovirt.engine.core.common.businessentities.NetworkStatus;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
@@ -7,6 +9,8 @@
 
 public class AttachNetworkToVdsGroupParameter extends NetworkClusterParameters 
{
     private static final long serialVersionUID = -2874549285727269806L;
+
+    @Valid
     private Network _network;
 
     public AttachNetworkToVdsGroupParameter(VDSGroup group, Network net) {
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsParameters.java
index f1db991..9c66818 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsParameters.java
@@ -1,18 +1,30 @@
 package org.ovirt.engine.core.common.action;
 
+import javax.validation.Valid;
+import javax.validation.constraints.Pattern;
+
 import org.ovirt.engine.core.common.businessentities.Network;
 import org.ovirt.engine.core.common.businessentities.NetworkBootProtocol;
 import org.ovirt.engine.core.common.businessentities.VdsNetworkInterface;
+import org.ovirt.engine.core.common.utils.ValidationUtils;
 import org.ovirt.engine.core.compat.Guid;
 
 public class AttachNetworkToVdsParameters extends VdsActionParameters {
     private static final long serialVersionUID = 5446434263733512827L;
 
     private boolean checkConnectivity;
+
+    @Valid
     private Network network;
     private VdsNetworkInterface iface;
+
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_STATIC_IP_BAD_FORMAT")
     private String address;
+
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_SUBNET_BAD_FORMAT")
     private String subnet;
+
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_GATEWAY_BAD_FORMAT")
     private String gateway;
     private String bondingOptions;
     private NetworkBootProtocol bootProtocol = NetworkBootProtocol.None;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UpdateNetworkToVdsParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UpdateNetworkToVdsParameters.java
index 7156cea..a7091b0 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UpdateNetworkToVdsParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UpdateNetworkToVdsParameters.java
@@ -2,13 +2,16 @@
 
 import java.util.ArrayList;
 
-import org.ovirt.engine.core.common.businessentities.VdsNetworkInterface;
+import javax.validation.Valid;
+
 import org.ovirt.engine.core.common.businessentities.Network;
+import org.ovirt.engine.core.common.businessentities.VdsNetworkInterface;
 import org.ovirt.engine.core.compat.Guid;
 
 public class UpdateNetworkToVdsParameters extends AttachNetworkToVdsParameters 
{
     private static final long serialVersionUID = 5938344434089627682L;
 
+    @Valid
     private ArrayList<VdsNetworkInterface> interfaces;
     private String bondName;
 
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Network.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Network.java
index 3e1afd3..2a8c329 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Network.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Network.java
@@ -18,6 +18,7 @@
 import org.hibernate.annotations.Type;
 import org.hibernate.annotations.TypeDef;
 import org.ovirt.engine.core.common.businessentities.mapping.GuidType;
+import org.ovirt.engine.core.common.utils.ValidationUtils;
 import org.ovirt.engine.core.common.validation.annotation.MTU;
 import org.ovirt.engine.core.common.validation.group.CreateEntity;
 import org.ovirt.engine.core.common.validation.group.UpdateEntity;
@@ -51,14 +52,17 @@
     @Column(name = "type")
     private Integer type;
 
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_STATIC_IP_BAD_FORMAT")
     @Size(max = BusinessEntitiesDefinitions.GENERAL_NETWORK_ADDR_SIZE)
     @Column(name = "addr")
     private String addr;
 
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_SUBNET_BAD_FORMAT")
     @Size(max = BusinessEntitiesDefinitions.GENERAL_SUBNET_SIZE)
     @Column(name = "subnet")
     private String subnet;
 
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_GATEWAY_BAD_FORMAT")
     @Size(max = BusinessEntitiesDefinitions.GENERAL_GATEWAY_SIZE)
     @Column(name = "gateway")
     private String gateway;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsNetworkInterface.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsNetworkInterface.java
index 41df86d..4874cbe 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsNetworkInterface.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsNetworkInterface.java
@@ -4,6 +4,9 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 
+import javax.validation.constraints.Pattern;
+
+import org.ovirt.engine.core.common.utils.ValidationUtils;
 import 
org.ovirt.engine.core.common.validation.annotation.ValidNetworkConfiguration;
 import org.ovirt.engine.core.compat.NGuid;
 
@@ -25,8 +28,14 @@
     private NGuid vdsId;
     private String vdsName;
     private NetworkBootProtocol bootProtocol;
+
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_STATIC_IP_BAD_FORMAT")
     private String address;
+
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_SUBNET_BAD_FORMAT")
     private String subnet;
+
+    @Pattern(regexp = ValidationUtils.IP_PATTERN, message = 
"NETWROK_ADDR_IN_GATEWAY_BAD_FORMAT")
     private String gateway;
     private Integer vlanId;
     private Boolean bonded;


--
To view, visit http://gerrit.ovirt.org/7636
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I883deb575455c0cc2d0b7d45619a007421766df7
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Moti Asayag <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to