diff options
author | Denes Nemeth <denes.nemeth@nokia.com> | 2018-03-14 09:51:50 +0100 |
---|---|---|
committer | Denes Nemeth <denes.nemeth@nokia.com> | 2018-03-14 14:53:54 +0100 |
commit | 876a4acf6f2e8264bb82e960e9aa886799c4bdb1 (patch) | |
tree | e929d22a832b73a2345b8c8f7f8c4a06721e4731 /nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap | |
parent | 626ebae46807adeab6d0b9d5568515f457c7ece3 (diff) |
Fix some security vulnerabilities
Change-Id: Ib1c08c4f73df8cfe42b2857ee674f102ec09c253
Signed-off-by: Denes Nemeth <denes.nemeth@nokia.com>
Issue-ID: VFC-728
Diffstat (limited to 'nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap')
8 files changed, 63 insertions, 48 deletions
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java index a9e11653..6d569e2a 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java @@ -16,7 +16,6 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core; -import com.nokia.cbam.lcn.v32.ApiException; import com.nokia.cbam.lcn.v32.api.SubscriptionsApi; import com.nokia.cbam.lcn.v32.model.*; import org.onap.msb.sdk.discovery.common.RouteException; @@ -121,12 +120,12 @@ public class SelfRegistrationManager { SubscriptionsApi lcnApi = cbamRestApiProvider.getCbamLcnApi(vnfmId); try { String callbackUrl = getDriverVnfmUrl() + DriverProperties.LCN_URL; - for (Subscription subscription : lcnApi.subscriptionsGet(NOKIA_LCN_API_VERSION)) { + for (Subscription subscription : lcnApi.subscriptionsGet(NOKIA_LCN_API_VERSION).blockingFirst()) { if (subscription.getCallbackUrl().equals(callbackUrl)) { lcnApi.subscriptionsSubscriptionIdDelete(subscription.getId(), NOKIA_LCN_API_VERSION); } } - } catch (ApiException e) { + } catch (Exception e) { throw buildFatalFailure(logger, "Unable to delete CBAM LCN subscription", e); } } @@ -159,7 +158,7 @@ public class SelfRegistrationManager { logger.info("Subscribing to CBAM LCN {} with callback to {}", driverProperties.getCbamLcnUrl(), callbackUrl); SubscriptionsApi lcnApi = cbamRestApiProvider.getCbamLcnApi(vnfmId); try { - for (Subscription subscription : lcnApi.subscriptionsGet(NOKIA_LCN_API_VERSION)) { + for (Subscription subscription : lcnApi.subscriptionsGet(NOKIA_LCN_API_VERSION).blockingFirst()) { if (subscription.getCallbackUrl().equals(callbackUrl)) { return; } @@ -177,7 +176,7 @@ public class SelfRegistrationManager { subscriptionAuthentication.setType(NONE); request.setAuthentication(subscriptionAuthentication); lcnApi.subscriptionsPost(request, NOKIA_LCN_API_VERSION); - } catch (ApiException e) { + } catch (Exception e) { throw buildFatalFailure(logger, "Unable to subscribe to CBAM LCN", e); } } diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/AAINotificationProcessor.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/AAINotificationProcessor.java index ff2bde8a..aad90eac 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/AAINotificationProcessor.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/AAINotificationProcessor.java @@ -97,13 +97,11 @@ public class AAINotificationProcessor implements INotificationSender { for (ReportedAffectedCp affectedCp : affectedConnectionPoints.get().getPost()) { if (!isEmpty(affectedCp.getServerProviderId())) { lInterfaceManager.update(receivedNotification.getVnfInstanceId(), vimId, affectedCp, inMaintenance); - } - else{ + } else { logger.warn("The changed {} connection point is not linked to any server", affectedCp.getCpId()); } } - } - else{ + } else { logger.warn("The changed connection points are not present in VNF with {} identifier", receivedNotification.getVnfInstanceId()); } } diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/GenericVnfManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/GenericVnfManager.java index 959177c1..2b9b3882 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/GenericVnfManager.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/GenericVnfManager.java @@ -15,7 +15,6 @@ */ package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.notification; -import com.nokia.cbam.lcm.v32.ApiException; import com.nokia.cbam.lcm.v32.model.VnfInfo; import org.onap.aai.domain.yang.v11.GenericVnf; import org.onap.aai.domain.yang.v11.Relationship; @@ -84,9 +83,9 @@ class GenericVnfManager extends AbstractManager { private void updateFields(GenericVnf vnf, String vnfId, boolean inMaintenance) { try { - VnfInfo vnfInfo = cbamRestApiProvider.getCbamLcmApi(driverProperties.getVnfmId()).vnfsVnfInstanceIdGet(vnfId, CbamRestApiProvider.NOKIA_LCM_API_VERSION); + VnfInfo vnfInfo = cbamRestApiProvider.getCbamLcmApi(driverProperties.getVnfmId()).vnfsVnfInstanceIdGet(vnfId, CbamRestApiProvider.NOKIA_LCM_API_VERSION).blockingFirst(); vnf.setVnfName(vnfInfo.getName()); - } catch (ApiException e) { + } catch (RuntimeException e) { throw buildFatalFailure(logger, "Unable to query VNF with " + vnfId + " identifier from CBAM", e); } vnf.setVnfId(vnfId); diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/VnfcManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/VnfcManager.java index 976e283d..8a4dbdd1 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/VnfcManager.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/direct/notification/VnfcManager.java @@ -16,7 +16,6 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.notification; import com.google.common.base.Splitter; -import com.nokia.cbam.lcm.v32.model.AffectedVnfc; import org.onap.aai.domain.yang.v11.RelationshipList; import org.onap.aai.domain.yang.v11.Vnfc; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.AAIRestApiProvider; @@ -50,7 +49,7 @@ public class VnfcManager extends AbstractManager { return format("/vnfcs/vnfc/%s", buildId(vnfId, cbamVnfcId)); } - public static String getCbamVnfcId(String vnfcId){ + public static String getCbamVnfcId(String vnfcId) { String vnfId = Splitter.on(CbamUtils.SEPARATOR).split(vnfcId).iterator().next(); return vnfcId.replaceFirst(vnfId + SEPARATOR, ""); } diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcExternalSystemInfoProvider.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcExternalSystemInfoProvider.java index 416367d7..83b10872 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcExternalSystemInfoProvider.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcExternalSystemInfoProvider.java @@ -17,7 +17,6 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.vfc; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.GenericExternalSystemInfoProvider; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.spring.Conditions; -import org.onap.vnfmdriver.ApiException; import org.onap.vnfmdriver.model.VimInfo; import org.onap.vnfmdriver.model.VnfmInfo; import org.slf4j.Logger; @@ -47,8 +46,8 @@ public class VfcExternalSystemInfoProvider extends GenericExternalSystemInfoProv @Override public VnfmInfo queryVnfmInfoFromSource(String vnfmId) { try { - return vfcRestApiProvider.getNsLcmApi().queryVnfmInfo(vnfmId); - } catch (ApiException e) { + return vfcRestApiProvider.getNsLcmApi().queryVnfmInfo(vnfmId).execute().body(); + } catch (Exception e) { throw buildFatalFailure(logger, "Unable to query VNFM from VF-C with " + vnfmId + " identifier", e); } } @@ -56,8 +55,8 @@ public class VfcExternalSystemInfoProvider extends GenericExternalSystemInfoProv @Override public VimInfo getVimInfo(String vimId) { try { - return vfcRestApiProvider.getNsLcmApi().queryVIMInfo(vimId); - } catch (org.onap.vnfmdriver.ApiException e) { + return vfcRestApiProvider.getNsLcmApi().queryVIMInfo(vimId).execute().body(); + } catch (Exception e) { throw buildFatalFailure(logger, "Unable to query VIM from VF-C with " + vimId + " identifier", e); } } diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcGrantManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcGrantManager.java index 1d9ef8dc..03169612 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcGrantManager.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcGrantManager.java @@ -21,7 +21,6 @@ import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import com.nokia.cbam.lcm.v32.ApiException; import com.nokia.cbam.lcm.v32.model.VnfInfo; import com.nokia.cbam.lcm.v32.model.VnfcResourceInfo; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.api.IGrantManager; @@ -77,23 +76,25 @@ public class VfcGrantManager implements IGrantManager { @Override public void requestGrantForScale(String vnfmId, String vnfId, String vimId, String onapCsarId, VnfScaleRequest request, String jobId) { + String cbamVnfdId; try { - OperationType operationType = ScaleDirection.IN.equals(request.getType()) ? OperationType.SCALEIN : OperationType.SCALEOUT; - GrantVNFRequest grantRequest = buildGrantRequest(vnfmId, vimId, onapCsarId, jobId, operationType); - com.nokia.cbam.lcm.v32.model.VnfInfo vnf = cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdGet(vnfId, NOKIA_LCM_API_VERSION); - String vnfdContent = catalogManager.getCbamVnfdContent(vnfmId, vnf.getVnfdId()); - Set<ResourceChange> resourceChanges = calculateResourceChangeDuringScaling(vnfdContent, request.getAspectId(), Integer.parseInt(request.getNumberOfSteps())); - if (request.getType() == ScaleDirection.IN) { - grantRequest.getRemoveResource().addAll(resourceChanges); - - } else { - grantRequest.getAddResource().addAll(resourceChanges); - } - grantRequest.setVnfInstanceId(vnfId); - requestGrant(grantRequest); - } catch (ApiException e) { + com.nokia.cbam.lcm.v32.model.VnfInfo vnf = cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdGet(vnfId, NOKIA_LCM_API_VERSION).blockingFirst(); + cbamVnfdId = vnf.getVnfdId(); + } catch (Exception e) { throw buildFatalFailure(logger, "Unable to query VNF " + vnfId, e); } + OperationType operationType = ScaleDirection.IN.equals(request.getType()) ? OperationType.SCALEIN : OperationType.SCALEOUT; + GrantVNFRequest grantRequest = buildGrantRequest(vnfmId, vimId, onapCsarId, jobId, operationType); + String vnfdContent = catalogManager.getCbamVnfdContent(vnfmId, cbamVnfdId); + Set<ResourceChange> resourceChanges = calculateResourceChangeDuringScaling(vnfdContent, request.getAspectId(), Integer.parseInt(request.getNumberOfSteps())); + if (request.getType() == ScaleDirection.IN) { + grantRequest.getRemoveResource().addAll(resourceChanges); + + } else { + grantRequest.getAddResource().addAll(resourceChanges); + } + grantRequest.setVnfInstanceId(vnfId); + requestGrant(grantRequest); } @Override @@ -157,8 +158,8 @@ public class VfcGrantManager implements IGrantManager { private GrantVNFResponseVim requestGrant(GrantVNFRequest grantRequest) { try { - return vfcRestApiProvider.getNsLcmApi().grantvnf(grantRequest).getVim(); - } catch (org.onap.vnfmdriver.ApiException e) { + return vfcRestApiProvider.getNsLcmApi().grantvnf(grantRequest).execute().body().getVim(); + } catch (Exception e) { throw buildFatalFailure(logger, "Unable to request grant", e); } } diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcPackageProvider.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcPackageProvider.java index 71880d0b..5a3e960f 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcPackageProvider.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcPackageProvider.java @@ -60,22 +60,23 @@ public class VfcPackageProvider implements IPackageProvider { @Override public String getCbamVnfdId(String csarId) { + VnfPkgDetailInfo vnfPackageDetails; try { - VnfpackageApi onapCatalogApi = restApiProvider.getOnapCatalogApi(); - VnfPkgDetailInfo vnfPackageDetails = onapCatalogApi.queryVnfPackage(csarId); - JsonElement vnfdModel = new JsonParser().parse(vnfPackageDetails.getPackageInfo().getVnfdModel()); - return vnfdModel.getAsJsonObject().get("metadata").getAsJsonObject().get("resourceVendorModelNumber").getAsString(); + VnfpackageApi onapCatalogApi = restApiProvider.getVfcCatalogApi(); + vnfPackageDetails = onapCatalogApi.queryVnfPackage(csarId).execute().body(); } catch (Exception e) { throw buildFatalFailure(logger, "Unable to query VNF package with " + csarId, e); } + JsonElement vnfdModel = new JsonParser().parse(vnfPackageDetails.getPackageInfo().getVnfdModel()); + return vnfdModel.getAsJsonObject().get("metadata").getAsJsonObject().get("resourceVendorModelNumber").getAsString(); } @Override public byte[] getPackage(String csarId) { String downloadUrl; try { - VnfpackageApi onapCatalogApi = restApiProvider.getOnapCatalogApi(); - VnfPkgDetailInfo vnfPackageDetails = onapCatalogApi.queryVnfPackage(csarId); + VnfpackageApi onapCatalogApi = restApiProvider.getVfcCatalogApi(); + VnfPkgDetailInfo vnfPackageDetails = onapCatalogApi.queryVnfPackage(csarId).execute().body(); String urlFromVfc = vnfPackageDetails.getPackageInfo().getDownloadUrl(); String host = new URL(urlFromVfc).getHost(); downloadUrl = urlFromVfc.replaceFirst("://" + host, "://" + ipMappingProvider.mapPrivateIpToPublicIp(host)); diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcRestApiProvider.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcRestApiProvider.java index baa61f75..c2473aae 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcRestApiProvider.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcRestApiProvider.java @@ -15,9 +15,11 @@ */ package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.vfc; +import com.google.common.annotations.VisibleForTesting; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.MsbApiProvider; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.spring.Conditions; import org.onap.vfccatalog.api.VnfpackageApi; +import org.onap.vnfmdriver.ApiClient; import org.onap.vnfmdriver.api.NslcmApi; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Conditional; @@ -44,19 +46,36 @@ public class VfcRestApiProvider { * @return API to access VF-C for granting & LCN API */ public NslcmApi getNsLcmApi() { - org.onap.vnfmdriver.ApiClient apiClient = new org.onap.vnfmdriver.ApiClient(); + return buildNslcmApiClient().createService(NslcmApi.class); + } + + @VisibleForTesting + ApiClient buildNslcmApiClient() { + ApiClient apiClient = new ApiClient(); String correctedUrl = fixIncorrectUrl(); - apiClient.setBasePath(correctedUrl); - return new NslcmApi(apiClient); + if (!correctedUrl.endsWith("/")) { + correctedUrl = correctedUrl + "/"; + } + apiClient.setAdapterBuilder(apiClient.getAdapterBuilder().baseUrl(correctedUrl)); + return apiClient; } /** * @return API to access VF-C catalog API */ - public VnfpackageApi getOnapCatalogApi() { + public VnfpackageApi getVfcCatalogApi() { + return buildCatalogApiClient().createService(VnfpackageApi.class); + } + + @VisibleForTesting + org.onap.vfccatalog.ApiClient buildCatalogApiClient() { org.onap.vfccatalog.ApiClient vfcApiClient = new org.onap.vfccatalog.ApiClient(); - vfcApiClient.setBasePath(msbApiProvider.getMicroServiceUrl(NSCATALOG_SERVICE_NAME, NSCATALOG_API_VERSION)); - return new VnfpackageApi(vfcApiClient); + String microServiceUrl = msbApiProvider.getMicroServiceUrl(NSCATALOG_SERVICE_NAME, NSCATALOG_API_VERSION); + if (!microServiceUrl.endsWith("/")) { + microServiceUrl = microServiceUrl + "/"; + } + vfcApiClient.setAdapterBuilder(vfcApiClient.getAdapterBuilder().baseUrl(microServiceUrl)); + return vfcApiClient; } /** |