Add auth mode in service 13/7713/2
authorKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
Wed, 16 Aug 2017 10:28:16 +0000 (15:58 +0530)
committerKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
Wed, 16 Aug 2017 10:37:43 +0000 (16:07 +0530)
ONAP is using basic auth already for some services
and AAF is being used as well. so there are more than
one auth type being used across. to support it,
new property call auth is introduced in service section.
also no-auth is now migrated as auth: none

CLI-29
Change-Id: I151a4669151f67884f9875f47c8df396836ae25b
Signed-off-by: Kanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
16 files changed:
framework/src/main/java/org/onap/cli/fw/OnapCommand.java
framework/src/main/java/org/onap/cli/fw/ad/OnapService.java
framework/src/main/java/org/onap/cli/fw/conf/Constants.java
framework/src/main/java/org/onap/cli/fw/schema/AbstractSchemaValidate.java
framework/src/main/java/org/onap/cli/fw/utils/OnapCommandUtils.java
framework/src/main/resources/onap.properties
framework/src/main/resources/schema-refresh.yaml
framework/src/main/resources/schema-validate.yaml
framework/src/test/java/org/onap/cli/fw/ad/OnapServiceTest.java
framework/src/test/resources/onap-test-schema.yaml
framework/src/test/resources/sample-test-invalid-exclude-noauth.yaml
framework/src/test/resources/sample-test-invalid-include-noauth.yaml
framework/src/test/resources/sample-test-schema.yaml
main/src/test/resources/onap-cli-schema/sample-create-schema.yaml
plugins/msb/src/main/resources/microservice-list-schema.yaml
plugins/msb/src/main/resources/microservice-show-schema.yaml

