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
