Merge "SOL003 Adapter Package Management - Read VNFD"
authorByung-Woo Jun <byung-woo.jun@est.tech>
Wed, 8 Jan 2020 21:10:11 +0000 (21:10 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 8 Jan 2020 21:10:11 +0000 (21:10 +0000)
53 files changed:
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/CatalogDBApplication.java
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/SecurityFilters.java [deleted file]
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/SoCadiFilter.java [deleted file]
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/WebSecurityConfigImpl.java [deleted file]
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogQuery.java
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryAllottedResourceCustomization.java
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceNetworks.java
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfs.java
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryVnfcs.java
adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__WorkflowDesignerData.sql
adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfTest.java [new file with mode: 0644]
adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/SecurityFilters.java [deleted file]
adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/SoCadiFilter.java [deleted file]
adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/WebSecurityConfigImpl.java [deleted file]
adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/WebSecurityConfigImpl.java [deleted file]
adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/SecurityFilters.java [deleted file]
adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/SoCadiFilter.java [deleted file]
adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SoCadiFilter.java [deleted file]
adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/WebSecurityConfigImpl.java [deleted file]
adapters/mso-ve-vnfm-adapter/pom.xml [new file with mode: 0644]
adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/Application.java [moved from adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SecurityFilters.java with 50% similarity]
adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/controller/NotificationController.java [new file with mode: 0644]
adapters/mso-ve-vnfm-adapter/src/main/resources/application.yaml [new file with mode: 0644]
adapters/mso-ve-vnfm-adapter/src/test/java/org/onap/so/adapters/vevnfm/controller/NotificationControllerTest.java [moved from adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/SecurityFilters.java with 50% similarity]
adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/SoCadiFilter.java [deleted file]
adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/WebSecurityConfigImpl.java [deleted file]
adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/SecurityFilters.java [deleted file]
adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/SoCadiFilter.java [deleted file]
adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/WebSecurityConfigImpl.java [deleted file]
adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/Sol003PackageManagementControllerTest.java
adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/VnfmAdapterControllerTest.java
adapters/pom.xml
asdc-controller/src/main/java/org/onap/so/asdc/WebSecurityConfigImpl.java [deleted file]
asdc-controller/src/test/java/org/onap/so/asdc/TestApplication.java
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/AbstractCDSProcessingBBUtils.java
bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/SecurityFilters.java [deleted file]
bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/SoCadiFilter.java [deleted file]
bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/WebSecurityConfigImpl.java [deleted file]
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/WebSecurityConfigImpl.java [deleted file]
common/src/main/java/org/onap/so/security/SecurityFilters.java [moved from asdc-controller/src/main/java/org/onap/so/asdc/SecurityFilters.java with 98% similarity]
common/src/main/java/org/onap/so/security/SoCadiFilter.java [moved from asdc-controller/src/main/java/org/onap/so/asdc/SoCadiFilter.java with 99% similarity]
common/src/main/java/org/onap/so/security/WebSecurityConfig.java
common/src/main/java/org/onap/so/security/WebSecurityConfigImpl.java [moved from mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/WebSecurityConfigImpl.java with 89% similarity]
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SecurityFilters.java [deleted file]
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SoCadiFilter.java [deleted file]
mso-catalog-db/pom.xml
mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/WorkflowRepository.java
mso-catalog-db/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java
so-monitoring/so-monitoring-service/pom.xml
so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringApplication.java
so-monitoring/so-monitoring-ui/pom.xml
so-simulator/src/main/java/org/onap/so/simulator/Simulator.java

index e5b51f7..1ad4238 100644 (file)
@@ -28,7 +28,8 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 
 @SpringBootApplication(scanBasePackages = {"org.onap.so.adapters.catalogdb", "org.onap.so.db.catalog.client",
         "org.onap.so.logging.jaxrs.filter", "org.onap.so.logging.spring.interceptor", "org.onap.so.client",
-        "org.onap.so.configuration", "org.onap.so.db", "org.onap.logging.filter", "org.onap.so.logger"})
+        "org.onap.so.configuration", "org.onap.so.db", "org.onap.logging.filter",
+        "org.onap.so.logger, org.onap.so.security"})
 @EnableJpaRepositories("org.onap.so.db.catalog.data.repository")
 @EntityScan("org.onap.so.db.catalog.beans")
 @EnableScheduling
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/SecurityFilters.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/SecurityFilters.java
deleted file mode 100644 (file)
index 0407235..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.catalogdb;
-
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.core.Ordered;
-
-@Configuration
-@Profile("aaf")
-public class SecurityFilters {
-
-    @Bean
-    public FilterRegistrationBean<SoCadiFilter> loginRegistrationBean() {
-        FilterRegistrationBean<SoCadiFilter> filterRegistrationBean = new FilterRegistrationBean<>();
-        filterRegistrationBean.setFilter(new SoCadiFilter());
-        filterRegistrationBean.setName("cadiFilter");
-        filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
-        return filterRegistrationBean;
-    }
-}
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/SoCadiFilter.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/SoCadiFilter.java
deleted file mode 100644 (file)
index e7e360d..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP SO
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- *                             reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-package org.onap.so.adapters.catalogdb;
-
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import org.onap.aaf.cadi.config.Config;
-import org.onap.aaf.cadi.filter.CadiFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
-
-@Component
-@Profile("aaf")
-public class SoCadiFilter extends CadiFilter {
-
-    protected final Logger logger = LoggerFactory.getLogger(SoCadiFilter.class);
-
-    private static String AFT_ENVIRONMENT_VAR = "AFT_ENVIRONMENT";
-    private static String AAF_API_VERSION = "aaf_api_version";
-
-    @Value("${mso.config.cadi.cadiLoglevel:#{null}}")
-    private String cadiLoglevel;
-
-    @Value("${mso.config.cadi.cadiKeyFile:#{null}}")
-    private String cadiKeyFile;
-
-    @Value("${mso.config.cadi.cadiTruststorePassword:#{null}}")
-    private String cadiTrustStorePassword;
-
-    @Value("${mso.config.cadi.cadiTrustStore:#{null}}")
-    private String cadiTrustStore;
-
-    @Value("${mso.config.cadi.cadiLatitude:#{null}}")
-    private String cadiLatitude;
-
-    @Value("${mso.config.cadi.cadiLongitude:#{null}}")
-    private String cadiLongitude;
-
-    @Value("${mso.config.cadi.aafEnv:#{null}}")
-    private String aafEnv;
-
-    @Value("${mso.config.cadi.aafApiVersion:#{null}}")
-    private String aafApiVersion;
-
-    @Value("${mso.config.cadi.aafRootNs:#{null}}")
-    private String aafRootNs;
-
-    @Value("${mso.config.cadi.aafId:#{null}}")
-    private String aafMechId;
-
-    @Value("${mso.config.cadi.aafPassword:#{null}}")
-    private String aafMechIdPassword;
-
-    @Value("${mso.config.cadi.aafLocateUrl:#{null}}")
-    private String aafLocateUrl;
-
-    @Value("${mso.config.cadi.aafUrl:#{null}}")
-    private String aafUrl;
-
-    @Value("${mso.config.cadi.apiEnforcement:#{null}}")
-    private String apiEnforcement;
-
-    private void checkIfNullProperty(String key, String value) {
-        /*
-         * When value is null, it is not defined in application.yaml set nothing in System properties
-         */
-        if (value != null) {
-            System.setProperty(key, value);
-        }
-    }
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        checkIfNullProperty(Config.CADI_LOGLEVEL, cadiLoglevel);
-        checkIfNullProperty(Config.CADI_KEYFILE, cadiKeyFile);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE, cadiTrustStore);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE_PASSWORD, cadiTrustStorePassword);
-        checkIfNullProperty(Config.CADI_LATITUDE, cadiLatitude);
-        checkIfNullProperty(Config.CADI_LONGITUDE, cadiLongitude);
-        checkIfNullProperty(Config.AAF_ENV, aafEnv);
-        checkIfNullProperty(Config.AAF_API_VERSION, aafApiVersion);
-        checkIfNullProperty(Config.AAF_ROOT_NS, aafRootNs);
-        checkIfNullProperty(Config.AAF_APPID, aafMechId);
-        checkIfNullProperty(Config.AAF_APPPASS, aafMechIdPassword);
-        checkIfNullProperty(Config.AAF_LOCATE_URL, aafLocateUrl);
-        checkIfNullProperty(Config.AAF_URL, aafUrl);
-        checkIfNullProperty(Config.CADI_API_ENFORCEMENT, apiEnforcement);
-        // checkIfNullProperty(AFT_ENVIRONMENT_VAR, aftEnv);
-        logger.debug(" *** init Filter Config *** ");
-        super.init(filterConfig);
-    }
-
-
-}
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/WebSecurityConfigImpl.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/WebSecurityConfigImpl.java
deleted file mode 100644 (file)
index 8cadb00..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2018 IBM.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.catalogdb;
-
-import org.onap.so.security.MSOSpringFirewall;
-import org.onap.so.security.WebSecurityConfig;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.firewall.StrictHttpFirewall;
-import org.springframework.util.StringUtils;
-
-@Configuration
-@EnableWebSecurity
-public class WebSecurityConfigImpl extends WebSecurityConfig {
-
-    @Profile({"basic", "test"})
-    @Bean
-    public WebSecurityConfigurerAdapter basicAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.csrf().disable().authorizeRequests().antMatchers("/manage/health", "/manage/info").permitAll()
-                        .antMatchers("/**").hasAnyRole(StringUtils.collectionToDelimitedString(getRoles(), ",")).and()
-                        .httpBasic();
-            }
-
-            @Override
-            public void configure(WebSecurity web) throws Exception {
-                super.configure(web);
-                StrictHttpFirewall firewall = new MSOSpringFirewall();
-                web.httpFirewall(firewall);
-            }
-
-            @Override
-            protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-                auth.userDetailsService(WebSecurityConfigImpl.this.userDetailsService())
-                        .passwordEncoder(WebSecurityConfigImpl.this.passwordEncoder());
-            }
-
-        };
-    }
-
-    @Profile("aaf")
-    @Bean
-    public WebSecurityConfigurerAdapter noAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.csrf().disable().authorizeRequests().anyRequest().permitAll();
-            }
-        };
-    }
-
-}
index edec48d..a98778b 100644 (file)
@@ -21,6 +21,7 @@
 
 package org.onap.so.adapters.catalogdb.catalogrest;
 
+import java.io.IOException;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -95,4 +96,17 @@ public abstract class CatalogQuery {
         return smartToJSON();
 
     }
