Martin Peřina has uploaded a new change for review.

Change subject: tools: Fix empty password error handling in 
engine-manage-domains
......................................................................

tools: Fix empty password error handling in engine-manage-domains

Fixed empty password error handling in engine-manage-domains (now it
displays clear error message instead of stacktrace).

Change-Id: I7fa948f31694c59ce36fc52cd7eb293a8e0b750f
Bug-Url: https://bugzilla.redhat.com/1083033
Signed-off-by: Martin Perina <[email protected]>
---
M 
backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/tools/ManageDomains.java
M 
backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/tools/ManageDomainsResultEnum.java
2 files changed, 12 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/27/26527/1

diff --git 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/tools/ManageDomains.java
 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/tools/ManageDomains.java
index 0cfb31a..a8f8f66 100644
--- 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/tools/ManageDomains.java
+++ 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/tools/ManageDomains.java
@@ -329,9 +329,6 @@
             } catch (Exception e) {
                 throw new 
ManageDomainsResult(ManageDomainsResultEnum.FAILURE_READING_PASSWORD_FILE, 
e.getMessage());
             }
-            if (pass == null) {
-                throw new 
ManageDomainsResult(ManageDomainsResultEnum.EMPTY_PASSWORD_FILE);
-            }
         } else {
             pass = readInteractively("Enter password:", true);
         }
@@ -342,6 +339,9 @@
     }
 
     private void validatePassword(String pass) throws ManageDomainsResult {
+        if (StringUtils.isBlank(pass)) {
+            throw new 
ManageDomainsResult(ManageDomainsResultEnum.EMPTY_PASSWORD);
+        }
         if (StringUtils.containsAny(pass, ILLEGAL_PASSWORD_CHARACTERS)) {
             throw new 
ManageDomainsResult(ManageDomainsResultEnum.ILLEGAL_PASSWORD);
         }
@@ -349,12 +349,17 @@
 
     private String readInteractively(String prompt, boolean isPassword) {
         String value = null;
-        while (StringUtils.isBlank(value)) {
+        try {
             if (isPassword) {
-                value = new String(System.console().readPassword(prompt));
+                char[] pass = System.console().readPassword(prompt);
+                if (pass != null && pass.length > 0) {
+                    value = new String(pass);
+                }
             } else {
                 value = System.console().readLine(prompt);
             }
+        } catch (Exception ex) {
+            value = null;
         }
         return value;
     }
diff --git 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/tools/ManageDomainsResultEnum.java
 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/tools/ManageDomainsResultEnum.java
index c61d400..0889684 100644
--- 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/tools/ManageDomainsResultEnum.java
+++ 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/tools/ManageDomainsResultEnum.java
@@ -27,8 +27,8 @@
     UNKNOWN_ERROR(
             "Operation failed due to exception. Details: %1$s",
             20),
-    FAILURE_READING_PASSWORD_FILE("failed reading password from password 
file", 21),
-    EMPTY_PASSWORD_FILE("password file is empty", 22),
+    FAILURE_READING_PASSWORD_FILE("Failed reading password from password 
file.", 21),
+    EMPTY_PASSWORD("Password cannot be empty.", 22),
     NO_LDAP_SERVERS_FOR_DOMAIN("No LDAP servers can be obtained for domain 
%1$s", 23),
     NO_KDC_SERVERS_FOR_DOMAIN("No KDC can be obtained for domain %1$s", 24),
     INVALID_ARGUMENT_VALUE("Invalid argument value. Details: %1$s", 26),


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

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

Reply via email to