aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src
diff options
context:
space:
mode:
authorKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>2017-09-26 20:42:28 +0530
committerKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>2017-11-14 14:39:05 +0530
commitabf5898650417a9726c8eb8924b4b3aaebf54523 (patch)
tree56e698be5878ac96178628db24c88c1a3e0dc2d1 /framework/src
parent39f345954434553d10e0cea114e15e0521ec9471 (diff)
Fix auth plugin issues
Now OCLIP is enabled to be very generic platform. Issue-Id: CLI-66 Change-Id: Id431f2eca5e516ad3b070c2c80e4fcd2ba0b54b2 Signed-off-by: Kanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
Diffstat (limited to 'framework/src')
-rw-r--r--framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLoginCommand.java7
-rw-r--r--framework/src/main/java/org/onap/cli/fw/conf/Constants.java10
-rw-r--r--framework/src/main/resources/open-cli-schema/basic-login.yaml7
-rw-r--r--framework/src/main/resources/open-cli-schema/basic-logout.yaml1
-rw-r--r--framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientCommandBasedTest.java116
-rw-r--r--framework/src/test/resources/sample-test-schema-no-auth-no-catalog.yaml22
-rw-r--r--framework/src/test/resources/sample-test-schema-no-auth-yes-catalog.yaml22
-rw-r--r--framework/src/test/resources/sample-test-schema-yes-auth-no-catalog.yaml22
-rw-r--r--framework/src/test/resources/sample-test-schema-yes-auth-yes-catalog.yaml22
-rw-r--r--framework/src/test/resources/sample-test-schema.yaml16
10 files changed, 229 insertions, 16 deletions
diff --git a/framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLoginCommand.java b/framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLoginCommand.java
index a7b7181f..df1892fb 100644
--- a/framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLoginCommand.java
+++ b/framework/src/main/java/org/onap/cli/fw/cmd/BasicAuthLoginCommand.java
@@ -22,6 +22,7 @@ import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.impl.auth.BasicScheme;
import org.onap.cli.fw.OnapCommand;
import org.onap.cli.fw.OnapCommandSchema;
+import org.onap.cli.fw.conf.Constants;
import org.onap.cli.fw.error.OnapCommandException;
import org.onap.cli.fw.input.OnapCommandParameter;
@@ -33,9 +34,9 @@ public class BasicAuthLoginCommand extends OnapCommand {
//get the input arguments
Map<String, OnapCommandParameter> paramMap = getParametersMap();
- OnapCommandParameter usernameParam = paramMap.get("username");
+ OnapCommandParameter usernameParam = paramMap.get(Constants.DEAFULT_PARAMETER_USERNAME);
String username = usernameParam.getValue().toString();
- OnapCommandParameter usernamePassword = paramMap.get("password");
+ OnapCommandParameter usernamePassword = paramMap.get(Constants.DEAFULT_PARAMETER_PASS_WORD);
String password = usernamePassword.getValue().toString();
//Execute the command to get token
@@ -43,6 +44,6 @@ public class BasicAuthLoginCommand extends OnapCommand {
username, password), "UTF-8", false).getValue();
//Fill out the result part
- this.getResult().getRecordsMap().get("Authorization").getValues().add(authToken);
+ this.getResult().getRecordsMap().get(Constants.AUTH_SERVICE_AUTHORIZATION).getValues().add(authToken);
}
}
diff --git a/framework/src/main/java/org/onap/cli/fw/conf/Constants.java b/framework/src/main/java/org/onap/cli/fw/conf/Constants.java
index 5ae3c502..a1ade420 100644
--- a/framework/src/main/java/org/onap/cli/fw/conf/Constants.java
+++ b/framework/src/main/java/org/onap/cli/fw/conf/Constants.java
@@ -197,14 +197,16 @@ public class Constants {
public static final String SPL_ENTRY_UUID = "uuid";
public static final String SPL_ENTRY_ENV = "env:";
+ public static final String AUTH_SERVICE_AUTHORIZATION = "Authorization";
+
public static final String CATALOG_SERVICE_NAME = "catalog-service-name";
-
+
public static final String CATALOG_SERVICE_VERSION = "catalog-service-version";
-
+
public static final String CATALOG_SERVICE_BASE_PATH = "catalog-service-base-path";
-
+
public static final String CATALOG_SERVICE_HOST_URL = "catalog-service-host-url";
-
+
private Constants() {
}
diff --git a/framework/src/main/resources/open-cli-schema/basic-login.yaml b/framework/src/main/resources/open-cli-schema/basic-login.yaml
index 78294fc5..a7f3b6ed 100644
--- a/framework/src/main/resources/open-cli-schema/basic-login.yaml
+++ b/framework/src/main/resources/open-cli-schema/basic-login.yaml
@@ -1,13 +1,18 @@
open_cli_schema_version: 1.0
+
name: basic-login
+
description: basic login auth command
+
version: cli-1.0
+
type: auth
service:
name: open-cli
version: 1.0.0
-
+ mode: direct
+
results:
direction: portrait
attributes:
diff --git a/framework/src/main/resources/open-cli-schema/basic-logout.yaml b/framework/src/main/resources/open-cli-schema/basic-logout.yaml
index 2c0e3dbd..80255dd5 100644
--- a/framework/src/main/resources/open-cli-schema/basic-logout.yaml
+++ b/framework/src/main/resources/open-cli-schema/basic-logout.yaml
@@ -11,3 +11,4 @@ type: auth
service:
name: open-cli
version: 1.0.0
+ mode: direct \ No newline at end of file
diff --git a/framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientCommandBasedTest.java b/framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientCommandBasedTest.java
new file mode 100644
index 00000000..77ef680d
--- /dev/null
+++ b/framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientCommandBasedTest.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cli.fw.ad;
+
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+import org.onap.cli.fw.OnapCommand;
+import org.onap.cli.fw.OnapCommandRegistrar;
+import org.onap.cli.fw.conf.Constants;
+import org.onap.cli.fw.conf.OnapCommandConfg;
+import org.onap.cli.fw.error.OnapCommandException;
+
+public class OnapAuthClientCommandBasedTest {
+
+ OnapCommand cmd;
+
+ @Test
+ public void internalCommandTest() {
+ try {
+ cmd = OnapCommandRegistrar.getRegistrar().get("sample-test");
+ cmd.getService().setName(OnapCommandConfg.getInternalCmd());
+
+ cmd.execute();
+ } catch (OnapCommandException e) {
+ fail("Internal command failed to run");
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void yesCatalogYesAuthTest() throws OnapCommandException {
+ try {
+ cmd = getCommand("sample-test-schema-yes-auth-yes-catalog.yaml");
+ cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_HOST_URL).setValue("http://localhost:8080");
+ cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_USERNAME).setValue("test");
+ cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_PASS_WORD).setValue("password");
+
+ cmd.execute();
+ } catch (OnapCommandException e) {
+ fail("External command Yes Auth Yes Catalog failed to run");
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void yesCatalogNoAuthTest() throws OnapCommandException {
+ try {
+ cmd = getCommand("sample-test-schema-no-auth-yes-catalog.yaml");
+ cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_HOST_URL).setValue("http://localhost:8080");
+
+ cmd.execute();
+ } catch (OnapCommandException e) {
+ fail("External command Yes Auth No Catalog failed to run");
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void noCatalogYesAuthTest() throws OnapCommandException {
+ try {
+ cmd = getCommand("sample-test-schema-yes-auth-no-catalog.yaml");
+ cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_HOST_URL).setValue("http://localhost:8080");
+ cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_USERNAME).setValue("test");
+ cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_PASS_WORD).setValue("password");
+
+ cmd.execute();
+ } catch (OnapCommandException e) {
+ fail("External command Yes Auth No Catalog failed to run");
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void noCatalogNoAuthTest() throws OnapCommandException {
+ try {
+ cmd = getCommand("sample-test-schema-no-auth-no-catalog.yaml");
+ cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_HOST_URL).setValue("http://localhost:8080");
+
+ cmd.execute();
+ } catch (OnapCommandException e) {
+ fail("External command No Auth No Catalog failed to run");
+ e.printStackTrace();
+ }
+ }
+
+ private OnapCommand getCommand(String yaml) throws OnapCommandException {
+ OnapCommand cmd = new OnapCommand() {
+ @Override
+ protected void run() throws OnapCommandException {
+ if (!this.getService().isModeDirect()) {
+ String url = this.authClient.getServiceUrl();
+ assert url.equals(this.getParametersMap().get(Constants.DEAFULT_PARAMETER_HOST_URL).getValue() + "/");
+ }
+ }
+ };
+
+ cmd.initializeSchema(yaml);
+
+ return cmd;
+ }
+ }
diff --git a/framework/src/test/resources/sample-test-schema-no-auth-no-catalog.yaml b/framework/src/test/resources/sample-test-schema-no-auth-no-catalog.yaml
new file mode 100644
index 00000000..295a2b80
--- /dev/null
+++ b/framework/src/test/resources/sample-test-schema-no-auth-no-catalog.yaml
@@ -0,0 +1,22 @@
+open_cli_schema_version: 1.0
+
+name: sample-cmd-no-auth-no-catalog
+
+description: sample
+
+version: sample-test-1.0
+
+service:
+ name: sample
+ version: v1
+ auth: none
+ mode: direct
+
+http:
+ request:
+ uri: /test
+ method: GET
+ success_codes:
+ - 200
+ result_map:
+ name: ${name}
diff --git a/framework/src/test/resources/sample-test-schema-no-auth-yes-catalog.yaml b/framework/src/test/resources/sample-test-schema-no-auth-yes-catalog.yaml
new file mode 100644
index 00000000..ebe03d86
--- /dev/null
+++ b/framework/src/test/resources/sample-test-schema-no-auth-yes-catalog.yaml
@@ -0,0 +1,22 @@
+open_cli_schema_version: 1.0
+
+name: sample-cmd-no-auth-no-catalog
+
+description: sample
+
+version: sample-test-1.0
+
+service:
+ name: sample
+ version: v1
+ auth: none
+ mode: catalog
+
+http:
+ request:
+ uri: /test
+ method: GET
+ success_codes:
+ - 200
+ result_map:
+ name: ${name}
diff --git a/framework/src/test/resources/sample-test-schema-yes-auth-no-catalog.yaml b/framework/src/test/resources/sample-test-schema-yes-auth-no-catalog.yaml
new file mode 100644
index 00000000..fada6f52
--- /dev/null
+++ b/framework/src/test/resources/sample-test-schema-yes-auth-no-catalog.yaml
@@ -0,0 +1,22 @@
+open_cli_schema_version: 1.0
+
+name: sample-cmd-yes-auth-no-catalog
+
+description: sample
+
+version: sample-test-1.0
+
+service:
+ name: sample
+ version: v1
+ auth: basic
+ mode: direct
+
+http:
+ request:
+ uri: /test
+ method: GET
+ success_codes:
+ - 200
+ result_map:
+ name: ${name}
diff --git a/framework/src/test/resources/sample-test-schema-yes-auth-yes-catalog.yaml b/framework/src/test/resources/sample-test-schema-yes-auth-yes-catalog.yaml
new file mode 100644
index 00000000..e8b814a4
--- /dev/null
+++ b/framework/src/test/resources/sample-test-schema-yes-auth-yes-catalog.yaml
@@ -0,0 +1,22 @@
+open_cli_schema_version: 1.0
+
+name: sample-cmd-no-auth-no-catalog
+
+description: sample
+
+version: sample-test-1.0
+
+service:
+ name: sample
+ version: v1
+ auth: basic
+ mode: catalog
+
+http:
+ request:
+ uri: /test
+ method: GET
+ success_codes:
+ - 200
+ result_map:
+ name: ${name}
diff --git a/framework/src/test/resources/sample-test-schema.yaml b/framework/src/test/resources/sample-test-schema.yaml
index 092e0e75..d77cb114 100644
--- a/framework/src/test/resources/sample-test-schema.yaml
+++ b/framework/src/test/resources/sample-test-schema.yaml
@@ -20,53 +20,53 @@ parameters:
short_option: x
long_option: secure
is_secured: true
- is_optional: false
+ is_optional: true
default_Value: pass123#
- name: string-param
type: string
description: Onap string param
long_option: string-param
short_option: c
- is_optional: false
+ is_optional: true
default_Value: test
- name: yaml-param
type: json
description: Onap yaml file location param
long_option: yaml-param
short_option: y
- is_optional: false
+ is_optional: true
- name: json-param
type: json
description: Onap json file location param
long_option: json-param
short_option: j
- is_optional: false
+ is_optional: true
is_secured: false
- name: long-param
type: digit
description: Onap long param
short_option: l
long_option: long-opt
- is_optional: false
+ is_optional: true
default_value: 10
- name: url-param
type: url
description: Onap url param
short_option: r
long_option: url
- is_optional: false
+ is_optional: true
default_value: http://localhost:8082/file.txt
- name: env-param
type: string
description: Onap env param.
short_option: z
long_option: env
- is_optional: false
+ is_optional: true
default_value: ${ENV_VAR}
- name: positional-args
type: string
description: Onap positional args, if no short option and no long option given for it
- is_optional: false
+ is_optional: true
default_value: http://localhost:8082/file.txt
results:
direction: portrait