+
+    protected boolean isJSONValid(String jsonInString) {
+        try {
+            if (jsonInString == null) {
+                return false;
+            }
+            ObjectMapper mapper = new ObjectMapper();
+            mapper.readValue(jsonInString, String.class);
+            return true;
+        } catch (IOException e) {
+            return false;
+        }
+    }
 }
index c1acc31..afcb2d5 100644 (file)
@@ -123,7 +123,10 @@ public class QueryAllottedResourceCustomization extends CatalogQuery {
                 put(valueMap, "PROVIDING_SERVICE_MODEL_INVARIANT_UUID", o.getProvidingServiceModelInvariantUUID());
                 put(valueMap, "PROVIDING_SERVICE_MODEL_UUID", o.getProvidingServiceModelUUID());
                 put(valueMap, "PROVIDING_SERVICE_MODEL_NAME", o.getProvidingServiceModelName());
-                put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+
+                if (isJSONValid(o.getResourceInput())) {
+                    put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+                }
 
                 sb.append(sep).append(this.setTemplate(TEMPLATE, valueMap));
                 sep = ",\n";
index 5573b23..1297182 100644 (file)
@@ -116,7 +116,10 @@ public class QueryServiceNetworks extends CatalogQuery {
             put(valueMap, "NETWORK_ROLE", o.getNetworkRole());
             put(valueMap, "NETWORK_SCOPE", o.getNetworkScope());
             put(valueMap, "NETWORK_TECHNOLOGY", o.getNetworkTechnology());
-            put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+
+            if (isJSONValid(o.getResourceInput())) {
+                put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+            }
 
             sb.append(sep).append(this.setTemplate(TEMPLATE, valueMap));
             sep = ",\n";
index 0b8de60..d6e7415 100644 (file)
@@ -23,6 +23,7 @@
 package org.onap.so.adapters.catalogdb.catalogrest;
 /* should be called QueryVnfResource.java */
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -32,6 +33,7 @@ import org.onap.so.db.catalog.beans.VnfResourceCustomization;
 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 @XmlRootElement(name = "serviceVnfs")
 public class QueryServiceVnfs extends CatalogQuery {
@@ -120,7 +122,9 @@ public class QueryServiceVnfs extends CatalogQuery {
             put(valueMap, "NF_NAMING_CODE", o.getNfNamingCode());
             put(valueMap, "VNFC_INSTANCE_GROUP_ORDER", o.getVnfcInstanceGroupOrder());
             put(valueMap, "MULTI_STEP_DESIGN", o.getMultiStageDesign());
-            put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+            if (isJSONValid(o.getResourceInput())) {
+                put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+            }
 
             String subitem = new QueryVfModule(vrNull ? null : o.getVfModuleCustomizations()).JSON2(true, true);
             valueMap.put("_VFMODULES_", subitem.replaceAll("(?m)^", "\t\t"));
@@ -142,4 +146,5 @@ public class QueryServiceVnfs extends CatalogQuery {
             sb.append("}");
         return sb.toString();
     }
+
 }
index dc73fe9..24c07d6 100644 (file)
 
 package org.onap.so.adapters.catalogdb.catalogrest;
 
-import org.onap.so.db.catalog.beans.VnfcCustomization;
-import javax.xml.bind.annotation.XmlRootElement;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import javax.xml.bind.annotation.XmlRootElement;
+import org.onap.so.db.catalog.beans.VnfcCustomization;
 
 @XmlRootElement(name = "vnfcs")
 public class QueryVnfcs extends CatalogQuery {
@@ -105,8 +105,10 @@ public class QueryVnfcs extends CatalogQuery {
             put(valueMap, "MODEL_INVARIANT_ID", o.getModelInvariantUUID());
             put(valueMap, "MODEL_VERSION", o.getModelVersion());
             put(valueMap, "MODEL_CUSTOMIZATION_UUID", o.getModelCustomizationUUID());
-            put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
 
+            if (isJSONValid(o.getResourceInput())) {
+                put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+            }
             sb.append(sep).append(this.setTemplate(TEMPLATE, valueMap));
             sep = ",\n";
         }
index 137f73c..42df1ad 100644 (file)
@@ -202,4 +202,6 @@ INSERT INTO `workflow` (`ARTIFACT_UUID`,`ARTIFACT_NAME`,`NAME`,`OPERATION_NAME`,
 VALUES
 ('9d45cd30-1a89-4993-87c1-6dd09c1696cf','VFModule-ScaleOut','VNF Scale Out','ScaleOut',1.0,'native static workflow to support ScaleOut','vfModule','native'),
 ('da6478e4-ea33-3346-ac12-ab121284a333','VnfInPlaceUpdate.bpmn','VnfInPlaceUpdate','inPlaceSoftwareUpdate',1.0,'native static workflow to support inPlaceSoftwareUpdate','vnf','native'),
-('fdb3ac48-70f9-4584-bd92-253bdbdec1e1','VnfConfigUpdate.bpmn','VnfConfigUpdate','applyConfigModify',1.0,'native static workflow to support applyConfigModify','vnf','native');
+('fdb3ac48-70f9-4584-bd92-253bdbdec1e1','VnfConfigUpdate.bpmn','VnfConfigUpdate','applyConfigModify',1.0,'native static workflow to support applyConfigModify','vnf','native'),
+('b2fd5627-55e4-4f4f-8064-9e6f443e9152','DummyPnfWorkflow','Dummy Pnf Workflow','DummyPnfWorkflow',1.0,'Dummy Pnf Workflow to test custom Pnf workflow','pnf','native');
+
diff --git a/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfTest.java b/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfTest.java
new file mode 100644 (file)
index 0000000..b71808b
--- /dev/null
@@ -0,0 +1,36 @@
+package org.onap.so.adapters.catalogdb.catalogrest;
+
+import static org.junit.Assert.assertEquals;
+import org.json.JSONException;
+import org.junit.Test;
+
+
+public class QueryServiceVnfTest extends QueryServiceVnfs {
+
+    private QueryServiceVnfs queryServiceVnf = new QueryServiceVnfs();
+
+    private final String invalidJSON =
+            "\"{\\\\\\\"nf_function\\\\\\\":\\\\\\\"DO_STUFF\\\\\\\",\\\"_image_name\\\\\\\":\\\\\\\"test_image\\\"";
+
+    private final String validJSON = "\"{\"nf_function\":\"DO_STUFF\",\"image_name\":\"test_image\"}";
+
+    @Test
+    public void test_IsValidJsonTrue() throws JSONException {
+        boolean isValidJson = queryServiceVnf.isJSONValid(validJSON);
+        assertEquals(true, isValidJson);
+    }
+
+    @Test
+    public void test_IsValidJsonFalse() throws JSONException {
+        boolean isValidJson = queryServiceVnf.isJSONValid(invalidJSON);
+        assertEquals(false, isValidJson);
+    }
+
+    @Test
+    public void test_IsValidJsonNull() throws JSONException {
+        boolean isValidJson = queryServiceVnf.isJSONValid(null);
+        assertEquals(false, isValidJson);
+    }
+
+
+}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/SecurityFilters.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/SecurityFilters.java
deleted file mode 100644 (file)
index cbe619e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.openstack;
-
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.core.Ordered;
-
-@Configuration
-@Profile("aaf")
-public class SecurityFilters {
-
-    @Bean
-    public FilterRegistrationBean<SoCadiFilter> loginRegistrationBean() {
-        FilterRegistrationBean<SoCadiFilter> filterRegistrationBean = new FilterRegistrationBean<>();
-        filterRegistrationBean.setFilter(new SoCadiFilter());
-        filterRegistrationBean.setName("cadiFilter");
-        filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
-        return filterRegistrationBean;
-    }
-}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/SoCadiFilter.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/SoCadiFilter.java
deleted file mode 100644 (file)
index d9901b7..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP SO
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- *                             reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-package org.onap.so.adapters.openstack;
-
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import org.onap.aaf.cadi.config.Config;
-import org.onap.aaf.cadi.filter.CadiFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
-
-@Component
-@Profile("aaf")
-public class SoCadiFilter extends CadiFilter {
-
-    protected final Logger logger = LoggerFactory.getLogger(SoCadiFilter.class);
-
-    private static String AFT_ENVIRONMENT_VAR = "AFT_ENVIRONMENT";
-    private static String AAF_API_VERSION = "aaf_api_version";
-
-    @Value("${mso.config.cadi.cadiLoglevel:#{null}}")
-    private String cadiLoglevel;
-
-    @Value("${mso.config.cadi.cadiKeyFile:#{null}}")
-    private String cadiKeyFile;
-
-    @Value("${mso.config.cadi.cadiTruststorePassword:#{null}}")
-    private String cadiTrustStorePassword;
-
-    @Value("${mso.config.cadi.cadiTrustStore:#{null}}")
-    private String cadiTrustStore;
-
-    @Value("${mso.config.cadi.cadiLatitude:#{null}}")
-    private String cadiLatitude;
-
-    @Value("${mso.config.cadi.cadiLongitude:#{null}}")
-    private String cadiLongitude;
-
-    @Value("${mso.config.cadi.aafEnv:#{null}}")
-    private String aafEnv;
-
-    @Value("${mso.config.cadi.aafApiVersion:#{null}}")
-    private String aafApiVersion;
-
-    @Value("${mso.config.cadi.aafRootNs:#{null}}")
-    private String aafRootNs;
-
-    @Value("${mso.config.cadi.aafId:#{null}}")
-    private String aafMechId;
-
-    @Value("${mso.config.cadi.aafPassword:#{null}}")
-    private String aafMechIdPassword;
-
-    @Value("${mso.config.cadi.aafLocateUrl:#{null}}")
-    private String aafLocateUrl;
-
-    @Value("${mso.config.cadi.aafUrl:#{null}}")
-    private String aafUrl;
-
-    @Value("${mso.config.cadi.apiEnforcement:#{null}}")
-    private String apiEnforcement;
-
-    private void checkIfNullProperty(String key, String value) {
-        /*
-         * When value is null, it is not defined in application.yaml set nothing in System properties
-         */
-        if (value != null) {
-            System.setProperty(key, value);
-        }
-    }
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        checkIfNullProperty(Config.CADI_LOGLEVEL, cadiLoglevel);
-        checkIfNullProperty(Config.CADI_KEYFILE, cadiKeyFile);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE, cadiTrustStore);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE_PASSWORD, cadiTrustStorePassword);
-        checkIfNullProperty(Config.CADI_LATITUDE, cadiLatitude);
-        checkIfNullProperty(Config.CADI_LONGITUDE, cadiLongitude);
-        checkIfNullProperty(Config.AAF_ENV, aafEnv);
-        checkIfNullProperty(Config.AAF_API_VERSION, aafApiVersion);
-        checkIfNullProperty(Config.AAF_ROOT_NS, aafRootNs);
-        checkIfNullProperty(Config.AAF_APPID, aafMechId);
-        checkIfNullProperty(Config.AAF_APPPASS, aafMechIdPassword);
-        checkIfNullProperty(Config.AAF_LOCATE_URL, aafLocateUrl);
-        checkIfNullProperty(Config.AAF_URL, aafUrl);
-        checkIfNullProperty(Config.CADI_API_ENFORCEMENT, apiEnforcement);
-        // checkIfNullProperty(AFT_ENVIRONMENT_VAR, aftEnv);
-        logger.debug(" *** init Filter Config *** ");
-        super.init(filterConfig);
-    }
-
-
-}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/WebSecurityConfigImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/WebSecurityConfigImpl.java
deleted file mode 100644 (file)
index ddae887..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2018 IBM.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.openstack;
-
-import org.onap.so.security.MSOSpringFirewall;
-import org.onap.so.security.WebSecurityConfig;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.firewall.StrictHttpFirewall;
-import org.springframework.util.StringUtils;
-
-@Configuration
-@EnableWebSecurity
-public class WebSecurityConfigImpl extends WebSecurityConfig {
-
-    @Profile({"basic", "test"})
-    @Bean
-    public WebSecurityConfigurerAdapter basicAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.csrf().disable().authorizeRequests().antMatchers("/manage/health", "/manage/info").permitAll()
-                        .antMatchers("/**").hasAnyRole(StringUtils.collectionToDelimitedString(getRoles(), ",")).and()
-                        .httpBasic();
-            }
-
-            @Override
-            public void configure(WebSecurity web) throws Exception {
-                super.configure(web);
-                StrictHttpFirewall firewall = new MSOSpringFirewall();
-                web.httpFirewall(firewall);
-            }
-
-            @Override
-            protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-                auth.userDetailsService(WebSecurityConfigImpl.this.userDetailsService())
-                        .passwordEncoder(WebSecurityConfigImpl.this.passwordEncoder());
-            }
-
-        };
-    }
-
-    @Profile("aaf")
-    @Bean
-    public WebSecurityConfigurerAdapter noAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.authorizeRequests().anyRequest().permitAll();
-            }
-        };
-    }
-
-}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/WebSecurityConfigImpl.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/WebSecurityConfigImpl.java
deleted file mode 100644 (file)
index 6cd7462..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.requestsdb;
-
-import org.onap.so.security.MSOSpringFirewall;
-import org.onap.so.security.WebSecurityConfig;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.firewall.StrictHttpFirewall;
-import org.springframework.util.StringUtils;
-
-@Configuration
-@EnableWebSecurity
-public class WebSecurityConfigImpl extends WebSecurityConfig {
-
-    @Profile({"basic", "test"})
-    @Bean
-    public WebSecurityConfigurerAdapter basicAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.csrf().disable().authorizeRequests().antMatchers("/manage/health", "/manage/info", "/services")
-                        .permitAll().antMatchers("/**")
-                        .hasAnyRole(StringUtils.collectionToDelimitedString(getRoles(), ",")).and().httpBasic();
-            }
-
-            @Override
-            public void configure(WebSecurity web) throws Exception {
-                super.configure(web);
-                StrictHttpFirewall firewall = new MSOSpringFirewall();
-                web.httpFirewall(firewall);
-            }
-
-            @Override
-            protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-                auth.userDetailsService(WebSecurityConfigImpl.this.userDetailsService())
-                        .passwordEncoder(WebSecurityConfigImpl.this.passwordEncoder());
-            }
-
-        };
-    }
-
-    @Profile("aaf")
-    @Bean
-    public WebSecurityConfigurerAdapter noAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.authorizeRequests().anyRequest().permitAll();
-            }
-        };
-    }
-
-}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/SecurityFilters.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/SecurityFilters.java
deleted file mode 100644 (file)
index a422e6a..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.requestsdb.application;
-
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.core.Ordered;
-
-@Configuration
-@Profile("aaf")
-public class SecurityFilters {
-
-    @Bean
-    public FilterRegistrationBean<SoCadiFilter> loginRegistrationBean() {
-        FilterRegistrationBean<SoCadiFilter> filterRegistrationBean = new FilterRegistrationBean<>();
-        filterRegistrationBean.setFilter(new SoCadiFilter());
-        filterRegistrationBean.setName("cadiFilter");
-        filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
-        return filterRegistrationBean;
-    }
-}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/SoCadiFilter.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/SoCadiFilter.java
deleted file mode 100644 (file)
index 5e6ced0..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP SO
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- *                             reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-package org.onap.so.adapters.requestsdb.application;
-
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import org.onap.aaf.cadi.config.Config;
-import org.onap.aaf.cadi.filter.CadiFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
-
-@Component
-@Profile("aaf")
-public class SoCadiFilter extends CadiFilter {
-
-    protected final Logger logger = LoggerFactory.getLogger(SoCadiFilter.class);
-
-    private static String AFT_ENVIRONMENT_VAR = "AFT_ENVIRONMENT";
-    private static String AAF_API_VERSION = "aaf_api_version";
-
-    @Value("${mso.config.cadi.cadiLoglevel:#{null}}")
-    private String cadiLoglevel;
-
-    @Value("${mso.config.cadi.cadiKeyFile:#{null}}")
-    private String cadiKeyFile;
-
-    @Value("${mso.config.cadi.cadiTruststorePassword:#{null}}")
-    private String cadiTrustStorePassword;
-
-    @Value("${mso.config.cadi.cadiTrustStore:#{null}}")
-    private String cadiTrustStore;
-
-    @Value("${mso.config.cadi.cadiLatitude:#{null}}")
-    private String cadiLatitude;
-
-    @Value("${mso.config.cadi.cadiLongitude:#{null}}")
-    private String cadiLongitude;
-
-    @Value("${mso.config.cadi.aafEnv:#{null}}")
-    private String aafEnv;
-
-    @Value("${mso.config.cadi.aafApiVersion:#{null}}")
-    private String aafApiVersion;
-
-    @Value("${mso.config.cadi.aafRootNs:#{null}}")
-    private String aafRootNs;
-
-    @Value("${mso.config.cadi.aafId:#{null}}")
-    private String aafMechId;
-
-    @Value("${mso.config.cadi.aafPassword:#{null}}")
-    private String aafMechIdPassword;
-
-    @Value("${mso.config.cadi.aafLocateUrl:#{null}}")
-    private String aafLocateUrl;
-
-    @Value("${mso.config.cadi.aafUrl:#{null}}")
-    private String aafUrl;
-
-    @Value("${mso.config.cadi.apiEnforcement:#{null}}")
-    private String apiEnforcement;
-
-    private void checkIfNullProperty(String key, String value) {
-        /*
-         * When value is null, it is not defined in application.yaml set nothing in System properties
-         */
-        if (value != null) {
-            System.setProperty(key, value);
-        }
-    }
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        checkIfNullProperty(Config.CADI_LOGLEVEL, cadiLoglevel);
-        checkIfNullProperty(Config.CADI_KEYFILE, cadiKeyFile);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE, cadiTrustStore);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE_PASSWORD, cadiTrustStorePassword);
-        checkIfNullProperty(Config.CADI_LATITUDE, cadiLatitude);
-        checkIfNullProperty(Config.CADI_LONGITUDE, cadiLongitude);
-        checkIfNullProperty(Config.AAF_ENV, aafEnv);
-        checkIfNullProperty(Config.AAF_API_VERSION, aafApiVersion);
-        checkIfNullProperty(Config.AAF_ROOT_NS, aafRootNs);
-        checkIfNullProperty(Config.AAF_APPID, aafMechId);
-        checkIfNullProperty(Config.AAF_APPPASS, aafMechIdPassword);
-        checkIfNullProperty(Config.AAF_LOCATE_URL, aafLocateUrl);
-        checkIfNullProperty(Config.AAF_URL, aafUrl);
-        checkIfNullProperty(Config.CADI_API_ENFORCEMENT, apiEnforcement);
-        // checkIfNullProperty(AFT_ENVIRONMENT_VAR, aftEnv);
-        logger.debug(" *** init Filter Config *** ");
-        super.init(filterConfig);
-    }
-
-
-}
diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SoCadiFilter.java b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SoCadiFilter.java
deleted file mode 100644 (file)
index 1e56470..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP SO
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- *                             reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-package org.onap.so.adapters.sdnc;
-
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import org.onap.aaf.cadi.config.Config;
-import org.onap.aaf.cadi.filter.CadiFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
-
-@Component
-@Profile("aaf")
-public class SoCadiFilter extends CadiFilter {
-
-    protected final Logger logger = LoggerFactory.getLogger(SoCadiFilter.class);
-
-    private static String AFT_ENVIRONMENT_VAR = "AFT_ENVIRONMENT";
-    private static String AAF_API_VERSION = "aaf_api_version";
-
-    @Value("${mso.config.cadi.cadiLoglevel:#{null}}")
-    private String cadiLoglevel;
-
-    @Value("${mso.config.cadi.cadiKeyFile:#{null}}")
-    private String cadiKeyFile;
-
-    @Value("${mso.config.cadi.cadiTruststorePassword:#{null}}")
-    private String cadiTrustStorePassword;
-
-    @Value("${mso.config.cadi.cadiTrustStore:#{null}}")
-    private String cadiTrustStore;
-
-    @Value("${mso.config.cadi.cadiLatitude:#{null}}")
-    private String cadiLatitude;
-
-    @Value("${mso.config.cadi.cadiLongitude:#{null}}")
-    private String cadiLongitude;
-
-    @Value("${mso.config.cadi.aafEnv:#{null}}")
-    private String aafEnv;
-
-    @Value("${mso.config.cadi.aafApiVersion:#{null}}")
-    private String aafApiVersion;
-
-    @Value("${mso.config.cadi.aafRootNs:#{null}}")
-    private String aafRootNs;
-
-    @Value("${mso.config.cadi.aafId:#{null}}")
-    private String aafMechId;
-
-    @Value("${mso.config.cadi.aafPassword:#{null}}")
-    private String aafMechIdPassword;
-
-    @Value("${mso.config.cadi.aafLocateUrl:#{null}}")
-    private String aafLocateUrl;
-
-    @Value("${mso.config.cadi.aafUrl:#{null}}")
-    private String aafUrl;
-
-    @Value("${mso.config.cadi.apiEnforcement:#{null}}")
-    private String apiEnforcement;
-
-    private void checkIfNullProperty(String key, String value) {
-        /*
-         * When value is null, it is not defined in application.yaml set nothing in System properties
-         */
-        if (value != null) {
-            System.setProperty(key, value);
-        }
-    }
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        checkIfNullProperty(Config.CADI_LOGLEVEL, cadiLoglevel);
-        checkIfNullProperty(Config.CADI_KEYFILE, cadiKeyFile);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE, cadiTrustStore);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE_PASSWORD, cadiTrustStorePassword);
-        checkIfNullProperty(Config.CADI_LATITUDE, cadiLatitude);
-        checkIfNullProperty(Config.CADI_LONGITUDE, cadiLongitude);
-        checkIfNullProperty(Config.AAF_ENV, aafEnv);
-        checkIfNullProperty(Config.AAF_API_VERSION, aafApiVersion);
-        checkIfNullProperty(Config.AAF_ROOT_NS, aafRootNs);
-        checkIfNullProperty(Config.AAF_APPID, aafMechId);
-        checkIfNullProperty(Config.AAF_APPPASS, aafMechIdPassword);
-        checkIfNullProperty(Config.AAF_LOCATE_URL, aafLocateUrl);
-        checkIfNullProperty(Config.AAF_URL, aafUrl);
-        checkIfNullProperty(Config.CADI_API_ENFORCEMENT, apiEnforcement);
-        // checkIfNullProperty(AFT_ENVIRONMENT_VAR, aftEnv);
-        logger.debug(" *** init Filter Config *** ");
-        super.init(filterConfig);
-    }
-
-
-}
diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/WebSecurityConfigImpl.java b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/WebSecurityConfigImpl.java
deleted file mode 100644 (file)
index 4d922a4..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.sdnc;
-
-import org.onap.so.security.MSOSpringFirewall;
-import org.onap.so.security.WebSecurityConfig;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.firewall.StrictHttpFirewall;
-import org.springframework.util.StringUtils;
-
-@Configuration
-@EnableWebSecurity
-public class WebSecurityConfigImpl extends WebSecurityConfig {
-
-    @Profile({"basic", "test"})
-    @Bean
-    public WebSecurityConfigurerAdapter basicAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.csrf().disable().authorizeRequests().antMatchers("/manage/health", "/manage/info", "/services")
-                        .permitAll().antMatchers("/**")
-                        .hasAnyRole(StringUtils.collectionToDelimitedString(getRoles(), ",")).and().httpBasic();
-            }
-
-            @Override
-            public void configure(WebSecurity web) throws Exception {
-                super.configure(web);
-                StrictHttpFirewall firewall = new MSOSpringFirewall();
-                web.httpFirewall(firewall);
-            }
-
-            @Override
-            protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-                auth.userDetailsService(WebSecurityConfigImpl.this.userDetailsService())
-                        .passwordEncoder(WebSecurityConfigImpl.this.passwordEncoder());
-            }
-
-        };
-    }
-
-    @Profile("aaf")
-    @Bean
-    public WebSecurityConfigurerAdapter noAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.authorizeRequests().anyRequest().permitAll();
-            }
-        };
-    }
-
-}
diff --git a/adapters/mso-ve-vnfm-adapter/pom.xml b/adapters/mso-ve-vnfm-adapter/pom.xml
new file mode 100644 (file)
index 0000000..189c933
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.2.2.RELEASE</version>
+    </parent>
+
+    <groupId>org.onap.so.adapters</groupId>
+    <artifactId>mso-ve-vnfm-adapter</artifactId>
+    <version>1.4.0-SNAPSHOT</version>
+    <packaging>jar</packaging>
+
+    <name>mso-ve-vnfm-adapter</name>
+    <description>Ve-Vnfm (SOL002) Adapter</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+        <maven.compiler.source>${java.version}</maven.compiler.source>
+        <maven.compiler.target>${java.version}</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.so.adapters</groupId>
+            <artifactId>mso-vnfm-adapter-ext-clients</artifactId>
+            <version>1.4.3</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
@@ -1,15 +1,15 @@
 /*-
  * ============LICENSE_START=======================================================
- * ONAP - SO
+ * SO
  * ================================================================================
- * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019 Samsung. All rights reserved.
  * ================================================================================
  * 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.
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.adapters.sdnc;
+package org.onap.so.adapters.vevnfm;
 
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.core.Ordered;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
 
-@Configuration
-@Profile("aaf")
-public class SecurityFilters {
-
-    @Bean
-    public FilterRegistrationBean<SoCadiFilter> loginRegistrationBean() {
-        FilterRegistrationBean<SoCadiFilter> filterRegistrationBean = new FilterRegistrationBean<>();
-        filterRegistrationBean.setFilter(new SoCadiFilter());
-        filterRegistrationBean.setName("cadiFilter");
-        filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
-        return filterRegistrationBean;
+@SpringBootApplication
+public class Application {
+    public static void main(String... args) {
+        SpringApplication.run(Application.class, args);
     }
 }
diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/controller/NotificationController.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/controller/NotificationController.java
new file mode 100644 (file)
index 0000000..2e5a00a
--- /dev/null
@@ -0,0 +1,41 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SO
+ * ================================================================================
+ * Copyright (C) 2019 Samsung. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vevnfm.controller;
+
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class NotificationController {
+
+    private static final Logger logger = LoggerFactory.getLogger(NotificationController.class);
+
+    @PostMapping("${notification.url}")
+    public ResponseEntity receiveNotification(@RequestBody final VnfLcmOperationOccurrenceNotification notification) {
+        logger.info("Notification received {}", notification);
+        return ResponseEntity.ok().build();
+    }
+}
diff --git a/adapters/mso-ve-vnfm-adapter/src/main/resources/application.yaml b/adapters/mso-ve-vnfm-adapter/src/main/resources/application.yaml
new file mode 100644 (file)
index 0000000..30b3955
--- /dev/null
@@ -0,0 +1,23 @@
+#
+# Copyright Â© 2019 Samsung.
+# All rights reserved.
+#
+# 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.
+
+notification:
+  url:  /lcm/v1/vnf/instances/notifications
+
+spring:
+  http:
+    converters:
+      preferred-json-mapper: gson
@@ -1,15 +1,15 @@
 /*-
  * ============LICENSE_START=======================================================
- * ONAP - SO
+ * SO
  * ================================================================================
- * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019 Samsung. All rights reserved.
  * ================================================================================
  * 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.
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.adapters.vfc;
+package org.onap.so.adapters.vevnfm.controller;
 
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.core.Ordered;
+import org.junit.Test;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 
-@Configuration
-@Profile("aaf")
-public class SecurityFilters {
+import static org.junit.Assert.assertEquals;
 
-    @Bean
-    public FilterRegistrationBean<SoCadiFilter> loginRegistrationBean() {
-        FilterRegistrationBean<SoCadiFilter> filterRegistrationBean = new FilterRegistrationBean<>();
-        filterRegistrationBean.setFilter(new SoCadiFilter());
-        filterRegistrationBean.setName("cadiFilter");
-        filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
-        return filterRegistrationBean;
+public class NotificationControllerTest {
+
+    private final NotificationController controller = new NotificationController();
+
+    @Test
+    public void testReceiveNotification() {
+        final VnfLcmOperationOccurrenceNotification notification
+                = new VnfLcmOperationOccurrenceNotification();
+        final ResponseEntity response = controller.receiveNotification(notification);
+        assertEquals(HttpStatus.OK, response.getStatusCode());
     }
 }
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/SoCadiFilter.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/SoCadiFilter.java
deleted file mode 100644 (file)
index 89526d4..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP SO
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- *                             reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-package org.onap.so.adapters.vfc;
-
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import org.onap.aaf.cadi.config.Config;
-import org.onap.aaf.cadi.filter.CadiFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
-
-@Component
-@Profile("aaf")
-public class SoCadiFilter extends CadiFilter {
-
-    protected final Logger logger = LoggerFactory.getLogger(SoCadiFilter.class);
-
-    private static String AFT_ENVIRONMENT_VAR = "AFT_ENVIRONMENT";
-    private static String AAF_API_VERSION = "aaf_api_version";
-
-    @Value("${mso.config.cadi.cadiLoglevel:#{null}}")
-    private String cadiLoglevel;
-
-    @Value("${mso.config.cadi.cadiKeyFile:#{null}}")
-    private String cadiKeyFile;
-
-    @Value("${mso.config.cadi.cadiTruststorePassword:#{null}}")
-    private String cadiTrustStorePassword;
-
-    @Value("${mso.config.cadi.cadiTrustStore:#{null}}")
-    private String cadiTrustStore;
-
-    @Value("${mso.config.cadi.cadiLatitude:#{null}}")
-    private String cadiLatitude;
-
-    @Value("${mso.config.cadi.cadiLongitude:#{null}}")
-    private String cadiLongitude;
-
-    @Value("${mso.config.cadi.aafEnv:#{null}}")
-    private String aafEnv;
-
-    @Value("${mso.config.cadi.aafApiVersion:#{null}}")
-    private String aafApiVersion;
-
-    @Value("${mso.config.cadi.aafRootNs:#{null}}")
-    private String aafRootNs;
-
-    @Value("${mso.config.cadi.aafId:#{null}}")
-    private String aafMechId;
-
-    @Value("${mso.config.cadi.aafPassword:#{null}}")
-    private String aafMechIdPassword;
-
-    @Value("${mso.config.cadi.aafLocateUrl:#{null}}")
-    private String aafLocateUrl;
-
-    @Value("${mso.config.cadi.aafUrl:#{null}}")
-    private String aafUrl;
-
-    @Value("${mso.config.cadi.apiEnforcement:#{null}}")
-    private String apiEnforcement;
-
-    private void checkIfNullProperty(String key, String value) {
-        /*
-         * When value is null, it is not defined in application.yaml set nothing in System properties
-         */
-        if (value != null) {
-            System.setProperty(key, value);
-        }
-    }
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        checkIfNullProperty(Config.CADI_LOGLEVEL, cadiLoglevel);
-        checkIfNullProperty(Config.CADI_KEYFILE, cadiKeyFile);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE, cadiTrustStore);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE_PASSWORD, cadiTrustStorePassword);
-        checkIfNullProperty(Config.CADI_LATITUDE, cadiLatitude);
-        checkIfNullProperty(Config.CADI_LONGITUDE, cadiLongitude);
-        checkIfNullProperty(Config.AAF_ENV, aafEnv);
-        checkIfNullProperty(Config.AAF_API_VERSION, aafApiVersion);
-        checkIfNullProperty(Config.AAF_ROOT_NS, aafRootNs);
-        checkIfNullProperty(Config.AAF_APPID, aafMechId);
-        checkIfNullProperty(Config.AAF_APPPASS, aafMechIdPassword);
-        checkIfNullProperty(Config.AAF_LOCATE_URL, aafLocateUrl);
-        checkIfNullProperty(Config.AAF_URL, aafUrl);
-        checkIfNullProperty(Config.CADI_API_ENFORCEMENT, apiEnforcement);
-        // checkIfNullProperty(AFT_ENVIRONMENT_VAR, aftEnv);
-        logger.debug(" *** init Filter Config *** ");
-        super.init(filterConfig);
-    }
-
-
-}
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/WebSecurityConfigImpl.java b/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/WebSecurityConfigImpl.java
deleted file mode 100644 (file)
index 28ac311..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.vfc;
-
-import org.onap.so.security.MSOSpringFirewall;
-import org.onap.so.security.WebSecurityConfig;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.firewall.StrictHttpFirewall;
-import org.springframework.util.StringUtils;
-
-@Configuration
-@EnableWebSecurity
-public class WebSecurityConfigImpl extends WebSecurityConfig {
-
-    @Profile({"basic", "test"})
-    @Bean
-    public WebSecurityConfigurerAdapter basicAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.csrf().disable().authorizeRequests().antMatchers("/manage/health", "/manage/info", "/services")
-                        .permitAll().antMatchers("/**")
-                        .hasAnyRole(StringUtils.collectionToDelimitedString(getRoles(), ",")).and().httpBasic();
-            }
-
-            @Override
-            public void configure(WebSecurity web) throws Exception {
-                super.configure(web);
-                StrictHttpFirewall firewall = new MSOSpringFirewall();
-                web.httpFirewall(firewall);
-            }
-
-            @Override
-            protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-                auth.userDetailsService(WebSecurityConfigImpl.this.userDetailsService())
-                        .passwordEncoder(WebSecurityConfigImpl.this.passwordEncoder());
-            }
-
-        };
-    }
-
-    @Profile("aaf")
-    @Bean
-    public WebSecurityConfigurerAdapter noAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.authorizeRequests().anyRequest().permitAll();
-            }
-        };
-    }
-
-}
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/SecurityFilters.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/SecurityFilters.java
deleted file mode 100644 (file)
index 3876d77..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.vnfmadapter;
-
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.core.Ordered;
-
-@Configuration
-@Profile("aaf")
-public class SecurityFilters {
-
-    @Bean
-    public FilterRegistrationBean<SoCadiFilter> loginRegistrationBean() {
-        FilterRegistrationBean<SoCadiFilter> filterRegistrationBean = new FilterRegistrationBean<>();
-        filterRegistrationBean.setFilter(new SoCadiFilter());
-        filterRegistrationBean.setName("cadiFilter");
-        filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
-        return filterRegistrationBean;
-    }
-}
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/SoCadiFilter.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/SoCadiFilter.java
deleted file mode 100644 (file)
index aefb36c..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP SO
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- *                             reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-package org.onap.so.adapters.vnfmadapter;
-
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import org.onap.aaf.cadi.config.Config;
-import org.onap.aaf.cadi.filter.CadiFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
-
-@Component
-@Profile("aaf")
-public class SoCadiFilter extends CadiFilter {
-
-    protected final Logger logger = LoggerFactory.getLogger(SoCadiFilter.class);
-
-    private static String AFT_ENVIRONMENT_VAR = "AFT_ENVIRONMENT";
-    private static String AAF_API_VERSION = "aaf_api_version";
-
-    @Value("${mso.config.cadi.cadiLoglevel:#{null}}")
-    private String cadiLoglevel;
-
-    @Value("${mso.config.cadi.cadiKeyFile:#{null}}")
-    private String cadiKeyFile;
-
-    @Value("${mso.config.cadi.cadiTruststorePassword:#{null}}")
-    private String cadiTrustStorePassword;
-
-    @Value("${mso.config.cadi.cadiTrustStore:#{null}}")
-    private String cadiTrustStore;
-
-    @Value("${mso.config.cadi.cadiLatitude:#{null}}")
-    private String cadiLatitude;
-
-    @Value("${mso.config.cadi.cadiLongitude:#{null}}")
-    private String cadiLongitude;
-
-    @Value("${mso.config.cadi.aafEnv:#{null}}")
-    private String aafEnv;
-
-    @Value("${mso.config.cadi.aafApiVersion:#{null}}")
-    private String aafApiVersion;
-
-    @Value("${mso.config.cadi.aafRootNs:#{null}}")
-    private String aafRootNs;
-
-    @Value("${mso.config.cadi.aafId:#{null}}")
-    private String aafMechId;
-
-    @Value("${mso.config.cadi.aafPassword:#{null}}")
-    private String aafMechIdPassword;
-
-    @Value("${mso.config.cadi.aafLocateUrl:#{null}}")
-    private String aafLocateUrl;
-
-    @Value("${mso.config.cadi.aafUrl:#{null}}")
-    private String aafUrl;
-
-    @Value("${mso.config.cadi.apiEnforcement:#{null}}")
-    private String apiEnforcement;
-
-    private void checkIfNullProperty(String key, String value) {
-        /*
-         * When value is null, it is not defined in application.yaml set nothing in System properties
-         */
-        if (value != null) {
-            System.setProperty(key, value);
-        }
-    }
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        checkIfNullProperty(Config.CADI_LOGLEVEL, cadiLoglevel);
-        checkIfNullProperty(Config.CADI_KEYFILE, cadiKeyFile);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE, cadiTrustStore);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE_PASSWORD, cadiTrustStorePassword);
-        checkIfNullProperty(Config.CADI_LATITUDE, cadiLatitude);
-        checkIfNullProperty(Config.CADI_LONGITUDE, cadiLongitude);
-        checkIfNullProperty(Config.AAF_ENV, aafEnv);
-        checkIfNullProperty(Config.AAF_API_VERSION, aafApiVersion);
-        checkIfNullProperty(Config.AAF_ROOT_NS, aafRootNs);
-        checkIfNullProperty(Config.AAF_APPID, aafMechId);
-        checkIfNullProperty(Config.AAF_APPPASS, aafMechIdPassword);
-        checkIfNullProperty(Config.AAF_LOCATE_URL, aafLocateUrl);
-        checkIfNullProperty(Config.AAF_URL, aafUrl);
-        checkIfNullProperty(Config.CADI_API_ENFORCEMENT, apiEnforcement);
-        // checkIfNullProperty(AFT_ENVIRONMENT_VAR, aftEnv);
-        logger.debug(" *** init Filter Config *** ");
-        super.init(filterConfig);
-    }
-
-
-}
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/WebSecurityConfigImpl.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/WebSecurityConfigImpl.java
deleted file mode 100644 (file)
index e43efd0..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.vnfmadapter;
-
-import org.onap.so.security.MSOSpringFirewall;
-import org.onap.so.security.WebSecurityConfig;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.firewall.StrictHttpFirewall;
-import org.springframework.util.StringUtils;
-
-@Configuration
-@EnableWebSecurity
-public class WebSecurityConfigImpl extends WebSecurityConfig {
-
-    @Value("${server.ssl.client-auth:none}")
-    private String clientAuth;
-
-    @Profile({"basic", "test"})
-    @Bean
-    public WebSecurityConfigurerAdapter basicAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                if (("need").equalsIgnoreCase(clientAuth)) {
-                    http.csrf().disable().authorizeRequests().anyRequest().permitAll();
-                } else {
-                    http.csrf().disable().authorizeRequests().antMatchers("/manage/health", "/manage/info").permitAll()
-                            .antMatchers("/**").hasAnyRole(StringUtils.collectionToDelimitedString(getRoles(), ","))
-                            .and().httpBasic();
-                }
-            }
-
-            @Override
-            public void configure(WebSecurity web) throws Exception {
-                super.configure(web);
-                StrictHttpFirewall firewall = new MSOSpringFirewall();
-                web.httpFirewall(firewall);
-            }
-
-            @Override
-            protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-                auth.userDetailsService(WebSecurityConfigImpl.this.userDetailsService())
-                        .passwordEncoder(WebSecurityConfigImpl.this.passwordEncoder());
-            }
-
-        };
-    }
-
-    @Profile("aaf")
-    @Bean
-    public WebSecurityConfigurerAdapter noAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.authorizeRequests().anyRequest().permitAll();
-            }
-        };
-    }
-
-}
index 623cba7..6147748 100644 (file)
@@ -31,6 +31,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.onap.so.adapters.vnfmadapter.VnfmAdapterApplication;
@@ -147,6 +148,7 @@ public class Sol003PackageManagementControllerTest {
     }
 
     @Test
