From 1ed271f32c4112736fb528aa0cc228629d2248a6 Mon Sep 17 00:00:00 2001 From: "Lott, Christopher (cl778h)" Date: Tue, 21 Apr 2020 20:49:29 -0400 Subject: [PATCH] Add error handling in PortalRestCentralServiceImpl Change-Id: I3e7523079fcdf0ec614908063f4417c0b35352e5 Signed-off-by: Lott, Christopher (cl778h) --- .../dashboard/config/WebSecurityConfiguration.java | 4 ++-- .../portalapi/PortalRestCentralServiceImpl.java | 19 +++++++++++++------ .../config/WebSecurityMockConfiguration.java | 5 ++--- .../dashboard/controller/DefaultContextTest.java | 2 +- .../controller/PortalRestCentralServiceTest.java | 6 ++++-- 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/WebSecurityConfiguration.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/WebSecurityConfiguration.java index 0a3f022e..f1fcca99 100644 --- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/WebSecurityConfiguration.java +++ b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/WebSecurityConfiguration.java @@ -113,7 +113,7 @@ public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter { @Bean public PortalAuthManager portalAuthManagerBean() throws ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException { - logger.debug("portalAuthManagerBean"); + logger.debug("portalAuthManagerBean: appName {}", appName); return new PortalAuthManager(appName, portalApiUsername, portalApiPassword, decryptor, userCookie); } @@ -128,7 +128,7 @@ public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter { */ public PortalAuthenticationFilter portalAuthenticationFilterBean() throws ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException { - logger.debug("portalAuthenticationFilterBean"); + logger.debug("portalAuthenticationFilterBean: portalapiSecurity {}", portalapiSecurity); return new PortalAuthenticationFilter(portalapiSecurity, portalAuthManagerBean(), this.userManager); } diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalRestCentralServiceImpl.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalRestCentralServiceImpl.java index 93ebc829..7f4114df 100644 --- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalRestCentralServiceImpl.java +++ b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalRestCentralServiceImpl.java @@ -51,12 +51,19 @@ public class PortalRestCentralServiceImpl implements IPortalRestCentralService { private final DashboardUserManager userManager; public PortalRestCentralServiceImpl() throws IOException, PortalAPIException { - final ApplicationContext context = SpringContextCache.getApplicationContext(); - authManager = context.getBean(PortalAuthManager.class); - userManager = context.getBean(DashboardUserManager.class); - logger.debug("ctor: authManager has credentials for app {}", - authManager.getAppCredentials().get(IPortalRestCentralService.CREDENTIALS_APP)); - logger.debug("ctor: userManager has list size {}", userManager.getUsers().size()); + try { + final ApplicationContext context = SpringContextCache.getApplicationContext(); + authManager = context.getBean(PortalAuthManager.class); + userManager = context.getBean(DashboardUserManager.class); + logger.debug("ctor: authManager fetched credentials for app {}", + authManager.getAppCredentials().get(IPortalRestCentralService.CREDENTIALS_APP)); + logger.debug("ctor: userManager has list size {}", userManager.getUsers().size()); + } catch (Exception ex) { + // Log the exception before it's discarded by class + // PortalRestAPICentralServiceImpl + logger.error("ctor failed", ex); + throw ex; + } } /* diff --git a/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/WebSecurityMockConfiguration.java b/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/WebSecurityMockConfiguration.java index 2c111db5..c90c3d61 100644 --- a/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/WebSecurityMockConfiguration.java +++ b/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/WebSecurityMockConfiguration.java @@ -21,7 +21,6 @@ package org.oransc.ric.portal.dashboard.config; import java.lang.invoke.MethodHandles; -import org.onap.portalsdk.core.onboarding.crossapi.IPortalRestCentralService; import org.oransc.ric.portal.dashboard.DashboardConstants; import org.oransc.ric.portal.dashboard.portalapi.PortalAuthManager; import org.slf4j.Logger; @@ -98,8 +97,8 @@ public class WebSecurityMockConfiguration extends WebSecurityConfigurerAdapter { @Bean public PortalAuthManager portalAuthManagerBean() throws Exception { - logger.debug("portalAuthManagerBean"); - return new PortalAuthManager(IPortalRestCentralService.CREDENTIALS_APP, portalApiUsername, portalApiPassword, + logger.debug("portalAuthManagerBean: app {}", appName); + return new PortalAuthManager(appName, portalApiUsername, portalApiPassword, decryptor, userCookie); } diff --git a/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/DefaultContextTest.java b/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/DefaultContextTest.java index b233eaf2..aaa48eb7 100644 --- a/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/DefaultContextTest.java +++ b/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/DefaultContextTest.java @@ -61,7 +61,7 @@ public class DefaultContextTest { public void contextLoads() { // Silence Sonar warning about missing assertion. Assertions.assertTrue(logger.isWarnEnabled()); - logger.info("DefaultContextTest#contextLoads on default profile"); + logger.info("contextLoads on default profile"); } } diff --git a/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/PortalRestCentralServiceTest.java b/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/PortalRestCentralServiceTest.java index 48aa0844..4446c433 100644 --- a/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/PortalRestCentralServiceTest.java +++ b/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/PortalRestCentralServiceTest.java @@ -54,7 +54,7 @@ public class PortalRestCentralServiceTest extends AbstractControllerTest { public void getAnalyticsTest() { // paths are hardcoded here exactly like the EPSDK-FW library :( URI uri = buildUri(null, PortalApiConstants.API_PREFIX, "/analytics"); - logger.info("Invoking {}", uri); + logger.info("getAnalyticsTest invoking {}", uri); ResponseEntity response = restTemplate.exchange(uri, HttpMethod.GET, null, String.class); // No Portal is available so this always fails Assertions.assertTrue(response.getStatusCode().is4xxClientError()); @@ -64,7 +64,7 @@ public class PortalRestCentralServiceTest extends AbstractControllerTest { public void getErrorPageTest() { // Send unauthorized request URI uri = buildUri(null, "/favicon.ico"); - logger.info("Invoking {}", uri); + logger.info("getErrorPageTest invoking {}", uri); ResponseEntity response = restTemplate.exchange(uri, HttpMethod.GET, null, String.class); Assertions.assertTrue(response.getStatusCode().is4xxClientError()); Assertions.assertTrue(response.getBody().contains("Static error page")); @@ -100,6 +100,7 @@ public class PortalRestCentralServiceTest extends AbstractControllerTest { HttpEntity requestEntity = getEntityWithAuthHeaders(createEcompUser(loginId)); ResponseEntity response = restTemplate.exchange(create, HttpMethod.POST, requestEntity, String.class); logger.info("createUserTest response {}", response); + Assertions.assertNotNull(response); Assertions.assertTrue(response.getStatusCode().is2xxSuccessful()); } @@ -120,6 +121,7 @@ public class PortalRestCentralServiceTest extends AbstractControllerTest { logger.info("updateUserTest invoking {}", update); response = restTemplate.exchange(update, HttpMethod.POST, requestEntity, String.class); logger.info("updateUserTest response {}", response); + Assertions.assertNotNull(response); Assertions.assertTrue(response.getStatusCode().is2xxSuccessful()); } -- 2.16.6