From 978dbcf0a196acbafad72fe1e2478ec0e384f02f Mon Sep 17 00:00:00 2001 From: "Christopher Lott (cl778h)" Date: Wed, 23 Aug 2017 18:27:19 -0400 Subject: Deliver centralized role management feature Repair multiple defects also. Revise deployment to use docker-compose. Remove all zip archives. Issue: PORTAL-21, PORTAL-25, PORTAL-28, PORTAL-52, PORTAL-69, PORTAL-74, PORTAL-76, PORTAL-80, PORTAL-82 Change-Id: Ie72fec7d35ba78beb162bba6ed27b2caee340c61 Signed-off-by: Christopher Lott (cl778h) --- ecomp-portal-BE-os/README.md | 9 +- ecomp-portal-BE-os/pom.xml | 192 ++++++++++++++++++--- .../authentication/OpenIdConnectLoginStrategy.java | 2 +- .../authentication/SimpleLoginStrategy.java | 6 +- .../portalapp/conf/ExternalAppConfig.java | 2 +- .../portalapp/controller/LoginController.java | 9 +- .../portalapp/portal/transport/OnboardingApp.java | 4 + .../src/main/resources/portal.properties | 5 + .../src/main/webapp/WEB-INF/conf/raptor.properties | 2 +- .../src/main/webapp/WEB-INF/conf/system.properties | 5 +- .../src/main/webapp/WEB-INF/jsp/login.jsp | 3 +- .../portalapp/portal/framework/MockTestSuite.java | 68 ++++++++ 12 files changed, 268 insertions(+), 39 deletions(-) create mode 100644 ecomp-portal-BE-os/src/test/java/org/openecomp/portalapp/portal/framework/MockTestSuite.java (limited to 'ecomp-portal-BE-os') diff --git a/ecomp-portal-BE-os/README.md b/ecomp-portal-BE-os/README.md index aa406022..e116bc6d 100644 --- a/ecomp-portal-BE-os/README.md +++ b/ecomp-portal-BE-os/README.md @@ -14,10 +14,11 @@ https://www.eclipse.org/m2e-wtp/ ## Release Notes -Version 1.1.0, July 2017 +Version 1.1.0 (Amsterdam), November 2017 - [Portal-6] Updates to License and Trademark in the PORTAL Source Code - [Portal-7] Improvements added as part of the rebasing process - [Portal-17] Remove jfree related items +- [PORTAL-21] FE changes to OS for AAF centralization and name space field; DB script updates for EcompPortalDDLMySql_1710_Common.sql under ecomp-portal-DB-common, EcompPortalDMLMySql_1710_OS.sql under ecomp-portal-DB-os; - [Portal-30] Failed to communicate with the widget microservice: Fixed - [Portal-35] Replaced the portal logo with onap logo on the login screen. - [Portal-40] Fix to add user roles @@ -26,6 +27,12 @@ Version 1.1.0, July 2017 - [Portal-48] Fix to save a new app on Application onboarding - [Portal-49] image icon is missing on Widget corner - [Portal-63] remove att_abs_tpls*.js and greensock url +- [Portal-69] unable to pick role in Functional Menu Update +- [Portal-73] unable to onboard new Application fix +- [Portal-50] Enabled the junit coverage in ONAP +- [Portal-76] Edit functional menu modal doesn't show +- [Portal-61] Fixed the routing problem, loaded data and changed the notification hyperlink +- [Portal-77] Changes to remove preview image and update the new image automatically on App onbarding page Version 1.0.0, February 2017 - Initial release diff --git a/ecomp-portal-BE-os/pom.xml b/ecomp-portal-BE-os/pom.xml index d00d47a0..a8c19a54 100644 --- a/ecomp-portal-BE-os/pom.xml +++ b/ecomp-portal-BE-os/pom.xml @@ -1,7 +1,7 @@ 4.0.0 - org.openecomp.portal + org.onap.portal ecompportal-be-os war 1.1 @@ -10,18 +10,17 @@ 4.2.0.RELEASE 4.3.11.Final 1.0.0 - 1.1.0 - 1.1.0 + 1.3.0-SNAPSHOT + 1.3.0-SNAPSHOT UTF-8 - false - + true + 0 **.js https://nexus.onap.org content/repositories/snapshots/ content/repositories/releases/ - /content/sites/site/org/onap/portal/${project.version} @@ -42,28 +41,26 @@ true + ecomp-site - dav:${nexusproxy}${sitePath} + dav:${nexusproxy}/content/sites/site/org/onap/portal/${project.version} - ecomp-releases - OpenECOMP - Release Repository + onap-releases ${nexusproxy}/${releaseNexusPath} - ecomp-snapshots - OpenECOMP - Snapshot Repository + onap-snapshots ${nexusproxy}/${snapshotNexusPath} - ecomp-public - ecomp onap public Repository + onap-public https://nexus.onap.org/content/groups/public @@ -99,6 +96,121 @@ 1.8 + + org.jacoco + jacoco-maven-plugin + 0.7.5.201505241946 + + + + + pre-unit-test + + prepare-agent + + + + ${basedir}/target/coverage-reports/jacoco-ut.exec + + surefireArgLine + ${skipTests} + + + + + + post-unit-test + test + + report + + + + ${project.build.directory}/coverage-reports/jacoco-ut.exec + + ${project.reporting.outputDirectory}/jacoco-ut + ${skipTests} + + + + + + default-instrument + + instrument + + + ${skipTests} + + + + default-restore-instrumented-classes + + restore-instrumented-classes + + + ${skipTests} + + + + + + + org.apache.maven.plugins + maven-resources-plugin + 3.0.2 + + + copy-src + generate-resources + + copy-resources + + + ${basedir}/target/classes + false + ${skipTests} + + + ${basedir}/../ecomp-portal-BE-common/target/classes + + + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.19.1 + + ${skipTests} + + **/*Test.java + **/*TestCase.java + **/*TestSuite.java + + + + **/*TestFromSuite.java + + + ${basedir}/src/main/webapp + ../ecomp-portal-BE-common/src/main/webapp + ../ecomp-portal-BE-common + + + classpath: + + + maven-war-plugin @@ -118,13 +230,13 @@ - org.openecomp.portal + org.onap.portal ecompportal-be-common - org.openecomp.ecompsdkos + org.onap.portal.sdk epsdk-app-overlay - + @@ -249,17 +361,29 @@ + org.springframework @@ -412,7 +536,6 @@ * - @@ -540,14 +663,14 @@ - org.openecomp.ecompsdkos + org.onap.portal.sdk epsdk-app-overlay ${epsdk.version} war - org.openecomp.ecompsdkos + org.onap.portal.sdk epsdk-app-common ${epsdk.version} jar @@ -555,14 +678,14 @@ - org.openecomp.portal + org.onap.portal ecompportal-be-common ${portal.version} war - org.openecomp.portal + org.onap.portal ecompportal-be-common ${portal.version} jar @@ -570,7 +693,7 @@ - org.openecomp.ecompsdkos + org.onap.portal.sdk epsdk-fw ${epsdk.version} @@ -594,13 +717,13 @@ - org.openecomp.ecompsdkos + org.onap.portal.sdk epsdk-core ${epsdk.version} - org.openecomp.ecompsdkos + org.onap.portal.sdk epsdk-workflow ${epsdk.version} @@ -608,7 +731,7 @@ - org.openecomp.ecompsdkos + org.onap.portal.sdk epsdk-analytics ${epsdk.version} @@ -628,13 +751,26 @@ 4.11 test - + org.onap.portal + ecomp-portal-BE-common-test + ${portal.version} + test + + + org.mockito + mockito-core + 1.8.5 + test + + commons-beanutils commons-beanutils 1.9.2 - + + + org.mitre diff --git a/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/authentication/OpenIdConnectLoginStrategy.java b/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/authentication/OpenIdConnectLoginStrategy.java index 8365ebc2..48f447b4 100644 --- a/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/authentication/OpenIdConnectLoginStrategy.java +++ b/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/authentication/OpenIdConnectLoginStrategy.java @@ -64,7 +64,7 @@ public class OpenIdConnectLoginStrategy extends org.openecomp.portalsdk.core.aut user.setLastName(userInfo.getFamilyName()); //store the currently logged in user's information in the session - EPUserUtils.setUserSession(request, user, new HashSet(), new HashSet(), SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM), null); + EPUserUtils.setUserSession(request, user, new HashSet(), new HashSet(), SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM),null); logger.info(EELFLoggerDelegate.errorLogger, request.getContextPath()); SessionCookieUtil.preSetUp(request, response); diff --git a/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/authentication/SimpleLoginStrategy.java b/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/authentication/SimpleLoginStrategy.java index c1fee7f3..0c3c4996 100644 --- a/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/authentication/SimpleLoginStrategy.java +++ b/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/authentication/SimpleLoginStrategy.java @@ -24,6 +24,7 @@ import javax.servlet.http.HttpServletResponse; import org.openecomp.portalapp.command.EPLoginBean; import org.openecomp.portalapp.portal.service.EPLoginService; +import org.openecomp.portalapp.portal.service.EPRoleFunctionService; import org.openecomp.portalapp.portal.service.EPRoleService; import org.openecomp.portalapp.portal.utils.EPSystemProperties; import org.openecomp.portalapp.portal.utils.EcompPortalUtils; @@ -45,6 +46,9 @@ public class SimpleLoginStrategy extends org.openecomp.portalsdk.core.auth.Login @Autowired private EPRoleService roleService; + @Autowired + private EPRoleFunctionService ePRoleFunctionService; + private static final String GLOBAL_LOCATION_KEY = "Location"; EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SimpleLoginStrategy.class); @@ -66,7 +70,7 @@ public class SimpleLoginStrategy extends org.openecomp.portalsdk.core.auth.Login } else { // store the currently logged in user's information in the session - EPUserUtils.setUserSession(request, commandBean.getUser(), commandBean.getMenu(), commandBean.getBusinessDirectMenu(), "", roleService.getRoleFunctions()); + EPUserUtils.setUserSession(request, commandBean.getUser(), commandBean.getMenu(), commandBean.getBusinessDirectMenu(), "", ePRoleFunctionService); logger.info(EELFLoggerDelegate.debugLogger, commandBean.getUser().getOrgUserId() + " exists in the the system."); } diff --git a/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/conf/ExternalAppConfig.java b/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/conf/ExternalAppConfig.java index a16cf56b..92d63742 100644 --- a/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/conf/ExternalAppConfig.java +++ b/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/conf/ExternalAppConfig.java @@ -200,7 +200,7 @@ public class ExternalAppConfig extends AppConfig implements Configurable { registry.addInterceptor(sessionTimeoutInterceptor()).excludePathPatterns("/oid-login", "/portalApi/healthCheck", "/portalApi/healthCheck/", "/portalApi/healthCheckSuspend", "/portalApi/healthCheckSuspend/", "/portalApi/healthCheckResume", "/portalApi/healthCheckResume/", "/login_external", - "/login_external.htm*", "login", "/login.htm*", "/auxapi/*", "/context/*", "/api*", + "/login_external.htm*", "login", "/login.htm*","/auxapi/*","/context/*", "/api*", "/single_signon.htm", "/single_signon", "/dashboard", "/OpenSourceLogin.htm"); registry.addInterceptor(portalResourceInterceptor()); diff --git a/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/controller/LoginController.java b/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/controller/LoginController.java index 6f3d2278..33cc4dd7 100644 --- a/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/controller/LoginController.java +++ b/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/controller/LoginController.java @@ -36,6 +36,7 @@ import org.json.JSONObject; import org.openecomp.portalapp.command.EPLoginBean; import org.openecomp.portalapp.portal.domain.SharedContext; import org.openecomp.portalapp.portal.service.EPLoginService; +import org.openecomp.portalapp.portal.service.EPRoleFunctionService; import org.openecomp.portalapp.portal.service.EPRoleService; import org.openecomp.portalapp.portal.service.SharedContextService; import org.openecomp.portalapp.portal.utils.EPSystemProperties; @@ -84,6 +85,9 @@ public class LoginController extends EPUnRestrictedBaseController implements Log @Autowired private EPRoleService roleService; + @Autowired + private EPRoleFunctionService ePRoleFunctionService; + String viewName = "login"; private String welcomeView; @@ -142,8 +146,7 @@ public class LoginController extends EPUnRestrictedBaseController implements Log } else { // store the currently logged in user's information in the session - EPUserUtils.setUserSession(request, commandBean.getUser(), commandBean.getMenu(), commandBean.getBusinessDirectMenu(), SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM), - roleService.getRoleFunctions()); + EPUserUtils.setUserSession(request, commandBean.getUser(), commandBean.getMenu(), commandBean.getBusinessDirectMenu(), SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM),ePRoleFunctionService); try{ logger.info(EELFLoggerDelegate.debugLogger, "******************* store user info into share context begins"); @@ -249,7 +252,7 @@ public class LoginController extends EPUnRestrictedBaseController implements Log sbAdditionalInfo.append(String.format("Login-Id: %s, Login-Method: %s, Request-URL: %s", orgUserId, "", fullURL)); logger.info(EELFLoggerDelegate.debugLogger, "*********************** now set up user session for " + orgUserId); - EPUserUtils.setUserSession(request, commandBean.getUser(), commandBean.getMenu(), commandBean.getBusinessDirectMenu(), SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM), roleService.getRoleFunctions()); + EPUserUtils.setUserSession(request, commandBean.getUser(), commandBean.getMenu(), commandBean.getBusinessDirectMenu(), SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM),ePRoleFunctionService); logger.info(EELFLoggerDelegate.debugLogger, "*********************** now set up user session for " + orgUserId + " finished"); //Store user's information into share context diff --git a/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingApp.java b/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingApp.java index f953634a..eee12234 100644 --- a/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingApp.java +++ b/ecomp-portal-BE-os/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingApp.java @@ -56,6 +56,10 @@ public class OnboardingApp { public String uebSecret; public Boolean restrictedApp; + + public Boolean isCentralAuth; + + public String nameSpace; public void normalize() { this.name = (this.name == null) ? "" : this.name.trim(); diff --git a/ecomp-portal-BE-os/src/main/resources/portal.properties b/ecomp-portal-BE-os/src/main/resources/portal.properties index a1982632..e23d04e4 100644 --- a/ecomp-portal-BE-os/src/main/resources/portal.properties +++ b/ecomp-portal-BE-os/src/main/resources/portal.properties @@ -42,3 +42,8 @@ ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX-DEV-LOCAL # Consumer group name for UEB topic. # Use the special tag to generate a unique one for each sdk-app server. ueb_app_consumer_group_name = {UUID} + +role_access_centralized = remote + +ext_req_connection_timeout = 15000 +ext_req_read_timeout = 20000 diff --git a/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/raptor.properties b/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/raptor.properties index 0c32ef65..68d60140 100644 --- a/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/raptor.properties +++ b/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/raptor.properties @@ -107,7 +107,7 @@ flat_file_upper_limit=200000 request_get_params=c_master,isEmbedded print_footer_in_download=yes ## footer mentioned here appears in downloaded excel -footer_first_line=AT&T Proprietary +footer_first_line=Raptor footer_second_line=Use Pursuant to Company Instructions ## to run report in popup window report_in_popup_window=yes diff --git a/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/system.properties b/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/system.properties index 0fc2c69d..8f74a9f2 100644 --- a/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/system.properties +++ b/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/system.properties @@ -35,7 +35,7 @@ hb.idle_connection_test_period = 3600 # Ecomp portal title app_display_name = Portal -files_path = /demeter/WebApps/dev/ECOMP_APP/files +files_path = /tmp context_root = ECOMPPORTAL # menu settings menu_query_name = menuData @@ -116,3 +116,6 @@ authenticate_user_server=http://todo_enter_auth_server_hostname:8383/openid-conn #window width threshold to collapse left/right menu when page onload window_width_threshold_left_menu = 1400 window_width_threshold_right_menu = 1350 + +#External system notification URL +external_system_notification_url= http://todo_external_system_notification_url? diff --git a/ecomp-portal-BE-os/src/main/webapp/WEB-INF/jsp/login.jsp b/ecomp-portal-BE-os/src/main/webapp/WEB-INF/jsp/login.jsp index 1b269d80..a8265c71 100644 --- a/ecomp-portal-BE-os/src/main/webapp/WEB-INF/jsp/login.jsp +++ b/ecomp-portal-BE-os/src/main/webapp/WEB-INF/jsp/login.jsp @@ -37,11 +37,9 @@ - -