+    @Ignore
     public void testOnGetPackageContent_UnauthorizedClient_Fail() {
         final String testURL = "http://localhost:" + port + PACKAGE_MANAGEMENT_BASE_URL + "/vnf_packages/"
                 + VNF_PACKAGE_ID + "/package_content";
@@ -181,6 +183,7 @@ public class Sol003PackageManagementControllerTest {
     }
 
     @Test
+    @Ignore
     public void testOnGetPackageContent_UnauthorizedServer_InternalError_Fail() {
         mockRestServer.expect(requestTo(MSB_BASE_URL + "/" + VNF_PACKAGE_ID + "/package_content"))
                 .andExpect(method(HttpMethod.GET)).andRespond(withStatus(HttpStatus.UNAUTHORIZED));
@@ -246,6 +249,7 @@ public class Sol003PackageManagementControllerTest {
     }
 
     @Test
+    @Ignore
     public void testOnGetPackageArtifact_UnauthorizedClient_Fail() {
         final String testURL = "http://localhost:" + port + PACKAGE_MANAGEMENT_BASE_URL + "/vnf_packages/"
                 + VNF_PACKAGE_ID + "/artifacts/" + ARTIFACT_PATH;
index e408a32..fca50ea 100644 (file)
@@ -39,6 +39,7 @@ import java.util.Optional;
 import org.hamcrest.BaseMatcher;
 import org.hamcrest.Description;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -259,6 +260,7 @@ public class VnfmAdapterControllerTest {
     }
 
     @Test
+    @Ignore
     public void createVnf_UnauthorizedUser_Returns401() throws Exception {
         final TestRestTemplate restTemplateWrongPassword = new TestRestTemplate("test", "wrongPassword");
         final Tenant tenant = new Tenant().cloudOwner(CLOUD_OWNER).regionName(REGION).tenantId(TENANT_ID);
index bd7beba..14498c5 100644 (file)
@@ -22,6 +22,7 @@
     <module>mso-vfc-adapter</module>
     <module>mso-openstack-adapters</module>
     <module>mso-vnfm-adapter</module>
+    <module>mso-ve-vnfm-adapter</module>
   </modules>
 
   <dependencies>
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/WebSecurityConfigImpl.java b/asdc-controller/src/main/java/org/onap/so/asdc/WebSecurityConfigImpl.java
deleted file mode 100644 (file)
index 8722d19..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.asdc;
-
-import org.onap.so.security.MSOSpringFirewall;
-import org.onap.so.security.WebSecurityConfig;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.firewall.StrictHttpFirewall;
-import org.springframework.util.StringUtils;
-
-@Configuration
-@EnableWebSecurity
-public class WebSecurityConfigImpl extends WebSecurityConfig {
-
-    @Profile({"basic", "test"})
-    @Bean
-    public WebSecurityConfigurerAdapter basicAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.csrf().disable().authorizeRequests().antMatchers("/manage/health", "/manage/info").permitAll()
-                        .antMatchers("/**").hasAnyRole(StringUtils.collectionToDelimitedString(getRoles(), ",")).and()
-                        .httpBasic();
-            }
-
-            @Override
-            public void configure(WebSecurity web) throws Exception {
-                super.configure(web);
-                StrictHttpFirewall firewall = new MSOSpringFirewall();
-                web.httpFirewall(firewall);
-            }
-
-            @Override
-            protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-                auth.userDetailsService(WebSecurityConfigImpl.this.userDetailsService())
-                        .passwordEncoder(WebSecurityConfigImpl.this.passwordEncoder());
-            }
-
-        };
-    }
-
-    @Profile("aaf")
-    @Bean
-    public WebSecurityConfigurerAdapter noAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.authorizeRequests().anyRequest().permitAll();
-            }
-        };
-    }
-
-}
index c35e8e3..e25de9c 100644 (file)
@@ -31,7 +31,7 @@ import org.springframework.context.annotation.Profile;
 
 @SpringBootApplication
 @Profile("test")
