Attila Magyar created KNOX-2940:
-----------------------------------

             Summary: knoxcli create-alias/create-aliases command doesn't 
support values starting with dash
                 Key: KNOX-2940
                 URL: https://issues.apache.org/jira/browse/KNOX-2940
             Project: Apache Knox
          Issue Type: Bug
          Components: KnoxCLI
            Reporter: Attila Magyar
            Assignee: Attila Magyar


If I want to create a password with a leading - character the create-alias 
command will fail:

{code}
 knoxcli.sh create-alias name --value "-asdf"
{code}

The same is true for the batch alias creation command. Using quotes around the 
value doesn't help.

The reason for this is this check:

{code}
    } else if (args[i].equals("--value")) {
        if (i + 1 >= args.length || args[i + 1].startsWith("-")) {
          printKnoxShellUsage();
          return -1;
        }
{code}

This tries to prevent incorrect usage by checking if the next parameter is 
likely an another command.

For example this prevents this case where the user mistakenly combined the 
--value (without defining a value) with the --generate command.

{code}
bin/knoxcli.sh create-alias test --value --generate
{code}


However we can prevent  by explicitly testing if the next parameter is any of 
the commands supported by the create-alias/create-aliases command. There are 
only 2, --generate and --cluster.

But these kind of incorrect usages can be tested with:

{code}
        if (i + 1 >= args.length && ("--generate".equals(args[i + 1]) || 
"--cluster".equals(args[i + 1]))) {
          printKnoxShellUsage();
          return -1;
        }
{code}


Misusing the batch alias command will generate error regardless of this check 
because the number of parameters won't match.

Here there is no value for a1.

{code}
knoxcli.sh create-aliases --alias a1 --value --alias a2 --value v2
{code}

For this no extra check is required.








--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to