aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/CatalogDBApplication.java3
-rw-r--r--adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/SecurityFilters.java41
-rw-r--r--adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/SoCadiFilter.java117
-rw-r--r--adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/WebSecurityConfigImpl.java80
-rw-r--r--adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogQuery.java14
-rw-r--r--adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryAllottedResourceCustomization.java5
-rw-r--r--adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceNetworks.java5
-rw-r--r--adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfs.java7
-rw-r--r--adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryVnfcs.java8
-rw-r--r--adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__WorkflowDesignerData.sql4
-rw-r--r--adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfTest.java36
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/SecurityFilters.java41
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/SoCadiFilter.java117
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/WebSecurityConfigImpl.java80
-rw-r--r--adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/WebSecurityConfigImpl.java80
-rw-r--r--adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/SecurityFilters.java41
-rw-r--r--adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/SoCadiFilter.java117
-rw-r--r--adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SoCadiFilter.java117
-rw-r--r--adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/WebSecurityConfigImpl.java80
-rw-r--r--adapters/mso-ve-vnfm-adapter/pom.xml62
-rw-r--r--adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/Application.java (renamed from adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SecurityFilters.java)32
-rw-r--r--adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/controller/NotificationController.java41
-rw-r--r--adapters/mso-ve-vnfm-adapter/src/main/resources/application.yaml23
-rw-r--r--adapters/mso-ve-vnfm-adapter/src/test/java/org/onap/so/adapters/vevnfm/controller/NotificationControllerTest.java (renamed from adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/SecurityFilters.java)40
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/SoCadiFilter.java117
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/WebSecurityConfigImpl.java80
-rw-r--r--adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/SecurityFilters.java41
-rw-r--r--adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/SoCadiFilter.java117
-rw-r--r--adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/WebSecurityConfigImpl.java88
-rw-r--r--adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogServiceProvider.java8
-rw-r--r--adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogServiceProviderImpl.java53
-rw-r--r--adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogUrlProvider.java12
-rw-r--r--adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/rest/Sol003PackageManagementController.java18
-rw-r--r--adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/Sol003PackageManagementControllerTest.java98
-rw-r--r--adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/VnfmAdapterControllerTest.java2
-rw-r--r--adapters/pom.xml1
-rw-r--r--asdc-controller/src/main/java/org/onap/so/asdc/WebSecurityConfigImpl.java78
-rw-r--r--asdc-controller/src/test/java/org/onap/so/asdc/TestApplication.java2
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/AbstractCDSProcessingBBUtils.java132
-rw-r--r--bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/SecurityFilters.java41
-rw-r--r--bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/SoCadiFilter.java117
-rw-r--r--bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/WebSecurityConfigImpl.java80
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/WebSecurityConfigImpl.java69
-rw-r--r--common/src/main/java/org/onap/so/security/SecurityFilters.java (renamed from asdc-controller/src/main/java/org/onap/so/asdc/SecurityFilters.java)2
-rw-r--r--common/src/main/java/org/onap/so/security/SoCadiFilter.java (renamed from asdc-controller/src/main/java/org/onap/so/asdc/SoCadiFilter.java)6
-rw-r--r--common/src/main/java/org/onap/so/security/WebSecurityConfig.java6
-rw-r--r--common/src/main/java/org/onap/so/security/WebSecurityConfigImpl.java (renamed from mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/WebSecurityConfigImpl.java)17
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SecurityFilters.java41
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SoCadiFilter.java117
-rw-r--r--mso-catalog-db/pom.xml17
-rw-r--r--mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java8
-rw-r--r--mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/WorkflowRepository.java15
-rw-r--r--mso-catalog-db/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java34
-rw-r--r--so-monitoring/so-monitoring-service/pom.xml5
-rw-r--r--so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringApplication.java3
-rw-r--r--so-monitoring/so-monitoring-ui/pom.xml6
-rw-r--r--so-simulator/src/main/java/org/onap/so/simulator/Simulator.java3
57 files changed, 574 insertions, 2051 deletions
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/CatalogDBApplication.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/CatalogDBApplication.java
index e5b51f72c9..1ad4238ade 100644
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/CatalogDBApplication.java
+++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/CatalogDBApplication.java
@@ -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
index 040723501b..0000000000
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/SecurityFilters.java
+++ /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
index e7e360d444..0000000000
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/SoCadiFilter.java
+++ /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
index 8cadb00f8f..0000000000
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/WebSecurityConfigImpl.java
+++ /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();
- }
- };
- }
-
-}
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogQuery.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogQuery.java
index edec48dc95..a98778bf5d 100644
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogQuery.java
+++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogQuery.java
@@ -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;
+ }
+ }
}
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryAllottedResourceCustomization.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryAllottedResourceCustomization.java
index c1acc319f7..afcb2d5761 100644
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryAllottedResourceCustomization.java
+++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryAllottedResourceCustomization.java
@@ -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";
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceNetworks.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceNetworks.java
index 5573b23a8d..129718241c 100644
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceNetworks.java
+++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceNetworks.java
@@ -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";
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfs.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfs.java
index 0b8de60a81..d6e7415a77 100644
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfs.java
+++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfs.java
@@ -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();
}
+
}
diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryVnfcs.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryVnfcs.java
index dc73fe904d..24c07d6d3e 100644
--- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryVnfcs.java
+++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryVnfcs.java
@@ -20,12 +20,12 @@
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";
}
diff --git a/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__WorkflowDesignerData.sql b/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__WorkflowDesignerData.sql
index 137f73cf65..42df1adf13 100644
--- a/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__WorkflowDesignerData.sql
+++ b/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__WorkflowDesignerData.sql
@@ -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
index 0000000000..b71808b2c8
--- /dev/null
+++ b/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfTest.java
@@ -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
index cbe619e8a0..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/SecurityFilters.java
+++ /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
index d9901b75ed..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/SoCadiFilter.java
+++ /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
index ddae887103..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/WebSecurityConfigImpl.java
+++ /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
index 6cd7462299..0000000000
--- a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/WebSecurityConfigImpl.java
+++ /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
index a422e6a60d..0000000000
--- a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/SecurityFilters.java
+++ /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
index 5e6ced077b..0000000000
--- a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/SoCadiFilter.java
+++ /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
index 1e5647097c..0000000000
--- a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SoCadiFilter.java
+++ /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
index 4d922a4cd0..0000000000
--- a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/WebSecurityConfigImpl.java
+++ /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
index 0000000000..189c93321b
--- /dev/null
+++ b/adapters/mso-ve-vnfm-adapter/pom.xml
@@ -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>
diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SecurityFilters.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/Application.java
index c615440ff6..0e62a372b3 100644
--- a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/SecurityFilters.java
+++ b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/Application.java
@@ -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.
@@ -18,24 +18,14 @@
* ============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
index 0000000000..2e5a00ad02
--- /dev/null
+++ b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/controller/NotificationController.java
@@ -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
index 0000000000..30b3955821
--- /dev/null
+++ b/adapters/mso-ve-vnfm-adapter/src/main/resources/application.yaml
@@ -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
diff --git a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/SecurityFilters.java b/adapters/mso-ve-vnfm-adapter/src/test/java/org/onap/so/adapters/vevnfm/controller/NotificationControllerTest.java
index 319d79e0fb..d31c6f2ea5 100644
--- a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/SecurityFilters.java
+++ b/adapters/mso-ve-vnfm-adapter/src/test/java/org/onap/so/adapters/vevnfm/controller/NotificationControllerTest.java
@@ -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.
@@ -18,24 +18,24 @@
* ============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
index 89526d4cda..0000000000
--- a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/SoCadiFilter.java
+++ /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
index 28ac311b4e..0000000000
--- a/adapters/mso-vfc-adapter/src/main/java/org/onap/so/adapters/vfc/WebSecurityConfigImpl.java
+++ /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
index 3876d77a80..0000000000
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/SecurityFilters.java
+++ /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
index aefb36c6bb..0000000000
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/SoCadiFilter.java
+++ /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
index e43efd014a..0000000000
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/WebSecurityConfigImpl.java
+++ /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();
- }
- };
- }
-
-}
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogServiceProvider.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogServiceProvider.java
index d4063951bd..34fc2645a2 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogServiceProvider.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogServiceProvider.java
@@ -54,6 +54,14 @@ public interface EtsiCatalogServiceProvider {
Optional<InlineResponse2001> getVnfPackage(final String vnfPkgId);
/**
+ * GET specific VNF package VNFD from ETSI Catalog.
+ *
+ * @param vnfPkgId The ID of the VNF Package that you want to query.
+ * @return The VNF package retrieved from the ETSI Catalog
+ */
+ Optional<byte[]> getVnfPackageVnfd(final String vnfPkgId);
+
+ /**
* GET Package Artifact, from VNF Package.
*
* @param vnfPkgId The ID of the VNF Package from which the artifact will be retrieved.
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogServiceProviderImpl.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogServiceProviderImpl.java
index 11a59c2ec8..779cb2a7a6 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogServiceProviderImpl.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogServiceProviderImpl.java
@@ -62,26 +62,9 @@ public class EtsiCatalogServiceProviderImpl implements EtsiCatalogServiceProvide
@Override
public Optional<byte[]> getVnfPackageContent(final String vnfPkgId)
throws EtsiCatalogManagerRequestFailureException {
- try {
- final ResponseEntity<byte[]> response = httpServiceProvider
- .getHttpResponse(etsiCatalogUrlProvider.getVnfPackageContentUrl(vnfPkgId), byte[].class);
- logger.info("getVnfPackageContent Request to ETSI Catalog Manager Status Code: {}",
- response.getStatusCodeValue());
- if (response.getStatusCode() == HttpStatus.OK) {
- return Optional.ofNullable(response.getBody());
- }
- } catch (final HttpResouceNotFoundException httpResouceNotFoundException) {
- logger.error("Caught HttpResouceNotFoundException", httpResouceNotFoundException);
- throw new VnfPkgNotFoundException("No Vnf Package found with vnfPkgId: " + vnfPkgId);
- } catch (final RestProcessingException restProcessingException) {
- logger.error("Caught RestProcessingException with Status Code: {}", restProcessingException.getStatusCode(),
- restProcessingException);
- if (restProcessingException.getStatusCode() == HttpStatus.CONFLICT.value()) {
- throw new VnfPkgConflictException("A conflict occurred with the state of the resource,\n"
- + "due to the attribute: onboardingState not being set to ONBOARDED.");
- }
- }
- throw new EtsiCatalogManagerRequestFailureException("Internal Server Error Occurred.");
+ final String vnfRequestUrl = etsiCatalogUrlProvider.getVnfPackageContentUrl(vnfPkgId);
+ final String vnfRequestName = "getVnfPackageContent";
+ return requestVnfElement(vnfPkgId, vnfRequestUrl, vnfRequestName);
}
@Override
@@ -179,4 +162,34 @@ public class EtsiCatalogServiceProviderImpl implements EtsiCatalogServiceProvide
throw new EtsiCatalogManagerRequestFailureException("Internal Server Error Occurred.");
}
}
+
+ @Override
+ public Optional<byte[]> getVnfPackageVnfd(final String vnfPkgId) {
+ final String vnfRequestUrl = etsiCatalogUrlProvider.getVnfPackageVnfdUrl(vnfPkgId);
+ final String vnfRequestName = "getVnfPackageVnfd";
+ return requestVnfElement(vnfPkgId, vnfRequestUrl, vnfRequestName);
+ }
+
+ private Optional<byte[]> requestVnfElement(final String vnfPkgId, final String vnfRequestUrl,
+ final String vnfRequestName) {
+ try {
+ final ResponseEntity<byte[]> response = httpServiceProvider.getHttpResponse(vnfRequestUrl, byte[].class);
+ logger.info("{} Request to ETSI Catalog Manager Status Code: {}", vnfRequestName,
+ response.getStatusCodeValue());
+ if (response.getStatusCode() == HttpStatus.OK) {
+ return Optional.ofNullable(response.getBody());
+ }
+ } catch (final HttpResouceNotFoundException httpResouceNotFoundException) {
+ logger.error("Caught HttpResouceNotFoundException", httpResouceNotFoundException);
+ throw new VnfPkgNotFoundException("No Vnf Package found with vnfPkgId: " + vnfPkgId);
+ } catch (final RestProcessingException restProcessingException) {
+ logger.error("Caught RestProcessingException with Status Code: {}", restProcessingException.getStatusCode(),
+ restProcessingException);
+ if (restProcessingException.getStatusCode() == HttpStatus.CONFLICT.value()) {
+ throw new VnfPkgConflictException("A conflict occurred with the state of the resource,\n"
+ + "due to the attribute: onboardingState not being set to ONBOARDED.");
+ }
+ }
+ throw new EtsiCatalogManagerRequestFailureException("Internal Server Error Occurred.");
+ }
}
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogUrlProvider.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogUrlProvider.java
index cc2c7a62a4..051f60a9c9 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogUrlProvider.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/etsicatalog/EtsiCatalogUrlProvider.java
@@ -91,4 +91,16 @@ public class EtsiCatalogUrlProvider {
logger.info("getVnfPackageArtifactUrl: {}", url);
return url;
}
+
+ /**
+ * Get the URL for retrieving VNF packages vnfd from ETSI Catalog.
+ *
+ * @param vnfPkgId The ID of the VNF Package
+ * @return the URL for the GET operation
+ */
+ public String getVnfPackageVnfdUrl(final String vnfPkgId) {
+ final String url = msbEndpoint + vnfpkgmServiceUrl + "/vnf_packages/" + vnfPkgId + "/vnfd";
+ logger.info("getEtsiCatalogVnfPackageVnfd: {}", url);
+ return url;
+ }
}
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/rest/Sol003PackageManagementController.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/rest/Sol003PackageManagementController.java
index 3f975fbc9c..9d8e29b3f9 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/rest/Sol003PackageManagementController.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/rest/Sol003PackageManagementController.java
@@ -103,15 +103,25 @@ public class Sol003PackageManagementController {
/**
* GET VNFD, from VNF package. Will return a copy of the file representing the VNFD or a ZIP file that contains the
* file/multiple files representing the VNFD specified. Section Number: 10.4.4
- *
+ *
* @param vnfPkgId The ID of the VNF Package that you want to retrieve the VNFD from.
* @return The VNFD of a VNF Package as a single file or within a ZIP file. Object: byte[] Response Code: 200 OK
*/
@GetMapping(value = "/vnf_packages/{vnfPkgId}/vnfd",
produces = {MediaType.TEXT_PLAIN, APPLICATION_ZIP, MediaType.APPLICATION_JSON})
- public ResponseEntity<?> getVnfPackageVnfd(@PathVariable("vnfPkgId") final String vnfPkgId) {
- logger.info(LOG_REQUEST_RECEIVED, "getVnfPackageVnfd: ", vnfPkgId);
- return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+ public ResponseEntity<byte[]> getVnfPackageVnfd(@PathVariable("vnfPkgId") final String vnfPkgId) {
+ logger.info(LOG_REQUEST_RECEIVED, "getVnfPackageVnfd Endpoint Invoked with VNF Package ID: ", vnfPkgId);
+ final Optional<byte[]> response = etsiCatalogServiceProvider.getVnfPackageVnfd(vnfPkgId);
+ if (response.isPresent()) {
+ logger.info(LOG_REQUEST_RECEIVED, "getVnfPackageVnfd Response: ", HttpStatus.OK);
+ return new ResponseEntity(response.get(), HttpStatus.OK);
+ }
+ final String errorMessage = "An error occurred, a null response was received by the\n"
+ + " Sol003PackageManagementController from the EtsiCatalogManager using the GET \"vnfd\" \n"
+ + "endpoint.";
+
+ logger.error(errorMessage);
+ return new ResponseEntity(buildProblemDetails(errorMessage), HttpStatus.INTERNAL_SERVER_ERROR);
}
/**
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/Sol003PackageManagementControllerTest.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/Sol003PackageManagementControllerTest.java
index dbc8ef251d..74ddebed74 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/Sol003PackageManagementControllerTest.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/Sol003PackageManagementControllerTest.java
@@ -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;
@@ -470,9 +474,99 @@ public class Sol003PackageManagementControllerTest {
// The below test method is here to improve code coverage and provide a foundation for writing future tests
@Test
- public void testGetVnfd_Not_Implemented() {
+ public void testGetPackageVnfd_ValidArray_Success() {
+ final byte[] responseArray = buildByteArrayWithRandomData(10);
+
+ mockRestServer.expect(requestTo(MSB_BASE_URL + "/" + VNF_PACKAGE_ID + "/vnfd"))
+ .andExpect(method(HttpMethod.GET))
+ .andRespond(withSuccess(responseArray, MediaType.APPLICATION_OCTET_STREAM));
+
+ final String testURL =
+ "http://localhost:" + port + PACKAGE_MANAGEMENT_BASE_URL + "/vnf_packages/" + VNF_PACKAGE_ID + "/vnfd";
+ final HttpEntity<?> request = new HttpEntity<>(basicHttpHeadersProvider.getHttpHeaders());
+ final ResponseEntity<byte[]> responseEntity =
+ restTemplate.withBasicAuth("test", "test").exchange(testURL, HttpMethod.GET, request, byte[].class);
+
+ assertEquals(byte[].class, responseEntity.getBody().getClass());
+ assertArrayEquals(responseEntity.getBody(), responseArray);
+ assertEquals(HttpStatus.OK, responseEntity.getStatusCode());
+ }
+
+ @Test
+ public void testOnGetPackageVnfd_Conflict_Fail() {
+ mockRestServer.expect(requestTo(MSB_BASE_URL + "/" + VNF_PACKAGE_ID + "/vnfd"))
+ .andExpect(method(HttpMethod.GET)).andRespond(withStatus(HttpStatus.CONFLICT));
+
+ final ResponseEntity<ProblemDetails> responseEntity = sendHttpRequest(VNF_PACKAGE_ID + "/vnfd");
+
+ assertTrue(responseEntity.getBody() instanceof ProblemDetails);
+ assertEquals(HttpStatus.CONFLICT, responseEntity.getStatusCode());
+ }
+
+ @Test
+ public void testOnGetPackageVnfd_NotFound_Fail() {
+ mockRestServer.expect(requestTo(MSB_BASE_URL + "/" + VNF_PACKAGE_ID + "/vnfd"))
+ .andExpect(method(HttpMethod.GET)).andRespond(withStatus(HttpStatus.NOT_FOUND));
+
+ final ResponseEntity<ProblemDetails> responseEntity = sendHttpRequest(VNF_PACKAGE_ID + "/vnfd");
+
+ assertTrue(responseEntity.getBody() instanceof ProblemDetails);
+ assertEquals(HttpStatus.NOT_FOUND, responseEntity.getStatusCode());
+ }
+
+ @Test
+ public void testOnGetPackageVnfd_UnauthorizedClient_Fail() {
+ mockRestServer.expect(requestTo(MSB_BASE_URL + "/" + VNF_PACKAGE_ID + "/vnfd"))
+ .andExpect(method(HttpMethod.GET)).andRespond(withStatus(HttpStatus.UNAUTHORIZED));
+
+ final ResponseEntity<ProblemDetails> responseEntity = sendHttpRequest(VNF_PACKAGE_ID + "/vnfd");
+
+ assertTrue(responseEntity.getBody() instanceof ProblemDetails);
+ assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, responseEntity.getStatusCode());
+ }
+
+ @Test
+ public void testOnGetPackageVnfd_InternalServerError_Fail() {
+ mockRestServer.expect(requestTo(MSB_BASE_URL + "/" + VNF_PACKAGE_ID + "/vnfd"))
+ .andExpect(method(HttpMethod.GET)).andRespond(withStatus(HttpStatus.INTERNAL_SERVER_ERROR));
+
final ResponseEntity<ProblemDetails> responseEntity = sendHttpRequest(VNF_PACKAGE_ID + "/vnfd");
- assertEquals(HttpStatus.NOT_IMPLEMENTED, responseEntity.getStatusCode());
+
+ assertTrue(responseEntity.getBody() instanceof ProblemDetails);
+ assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, responseEntity.getStatusCode());
+ }
+
+ @Test
+ public void testOnGetPackageVnfd_BadRequest_Fail() {
+ mockRestServer.expect(requestTo(MSB_BASE_URL + "/" + VNF_PACKAGE_ID + "/vnfd"))
+ .andExpect(method(HttpMethod.GET)).andRespond(withStatus(HttpStatus.BAD_REQUEST));
+
+ final ResponseEntity<ProblemDetails> responseEntity = sendHttpRequest(VNF_PACKAGE_ID + "/vnfd");
+
+ assertTrue(responseEntity.getBody() instanceof ProblemDetails);
+ assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, responseEntity.getStatusCode());
+ }
+
+ @Test
+ public void testOnGetPackageVnfd_UnauthorizedServer_InternalError_Fail() {
+ mockRestServer.expect(requestTo(MSB_BASE_URL + "/" + VNF_PACKAGE_ID + "/vnfd"))
+ .andExpect(method(HttpMethod.GET)).andRespond(withStatus(HttpStatus.UNAUTHORIZED));
+
+ final ResponseEntity<ProblemDetails> responseEntity = sendHttpRequest(VNF_PACKAGE_ID + "/vnfd");
+
+ assertTrue(responseEntity.getBody() instanceof ProblemDetails);
+ assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, responseEntity.getStatusCode());
+ }
+
+ @Test
+ public void testGetPackageVnfd_SuccessResponseFromServerWithNullPackage_Fail() {
+ mockRestServer.expect(requestTo(MSB_BASE_URL + "/" + VNF_PACKAGE_ID + "/vnfd"))
+ .andExpect(method(HttpMethod.GET)).andRespond(withSuccess());
+
+ final ResponseEntity<ProblemDetails> responseEntity = sendHttpRequest(VNF_PACKAGE_ID + "/vnfd");
+
+ assertEquals(ProblemDetails.class, responseEntity.getBody().getClass());
+ assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, responseEntity.getStatusCode());
}
// Simply returns a byte array filled with random data, for use in the tests.
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/VnfmAdapterControllerTest.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/VnfmAdapterControllerTest.java
index e408a326f2..fca50ea6f2 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/VnfmAdapterControllerTest.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/VnfmAdapterControllerTest.java
@@ -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);
diff --git a/adapters/pom.xml b/adapters/pom.xml
index bd7bebafa0..14498c5eff 100644
--- a/adapters/pom.xml
+++ b/adapters/pom.xml
@@ -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
index 8722d193fe..0000000000
--- a/asdc-controller/src/main/java/org/onap/so/asdc/WebSecurityConfigImpl.java
+++ /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();
- }
- };
- }
-
-}
diff --git a/asdc-controller/src/test/java/org/onap/so/asdc/TestApplication.java b/asdc-controller/src/test/java/org/onap/so/asdc/TestApplication.java
index c35e8e34d6..e25de9c3d4 100644
--- a/asdc-controller/src/test/java/org/onap/so/asdc/TestApplication.java
+++ b/asdc-controller/src/test/java/org/onap/so/asdc/TestApplication.java
@@ -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)})
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/AbstractCDSProcessingBBUtils.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/AbstractCDSProcessingBBUtils.java
index 5498b5be31..9741d4b6c2 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/AbstractCDSProcessingBBUtils.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/AbstractCDSProcessingBBUtils.java
@@ -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
index bdc1c504f0..0000000000
--- a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/SecurityFilters.java
+++ /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
index cb60d5d219..0000000000
--- a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/SoCadiFilter.java
+++ /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
index bcc38ec9e0..0000000000
--- a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/WebSecurityConfigImpl.java
+++ /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
index 58e58464e1..0000000000
--- a/bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/WebSecurityConfigImpl.java
+++ /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());
- }
-
- };
- }
-}
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/SecurityFilters.java b/common/src/main/java/org/onap/so/security/SecurityFilters.java
index 29c9d8f952..7ad0fd05df 100644
--- a/asdc-controller/src/main/java/org/onap/so/asdc/SecurityFilters.java
+++ b/common/src/main/java/org/onap/so/security/SecurityFilters.java
@@ -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;
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/SoCadiFilter.java b/common/src/main/java/org/onap/so/security/SoCadiFilter.java
index 52144e264e..9849db380f 100644
--- a/asdc-controller/src/main/java/org/onap/so/asdc/SoCadiFilter.java
+++ b/common/src/main/java/org/onap/so/security/SoCadiFilter.java
@@ -20,7 +20,7 @@
* ===================================================================
*
*/
-package org.onap.so.asdc;
+package org.onap.so.security;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
@@ -83,6 +83,9 @@ public class SoCadiFilter extends CadiFilter {
@Value("${mso.config.cadi.apiEnforcement:#{null}}")
private String apiEnforcement;
+ @Value("${mso.config.cadi.userExpires:#{null}}")
+ private String userExpires;
+
private void checkIfNullProperty(String key, String value) {
/*
* When value is null, it is not defined in application.yaml set nothing in System properties
@@ -108,6 +111,7 @@ public class SoCadiFilter extends CadiFilter {
checkIfNullProperty(Config.AAF_LOCATE_URL, aafLocateUrl);
checkIfNullProperty(Config.AAF_URL, aafUrl);
checkIfNullProperty(Config.CADI_API_ENFORCEMENT, apiEnforcement);
+ checkIfNullProperty(Config.AAF_USER_EXPIRES, userExpires);
// checkIfNullProperty(AFT_ENVIRONMENT_VAR, aftEnv);
logger.debug(" *** init Filter Config *** ");
super.init(filterConfig);
diff --git a/common/src/main/java/org/onap/so/security/WebSecurityConfig.java b/common/src/main/java/org/onap/so/security/WebSecurityConfig.java
index 44ac62d14f..2eafc6c9cd 100644
--- a/common/src/main/java/org/onap/so/security/WebSecurityConfig.java
+++ b/common/src/main/java/org/onap/so/security/WebSecurityConfig.java
@@ -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());
+ }
}
}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/WebSecurityConfigImpl.java b/common/src/main/java/org/onap/so/security/WebSecurityConfigImpl.java
index a0f4615f87..c84c7e8603 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/WebSecurityConfigImpl.java
+++ b/common/src/main/java/org/onap/so/security/WebSecurityConfigImpl.java
@@ -20,10 +20,8 @@
* ============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
index 0cf63b9605..0000000000
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SecurityFilters.java
+++ /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
index 6510440991..0000000000
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/SoCadiFilter.java
+++ /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);
- }
-
-
-}
diff --git a/mso-catalog-db/pom.xml b/mso-catalog-db/pom.xml
index 08e9719f50..610ed25096 100644
--- a/mso-catalog-db/pom.xml
+++ b/mso-catalog-db/pom.xml
@@ -102,5 +102,22 @@
<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>
diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
index 8754673f40..7873d70bd4 100644
--- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
+++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
@@ -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()));
diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/WorkflowRepository.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/WorkflowRepository.java
index 8bcc60c8be..f1b399325e 100644
--- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/WorkflowRepository.java
+++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/WorkflowRepository.java
@@ -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);
}
diff --git a/mso-catalog-db/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java
index b82c17dc84..d87ed517f4 100644
--- a/mso-catalog-db/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java
+++ b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java
@@ -20,23 +20,39 @@
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());
+ }
+
}
diff --git a/so-monitoring/so-monitoring-service/pom.xml b/so-monitoring/so-monitoring-service/pom.xml
index ff70a77239..762e3a5ee6 100644
--- a/so-monitoring/so-monitoring-service/pom.xml
+++ b/so-monitoring/so-monitoring-service/pom.xml
@@ -37,15 +37,10 @@
<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>
diff --git a/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringApplication.java b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringApplication.java
index 7c5a8965b7..aff4fecfdc 100644
--- a/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringApplication.java
+++ b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringApplication.java
@@ -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) {
diff --git a/so-monitoring/so-monitoring-ui/pom.xml b/so-monitoring/so-monitoring-ui/pom.xml
index a5f1a6c18e..c362a83a9b 100644
--- a/so-monitoring/so-monitoring-ui/pom.xml
+++ b/so-monitoring/so-monitoring-ui/pom.xml
@@ -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>
diff --git a/so-simulator/src/main/java/org/onap/so/simulator/Simulator.java b/so-simulator/src/main/java/org/onap/so/simulator/Simulator.java
index 02032e485f..a5489d19c0 100644
--- a/so-simulator/src/main/java/org/onap/so/simulator/Simulator.java
+++ b/so-simulator/src/main/java/org/onap/so/simulator/Simulator.java
@@ -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) {