-@ComponentScan(basePackages = {"org.onap.so.asdc"},
+@ComponentScan(basePackages = {"org.onap.so.asdc", "org.onap.so.security"},
         excludeFilters = {@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class),
                 @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = RequestsDBHelper.class),
                 @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = InfraActiveRequestsRepositoryImpl.class)})
index 5498b5b..9741d4b 100644 (file)
@@ -24,7 +24,6 @@ package org.onap.so.client.cds;
 
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicReference;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.onap.ccsdk.cds.controllerblueprints.common.api.ActionIdentifiers;
 import org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader;
@@ -51,28 +50,29 @@ import io.grpc.Status;
  *
  */
 @Component
-public class AbstractCDSProcessingBBUtils implements CDSProcessingListener {
+public class AbstractCDSProcessingBBUtils {
 
     private static final Logger logger = LoggerFactory.getLogger(AbstractCDSProcessingBBUtils.class);
 
     private static final String SUCCESS = "Success";
     private static final String FAILED = "Failed";
     private static final String PROCESSING = "Processing";
+    private static final String RESPONSE_PAYLOAD = "CDSResponsePayload";
+    private static final String CDS_STATUS = "CDSStatus";
+    private static final String EXEC_INPUT = "executionServiceInput";
+
 
     /**
      * indicate exception thrown.
      */
     private static final String EXCEPTION = "Exception";
 
-
-    private final AtomicReference<String> cdsResponse = new AtomicReference<>();
-
     @Autowired
     private ExceptionBuilder exceptionUtil;
 
     /**
      * Extracting data from execution object and building the ExecutionServiceInput Object
-     * 
+     *
      * @param execution DelegateExecution object
      */
     public void constructExecutionServiceInputObject(DelegateExecution execution) {
@@ -105,7 +105,7 @@ public class AbstractCDSProcessingBBUtils implements CDSProcessingListener {
                     ExecutionServiceInput.newBuilder().setCommonHeader(commonHeader)
                             .setActionIdentifiers(actionIdentifiers).setPayload(struct.build()).build();
 
-            execution.setVariable("executionServiceInput", executionServiceInput);
+            execution.setVariable(EXEC_INPUT, executionServiceInput);
 
         } catch (Exception ex) {
             exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
@@ -114,7 +114,7 @@ public class AbstractCDSProcessingBBUtils implements CDSProcessingListener {
 
     /**
      * get the executionServiceInput object from execution and send a request to CDS Client and wait for TIMEOUT period
-     * 
+     *
      * @param execution DelegateExecution object
      */
     public void sendRequestToCDSClient(DelegateExecution execution) {
@@ -127,10 +127,11 @@ public class AbstractCDSProcessingBBUtils implements CDSProcessingListener {
                         "No RestProperty.CDSProperties implementation found on classpath, can't create client.");
             }
 
-            ExecutionServiceInput executionServiceInput =
-                    (ExecutionServiceInput) execution.getVariable("executionServiceInput");
+            ExecutionServiceInput executionServiceInput = (ExecutionServiceInput) execution.getVariable(EXEC_INPUT);
+
+            CDSResponse cdsResponse = new CDSResponse();
 
-            try (CDSProcessingClient cdsClient = new CDSProcessingClient(this)) {
+            try (CDSProcessingClient cdsClient = new CDSProcessingClient(new ResponseHandler(cdsResponse))) {
                 CountDownLatch countDownLatch = cdsClient.sendRequest(executionServiceInput);
                 countDownLatch.await(props.getTimeout(), TimeUnit.SECONDS);
             } catch (InterruptedException ex) {
@@ -138,61 +139,82 @@ public class AbstractCDSProcessingBBUtils implements CDSProcessingListener {
                 Thread.currentThread().interrupt();
             }
 
-            if (cdsResponse != null) {
-                String cdsResponseStatus = cdsResponse.get();
-                execution.setVariable("CDSStatus", cdsResponseStatus);
+            String cdsResponseStatus = cdsResponse.status;
+
+            /**
+             * throw CDS failed exception.
+             */
+            if (!cdsResponseStatus.equals(SUCCESS)) {
+                throw new BadResponseException("CDS call failed with status: " + cdsResponse.status
+                        + " and errorMessage: " + cdsResponse.errorMessage);
+            }
+
+            execution.setVariable(CDS_STATUS, cdsResponseStatus);
 
-                /**
-                 * throw CDS failed exception.
-                 */
-                if (cdsResponseStatus != SUCCESS) {
-                    throw new BadResponseException("CDS call failed with status: " + cdsResponseStatus);
-                }
+            if (cdsResponse.payload != null) {
+                String payload = JsonFormat.printer().print(cdsResponse.payload);
+                execution.setVariable(RESPONSE_PAYLOAD, payload);
             }
 
+
+
         } catch (Exception ex) {
             exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
         }
     }
 
-    /**
-     * Get Response from CDS Client
-     * 
-     */
-    @Override
-    public void onMessage(ExecutionServiceOutput message) {
-        logger.info("Received notification from CDS: {}", message);
-        EventType eventType = message.getStatus().getEventType();
-
-        switch (eventType) {
-
-            case EVENT_COMPONENT_FAILURE:
-                // failed processing with failure
-                cdsResponse.set(FAILED);
-                break;
-            case EVENT_COMPONENT_PROCESSING:
-                // still processing
-                cdsResponse.set(PROCESSING);
-                break;
-            case EVENT_COMPONENT_EXECUTED:
-                // done with async processing
-                cdsResponse.set(SUCCESS);
-                break;
-            default:
-                cdsResponse.set(FAILED);
-                break;
+    private class ResponseHandler implements CDSProcessingListener {
+
+        private CDSResponse cdsResponse;
+
+        ResponseHandler(CDSResponse cdsResponse) {
+            this.cdsResponse = cdsResponse;
         }
 
-    }
+        /**
+         * Get Response from CDS Client
+         */
+        @Override
+        public void onMessage(ExecutionServiceOutput message) {
+            logger.info("Received notification from CDS: {}", message);
+            EventType eventType = message.getStatus().getEventType();
+
+            switch (eventType) {
+                case EVENT_COMPONENT_PROCESSING:
+                    cdsResponse.status = PROCESSING;
+                    break;
+                case EVENT_COMPONENT_EXECUTED:
+                    cdsResponse.status = SUCCESS;
+                    break;
+                default:
+                    cdsResponse.status = FAILED;
+                    cdsResponse.errorMessage = message.getStatus().getErrorMessage();
+                    break;
+            }
+            cdsResponse.payload = message.getPayload();
+        }
 
-    /**
-     * On error at CDS, log the error
-     */
-    @Override
-    public void onError(Throwable t) {
-        Status status = Status.fromThrowable(t);
-        logger.error("Failed processing blueprint {}", status, t);
-        cdsResponse.set(EXCEPTION);
+        /**
+         * On error at CDS, log the error
+         */
+        @Override
+        public void onError(Throwable t) {
+            Status status = Status.fromThrowable(t);
+            logger.error("Failed processing blueprint {}", status, t);
+            cdsResponse.status = EXCEPTION;
+        }
     }
 
+    private class CDSResponse {
+
+        String status;
+        String errorMessage;
+        Struct payload;
+
+        @Override
+        public String toString() {
+            return "CDSResponse{" + "status='" + status + '\'' + ", errorMessage='" + errorMessage + '\'' + ", payload="
+                    + payload + '}';
+        }
+    }
 }
diff --git a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/SecurityFilters.java b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/SecurityFilters.java
deleted file mode 100644 (file)
index bdc1c50..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.bpmn.infrastructure;
-
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.core.Ordered;
-
-@Configuration
-@Profile("aaf")
-public class SecurityFilters {
-
-    @Bean
-    public FilterRegistrationBean<SoCadiFilter> loginRegistrationBean() {
-        FilterRegistrationBean<SoCadiFilter> filterRegistrationBean = new FilterRegistrationBean<>();
-        filterRegistrationBean.setFilter(new SoCadiFilter());
-        filterRegistrationBean.setName("cadiFilter");
-        filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
-        return filterRegistrationBean;
-    }
-}
diff --git a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/SoCadiFilter.java b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/SoCadiFilter.java
deleted file mode 100644 (file)
index cb60d5d..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP SO
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- *                             reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-package org.onap.so.bpmn.infrastructure;
-
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import org.onap.aaf.cadi.config.Config;
-import org.onap.aaf.cadi.filter.CadiFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
-
-@Component
-@Profile("aaf")
-public class SoCadiFilter extends CadiFilter {
-
-    protected final Logger logger = LoggerFactory.getLogger(SoCadiFilter.class);
-
-    private static String AFT_ENVIRONMENT_VAR = "AFT_ENVIRONMENT";
-    private static String AAF_API_VERSION = "aaf_api_version";
-
-    @Value("${mso.config.cadi.cadiLoglevel:#{null}}")
-    private String cadiLoglevel;
-
-    @Value("${mso.config.cadi.cadiKeyFile:#{null}}")
-    private String cadiKeyFile;
-
-    @Value("${mso.config.cadi.cadiTruststorePassword:#{null}}")
-    private String cadiTrustStorePassword;
-
-    @Value("${mso.config.cadi.cadiTrustStore:#{null}}")
-    private String cadiTrustStore;
-
-    @Value("${mso.config.cadi.cadiLatitude:#{null}}")
-    private String cadiLatitude;
-
-    @Value("${mso.config.cadi.cadiLongitude:#{null}}")
-    private String cadiLongitude;
-
-    @Value("${mso.config.cadi.aafEnv:#{null}}")
-    private String aafEnv;
-
-    @Value("${mso.config.cadi.aafApiVersion:#{null}}")
-    private String aafApiVersion;
-
-    @Value("${mso.config.cadi.aafRootNs:#{null}}")
-    private String aafRootNs;
-
-    @Value("${mso.config.cadi.aafId:#{null}}")
-    private String aafMechId;
-
-    @Value("${mso.config.cadi.aafPassword:#{null}}")
-    private String aafMechIdPassword;
-
-    @Value("${mso.config.cadi.aafLocateUrl:#{null}}")
-    private String aafLocateUrl;
-
-    @Value("${mso.config.cadi.aafUrl:#{null}}")
-    private String aafUrl;
-
-    @Value("${mso.config.cadi.apiEnforcement:#{null}}")
-    private String apiEnforcement;
-
-    private void checkIfNullProperty(String key, String value) {
-        /*
-         * When value is null, it is not defined in application.yaml set nothing in System properties
-         */
-        if (value != null) {
-            System.setProperty(key, value);
-        }
-    }
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        checkIfNullProperty(Config.CADI_LOGLEVEL, cadiLoglevel);
-        checkIfNullProperty(Config.CADI_KEYFILE, cadiKeyFile);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE, cadiTrustStore);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE_PASSWORD, cadiTrustStorePassword);
-        checkIfNullProperty(Config.CADI_LATITUDE, cadiLatitude);
-        checkIfNullProperty(Config.CADI_LONGITUDE, cadiLongitude);
-        checkIfNullProperty(Config.AAF_ENV, aafEnv);
-        checkIfNullProperty(Config.AAF_API_VERSION, aafApiVersion);
-        checkIfNullProperty(Config.AAF_ROOT_NS, aafRootNs);
-        checkIfNullProperty(Config.AAF_APPID, aafMechId);
-        checkIfNullProperty(Config.AAF_APPPASS, aafMechIdPassword);
-        checkIfNullProperty(Config.AAF_LOCATE_URL, aafLocateUrl);
-        checkIfNullProperty(Config.AAF_URL, aafUrl);
-        checkIfNullProperty(Config.CADI_API_ENFORCEMENT, apiEnforcement);
-        // checkIfNullProperty(AFT_ENVIRONMENT_VAR, aftEnv);
-        logger.debug(" *** init Filter Config *** ");
-        super.init(filterConfig);
-    }
-
-
-}
diff --git a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/WebSecurityConfigImpl.java b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/WebSecurityConfigImpl.java
deleted file mode 100644 (file)
index bcc38ec..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.bpmn.infrastructure;
-
-import org.onap.so.security.MSOSpringFirewall;
-import org.onap.so.security.WebSecurityConfig;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.firewall.StrictHttpFirewall;
-import org.springframework.util.StringUtils;
-
-@Configuration
-@EnableWebSecurity
-public class WebSecurityConfigImpl extends WebSecurityConfig {
-
-    @Profile({"basic", "test"})
-    @Bean
-    public WebSecurityConfigurerAdapter basicAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.csrf().disable().authorizeRequests().antMatchers("/manage/health", "/manage/info").permitAll()
-                        .antMatchers("/async/services/**", "/workflow/services/*", "/SDNCAdapterCallbackService",
-                                "/WorkflowMessage", "/vnfAdapterNotify", "/vnfAdapterRestNotify")
-                        .hasAnyRole(StringUtils.collectionToDelimitedString(getRoles(), ",")).and().httpBasic();
-            }
-
-            @Override
-            public void configure(WebSecurity web) throws Exception {
-                super.configure(web);
-                StrictHttpFirewall firewall = new MSOSpringFirewall();
-                web.httpFirewall(firewall);
-            }
-
-            @Override
-            protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-                auth.userDetailsService(WebSecurityConfigImpl.this.userDetailsService())
-                        .passwordEncoder(WebSecurityConfigImpl.this.passwordEncoder());
-            }
-
-        };
-    }
-
-    @Profile("aaf")
-    @Bean
-    public WebSecurityConfigurerAdapter noAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.authorizeRequests().anyRequest().permitAll();
-            }
-        };
-    }
-}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/WebSecurityConfigImpl.java b/bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/WebSecurityConfigImpl.java
deleted file mode 100644 (file)
index 58e5846..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.bpmn.infrastructure;
-
-import org.onap.so.security.MSOSpringFirewall;
-import org.onap.so.security.WebSecurityConfig;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.firewall.StrictHttpFirewall;
-import org.springframework.util.StringUtils;
-
-@Configuration
-@EnableWebSecurity
-public class WebSecurityConfigImpl extends WebSecurityConfig {
-
-    @Bean
-    @Profile("test")
-    public WebSecurityConfigurerAdapter basicAuth() {
-        return new WebSecurityConfigurerAdapter() {
-            @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.csrf().disable().authorizeRequests().antMatchers("/manage/health", "/manage/info").permitAll()
-                        .antMatchers("/async/services/**", "/workflow/services/*", "/SDNCAdapterCallbackService",
-                                "/WorkflowMessage", "/vnfAdapterNotify", "/vnfAdapterRestNotify")
-                        .hasAnyRole(StringUtils.collectionToDelimitedString(getRoles(), ",")).and().httpBasic();
-            }
-
-            @Override
-            public void configure(WebSecurity web) throws Exception {
-                super.configure(web);
-                StrictHttpFirewall firewall = new MSOSpringFirewall();
-                web.httpFirewall(firewall);
-            }
-
-            @Override
-            protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-                auth.userDetailsService(WebSecurityConfigImpl.this.userDetailsService())
-                        .passwordEncoder(WebSecurityConfigImpl.this.passwordEncoder());
-            }
-
-        };
-    }
-}
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.asdc;
+package org.onap.so.security;
 
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.context.annotation.Bean;
@@ -20,7 +20,7 @@
  * ===================================================================
  *
  */
