From: Lott, Christopher (cl778h) Date: Thu, 17 Oct 2019 20:03:48 +0000 (-0400) Subject: Upgrade EPSDK-FW to version 2.6 X-Git-Tag: R2~5 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=2dc8cbacf7ea48854c63f35b2d5a861da16b0cf6;p=portal%2Fric-dashboard.git Upgrade EPSDK-FW to version 2.6 Reuse constants from that library instead of duplicating. Change-Id: I3963b12586af39b4f09be91bc3c98da8af76eddc Signed-off-by: Lott, Christopher (cl778h) --- diff --git a/docs/release-notes.rst b/docs/release-notes.rst index a672a8da..42d6364d 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -30,6 +30,7 @@ Version 1.2.4, 21 Oct 2019 * Revise user controller to answer data sent by portal, drop the mock implementation * Set global style for page titles * Align page titles to top left,decrease font size +* Update EPSDK-FW to version 2.6 Version 1.2.3, 4 Oct 2019 ------------------------- diff --git a/webapp-backend/.gitignore b/webapp-backend/.gitignore index 891095d0..02dbd440 100644 --- a/webapp-backend/.gitignore +++ b/webapp-backend/.gitignore @@ -31,4 +31,4 @@ /application-tlab2.properties /application.properties -/users.json +/dashboard-users.json diff --git a/webapp-backend/pom.xml b/webapp-backend/pom.xml index ad70dcf5..c62a236d 100644 --- a/webapp-backend/pom.xml +++ b/webapp-backend/pom.xml @@ -67,7 +67,7 @@ limitations under the License. org.onap.portal.sdk epsdk-fw - 2.4.0 + 2.6.0 commons-logging diff --git a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardUserManager.java b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardUserManager.java index 5561c0e0..c5fd1014 100644 --- a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardUserManager.java +++ b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardUserManager.java @@ -49,13 +49,14 @@ public class DashboardUserManager { private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - public static final String USER_FILE_PATH = "/tmp/dashboard-users.json"; + // This default value is only useful for development and testing. + public static final String USER_FILE_PATH = "dashboard-users.json"; private final File userFile; private final List users; /** - * convenience constructor that uses default file path + * Development/test-only constructor that uses default file path. * * @param clear * If true, start empty and remove any existing file. @@ -75,7 +76,7 @@ public class DashboardUserManager { } /** - * Uses specified file path + * Constructur that accepts a file path * * @param userFilePath * File path diff --git a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalAuthManager.java b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalAuthManager.java index 8eb7362b..dc70f7e7 100644 --- a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalAuthManager.java +++ b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalAuthManager.java @@ -27,6 +27,7 @@ import java.util.Map; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; +import org.onap.portalsdk.core.onboarding.crossapi.IPortalRestCentralService; import org.onap.portalsdk.core.onboarding.exception.CipherUtilException; import org.onap.portalsdk.core.onboarding.util.PortalApiConstants; import org.slf4j.Logger; @@ -48,10 +49,9 @@ public class PortalAuthManager { throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { credentialsMap = new HashMap<>(); - // The map keys are hardcoded in EPSDK-FW, no constants are defined :( - credentialsMap.put("appName", appName); - credentialsMap.put("username", username); - credentialsMap.put("password", password); + credentialsMap.put(IPortalRestCentralService.CREDENTIALS_APP, appName); + credentialsMap.put(IPortalRestCentralService.CREDENTIALS_USER, username); + credentialsMap.put(IPortalRestCentralService.CREDENTIALS_PASS, password); this.userIdCookieName = userCookie; // Instantiate here so configuration errors are detected at app-start time logger.debug("ctor: using decryptor class {}", decryptorClassName); diff --git a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalAuthenticationFilter.java b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalAuthenticationFilter.java index febf8c9a..4b6de914 100644 --- a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalAuthenticationFilter.java +++ b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalAuthenticationFilter.java @@ -36,6 +36,7 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.onap.portalsdk.core.onboarding.util.KeyProperties; import org.onap.portalsdk.core.onboarding.util.PortalApiConstants; import org.onap.portalsdk.core.onboarding.util.PortalApiProperties; import org.onap.portalsdk.core.restful.domain.EcompRole; @@ -43,6 +44,7 @@ import org.onap.portalsdk.core.restful.domain.EcompUser; import org.oransc.ric.portal.dashboard.DashboardConstants; import org.oransc.ric.portal.dashboard.DashboardUserManager; import org.oransc.ric.portal.dashboard.model.EcompUserDetails; +import org.owasp.esapi.reference.DefaultSecurityConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.MediaType; @@ -79,8 +81,9 @@ public class PortalAuthenticationFilter implements Filter { private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - // Unfortunately these names are not available as constants - private static final String[] securityPropertyFiles = { "ESAPI.properties", "key.properties", "portal.properties", + // Unfortunately not all file names are defined as constants + private static final String[] securityPropertyFiles = { KeyProperties.PROPERTY_FILE_NAME, + PortalApiProperties.PROPERTY_FILE_NAME, DefaultSecurityConfiguration.DEFAULT_RESOURCE_FILE, "validation.properties" }; public static final String REDIRECT_URL_KEY = "redirectUrl"; diff --git a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/PortalRestCentralServiceTest.java b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/PortalRestCentralServiceTest.java index e1c48ea0..11240905 100644 --- a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/PortalRestCentralServiceTest.java +++ b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/PortalRestCentralServiceTest.java @@ -21,11 +21,16 @@ package org.oransc.ric.portal.dashboard.controller; import java.lang.invoke.MethodHandles; import java.net.URI; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.onap.portalsdk.core.onboarding.util.PortalApiConstants; +import org.onap.portalsdk.core.restful.domain.EcompRole; import org.onap.portalsdk.core.restful.domain.EcompUser; +import org.oransc.ric.portal.dashboard.DashboardConstants; import org.oransc.ric.portal.dashboard.config.PortalApIMockConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -68,14 +73,25 @@ public class PortalRestCentralServiceTest extends AbstractControllerTest { return entity; } + private EcompUser createEcompUser(String loginId) { + EcompUser user = new EcompUser(); + user.setLoginId(loginId); + EcompRole role = new EcompRole(); + role.setRoleFunctions(Collections.EMPTY_SET); + role.setId(1L); + role.setName(DashboardConstants.ROLE_NAME_ADMIN); + Set roles = new HashSet<>(); + roles.add(role); + user.setRoles(roles); + return user; + } + @Test public void createUserTest() { final String loginId = "login1"; URI create = buildUri(null, PortalApiConstants.API_PREFIX, "user"); logger.info("Invoking {}", create); - EcompUser user = new EcompUser(); - user.setLoginId(loginId); - HttpEntity requestEntity = getEntityWithHeaders(user); + HttpEntity requestEntity = getEntityWithHeaders(createEcompUser(loginId)); ResponseEntity response = restTemplate.exchange(create, HttpMethod.POST, requestEntity, String.class); Assertions.assertTrue(response.getStatusCode().is2xxSuccessful()); } @@ -84,9 +100,8 @@ public class PortalRestCentralServiceTest extends AbstractControllerTest { public void updateUserTest() { final String loginId = "login2"; URI create = buildUri(null, PortalApiConstants.API_PREFIX, "user"); + EcompUser user = createEcompUser(loginId); logger.info("Invoking {}", create); - EcompUser user = new EcompUser(); - user.setLoginId(loginId); HttpEntity requestEntity = getEntityWithHeaders(user); // Create ResponseEntity response = restTemplate.exchange(create, HttpMethod.POST, requestEntity, String.class);