From f8cc319bb5d73350b73b2a38d6b9b7f46ab8d39a Mon Sep 17 00:00:00 2001 From: Selvam Date: Mon, 18 Apr 2011 14:15:39 +0530 Subject: Access control validation fix --- .../management/core/utils/ValidationUtil.java | 24 ++++++++++++++++------ .../management/gui/views/VolumeSummaryView.java | 16 ++++++++------- 2 files changed, 27 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/ValidationUtil.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/ValidationUtil.java index ac77c76f..b1ceb478 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/ValidationUtil.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/ValidationUtil.java @@ -1,6 +1,5 @@ package com.gluster.storage.management.core.utils; -import java.util.regex.Matcher; import java.util.regex.Pattern; public class ValidationUtil { @@ -23,7 +22,16 @@ public class ValidationUtil { isValid = false; } - for (int i = 0; i < ipAddress.length && isValid; i++) { + int iterator=ipAddress.length-1; + + if (ipAddress.length <= 4 && ipAddress[ipAddress.length - 1].equals("*")) { + iterator = ipAddress.length - 2; + } else if (ipAddress.length < 4 || ipAddress.length > 4 ){ + isValid = false; + iterator = ipAddress.length - 1; + } + + for (int i = 0; i <= iterator && isValid; i++) { if (ipAddress[i].equals("*")) { isValid = (i == ipAddress.length - 1) ? isValid : false; } else { @@ -40,7 +48,9 @@ public class ValidationUtil { if (ip.equals("0.0.0.0") || ip.equals("255.255.255.255")) { // Invalidate the special ip's isValid = false; } - + if (ipAddress.length < 4) { + isValid = false; + } for (int i = 0; i < ipAddress.length && isValid; i++) { isValid = isValidIpQuad(ipAddress[i]); } @@ -60,9 +70,11 @@ public class ValidationUtil { public static void main(String[] argv) { String ip = "0.0.0.0"; - System.out.println("Is valid ip (" + ip + ")? " + isValidIp(ip)); - String hostName = "Selvam-sd.com"; - System.out.println(isValidHostName(hostName)); + // System.out.println("Is valid ip (" + ip + ")? " + isValidIp(ip)); + String hostName = "myhost.q"; + // System.out.println(isValidHostName(hostName)); + // System.out.println(isValidHostName(hostName)); + System.out.println(isValidAccessControl(hostName)); } } diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java index 497e939e..956c07ea 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java @@ -211,17 +211,20 @@ public class VolumeSummaryView extends ViewPart { guiHelper.setStatusMessage("Setting access control list to [" + newACL + "]..."); parent.update(); - if (!newACL.equals(volume.getAccessControlList()) && ValidationUtil.isValidAccessControl(newACL)) { - BusyIndicator.showWhile(Display.getDefault(), new Runnable() { + if (newACL.equals(volume.getAccessControlList())) { + accessControlText.setEnabled(false); + changeLink.setText("change"); + } else if (ValidationUtil.isValidAccessControl(newACL)) { + BusyIndicator.showWhile(Display.getDefault(), new Runnable() { @Override public void run() { Status status = (new VolumesClient(GlusterDataModelManager.getInstance().getSecurityToken())) - .setVolumeOption(volume.getName(), Volume.OPTION_AUTH_ALLOW, newACL); - + .setVolumeOption(volume.getName(), Volume.OPTION_AUTH_ALLOW, newACL); + if (status.isSuccess()) { accessControlText.setEnabled(false); changeLink.setText("change"); - + GlusterDataModelManager.getInstance().setAccessControlList(volume, newACL); } else { MessageDialog.openError(Display.getDefault().getActiveShell(), "Access control", @@ -230,8 +233,7 @@ public class VolumeSummaryView extends ViewPart { } }); } else { - MessageDialog.openError(Display.getDefault().getActiveShell(), "Access control", - "Invalid IP / Host name "); + MessageDialog.openError(Display.getDefault().getActiveShell(), "Access control", "Invalid IP / Host name "); } guiHelper.clearStatusMessage(); parent.update(); -- cgit