-package org.onap.so.asdc;
+package org.onap.so.security;
 
 import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
index 44ac62d..2eafc6c 100644 (file)
@@ -43,8 +43,10 @@ public class WebSecurityConfig {
 
     @PostConstruct
     private void addRoles() {
-        for (int i = 0; i < credentials.size(); i++) {
-            roles.add(credentials.get(i).getRole());
+        if (credentials != null) {
+            for (int i = 0; i < credentials.size(); i++) {
+                roles.add(credentials.get(i).getRole());
+            }
         }
     }
 
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.apihandlerinfra;
+package org.onap.so.security;
 
-import org.onap.so.security.MSOSpringFirewall;
-import org.onap.so.security.WebSecurityConfig;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Profile;
@@ -36,11 +34,10 @@ import org.springframework.security.web.firewall.StrictHttpFirewall;
 import org.springframework.util.StringUtils;
 
 @EnableWebSecurity
-@Configuration("att-security-config")
-// @Order(2)
+@Configuration()
 public class WebSecurityConfigImpl extends WebSecurityConfig {
 
-    @Profile({"basic", "test"})
+    @Profile({"basic"})
     @Bean
     public WebSecurityConfigurerAdapter basicAuth() {
         return new WebSecurityConfigurerAdapter() {
@@ -66,13 +63,15 @@ public class WebSecurityConfigImpl extends WebSecurityConfig {
         };
     }
 
-    @Profile("aaf")
+    @Profile({"aaf", "test"})
     @Bean
     public WebSecurityConfigurerAdapter noAuth() {
         return new WebSecurityConfigurerAdapter() {
             @Override
-            protected void configure(HttpSecurity http) throws Exception {
-                http.authorizeRequests().antMatchers("/**").permitAll();
+            public void configure(WebSecurity web) throws Exception {
+                web.ignoring().antMatchers("/**");
+                StrictHttpFirewall firewall = new MSOSpringFirewall();
+                web.httpFirewall(firewall);
             }
         };
     }
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SecurityFilters.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SecurityFilters.java
deleted file mode 100644 (file)
index 0cf63b9..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.apihandlerinfra;
-
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.core.Ordered;
-
-@Configuration
-@Profile("aaf")
-public class SecurityFilters {
-
-    @Bean
-    public FilterRegistrationBean<SoCadiFilter> loginRegistrationBean() {
-        FilterRegistrationBean<SoCadiFilter> filterRegistrationBean = new FilterRegistrationBean<>();
-        filterRegistrationBean.setFilter(new SoCadiFilter());
-        filterRegistrationBean.setName("cadiFilter");
-        filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
-        return filterRegistrationBean;
-    }
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SoCadiFilter.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SoCadiFilter.java
deleted file mode 100644 (file)
index 6510440..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP SO
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
- *                             reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-package org.onap.so.apihandlerinfra;
-
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import org.onap.aaf.cadi.config.Config;
-import org.onap.aaf.cadi.filter.CadiFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
-
-@Component
-@Profile("aaf")
-public class SoCadiFilter extends CadiFilter {
-
-    protected final Logger logger = LoggerFactory.getLogger(SoCadiFilter.class);
-
-    private static String AFT_ENVIRONMENT_VAR = "AFT_ENVIRONMENT";
-    private static String AAF_API_VERSION = "aaf_api_version";
-
-    @Value("${mso.config.cadi.cadiLoglevel:#{null}}")
-    private String cadiLoglevel;
-
-    @Value("${mso.config.cadi.cadiKeyFile:#{null}}")
-    private String cadiKeyFile;
-
-    @Value("${mso.config.cadi.cadiTruststorePassword:#{null}}")
-    private String cadiTrustStorePassword;
-
-    @Value("${mso.config.cadi.cadiTrustStore:#{null}}")
-    private String cadiTrustStore;
-
-    @Value("${mso.config.cadi.cadiLatitude:#{null}}")
-    private String cadiLatitude;
-
-    @Value("${mso.config.cadi.cadiLongitude:#{null}}")
-    private String cadiLongitude;
-
-    @Value("${mso.config.cadi.aafEnv:#{null}}")
-    private String aafEnv;
-
-    @Value("${mso.config.cadi.aafApiVersion:#{null}}")
-    private String aafApiVersion;
-
-    @Value("${mso.config.cadi.aafRootNs:#{null}}")
-    private String aafRootNs;
-
-    @Value("${mso.config.cadi.aafId:#{null}}")
-    private String aafMechId;
-
-    @Value("${mso.config.cadi.aafPassword:#{null}}")
-    private String aafMechIdPassword;
-
-    @Value("${mso.config.cadi.aafLocateUrl:#{null}}")
-    private String aafLocateUrl;
-
-    @Value("${mso.config.cadi.aafUrl:#{null}}")
-    private String aafUrl;
-
-    @Value("${mso.config.cadi.apiEnforcement:#{null}}")
-    private String apiEnforcement;
-
-    private void checkIfNullProperty(String key, String value) {
-        /*
-         * When value is null, it is not defined in application.yaml set nothing in System properties
-         */
-        if (value != null) {
-            System.setProperty(key, value);
-        }
-    }
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        checkIfNullProperty(Config.CADI_LOGLEVEL, cadiLoglevel);
-        checkIfNullProperty(Config.CADI_KEYFILE, cadiKeyFile);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE, cadiTrustStore);
-        checkIfNullProperty(Config.CADI_TRUSTSTORE_PASSWORD, cadiTrustStorePassword);
-        checkIfNullProperty(Config.CADI_LATITUDE, cadiLatitude);
-        checkIfNullProperty(Config.CADI_LONGITUDE, cadiLongitude);
-        checkIfNullProperty(Config.AAF_ENV, aafEnv);
-        checkIfNullProperty(Config.AAF_API_VERSION, aafApiVersion);
-        checkIfNullProperty(Config.AAF_ROOT_NS, aafRootNs);
-        checkIfNullProperty(Config.AAF_APPID, aafMechId);
-        checkIfNullProperty(Config.AAF_APPPASS, aafMechIdPassword);
-        checkIfNullProperty(Config.AAF_LOCATE_URL, aafLocateUrl);
-        checkIfNullProperty(Config.AAF_URL, aafUrl);
-        checkIfNullProperty(Config.CADI_API_ENFORCEMENT, apiEnforcement);
-        // checkIfNullProperty(AFT_ENVIRONMENT_VAR, aftEnv);
-        logger.debug(" *** init Filter Config *** ");
-        super.init(filterConfig);
-    }
-
-
-}
index 08e9719..610ed25 100644 (file)
       <artifactId>asm-xml</artifactId>
       <version>6.1</version>
     </dependency>
+    <dependency>
+      <groupId>org.glassfish.jersey.core</groupId>
+      <artifactId>jersey-common</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <version>2.28.2</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.powermock</groupId>
+      <artifactId>powermock-api-mockito2</artifactId>
+      <version>2.0.4</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>
index 8754673..7873d70 100644 (file)
@@ -133,6 +133,7 @@ public class CatalogDbClient {
     private static final String MODEL_VERSION = "modelVersion";
     private static final String MODEL_INVARIANT_UUID = "modelInvariantUUID";
     private static final String VNF_RESOURCE_MODEL_UUID = "vnfResourceModelUUID";
+    private static final String PNF_RESOURCE_MODEL_UUID = "pnfResourceModelUUID";
     private static final String NF_ROLE = "nfRole";
     private static final String VF_MODULE_MODEL_UUID = "vfModuleModelUUID";
     private static final String VNF_COMPONENT_TYPE = "vnfComponentType";
@@ -201,6 +202,7 @@ public class CatalogDbClient {
     private String findPnfResourceCustomizationByModelUuid = "/findPnfResourceCustomizationByModelUuid";
     private String findWorkflowByArtifactUUID = "/findByArtifactUUID";
     private String findWorkflowByModelUUID = "/findWorkflowByModelUUID";
+    private String findWorkflowByPnfModelUUID = "/findWorkflowByPnfModelUUID";
     private String findWorkflowBySource = "/findBySource";
     private String findVnfResourceCustomizationByModelUuid = "/findVnfResourceCustomizationByModelUuid";
 
@@ -338,6 +340,7 @@ public class CatalogDbClient {
 
         findWorkflowByArtifactUUID = endpoint + WORKFLOW + SEARCH + findWorkflowByArtifactUUID;
         findWorkflowByModelUUID = endpoint + WORKFLOW + SEARCH + findWorkflowByModelUUID;
+        findWorkflowByPnfModelUUID = endpoint + WORKFLOW + SEARCH + findWorkflowByPnfModelUUID;
         findWorkflowBySource = endpoint + WORKFLOW + SEARCH + findWorkflowBySource;
 
         findVnfResourceCustomizationByModelUuid =
@@ -998,6 +1001,11 @@ public class CatalogDbClient {
                 .queryParam(VNF_RESOURCE_MODEL_UUID, vnfResourceModelUUID).build().toString()));
     }
 
+    public List<Workflow> findWorkflowByPnfModelUUID(String pnfResourceModelUUID) {
+        return this.getMultipleResources(workflowClient, getUri(UriBuilder.fromUri(findWorkflowByPnfModelUUID)
+                .queryParam(PNF_RESOURCE_MODEL_UUID, pnfResourceModelUUID).build().toString()));
+    }
+
     public List<Workflow> findWorkflowBySource(String source) {
         return this.getMultipleResources(workflowClient,
                 getUri(UriBuilder.fromUri(findWorkflowBySource).queryParam(SOURCE, source).build().toString()));
index 8bcc60c..f1b3993 100644 (file)
@@ -39,10 +39,23 @@ public interface WorkflowRepository extends JpaRepository<Workflow, Integer> {
      * This operation is required by {@link org.onap.so.db.catalog.client.CatalogDbClient} to provide Workflow based on
      * model UUID without projection.
      *
-     * @param vnfResourceModelUUIDmodel UUID
+     * @param vnfResourceModelUUID UUID
      * @return List of Workflow
      */
     @Query(value = "select b.* from vnf_resource_to_workflow a join workflow b where a.WORKFLOW_ID = b.ID and a.VNF_RESOURCE_MODEL_UUID = ?1",
             nativeQuery = true)
     List<Workflow> findWorkflowByModelUUID(String vnfResourceModelUUID);
+
+    /**
+     * Used to fetch the @{link Workflow} by the Pnf Model UUID.
+     *
+     * This operation is required by {@link org.onap.so.db.catalog.client.CatalogDbClient} to provide Workflow based on
+     * pnf model UUID without projection.
+     *
+     * @param pnfResourceModelUUID UUID
+     * @return List of Workflow
+     */
+    @Query(value = "select b.* from pnf_resource_to_workflow a join workflow b where a.WORKFLOW_ID = b.ID and a.PNF_RESOURCE_MODEL_UUID = ?1",
+            nativeQuery = true)
+    List<Workflow> findWorkflowByPnfModelUUID(String pnfResourceModelUUID);
 }
index b82c17d..d87ed51 100644 (file)
 package org.onap.so.db.catalog.client;
 
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
 import java.util.ArrayList;
+import java.util.List;
 import javax.persistence.EntityNotFoundException;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.ArgumentMatchers;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
 import org.onap.so.db.catalog.beans.CvnfcCustomization;
 import org.onap.so.db.catalog.beans.VfModuleCustomization;
 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
+import uk.co.blackpepper.bowman.Client;
+import org.onap.so.db.catalog.beans.Workflow;
 
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(CatalogDbClient.class)
 public class CatalogDbClientTest {
 
     private CatalogDbClient catalogDbClient;
 
+    private CatalogDbClient mockedCatalogDbClient;
+
     @Before
     public void init() {
         catalogDbClient = new CatalogDbClient();
+        mockedCatalogDbClient = PowerMockito.spy(catalogDbClient);
     }
 
     @Rule
@@ -171,4 +187,22 @@ public class CatalogDbClientTest {
         assertTrue(aCvnfc.getModelCustomizationUUID().equals("a123"));
     }
 
+    @Test
+    public final void testFindWorkflowByPnfModelUUID() throws Exception {
+        String pnfResourceModelUUID = "f2d1f2b2-88bb-49da-b716-36ae420ccbff";
+        Workflow wf = new Workflow();
+        wf.setArtifactUUID("b2fd5627-55e4-4f4f-8064-9e6f443e9152");
+        wf.setArtifactName("DummyPnfWorkflow");
+        wf.setVersion(1.0);
+        List<Workflow> wfList = new ArrayList<Workflow>();
+        wfList.add(wf);
+
+        PowerMockito.doReturn(wfList).when(mockedCatalogDbClient, "getMultipleResources",
+                ArgumentMatchers.<Client<Workflow>>any(), ArgumentMatchers.anyObject());
+        List<Workflow> results = mockedCatalogDbClient.findWorkflowByPnfModelUUID(pnfResourceModelUUID);
+        assertEquals(wf.getArtifactUUID(), results.get(0).getArtifactUUID());
+        assertEquals(wf.getArtifactName(), results.get(0).getArtifactName());
+        assertEquals(wf.getVersion(), results.get(0).getVersion());
+    }
+
 }
index ff70a77..762e3a5 100644 (file)
       <artifactId>so-monitoring-handler</artifactId>
       <version>${project.version}</version>
       <exclusions>
-        <exclusion>
-          <groupId>org.springframework.boot</groupId>
-          <artifactId>spring-boot-starter-security</artifactId>
-        </exclusion>
         <exclusion>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-data-jpa</artifactId>
         </exclusion>
       </exclusions>
     </dependency>
-
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
index 7c5a896..aff4fec 100644 (file)
@@ -22,11 +22,12 @@ package org.onap.so.monitoring.rest.api;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
 
 /**
  * @author waqas.ikram@ericsson.com
  */
-@SpringBootApplication(scanBasePackages = {"org.onap"})
+@SpringBootApplication(scanBasePackages = {"org.onap"}, exclude = SecurityAutoConfiguration.class)
 public class SoMonitoringApplication {
 
     public static void main(String[] args) {
index a5f1a6c..c362a83 100644 (file)
@@ -28,7 +28,9 @@
   </parent>
   <artifactId>so-monitoring-ui</artifactId>
 
-
+  <properties>
+    <yarn.proxy>false</yarn.proxy>
+  </properties>
   <build>
     <plugins>
       <plugin>
@@ -66,7 +68,7 @@
               <goal>yarn</goal>
             </goals>
             <configuration>
-              <yarnInheritsProxyConfigFromMaven>false</yarnInheritsProxyConfigFromMaven>
+              <yarnInheritsProxyConfigFromMaven>${yarn.proxy}</yarnInheritsProxyConfigFromMaven>
               <arguments>build</arguments>
             </configuration>
           </execution>
index 02032e4..a5489d1 100644 (file)
@@ -3,6 +3,7 @@ package org.onap.so.simulator;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
 import org.springframework.context.annotation.Bean;
 import org.springframework.http.HttpStatus;
 import org.springframework.ws.soap.SoapVersion;
@@ -15,7 +16,7 @@ import com.consol.citrus.simulator.http.SimulatorRestAdapter;
 import com.consol.citrus.simulator.http.SimulatorRestConfigurationProperties;
 
 
-@SpringBootApplication
+@SpringBootApplication(exclude = SecurityAutoConfiguration.class)
 public class Simulator extends SimulatorRestAdapter {
 
     public static void main(String[] args) {