index 13e67fc..7e15fba 100644 (file)
@@ -255,7 +255,6 @@ public abstract class OnapCommand {
         }
 
         try {
-            // login
             OnapCredentials creds = OnapCommandUtils.fromParameters(this.getParameters());
             boolean isAuthRequired = !this.onapService.isNoAuth()
                     && "true".equals(paramMap.get(Constants.DEFAULT_PARAMETER_OUTPUT_NO_AUTH).getValue());
@@ -268,10 +267,8 @@ public abstract class OnapCommand {
                 this.authClient.login();
             }
 
-            // execute
             this.run();
 
-            // logout
             if (isAuthRequired) {
                 this.authClient.logout();
             }
index f9d4a63..c770d17 100644 (file)
@@ -43,7 +43,7 @@ public class OnapService {
      */
     private String mode = Constants.MODE_CATALOG;
 
-    private boolean noAuth = false;
+    private String authType = Constants.AUTH_BASIC;
 
     public String getMode() {
         return mode;
@@ -57,12 +57,16 @@ public class OnapService {
         return this.getMode().equals(Constants.MODE_DIRECT);
     }
 
-    public boolean isNoAuth() {
-        return noAuth;
+    public String getAuthType() {
+        return this.authType;
+    }
+
+    public void setAuthType(String auth) {
+        this.authType = auth;
     }
 
-    public void setNoAuth(boolean noAuth) {
-        this.noAuth = noAuth;
+    public boolean isNoAuth() {
+        return this.authType.equalsIgnoreCase(Constants.AUTH_NONE);
     }
 
     public String getName() {
index d711ba2..8eb8839 100644 (file)
@@ -74,7 +74,9 @@ public class Constants {
     public static final String NAME = "name";
     public static final String VERSION = "version";
     public static final String BASE_PATH = "base_path";
-    public static final String NO_AUTH = "no-auth";
+    public static final String AUTH = "auth";
+    public static final String AUTH_NONE = "none";
+    public static final String AUTH_BASIC = "basic";
     public static final String MODE = "mode";
     public static final String MODE_DIRECT = "direct";
     public static final String MODE_CATALOG = "catalog";
@@ -171,3 +173,4 @@ public class Constants {
     }
 
 }
+
index 2867152..1b0a2be 100644 (file)
@@ -74,7 +74,7 @@ public abstract class AbstractSchemaValidate implements SchemaValidate {
     protected static final List<String> TOP_LEVEL_MANDATORY_LIST = Arrays.asList(ONAP_CMD_SCHEMA_VERSION, NAME,
             DESCRIPTION);
 
-    protected static final List<String> SERVICE_PARAMS_LIST = Arrays.asList(NAME, VERSION, NO_AUTH);
+    protected static final List<String> SERVICE_PARAMS_LIST = Arrays.asList(NAME, VERSION, AUTH);
 
     protected static final List<String> SERVICE_PARAMS_MANDATORY_LIST = Arrays.asList(NAME, VERSION);
 
@@ -363,14 +363,14 @@ public abstract class AbstractSchemaValidate implements SchemaValidate {
 
         // Validate specific parameters
 
-        if (serviceMap.containsKey(NO_AUTH)) {
-            Object obj = serviceMap.get(NO_AUTH);
+        if (serviceMap.containsKey(AUTH)) {
+            Object obj = serviceMap.get(AUTH);
             if (obj == null) {
-                schemaErrors.add(SchemaValidate.emptyValue(SERVICE, NO_AUTH));
+                schemaErrors.add(SchemaValidate.emptyValue(SERVICE, AUTH));
             } else {
                 String value = String.valueOf(obj);
-                if (!validateBoolean(value)) {
-                    schemaErrors.add(SchemaValidate.invalidBooleanValueMessage(SERVICE, NO_AUTH, value));
+                if (validateBoolean(value)) {
+                    schemaErrors.add(SchemaValidate.invalidBooleanValueMessage(SERVICE, AUTH, value));
                 }
             }
         }
index 9a42539..512d0b2 100644 (file)
@@ -248,9 +248,10 @@ public class OnapCommandUtils {
                             srv.setName(map.get(key1));
                         } else if (Constants.VERSION.equals(key1)) {
                             srv.setVersion(map.get(key1));
-                        } else if (Constants.NO_AUTH.equals(key1)) {
+                        } else if (Constants.AUTH.equals(key1)) {
                             Object obj = map.get(key1);
-                            srv.setNoAuth("true".equalsIgnoreCase(obj.toString()));
+                            //TODO mrkanag Validate and raise exception for invalid case
+                            srv.setAuthType(obj.toString());
                         } else if (Constants.MODE.equals(key1)) {
                             Object obj = map.get(key1);
                             //TODO mrkanag Validate and raise exception for invalid case
index 47b02c8..7eb8e59 100644 (file)
@@ -11,4 +11,4 @@ cli.auth_service=auth
 cli.exclude_params_internal_cmd=onap-username,onap-password,host-url,no-auth
 cli.no_auth_disable_include_params_external_cmd=onap-username,onap-password,host-url,no-auth
 cli.no_auth_enable_exclude_params_external_cmd=onap-username,onap-password,no-auth
-cli.no_auth_enable_include_params_external_cmd=host-url
\ No newline at end of file
+cli.no_auth_enable_include_params_external_cmd=host-url
index f64b054..59f2496 100644 (file)
@@ -2,7 +2,7 @@ onap_cmd_schema_version: 1.0
 name: schema-refresh
 description: Onap command to refresh schemas stored in onap_cli_schema folders.
 service:
-  no-auth: true
+  auth: none
   name: onap-cli
   version: 1.0.0
 results:
index 6678791..7694579 100644 (file)
@@ -2,7 +2,7 @@ onap_cmd_schema_version: 1.0
 name: schema-validate
 description: Onap command to validate schema
 service:
-  no-auth: true
+  auth: none
   name: onap-cli
   version: 1.0.0
 default_parameters:
index f0ec8c6..9ceba67 100644 (file)
@@ -19,6 +19,7 @@ package org.onap.cli.fw.ad;
 import static org.junit.Assert.assertTrue;
 
 import org.junit.Test;
+import org.onap.cli.fw.conf.Constants;
 
 public class OnapServiceTest {
 
@@ -28,7 +29,7 @@ public class OnapServiceTest {
         ser.setName("name");
         ser.setVersion("1.0");
         ser.setBasePath("basePath");
-        ser.setNoAuth(true);
+        ser.setAuthType(Constants.AUTH_NONE);
         assertTrue(ser.getName().equals("name") && ser.getVersion().equals("1.0")
                 && ser.getBasePath().equals("basePath") && ser.isNoAuth());
 
index df26050..aa65606 100644 (file)
@@ -4,7 +4,7 @@ description: Onap sample command to test the command features
 service:
   name: sample
   version: v1
-  no-auth: true
+  auth: none
 parameters:
   - name: bool-param
     type: bool
index bad12e6..1de471c 100644 (file)
@@ -1,6 +1,4 @@
 onap_cmd_schema_version: 1.0
-service:
-  no-auth: false
 default_parameters:
   exclude:
     - onap-username
\ No newline at end of file
index c4384ca..b80ac57 100644 (file)
@@ -1,6 +1,6 @@
 onap_cmd_schema_version: 1.0
 service:
-  no-auth: true
+  auth: none
 default_parameters:
   include:
     - onap-username
\ No newline at end of file
index a480147..dbb5cbe 100644 (file)
@@ -4,7 +4,7 @@ description: Onap sample command to test the command features
 service:
   name: sample
   version: v1
-  no-auth: true
+  auth: none
 parameters:
   - name: bool-param
     type: bool
index 6e77533..6fb12be 100644 (file)
@@ -4,7 +4,7 @@ description: Sample create into Onap
 service:
   name: sample
   version: v1
-  no-auth: true
+  auth: none
 parameters:
   - name: service-name
     description: Onap service name
index 79dca5b..42fa0ec 100644 (file)
@@ -4,7 +4,7 @@ description: Lists the registetred micro services in Onap
 service:
   name: msb
   version: v1
-  no-auth: true
+  auth: none
 results:
   direction: landscape
   attributes:
index 47e33c6..26cccfd 100644 (file)
@@ -4,7 +4,7 @@ description: Details the registered microservice in Onap
 service:
   name: msb
   version: v1
-  no-auth: true
+  auth: none
 parameters:
   - name: service-name
     description: Onap service name