From 21a8761f684745bb300e075c7e98ad897ace9eed Mon Sep 17 00:00:00 2001 From: st782s Date: Tue, 30 Jan 2018 17:29:36 -0500 Subject: Security/ Package Name changes Issue-ID: PORTAL-174, PORTAL-157, PORTAL-156, PORTAL-148, PORTAL-145, PORTAL-140, PORTAL-133, PORTAL-121, PORTAL-111, PORTAL-88 Includes security fixes, Role Centralization, replace certain ECOMP occurrences etc Change-Id: I3c8b706709c6b92e646e3cbe50c2d660e8a46ef4 Signed-off-by: st782s --- .../src/main/java/jarutil/ExtractJar.java | 6 +- .../org/onap/portalapp/command/EPLoginBean.java | 204 ++ .../org/onap/portalapp/command/PostSearchBean.java | 391 +++ .../portalapp/config/ExternalSecurityConfig.java | 74 + .../onap/portalapp/config/NotificationCleanup.java | 58 + .../config/NotificationCleanupConfig.java | 80 + .../config/PortalCentralAccessConfiguration.java | 66 + .../org/onap/portalapp/config/SwaggerConfig.java | 76 + .../onap/portalapp/config/SwaggerMVCConfig.java | 55 + .../controller/EPFusionBaseController.java | 122 + .../controller/EPRestrictedBaseController.java | 70 + .../EPRestrictedRESTfulBaseController.java | 72 + .../controller/EPUnRestrictedBaseController.java | 60 + .../sessionmgt/SessionCommunicationController.java | 90 + .../model/ExternalSystemRoleApproval.java | 56 + .../model/ExternalSystemUser.java | 92 + .../main/java/org/onap/portalapp/model/Result.java | 55 + .../portal/controller/AppCatalogController.java | 148 + .../portal/controller/AppContactUsController.java | 242 ++ .../portal/controller/AppsController.java | 812 +++++ .../controller/AppsControllerExternalRequest.java | 392 +++ .../portal/controller/AuditLogController.java | 129 + .../controller/BEPropertyReaderController.java | 63 + .../controller/BasicAuthAccountController.java | 215 ++ .../controller/BasicAuthenticationController.java | 46 + .../portal/controller/CommonWidgetController.java | 99 + .../portal/controller/ConsulClientController.java | 113 + .../portal/controller/DashboardController.java | 414 +++ .../DashboardSearchResultController.java | 261 ++ .../portal/controller/EncryptAdminController.java | 220 ++ .../controller/ExternalAccessRolesController.java | 807 +++++ .../controller/ExternalAppsRestfulController.java | 231 ++ .../controller/FunctionalMenuController.java | 666 ++++ .../portal/controller/GetAccessController.java | 90 + .../portal/controller/HealthCheckController.java | 249 ++ .../portal/controller/ManifestController.java | 108 + .../portal/controller/MicroserviceController.java | 156 + .../controller/MicroserviceProxyController.java | 115 + .../portal/controller/PortalAdminController.java | 230 ++ .../portal/controller/RoleManageController.java | 747 +++++ .../controller/RolesApprovalSystemController.java | 232 ++ .../portal/controller/SchedulerAuxController.java | 141 + .../portal/controller/SchedulerController.java | 348 ++ .../controller/SharedContextRestController.java | 384 +++ .../portal/controller/TicketEventController.java | 229 ++ .../portal/controller/UserController.java | 141 + .../controller/UserNotificationController.java | 234 ++ .../portal/controller/UserRolesController.java | 546 +++ .../controller/WebAnalyticsExtAppController.java | 257 ++ .../controller/WidgetsCatalogController.java | 417 +++ .../controller/WidgetsCatalogMarkupController.java | 103 + .../portal/controller/WidgetsController.java | 186 ++ .../onap/portalapp/portal/domain/AdminUserApp.java | 106 + .../portal/domain/AdminUserApplications.java | 114 + .../java/org/onap/portalapp/portal/domain/App.java | 80 + .../onap/portalapp/portal/domain/AppContactUs.java | 103 + .../portal/domain/AppIdAndNameTransportModel.java | 81 + .../onap/portalapp/portal/domain/AppsResponse.java | 94 + .../onap/portalapp/portal/domain/BEProperty.java | 96 + .../portal/domain/BasicAuthCredentials.java | 113 + .../portal/domain/CentralV2RoleFunction.java | 188 ++ .../portalapp/portal/domain/CentralizedApp.java | 81 + .../org/onap/portalapp/portal/domain/EPApp.java | 484 +++ .../portalapp/portal/domain/EPAppRoleFunction.java | 101 + .../onap/portalapp/portal/domain/EPEndpoint.java | 74 + .../portalapp/portal/domain/EPEndpointAccount.java | 83 + .../org/onap/portalapp/portal/domain/EPRole.java | 221 ++ .../org/onap/portalapp/portal/domain/EPUser.java | 668 ++++ .../onap/portalapp/portal/domain/EPUserApp.java | 137 + .../portal/domain/EPUserAppCatalogRoles.java | 110 + .../portalapp/portal/domain/EPUserAppRoles.java | 81 + .../portal/domain/EPUserAppRolesRequest.java | 158 + .../portal/domain/EPUserAppRolesRequestDetail.java | 111 + .../domain/EPUserAppsManualSortPreference.java | 68 + .../portal/domain/EPUserAppsSortPreference.java | 62 + .../portal/domain/EPUserNotification.java | 75 + .../domain/EPWidgetsManualSortPreference.java | 88 + .../org/onap/portalapp/portal/domain/EcompApp.java | 186 ++ .../onap/portalapp/portal/domain/EcompAppRole.java | 98 + .../portalapp/portal/domain/EcompAppRoleId.java | 101 + .../portalapp/portal/domain/EcompAuditLog.java | 84 + .../portal/domain/ExternalRoleDetails.java | 115 + .../portal/domain/ExternalSystemAccess.java | 67 + .../portal/domain/FunctionalMenuItemWithAppID.java | 114 + .../portalapp/portal/domain/GetAccessResult.java | 132 + .../portalapp/portal/domain/GetAccessResultId.java | 82 + .../portalapp/portal/domain/MicroserviceData.java | 164 + .../portal/domain/MicroserviceParameter.java | 96 + .../portal/domain/PersUserAppSelection.java | 133 + .../portal/domain/PersUserWidgetSelection.java | 136 + .../org/onap/portalapp/portal/domain/RoleApp.java | 132 + .../portalapp/portal/domain/SharedContext.java | 191 ++ .../onap/portalapp/portal/domain/UserIdRoleId.java | 95 + .../org/onap/portalapp/portal/domain/UserRole.java | 109 + .../onap/portalapp/portal/domain/UserRoles.java | 131 + .../org/onap/portalapp/portal/domain/Widget.java | 123 + .../portalapp/portal/domain/WidgetCatalog.java | 127 + .../portal/domain/WidgetCatalogParameter.java | 108 + .../portal/domain/WidgetParameterResult.java | 88 + .../portal/domain/WidgetServiceHeaders.java | 71 + .../portal/ecomp/model/AppCatalogItem.java | 276 ++ .../ecomp/model/AppCategoryFunctionsItem.java | 158 + .../portal/ecomp/model/AppContactUsItem.java | 189 ++ .../portal/ecomp/model/CommonWidgetsEnum.java | 54 + .../portal/ecomp/model/PortalRestResponse.java | 119 + .../portal/ecomp/model/PortalRestStatusEnum.java | 54 + .../portal/ecomp/model/SearchResultItem.java | 104 + .../DeleteDomainObjectFailedException.java | 47 + .../exceptions/DuplicateRecordException.java | 47 + .../exceptions/ExternalAuthSystemException.java | 47 + .../exceptions/InactiveApplicationException.java | 47 + .../exceptions/InvalidApplicationException.java | 47 + .../portal/exceptions/InvalidRoleException.java | 47 + .../portal/exceptions/InvalidUserException.java | 47 + .../exceptions/NoHealthyServiceException.java | 54 + .../exceptions/NonCentralizedAppException.java | 56 + .../portal/exceptions/RoleFunctionException.java | 53 + .../SecurityVulnerabilitiesException.java | 45 + .../interceptor/PortalResourceInterceptor.java | 369 +++ .../portalapp/portal/listener/HealthMonitor.java | 364 ++ .../portal/listener/UserContextListener.java | 69 + .../portal/listener/UserSessionListener.java | 140 + .../portalapp/portal/logging/aop/EPAuditLog.java | 49 + .../portal/logging/aop/EPEELFLoggerAdvice.java | 400 +++ .../portalapp/portal/logging/aop/EPMetricsLog.java | 49 + .../logging/format/ApplicationCodes.properties | 141 + .../portal/logging/format/EPAppMessagesEnum.java | 298 ++ .../portal/logging/format/EPErrorCodesEnum.java | 121 + .../portalapp/portal/logging/logic/EPLogUtil.java | 328 ++ .../portalapp/portal/scheduler/RestObject.java | 62 + .../portal/scheduler/SchedulerProperties.java | 164 + .../portal/scheduler/SchedulerResponseWrapper.java | 118 + .../portal/scheduler/SchedulerRestInt.java | 60 + .../portal/scheduler/SchedulerRestInterface.java | 270 ++ .../scheduler/SchedulerRestInterfaceFactory.java | 51 + .../scheduler/SchedulerRestInterfaceIfc.java | 58 + .../portalapp/portal/scheduler/SchedulerUtil.java | 136 + .../portal/scheduler/client/HttpBasicClient.java | 85 + .../portal/scheduler/client/HttpsBasicClient.java | 162 + .../scheduler/policy/rest/RequestDetails.java | 125 + .../restobjects/GetTimeSlotsRestObject.java | 48 + .../restobjects/PostCreateNewVnfRestObject.java | 47 + .../restobjects/PostSubmitVnfChangeRestObject.java | 47 + .../portal/scheduler/restobjects/RestObject.java | 57 + .../util/CustomJacksonJaxBJsonProvider.java | 91 + .../scheduler/wrapper/GetTimeSlotsWrapper.java | 42 + .../scheduler/wrapper/PostCreateNewVnfWrapper.java | 84 + .../PostSubmitVnfChangeTimeSlotsWrapper.java | 84 + .../wrapper/SchedulerResponseWrapper.java | 107 + .../portalapp/portal/scheduleraux/RestObject.java | 86 + .../scheduleraux/SchedulerAuxResponseWrapper.java | 93 + .../portal/scheduleraux/SchedulerAuxRestInt.java | 85 + .../scheduleraux/SchedulerAuxRestInterface.java | 278 ++ .../SchedulerAuxRestInterfaceFactory.java | 50 + .../scheduleraux/SchedulerAuxRestInterfaceIfc.java | 94 + .../portal/scheduleraux/SchedulerAuxUtil.java | 108 + .../portal/service/AdminRolesService.java | 77 + .../portal/service/AdminRolesServiceImpl.java | 529 +++ .../portal/service/AppContactUsService.java | 73 + .../portal/service/AppContactUsServiceImpl.java | 206 ++ .../service/ApplicationsRestClientService.java | 71 + .../service/ApplicationsRestClientServiceImpl.java | 428 +++ .../portalapp/portal/service/AppsCacheService.java | 60 + .../portal/service/AppsCacheServiceImple.java | 155 + .../portal/service/BasicAuthAccountService.java | 101 + .../service/BasicAuthAccountServiceImpl.java | 247 ++ .../BasicAuthenticationCredentialService.java | 53 + .../BasicAuthenticationCredentialServiceImpl.java | 103 + .../portal/service/ConsulHealthService.java | 62 + .../portal/service/ConsulHealthServiceImpl.java | 114 + .../portal/service/DashboardSearchService.java | 55 + .../portal/service/DashboardSearchServiceImpl.java | 117 + .../portal/service/EPAppCommonServiceImpl.java | 1666 ++++++++++ .../portalapp/portal/service/EPAppService.java | 248 ++ .../portalapp/portal/service/EPAuditService.java | 45 + .../portal/service/EPAuditServiceImpl.java | 129 + .../portalapp/portal/service/EPLdapService.java | 49 + .../portal/service/EPLdapServiceImpl.java | 269 ++ .../portal/service/EPLeftMenuService.java | 62 + .../portal/service/EPLeftMenuServiceImpl.java | 179 + .../portalapp/portal/service/EPLoginService.java | 90 + .../portal/service/EPLoginServiceImpl.java | 240 ++ .../portal/service/EPRoleFunctionService.java | 71 + .../EPRoleFunctionServiceCentralizedImpl.java | 132 + .../portal/service/EPRoleFunctionServiceImpl.java | 116 + .../portalapp/portal/service/EPRoleService.java | 55 + .../portal/service/EPRoleServiceImpl.java | 196 ++ .../portal/service/ExternalAccessRolesService.java | 436 +++ .../service/ExternalAccessRolesServiceImpl.java | 3497 ++++++++++++++++++++ .../portal/service/FunctionalMenuService.java | 76 + .../portal/service/FunctionalMenuServiceImpl.java | 1016 ++++++ .../portalapp/portal/service/GetAccessService.java | 51 + .../portal/service/GetAccessServiceImpl.java | 78 + .../portalapp/portal/service/ManifestService.java | 51 + .../portal/service/ManifestServiceImpl.java | 79 + .../portal/service/MicroserviceProxyService.java | 77 + .../service/MicroserviceProxyServiceImpl.java | 242 ++ .../portal/service/MicroserviceService.java | 105 + .../portal/service/MicroserviceServiceImpl.java | 227 ++ .../portal/service/PersUserAppService.java | 60 + .../portal/service/PersUserAppServiceImpl.java | 175 + .../portal/service/PersUserWidgetService.java | 57 + .../portal/service/PersUserWidgetServiceImpl.java | 106 + .../portal/service/PortalAdminService.java | 49 + .../portal/service/PortalAdminServiceImpl.java | 305 ++ .../portalapp/portal/service/SearchService.java | 48 + .../portal/service/SearchServiceImpl.java | 195 ++ .../portal/service/SharedContextService.java | 118 + .../portal/service/SharedContextServiceImpl.java | 194 ++ .../portal/service/TicketEventService.java | 46 + .../portal/service/UserNotificationService.java | 158 + .../service/UserNotificationServiceImpl.java | 262 ++ .../portal/service/UserRolesCommonServiceImpl.java | 1950 +++++++++++ .../portalapp/portal/service/UserRolesService.java | 111 + .../onap/portalapp/portal/service/UserService.java | 54 + .../portalapp/portal/service/UserServiceImpl.java | 288 ++ .../portal/service/WidgetParameterService.java | 82 + .../portal/service/WidgetParameterServiceImpl.java | 109 + .../portalapp/portal/service/WidgetService.java | 54 + .../portal/service/WidgetServiceImpl.java | 310 ++ .../portal/transport/AllAppsWithRolesForUser.java | 58 + .../onap/portalapp/portal/transport/Analytics.java | 84 + .../transport/AppCatalogPersonalization.java | 112 + .../portal/transport/AppNameIdIsAdmin.java | 132 + .../portal/transport/AppWithRolesForUser.java | 90 + .../portal/transport/AppsListWithAdminRole.java | 104 + .../portal/transport/BulkUploadRoleFunction.java | 105 + .../portal/transport/BulkUploadUserRoles.java | 120 + .../transport/BusinessCardApplicationRole.java | 126 + .../BusinessCardApplicationRolesList.java | 104 + .../portalapp/portal/transport/CentralApp.java | 400 +++ .../portalapp/portal/transport/CentralRole.java | 279 ++ .../portal/transport/CentralRoleFunction.java | 251 ++ .../portalapp/portal/transport/CentralUser.java | 965 ++++++ .../portalapp/portal/transport/CentralUserApp.java | 144 + .../portalapp/portal/transport/CentralV2Role.java | 246 ++ .../portalapp/portal/transport/CentralV2User.java | 1250 +++++++ .../portal/transport/CentralV2UserApp.java | 113 + .../portalapp/portal/transport/CommonWidget.java | 156 + .../portal/transport/CommonWidgetMeta.java | 68 + .../portal/transport/EPAppsManualPreference.java | 132 + .../portal/transport/EPAppsSortPreference.java | 65 + .../transport/EPDeleteAppsManualSortPref.java | 69 + .../portal/transport/EPUserAppCurrentRoles.java | 135 + .../portal/transport/EPWidgetsSortPreference.java | 110 + .../portal/transport/EcompUserAppRoles.java | 103 + .../portalapp/portal/transport/EcompUserRoles.java | 209 ++ .../portal/transport/EpNotificationItem.java | 357 ++ .../portal/transport/EpNotificationItemExtVO.java | 137 + .../portal/transport/EpNotificationItemVO.java | 221 ++ .../portal/transport/EpRoleNotificationItem.java | 108 + .../portalapp/portal/transport/EventWidget.java | 156 + .../portal/transport/EventWidgetMeta.java | 70 + .../portal/transport/ExternalAccessPerms.java | 180 + .../transport/ExternalAccessPermsDetail.java | 127 + .../portal/transport/ExternalAccessRole.java | 76 + .../portal/transport/ExternalAccessRolePerms.java | 66 + .../portal/transport/ExternalAccessUser.java | 65 + .../transport/ExternalAccessUserRoleDetail.java | 104 + .../portal/transport/ExternalAuthUserRole.java | 74 + .../transport/ExternalRequestFieldsValidator.java | 65 + .../portal/transport/ExternalRoleDescription.java | 140 + .../transport/FavoritesFunctionalMenuItem.java | 63 + .../transport/FavoritesFunctionalMenuItemJson.java | 75 + .../portal/transport/FieldsValidator.java | 143 + .../portal/transport/FunctionalMenuItem.java | 118 + .../transport/FunctionalMenuItemWithRoles.java | 78 + .../portal/transport/FunctionalMenuRole.java | 133 + .../GlobalRoleWithApplicationRoleFunction.java | 130 + .../onap/portalapp/portal/transport/LocalRole.java | 77 + .../portalapp/portal/transport/OnboardingApp.java | 123 + .../portal/transport/OnboardingWidget.java | 83 + .../portalapp/portal/transport/PortalAdmin.java | 103 + .../portal/transport/PortalAdminUserRole.java | 66 + .../portalapp/portal/transport/ProfileDetail.java | 97 + .../portalapp/portal/transport/RemoteRole.java | 91 + .../portal/transport/RemoteUserWithRoles.java | 214 ++ .../portal/transport/RoleInAppForUser.java | 123 + .../portal/transport/RolesInAppForUser.java | 51 + .../portal/transport/UserApplicationRoles.java | 104 + .../portal/transport/UserWithNameSurnameTitle.java | 100 + .../transport/WidgetCatalogPersonalization.java | 75 + .../org/onap/portalapp/portal/ueb/EPUebHelper.java | 229 ++ .../onap/portalapp/portal/ueb/EPUebMsgTypes.java | 45 + .../portal/utils/CustomLoggingFilter.java | 72 + .../portal/utils/EPCommonSystemProperties.java | 95 + .../portalapp/portal/utils/EcompPortalUtils.java | 563 ++++ .../onap/portalapp/portal/utils/EcompVersion.java | 51 + .../portalapp/portal/utils/HashMapFromList.java | 115 + .../portalapp/portal/utils/ParallelExecutor.java | 101 + .../portalapp/portal/utils/PortalConstants.java | 50 + .../onap/portalapp/service/AdminAuthExtension.java | 53 + .../onap/portalapp/service/EPProfileService.java | 54 + .../portalapp/service/EPProfileServiceImpl.java | 89 + .../service/RemoteWebServiceCallService.java | 72 + .../service/sessionmgt/CoreTimeoutHandler.java | 183 + .../service/sessionmgt/ManageService.java | 125 + .../service/sessionmgt/SessionCommunication.java | 290 ++ .../service/sessionmgt/TimeoutHandler.java | 269 ++ .../java/org/onap/portalapp/util/EPUserUtils.java | 401 +++ .../java/org/onap/portalapp/util/SystemType.java | 44 + .../openecomp/portalapp/command/EPLoginBean.java | 204 -- .../portalapp/command/PostSearchBean.java | 391 --- .../portalapp/config/NotificationCleanup.java | 58 - .../config/NotificationCleanupConfig.java | 80 - .../config/PortalCentralAccessConfiguration.java | 66 - .../openecomp/portalapp/config/SwaggerConfig.java | 76 - .../portalapp/config/SwaggerMVCConfig.java | 55 - .../controller/EPFusionBaseController.java | 122 - .../controller/EPRestrictedBaseController.java | 70 - .../EPRestrictedRESTfulBaseController.java | 72 - .../controller/EPUnRestrictedBaseController.java | 60 - .../sessionmgt/SessionCommunicationController.java | 90 - .../model/ExternalSystemRoleApproval.java | 56 - .../model/ExternalSystemUser.java | 92 - .../portalapp/lm/FusionLicenseManagerImpl.java | 106 - .../portalapp/lm/LicenseableClassImpl.java | 80 - .../java/org/openecomp/portalapp/model/Result.java | 55 - .../portal/controller/AppCatalogController.java | 148 - .../portal/controller/AppContactUsController.java | 242 -- .../portal/controller/AppsController.java | 740 ----- .../controller/AppsControllerExternalRequest.java | 392 --- .../portal/controller/AuditLogController.java | 130 - .../controller/BEPropertyReaderController.java | 64 - .../controller/BasicAuthAccountController.java | 215 -- .../controller/BasicAuthenticationController.java | 46 - .../portal/controller/CommonWidgetController.java | 99 - .../portal/controller/ConsulClientController.java | 113 - .../portal/controller/DashboardController.java | 404 --- .../DashboardSearchResultController.java | 261 -- .../controller/ExternalAccessRolesController.java | 551 --- .../controller/ExternalAppsRestfulController.java | 224 -- .../controller/FunctionalMenuController.java | 666 ---- .../portal/controller/GetAccessController.java | 91 - .../portal/controller/HealthCheckController.java | 249 -- .../portal/controller/ManifestController.java | 109 - .../portal/controller/MicroserviceController.java | 156 - .../controller/MicroserviceProxyController.java | 115 - .../portal/controller/PolicyController.java | 121 - .../portal/controller/PortalAdminController.java | 230 -- .../portal/controller/RoleManageController.java | 201 -- .../controller/RolesApprovalSystemController.java | 224 -- .../portal/controller/SchedulerController.java | 266 -- .../controller/SharedContextRestController.java | 384 --- .../portal/controller/TicketEventController.java | 229 -- .../portal/controller/UserController.java | 141 - .../controller/UserNotificationController.java | 235 -- .../portal/controller/UserRolesController.java | 546 --- .../controller/WebAnalyticsExtAppController.java | 257 -- .../controller/WidgetsCatalogController.java | 417 --- .../controller/WidgetsCatalogMarkupController.java | 103 - .../portalapp/portal/domain/AdminUserApp.java | 106 - .../portal/domain/AdminUserApplications.java | 114 - .../org/openecomp/portalapp/portal/domain/App.java | 80 - .../portalapp/portal/domain/AppContactUs.java | 104 - .../portal/domain/AppIdAndNameTransportModel.java | 81 - .../portalapp/portal/domain/AppsResponse.java | 94 - .../portalapp/portal/domain/BEProperty.java | 96 - .../portal/domain/BasicAuthCredentials.java | 113 - .../portal/domain/CentralRoleFunction.java | 145 - .../openecomp/portalapp/portal/domain/EPApp.java | 484 --- .../portalapp/portal/domain/EPAppRoleFunction.java | 87 - .../portalapp/portal/domain/EPEndpoint.java | 74 - .../portalapp/portal/domain/EPEndpointAccount.java | 83 - .../openecomp/portalapp/portal/domain/EPRole.java | 221 -- .../openecomp/portalapp/portal/domain/EPUser.java | 668 ---- .../portalapp/portal/domain/EPUserApp.java | 137 - .../portal/domain/EPUserAppCatalogRoles.java | 110 - .../portalapp/portal/domain/EPUserAppRoles.java | 81 - .../portal/domain/EPUserAppRolesRequest.java | 158 - .../portal/domain/EPUserAppRolesRequestDetail.java | 111 - .../domain/EPUserAppsManualSortPreference.java | 68 - .../portal/domain/EPUserAppsSortPreference.java | 62 - .../portal/domain/EPUserNotification.java | 75 - .../domain/EPWidgetsManualSortPreference.java | 88 - .../portalapp/portal/domain/EcompApp.java | 186 -- .../portalapp/portal/domain/EcompAppRole.java | 98 - .../portalapp/portal/domain/EcompAppRoleId.java | 101 - .../portalapp/portal/domain/EcompAuditLog.java | 84 - .../portal/domain/ExternalRoleDetails.java | 115 - .../portal/domain/ExternalSystemAccess.java | 67 - .../portal/domain/FunctionalMenuItemWithAppID.java | 114 - .../portalapp/portal/domain/GetAccessResult.java | 132 - .../portalapp/portal/domain/GetAccessResultId.java | 82 - .../portalapp/portal/domain/MicroserviceData.java | 164 - .../portal/domain/MicroserviceParameter.java | 96 - .../portal/domain/PersUserAppSelection.java | 133 - .../portal/domain/PersUserWidgetSelection.java | 136 - .../openecomp/portalapp/portal/domain/RoleApp.java | 132 - .../portalapp/portal/domain/SharedContext.java | 191 -- .../portalapp/portal/domain/UserIdRoleId.java | 95 - .../portalapp/portal/domain/UserRole.java | 109 - .../portalapp/portal/domain/UserRoles.java | 131 - .../openecomp/portalapp/portal/domain/Widget.java | 123 - .../portalapp/portal/domain/WidgetCatalog.java | 127 - .../portal/domain/WidgetCatalogParameter.java | 108 - .../portal/domain/WidgetParameterResult.java | 88 - .../portal/domain/WidgetServiceHeaders.java | 72 - .../portal/ecomp/model/AppCatalogItem.java | 276 -- .../ecomp/model/AppCategoryFunctionsItem.java | 158 - .../portal/ecomp/model/AppContactUsItem.java | 189 -- .../portal/ecomp/model/CommonWidgetsEnum.java | 54 - .../portal/ecomp/model/PortalRestResponse.java | 119 - .../portal/ecomp/model/PortalRestStatusEnum.java | 54 - .../portal/ecomp/model/SearchResultItem.java | 104 - .../exceptions/NoHealthyServiceException.java | 54 - .../interceptor/PortalResourceInterceptor.java | 336 -- .../portalapp/portal/listener/HealthMonitor.java | 364 -- .../portal/listener/UserContextListener.java | 69 - .../portal/listener/UserSessionListener.java | 140 - .../portalapp/portal/logging/aop/EPAuditLog.java | 49 - .../portal/logging/aop/EPEELFLoggerAdvice.java | 387 --- .../portalapp/portal/logging/aop/EPMetricsLog.java | 49 - .../logging/format/ApplicationCodes.properties | 159 - .../portal/logging/format/EPAppMessagesEnum.java | 286 -- .../portal/logging/format/EPErrorCodesEnum.java | 116 - .../portalapp/portal/logging/logic/EPLogUtil.java | 311 -- .../portalapp/portal/scheduler/RestObject.java | 62 - .../portal/scheduler/SchedulerProperties.java | 56 - .../portal/scheduler/SchedulerResponseWrapper.java | 108 - .../portal/scheduler/SchedulerRestInt.java | 62 - .../portal/scheduler/SchedulerRestInterface.java | 237 -- .../scheduler/SchedulerRestInterfaceFactory.java | 50 - .../scheduler/SchedulerRestInterfaceIfc.java | 58 - .../portalapp/portal/scheduler/SchedulerUtil.java | 137 - .../portal/scheduler/client/HttpBasicClient.java | 85 - .../portal/scheduler/client/HttpsBasicClient.java | 162 - .../portal/scheduler/policy/PolicyProperties.java | 63 - .../scheduler/policy/PolicyResponseWrapper.java | 93 - .../portal/scheduler/policy/PolicyRestInt.java | 85 - .../scheduler/policy/PolicyRestInterface.java | 272 -- .../policy/PolicyRestInterfaceFactory.java | 49 - .../scheduler/policy/PolicyRestInterfaceIfc.java | 116 - .../portal/scheduler/policy/PolicyUtil.java | 111 - .../portal/scheduler/policy/RestObject.java | 86 - .../scheduler/policy/rest/RequestDetails.java | 125 - .../portal/scheduler/properties/VidProperties.java | 58 - .../restobjects/GetTimeSlotsRestObject.java | 48 - .../restobjects/PostCreateNewVnfRestObject.java | 47 - .../restobjects/PostSubmitVnfChangeRestObject.java | 47 - .../portal/scheduler/restobjects/RestObject.java | 57 - .../util/CustomJacksonJaxBJsonProvider.java | 91 - .../scheduler/wrapper/GetTimeSlotsWrapper.java | 42 - .../scheduler/wrapper/PostCreateNewVnfWrapper.java | 76 - .../PostSubmitVnfChangeTimeSlotsWrapper.java | 75 - .../wrapper/SchedulerResponseWrapper.java | 94 - .../portal/service/AdminRolesService.java | 74 - .../portal/service/AdminRolesServiceImpl.java | 497 --- .../portal/service/AppContactUsService.java | 73 - .../portal/service/AppContactUsServiceImpl.java | 207 -- .../service/ApplicationsRestClientService.java | 71 - .../service/ApplicationsRestClientServiceImpl.java | 426 --- .../portalapp/portal/service/AppsCacheService.java | 60 - .../portal/service/AppsCacheServiceImple.java | 154 - .../portal/service/BasicAuthAccountService.java | 101 - .../service/BasicAuthAccountServiceImpl.java | 240 -- .../BasicAuthenticationCredentialService.java | 53 - .../BasicAuthenticationCredentialServiceImpl.java | 103 - .../portal/service/ConsulHealthService.java | 61 - .../portal/service/ConsulHealthServiceImpl.java | 114 - .../portal/service/DashboardSearchService.java | 55 - .../portal/service/DashboardSearchServiceImpl.java | 118 - .../portal/service/EPAppCommonServiceImpl.java | 1515 --------- .../portalapp/portal/service/EPAppService.java | 235 -- .../portalapp/portal/service/EPAuditService.java | 45 - .../portal/service/EPAuditServiceImpl.java | 130 - .../portalapp/portal/service/EPLdapService.java | 49 - .../portal/service/EPLdapServiceImpl.java | 268 -- .../portal/service/EPLeftMenuService.java | 62 - .../portal/service/EPLeftMenuServiceImpl.java | 213 -- .../portalapp/portal/service/EPLoginService.java | 90 - .../portal/service/EPLoginServiceImpl.java | 240 -- .../portal/service/EPRoleFunctionService.java | 68 - .../EPRoleFunctionServiceCentralizedImpl.java | 107 - .../portal/service/EPRoleFunctionServiceImpl.java | 116 - .../portalapp/portal/service/EPRoleService.java | 55 - .../portal/service/EPRoleServiceImpl.java | 197 -- .../portal/service/ExternalAccessRolesService.java | 297 -- .../service/ExternalAccessRolesServiceImpl.java | 2338 ------------- .../portal/service/FunctionalMenuService.java | 76 - .../portal/service/FunctionalMenuServiceImpl.java | 1000 ------ .../portalapp/portal/service/GetAccessService.java | 51 - .../portal/service/GetAccessServiceImpl.java | 79 - .../portalapp/portal/service/ManifestService.java | 51 - .../portal/service/ManifestServiceImpl.java | 80 - .../portal/service/MicroserviceProxyService.java | 77 - .../service/MicroserviceProxyServiceImpl.java | 242 -- .../portal/service/MicroserviceService.java | 105 - .../portal/service/MicroserviceServiceImpl.java | 219 -- .../portal/service/PersUserAppService.java | 60 - .../portal/service/PersUserAppServiceImpl.java | 159 - .../portal/service/PersUserWidgetService.java | 57 - .../portal/service/PersUserWidgetServiceImpl.java | 99 - .../portal/service/PortalAdminService.java | 49 - .../portal/service/PortalAdminServiceImpl.java | 308 -- .../portalapp/portal/service/SearchService.java | 48 - .../portal/service/SearchServiceImpl.java | 193 -- .../portal/service/SharedContextService.java | 118 - .../portal/service/SharedContextServiceImpl.java | 195 -- .../portal/service/TicketEventService.java | 46 - .../portal/service/UserNotificationService.java | 158 - .../service/UserNotificationServiceImpl.java | 262 -- .../portal/service/UserRolesCommonServiceImpl.java | 1952 ----------- .../portalapp/portal/service/UserRolesService.java | 109 - .../portalapp/portal/service/UserService.java | 54 - .../portalapp/portal/service/UserServiceImpl.java | 283 -- .../portal/service/WidgetParameterService.java | 82 - .../portal/service/WidgetParameterServiceImpl.java | 109 - .../portalapp/portal/service/WidgetService.java | 54 - .../portal/service/WidgetServiceImpl.java | 294 -- .../portal/transport/AllAppsWithRolesForUser.java | 58 - .../portalapp/portal/transport/Analytics.java | 84 - .../transport/AppCatalogPersonalization.java | 112 - .../portal/transport/AppNameIdIsAdmin.java | 132 - .../portal/transport/AppWithRolesForUser.java | 90 - .../portal/transport/AppsListWithAdminRole.java | 104 - .../portal/transport/BulkUploadRoleFunction.java | 105 - .../portal/transport/BulkUploadUserRoles.java | 120 - .../transport/BusinessCardApplicationRole.java | 126 - .../BusinessCardApplicationRolesList.java | 104 - .../portalapp/portal/transport/CentralApp.java | 452 --- .../portalapp/portal/transport/CentralRole.java | 284 -- .../portalapp/portal/transport/CentralUser.java | 500 --- .../portalapp/portal/transport/CentralUserApp.java | 91 - .../portalapp/portal/transport/CommonWidget.java | 156 - .../portal/transport/CommonWidgetMeta.java | 68 - .../portal/transport/EPAppsManualPreference.java | 132 - .../portal/transport/EPAppsSortPreference.java | 65 - .../transport/EPDeleteAppsManualSortPref.java | 69 - .../portal/transport/EPUserAppCurrentRoles.java | 135 - .../portal/transport/EPWidgetsSortPreference.java | 110 - .../portal/transport/EcompUserAppRoles.java | 103 - .../portalapp/portal/transport/EcompUserRoles.java | 209 -- .../portal/transport/EpNotificationItem.java | 357 -- .../portal/transport/EpNotificationItemExtVO.java | 137 - .../portal/transport/EpNotificationItemVO.java | 221 -- .../portal/transport/EpRoleNotificationItem.java | 108 - .../portalapp/portal/transport/EventWidget.java | 155 - .../portal/transport/EventWidgetMeta.java | 69 - .../portal/transport/ExternalAccessPerms.java | 178 - .../transport/ExternalAccessPermsDetail.java | 130 - .../portal/transport/ExternalAccessRole.java | 77 - .../portal/transport/ExternalAccessRolePerms.java | 67 - .../portal/transport/ExternalAccessUser.java | 65 - .../transport/ExternalAccessUserRoleDetail.java | 105 - .../transport/ExternalRequestFieldsValidator.java | 65 - .../portal/transport/ExternalRoleDescription.java | 140 - .../transport/FavoritesFunctionalMenuItem.java | 63 - .../transport/FavoritesFunctionalMenuItemJson.java | 75 - .../portal/transport/FieldsValidator.java | 143 - .../portal/transport/FunctionalMenuItem.java | 118 - .../transport/FunctionalMenuItemWithRoles.java | 78 - .../portal/transport/FunctionalMenuRole.java | 133 - .../portalapp/portal/transport/LocalRole.java | 77 - .../portalapp/portal/transport/OnboardingApp.java | 123 - .../portal/transport/OnboardingWidget.java | 83 - .../portalapp/portal/transport/PortalAdmin.java | 103 - .../portal/transport/PortalAdminUserRole.java | 66 - .../portalapp/portal/transport/ProfileDetail.java | 110 - .../portalapp/portal/transport/RemoteRole.java | 91 - .../portal/transport/RemoteUserWithRoles.java | 215 -- .../portal/transport/RoleInAppForUser.java | 123 - .../portal/transport/RolesInAppForUser.java | 51 - .../portal/transport/UserApplicationRoles.java | 104 - .../portal/transport/UserWithNameSurnameTitle.java | 100 - .../transport/WidgetCatalogPersonalization.java | 75 - .../portalapp/portal/ueb/EPUebHelper.java | 227 -- .../portalapp/portal/ueb/EPUebMsgTypes.java | 45 - .../portal/utils/CustomLoggingFilter.java | 72 - .../portal/utils/EPCommonSystemProperties.java | 92 - .../portalapp/portal/utils/EcompPortalUtils.java | 436 --- .../portalapp/portal/utils/EcompVersion.java | 51 - .../portalapp/portal/utils/HashMapFromList.java | 115 - .../portalapp/portal/utils/ParallelExecutor.java | 101 - .../portalapp/portal/utils/PortalConstants.java | 49 - .../portalapp/service/AdminAuthExtension.java | 54 - .../portalapp/service/EPProfileService.java | 54 - .../portalapp/service/EPProfileServiceImpl.java | 89 - .../service/RemoteWebServiceCallService.java | 72 - .../service/sessionmgt/CoreTimeoutHandler.java | 183 - .../service/sessionmgt/ManageService.java | 118 - .../service/sessionmgt/SessionCommunication.java | 290 -- .../service/sessionmgt/TimeoutHandler.java | 269 -- .../org/openecomp/portalapp/util/EPUserUtils.java | 385 --- .../org/openecomp/portalapp/util/SystemType.java | 44 - .../core/lm/FusionLicenseManagerUtils.java | 93 - .../src/main/webapp/WEB-INF/defs/definitions.xml | 6 +- .../webapp/WEB-INF/fusion/defs/definitions.xml | 6 +- .../src/main/webapp/WEB-INF/fusion/orm/EP.hbm.xml | 579 +++- .../main/webapp/WEB-INF/fusion/orm/Fusion.hbm.xml | 30 +- .../webapp/WEB-INF/fusion/orm/Workflow.hbm.xml | 8 +- .../src/main/webapp/WEB-INF/jsp/error.jsp | 6 +- .../src/main/webapp/WEB-INF/jsp/index.jsp | 6 +- .../src/main/webapp/WEB-INF/web.xml | 6 +- ecomp-portal-BE-common/src/main/webapp/index.jsp | 6 +- .../onap/portalapp/command/EPLoginBeanTest.java | 80 + .../onap/portalapp/command/PostSearchBeanTest.java | 150 + .../portalapp/config/NotificationCleanupTest.java | 86 + .../PortalCentralAccessConfigurationTest.java | 82 + .../controller/AppCatalogControllerTest.java | 281 ++ .../controller/AppContactUsControllerTest.java | 338 ++ .../AppsControllerExternalRequestTest.java | 310 ++ .../portal/controller/AppsControllerTest.java | 955 ++++++ .../portal/controller/AuditLogControllerTest.java | 139 + .../controller/BEPropertyReaderControllerTest.java | 109 + .../controller/BasicAuthAccountControllerTest.java | 301 ++ .../controller/CommonWidgetControllerTest.java | 121 + .../controller/ConsulClientControllerTest.java | 179 + .../portal/controller/DashboardControllerTest.java | 467 +++ .../DashboardSearchResultControllerTest.java | 403 +++ .../controller/EPFusionBaseControllerTest.java | 151 + .../controller/EPRestrictedBaseControllerTest.java | 70 + .../ExternalAccessRolesControllerTest.java | 711 ++++ .../ExternalAppsRestfulControllerTest.java | 211 ++ .../controller/FunctionalMenuControllerTest.java | 607 ++++ .../portal/controller/GetAccessControllerTest.java | 108 + .../portal/controller/ManifestControllerTest.java | 93 + .../controller/MicroserviceControllerTest.java | 272 ++ .../MicroserviceProxyControllerTest.java | 143 + .../portal/controller/PolicyControllerTest.java | 148 + .../controller/PortalAdminControllerTest.java | 192 ++ .../controller/RoleManageControllerTest.java | 525 +++ .../RolesApprovalSystemControllerTest.java | 373 +++ .../portal/controller/SchedulerControllerTest.java | 110 + .../SessionCommunicationControllerTest.java | 96 + .../portal/controller/SharedContextRestClient.java | 299 ++ .../SharedContextRestControllerTest.java | 144 + .../controller/SharedContextTestProperties.java | 99 + .../controller/TicketEventControllerTest.java | 207 ++ .../portal/controller/UserControllerTest.java | 176 + .../controller/UserNotificationControllerTest.java | 281 ++ .../portal/controller/UserRolesControllerTest.java | 326 ++ .../WebAnalyticsExtAppControllerTest.java | 147 + .../controller/WidgetsCatalogControllerTest.java | 139 + .../WidgetsCatalogMarkupControllerTest.java | 110 + .../controller/shared-context-test.properties | 28 + .../org/onap/portalapp/portal/core/MockEPUser.java | 102 + .../portal/core/PopulateSampleTestData.java | 85 + .../portal/core/RemoveSampleTestData.java | 84 + .../portalapp/portal/core/RestURLsTestSuite.java | 353 ++ .../portalapp/portal/domain/AdminUserAppTest.java | 73 + .../portal/domain/AdminUserApplicationsTest.java | 94 + .../portalapp/portal/domain/AppContactUsTest.java | 69 + .../portal/domain/CentralRoleFunctionTest.java | 67 + .../portal/domain/CentralV2RoleFunctionTest.java | 71 + .../portal/domain/EPAppRoleFunctionTest.java | 64 + .../onap/portalapp/portal/domain/EPAppTest.java | 98 + .../portal/domain/EPEndpointAccountTest.java | 66 + .../portalapp/portal/domain/EPEndpointTest.java | 64 + .../onap/portalapp/portal/domain/EPRoleTest.java | 73 + .../portal/domain/EPUserAppCatalogRolesTest.java | 69 + .../domain/EPUserAppRolesRequestDetailTest.java | 88 + .../portal/domain/EPUserAppRolesTest.java | 65 + .../portalapp/portal/domain/EPUserAppTest.java | 122 + .../domain/EPUserAppsManualSortPreferenceTest.java | 66 + .../domain/EPUserAppsSortPreferenceTest.java | 80 + .../portal/domain/EPUserNotificationTest.java | 71 + .../onap/portalapp/portal/domain/EPUserTest.java | 151 + .../domain/EPWidgetsManualSortPreferenceTest.java | 73 + .../portal/domain/EcompAppRoleIdTest.java | 70 + .../portalapp/portal/domain/EcompAppRoleTest.java | 68 + .../portal/domain/ExternalRoleDetailsTest.java | 96 + .../portal/domain/ExternalSystemAccessTest.java | 64 + .../domain/ExternalSystemRoleApprovalTest.java | 60 + .../domain/FunctionalMenuItemWithAppIDTest.java | 65 + .../portal/domain/GetAccessResultIdTest.java | 66 + .../portal/domain/MicroserviceDataTest.java | 94 + .../portal/domain/MicroserviceParameterTest.java | 68 + .../portal/domain/PersUserAppSelectionTest.java | 72 + .../portal/domain/PersUserWidgetSelectionTest.java | 73 + .../onap/portalapp/portal/domain/ResultTest.java | 66 + .../portalapp/portal/domain/SharedContextTest.java | 73 + .../portalapp/portal/domain/UserIdRoleIdTest.java | 66 + .../portal/domain/WidgetCatalogParameterTest.java | 70 + .../portalapp/portal/domain/WidgetCatalogTest.java | 121 + .../portal/domain/WidgetParameterResultTest.java | 70 + .../onap/portalapp/portal/domain/WidgetTest.java | 71 + .../exceptions/NoHealthyServiceExceptionTest.java | 60 + .../ApplicationCommonContextTestSuite.java | 191 ++ .../portal/framework/MockitoTestSuite.java | 94 + .../portal/listener/HealthMonitorTest.java | 55 + .../portalapp/portal/model/AppCatalogItemTest.java | 72 + .../portal/model/AppCategoryFunctionsItemTest.java | 79 + .../portal/model/AppContactUsItemTest.java | 86 + .../portal/model/SearchResultItemTest.java | 78 + .../service/AppContactUsServiceImplTest.java | 184 + .../service/DashboardSearchServiceImplTest.java | 151 + .../EPRoleFunctionServiceCentralizedImplTest.java | 130 + .../service/EPRoleFunctionServiceImplTest.java | 135 + .../portal/service/EPRoleServiceImplTest.java | 245 ++ .../ExternalAccessRolesServiceImplTest.java | 456 +++ .../service/FunctionalMenuMockServiceImplTest.java | 222 ++ .../service/FunctionalMenuServiceImplTest.java | 92 + .../portal/service/GetAccessServiceImplTest.java | 87 + .../portal/service/ManifestServiceImplTest.java | 92 + .../portal/service/PersUserAppServiceImplTest.java | 218 ++ .../portalapp/portal/transport/AnalyticsTest.java | 70 + .../transport/AppCatalogPersonalizationTest.java | 63 + .../portal/transport/AppNameIdIsAdminTest.java | 75 + .../portal/transport/AppWithRolesForUserTest.java | 70 + .../transport/AppsListWithAdminRoleTest.java | 83 + .../transport/BulkUploadRoleFunctionTest.java | 72 + .../portal/transport/BulkUploadUserRolesTest.java | 74 + .../transport/BusinessCardApplicationRoleTest.java | 64 + .../BusinessCardApplicationRolesListTest.java | 64 + .../portalapp/portal/transport/CentralAppTest.java | 86 + .../portal/transport/CentralRoleTest.java | 96 + .../portal/transport/CentralUserAppTest.java | 78 + .../portal/transport/CentralUserTest.java | 89 + .../transport/EPAppsManualPreferenceTest.java | 84 + .../portal/transport/EPAppsSortPreferenceTest.java | 66 + .../transport/EPDeleteAppsManualSortPrefTest.java | 66 + .../transport/EPUserAppCurrentRolesTest.java | 78 + .../transport/EPWidgetsSortPreferenceTest.java | 78 + .../portal/transport/EcompUserAppRolesTest.java | 70 + .../transport/EpNotificationItemExtVOTest.java | 70 + .../portal/transport/EpNotificationItemTest.java | 100 + .../portal/transport/EpNotificationItemVOTest.java | 83 + .../transport/EpRoleNotificationItemTest.java | 68 + .../transport/ExternalAccessPermsDetailTest.java | 76 + .../portal/transport/ExternalAccessPermsTest.java | 79 + .../transport/ExternalAccessRolePermsTest.java | 72 + .../portal/transport/ExternalAccessRoleTest.java | 63 + .../ExternalAccessUserRoleDetailTest.java | 84 + .../portal/transport/ExternalAccessUserTest.java | 61 + .../transport/ExternalRoleDescriptionTest.java | 72 + .../portal/transport/FunctionalMenuItemTest.java | 79 + .../portal/transport/FunctionalMenuRoleTest.java | 77 + .../portal/transport/RemoteUserWithRolesTest.java | 102 + .../portal/transport/RoleInAppForUserTest.java | 74 + .../portal/transport/UserApplicationRolesTest.java | 95 + .../transport/UserWithNameSurnameTitleTest.java | 56 + .../WidgetCatalogPersonalizationTest.java | 62 + .../portal/utils/EcompPortalUtilsTest.java | 56 + .../portalapp/command/EPLoginBeanTest.java | 80 - .../portalapp/command/PostSearchBeanTest.java | 149 - .../portalapp/config/NotificationCleanupTest.java | 84 - .../PortalCentralAccessConfigurationTest.java | 81 - .../controller/AppCatalogControllerTest.java | 281 -- .../controller/AppContactUsControllerTest.java | 338 -- .../AppsControllerExternalRequestTest.java | 310 -- .../portal/controller/AppsControllerTest.java | 951 ------ .../portal/controller/AuditLogControllerTest.java | 139 - .../controller/BEPropertyReaderControllerTest.java | 109 - .../controller/BasicAuthAccountControllerTest.java | 301 -- .../controller/CommonWidgetControllerTest.java | 121 - .../controller/ConsulClientControllerTest.java | 179 - .../portal/controller/DashboardControllerTest.java | 463 --- .../DashboardSearchResultControllerTest.java | 403 --- .../controller/EPFusionBaseControllerTest.java | 151 - .../controller/EPRestrictedBaseControllerTest.java | 69 - .../ExternalAccessRolesControllerTest.java | 569 ---- .../ExternalAppsRestfulControllerTest.java | 211 -- .../controller/FunctionalMenuControllerTest.java | 607 ---- .../portal/controller/GetAccessControllerTest.java | 108 - .../portal/controller/ManifestControllerTest.java | 93 - .../controller/MicroserviceControllerTest.java | 271 -- .../MicroserviceProxyControllerTest.java | 143 - .../portal/controller/PolicyControllerTest.java | 159 - .../controller/PortalAdminControllerTest.java | 189 -- .../controller/RoleManageControllerTest.java | 226 -- .../RolesApprovalSystemControllerTest.java | 373 --- .../portal/controller/SchedulerControllerTest.java | 109 - .../SessionCommunicationControllerTest.java | 95 - .../portal/controller/SharedContextRestClient.java | 299 -- .../SharedContextRestControllerTest.java | 145 - .../controller/SharedContextTestProperties.java | 99 - .../controller/TicketEventControllerTest.java | 206 -- .../portal/controller/UserControllerTest.java | 178 - .../controller/UserNotificationControllerTest.java | 281 -- .../portal/controller/UserRolesControllerTest.java | 326 -- .../WebAnalyticsExtAppControllerTest.java | 141 - .../WidgetsCatalogMarkupControllerTest.java | 108 - .../controller/shared-context-test.properties | 46 - .../portalapp/portal/core/MockEPUser.java | 102 - .../portalapp/portal/domain/AdminUserAppTest.java | 73 - .../portal/domain/AdminUserApplicationsTest.java | 94 - .../portalapp/portal/domain/AppContactUsTest.java | 69 - .../portal/domain/CentralRoleFunctionTest.java | 68 - .../portal/domain/EPAppRoleFunctionTest.java | 64 - .../portalapp/portal/domain/EPAppTest.java | 98 - .../portal/domain/EPEndpointAccountTest.java | 66 - .../portalapp/portal/domain/EPEndpointTest.java | 64 - .../portalapp/portal/domain/EPRoleTest.java | 73 - .../portal/domain/EPUserAppCatalogRolesTest.java | 69 - .../domain/EPUserAppRolesRequestDetailTest.java | 88 - .../portal/domain/EPUserAppRolesTest.java | 65 - .../portalapp/portal/domain/EPUserAppTest.java | 122 - .../domain/EPUserAppsManualSortPreferenceTest.java | 66 - .../domain/EPUserAppsSortPreferenceTest.java | 80 - .../portal/domain/EPUserNotificationTest.java | 71 - .../portalapp/portal/domain/EPUserTest.java | 151 - .../domain/EPWidgetsManualSortPreferenceTest.java | 73 - .../portal/domain/EcompAppRoleIdTest.java | 70 - .../portalapp/portal/domain/EcompAppRoleTest.java | 68 - .../portal/domain/ExternalRoleDetailsTest.java | 96 - .../portal/domain/ExternalSystemAccessTest.java | 64 - .../domain/ExternalSystemRoleApprovalTest.java | 60 - .../domain/FunctionalMenuItemWithAppIDTest.java | 65 - .../portal/domain/GetAccessResultIdTest.java | 66 - .../portal/domain/MicroserviceDataTest.java | 94 - .../portal/domain/MicroserviceParameterTest.java | 68 - .../portal/domain/PersUserAppSelectionTest.java | 72 - .../portal/domain/PersUserWidgetSelectionTest.java | 73 - .../portalapp/portal/domain/ResultTest.java | 66 - .../portalapp/portal/domain/SharedContextTest.java | 73 - .../portalapp/portal/domain/UserIdRoleIdTest.java | 66 - .../portal/domain/WidgetCatalogParameterTest.java | 70 - .../portalapp/portal/domain/WidgetCatalogTest.java | 121 - .../portal/domain/WidgetParameterResultTest.java | 70 - .../portalapp/portal/domain/WidgetTest.java | 71 - .../exceptions/NoHealthyServiceExceptionTest.java | 60 - .../portal/framework/MockitoTestSuite.java | 94 - .../portal/listener/HealthMonitorTest.java | 54 - .../portal/lm/FusionLicenseManagerImplTest.java | 66 - .../portal/lm/LicenseableClassImplTest.java | 68 - .../portalapp/portal/model/AppCatalogItemTest.java | 72 - .../portal/model/AppCategoryFunctionsItemTest.java | 79 - .../portal/model/AppContactUsItemTest.java | 86 - .../portal/model/SearchResultItemTest.java | 78 - .../service/AppContactUsServiceImplTest.java | 184 - .../service/DashboardSearchServiceImplTest.java | 151 - .../EPRoleFunctionServiceCentralizedImplTest.java | 126 - .../service/EPRoleFunctionServiceImplTest.java | 135 - .../portal/service/EPRoleServiceImplTest.java | 245 -- .../ExternalAccessRolesServiceImplTest.java | 428 --- .../service/FunctionalMenuMockServiceImplTest.java | 222 -- .../portal/service/GetAccessServiceImplTest.java | 87 - .../portal/service/LicenseableClassImplTest.java | 98 - .../portal/service/ManifestServiceImplTest.java | 92 - .../portal/service/PersUserAppServiceImplTest.java | 218 -- .../portalapp/portal/transport/AnalyticsTest.java | 71 - .../transport/AppCatalogPersonalizationTest.java | 62 - .../portal/transport/AppNameIdIsAdminTest.java | 75 - .../portal/transport/AppWithRolesForUserTest.java | 69 - .../transport/AppsListWithAdminRoleTest.java | 83 - .../transport/BulkUploadRoleFunctionTest.java | 72 - .../portal/transport/BulkUploadUserRolesTest.java | 74 - .../transport/BusinessCardApplicationRoleTest.java | 63 - .../BusinessCardApplicationRolesListTest.java | 63 - .../portalapp/portal/transport/CentralAppTest.java | 139 - .../portal/transport/CentralRoleTest.java | 96 - .../portal/transport/CentralUserAppTest.java | 78 - .../portal/transport/CentralUserTest.java | 89 - .../transport/EPAppsManualPreferenceTest.java | 84 - .../portal/transport/EPAppsSortPreferenceTest.java | 66 - .../transport/EPDeleteAppsManualSortPrefTest.java | 66 - .../transport/EPUserAppCurrentRolesTest.java | 78 - .../transport/EPWidgetsSortPreferenceTest.java | 78 - .../portal/transport/EcompUserAppRolesTest.java | 70 - .../transport/EpNotificationItemExtVOTest.java | 70 - .../portal/transport/EpNotificationItemTest.java | 101 - .../portal/transport/EpNotificationItemVOTest.java | 80 - .../transport/EpRoleNotificationItemTest.java | 68 - .../transport/ExternalAccessPermsDetailTest.java | 76 - .../portal/transport/ExternalAccessPermsTest.java | 79 - .../transport/ExternalAccessRolePermsTest.java | 72 - .../portal/transport/ExternalAccessRoleTest.java | 63 - .../ExternalAccessUserRoleDetailTest.java | 84 - .../portal/transport/ExternalAccessUserTest.java | 61 - .../transport/ExternalRoleDescriptionTest.java | 72 - .../portal/transport/FunctionalMenuItemTest.java | 79 - .../portal/transport/FunctionalMenuRoleTest.java | 77 - .../portal/transport/RemoteUserWithRolesTest.java | 102 - .../portal/transport/RoleInAppForUserTest.java | 74 - .../portal/transport/UserApplicationRolesTest.java | 95 - .../transport/UserWithNameSurnameTitleTest.java | 56 - .../WidgetCatalogPersonalizationTest.java | 62 - .../portal/utils/EcompPortalUtilsTest.java | 55 - 869 files changed, 72792 insertions(+), 65079 deletions(-) create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/command/EPLoginBean.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/command/PostSearchBean.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/ExternalSecurityConfig.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/NotificationCleanup.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/NotificationCleanupConfig.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/PortalCentralAccessConfiguration.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/SwaggerConfig.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/SwaggerMVCConfig.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPFusionBaseController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPRestrictedBaseController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPRestrictedRESTfulBaseController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPUnRestrictedBaseController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/sessionmgt/SessionCommunicationController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/externalsystemapproval/model/ExternalSystemRoleApproval.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/externalsystemapproval/model/ExternalSystemUser.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/model/Result.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppCatalogController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppContactUsController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsControllerExternalRequest.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AuditLogController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BEPropertyReaderController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BasicAuthAccountController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BasicAuthenticationController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/CommonWidgetController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ConsulClientController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/DashboardController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/DashboardSearchResultController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/EncryptAdminController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ExternalAccessRolesController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ExternalAppsRestfulController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/FunctionalMenuController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/GetAccessController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/HealthCheckController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ManifestController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/MicroserviceController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/MicroserviceProxyController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/PortalAdminController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/RoleManageController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/RolesApprovalSystemController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SchedulerAuxController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SchedulerController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SharedContextRestController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/TicketEventController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserNotificationController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserRolesController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WebAnalyticsExtAppController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogMarkupController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsController.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AdminUserApp.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AdminUserApplications.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/App.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppContactUs.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppIdAndNameTransportModel.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppsResponse.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/BEProperty.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/BasicAuthCredentials.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/CentralV2RoleFunction.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/CentralizedApp.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPApp.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPAppRoleFunction.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPEndpoint.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPEndpointAccount.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUser.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserApp.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppCatalogRoles.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRoles.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequest.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequestDetail.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreference.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppsSortPreference.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserNotification.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreference.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompApp.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAppRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAppRoleId.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAuditLog.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/ExternalRoleDetails.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/ExternalSystemAccess.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/FunctionalMenuItemWithAppID.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/GetAccessResult.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/GetAccessResultId.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/MicroserviceData.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/MicroserviceParameter.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/PersUserAppSelection.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/PersUserWidgetSelection.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/RoleApp.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/SharedContext.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserIdRoleId.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserRoles.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/Widget.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetCatalog.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetCatalogParameter.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetParameterResult.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetServiceHeaders.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppCatalogItem.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppCategoryFunctionsItem.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppContactUsItem.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/CommonWidgetsEnum.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/PortalRestResponse.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/PortalRestStatusEnum.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/SearchResultItem.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/DeleteDomainObjectFailedException.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/DuplicateRecordException.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/ExternalAuthSystemException.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InactiveApplicationException.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidApplicationException.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidRoleException.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidUserException.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/NoHealthyServiceException.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/NonCentralizedAppException.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/RoleFunctionException.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/SecurityVulnerabilitiesException.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/interceptor/PortalResourceInterceptor.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/HealthMonitor.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/UserContextListener.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/UserSessionListener.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPAuditLog.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPEELFLoggerAdvice.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPMetricsLog.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/ApplicationCodes.properties create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/EPAppMessagesEnum.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/EPErrorCodesEnum.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/logic/EPLogUtil.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/RestObject.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerProperties.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerResponseWrapper.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInt.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterface.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterfaceFactory.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterfaceIfc.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerUtil.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/client/HttpBasicClient.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/client/HttpsBasicClient.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/policy/rest/RequestDetails.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/GetTimeSlotsRestObject.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/PostCreateNewVnfRestObject.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/PostSubmitVnfChangeRestObject.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/RestObject.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/util/CustomJacksonJaxBJsonProvider.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/GetTimeSlotsWrapper.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/PostCreateNewVnfWrapper.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/PostSubmitVnfChangeTimeSlotsWrapper.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/SchedulerResponseWrapper.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/RestObject.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxResponseWrapper.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInt.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterface.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterfaceFactory.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterfaceIfc.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxUtil.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AdminRolesService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AdminRolesServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppContactUsService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppContactUsServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ApplicationsRestClientService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ApplicationsRestClientServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppsCacheService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppsCacheServiceImple.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthAccountService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthAccountServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthenticationCredentialService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthenticationCredentialServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ConsulHealthService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ConsulHealthServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/DashboardSearchService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/DashboardSearchServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppCommonServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAuditService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAuditServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLdapService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLdapServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLoginService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLoginServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceCentralizedImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ExternalAccessRolesService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/FunctionalMenuService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/FunctionalMenuServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/GetAccessService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/GetAccessServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ManifestService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ManifestServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceProxyService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceProxyServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserAppService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserAppServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserWidgetService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserWidgetServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PortalAdminService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PortalAdminServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SearchService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SearchServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SharedContextService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SharedContextServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/TicketEventService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserNotificationService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserNotificationServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetParameterService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetParameterServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AllAppsWithRolesForUser.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/Analytics.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppCatalogPersonalization.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppNameIdIsAdmin.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppWithRolesForUser.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppsListWithAdminRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BulkUploadRoleFunction.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BulkUploadUserRoles.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRolesList.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralApp.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralRoleFunction.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralUser.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralUserApp.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2Role.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2User.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2UserApp.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CommonWidget.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CommonWidgetMeta.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPAppsManualPreference.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPAppsSortPreference.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPDeleteAppsManualSortPref.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPUserAppCurrentRoles.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPWidgetsSortPreference.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EcompUserAppRoles.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EcompUserRoles.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItem.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItemExtVO.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItemVO.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpRoleNotificationItem.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EventWidget.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EventWidgetMeta.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessPerms.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessPermsDetail.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessRolePerms.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessUser.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessUserRoleDetail.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAuthUserRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalRequestFieldsValidator.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalRoleDescription.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FavoritesFunctionalMenuItem.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FavoritesFunctionalMenuItemJson.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FieldsValidator.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuItem.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuItemWithRoles.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/GlobalRoleWithApplicationRoleFunction.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/LocalRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingApp.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingWidget.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/PortalAdmin.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/PortalAdminUserRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ProfileDetail.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RemoteRole.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RemoteUserWithRoles.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RoleInAppForUser.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RolesInAppForUser.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/UserApplicationRoles.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/UserWithNameSurnameTitle.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/WidgetCatalogPersonalization.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ueb/EPUebHelper.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ueb/EPUebMsgTypes.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/CustomLoggingFilter.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EPCommonSystemProperties.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EcompPortalUtils.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EcompVersion.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/HashMapFromList.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/ParallelExecutor.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/PortalConstants.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/AdminAuthExtension.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/EPProfileService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/EPProfileServiceImpl.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/RemoteWebServiceCallService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/CoreTimeoutHandler.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/ManageService.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/SessionCommunication.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/TimeoutHandler.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/util/EPUserUtils.java create mode 100644 ecomp-portal-BE-common/src/main/java/org/onap/portalapp/util/SystemType.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/command/EPLoginBean.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/command/PostSearchBean.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/NotificationCleanup.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/NotificationCleanupConfig.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/PortalCentralAccessConfiguration.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/SwaggerConfig.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/SwaggerMVCConfig.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPFusionBaseController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPRestrictedBaseController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPRestrictedRESTfulBaseController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPUnRestrictedBaseController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/sessionmgt/SessionCommunicationController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/externalsystemapproval/model/ExternalSystemRoleApproval.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/externalsystemapproval/model/ExternalSystemUser.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/model/Result.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppCatalogController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppContactUsController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppsController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppsControllerExternalRequest.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AuditLogController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BEPropertyReaderController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BasicAuthAccountController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BasicAuthenticationController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/CommonWidgetController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ConsulClientController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/DashboardController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/DashboardSearchResultController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ExternalAccessRolesController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ExternalAppsRestfulController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/FunctionalMenuController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/GetAccessController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/HealthCheckController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ManifestController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/MicroserviceController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/MicroserviceProxyController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/PolicyController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/PortalAdminController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/RoleManageController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/RolesApprovalSystemController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/SchedulerController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/SharedContextRestController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/TicketEventController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserNotificationController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserRolesController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WebAnalyticsExtAppController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogMarkupController.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AdminUserApp.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AdminUserApplications.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/App.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppContactUs.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppIdAndNameTransportModel.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppsResponse.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/BEProperty.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/BasicAuthCredentials.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/CentralRoleFunction.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPApp.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPAppRoleFunction.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPEndpoint.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPEndpointAccount.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPRole.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUser.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserApp.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppCatalogRoles.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRoles.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequest.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequestDetail.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppsManualSortPreference.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppsSortPreference.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserNotification.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPWidgetsManualSortPreference.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompApp.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAppRole.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAppRoleId.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAuditLog.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/ExternalRoleDetails.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/ExternalSystemAccess.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/FunctionalMenuItemWithAppID.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/GetAccessResult.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/GetAccessResultId.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/MicroserviceData.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/MicroserviceParameter.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/PersUserAppSelection.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/PersUserWidgetSelection.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/RoleApp.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/SharedContext.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserIdRoleId.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserRole.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserRoles.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/Widget.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetCatalog.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetCatalogParameter.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetParameterResult.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetServiceHeaders.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppCatalogItem.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppCategoryFunctionsItem.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppContactUsItem.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/CommonWidgetsEnum.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/PortalRestResponse.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/PortalRestStatusEnum.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/SearchResultItem.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/exceptions/NoHealthyServiceException.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/interceptor/PortalResourceInterceptor.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/HealthMonitor.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/UserContextListener.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/UserSessionListener.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPAuditLog.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPEELFLoggerAdvice.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPMetricsLog.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/ApplicationCodes.properties delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/EPAppMessagesEnum.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/EPErrorCodesEnum.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/logic/EPLogUtil.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/RestObject.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerProperties.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerResponseWrapper.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInt.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterface.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterfaceFactory.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterfaceIfc.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerUtil.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/client/HttpBasicClient.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/client/HttpsBasicClient.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyProperties.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyResponseWrapper.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInt.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterface.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterfaceFactory.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterfaceIfc.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyUtil.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/RestObject.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/rest/RequestDetails.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/properties/VidProperties.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/GetTimeSlotsRestObject.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/PostCreateNewVnfRestObject.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/PostSubmitVnfChangeRestObject.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/RestObject.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/util/CustomJacksonJaxBJsonProvider.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/GetTimeSlotsWrapper.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/PostCreateNewVnfWrapper.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/PostSubmitVnfChangeTimeSlotsWrapper.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/SchedulerResponseWrapper.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AdminRolesService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AdminRolesServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppContactUsService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppContactUsServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ApplicationsRestClientService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ApplicationsRestClientServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppsCacheService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppsCacheServiceImple.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthAccountService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthAccountServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthenticationCredentialService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthenticationCredentialServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ConsulHealthService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ConsulHealthServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/DashboardSearchService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/DashboardSearchServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAppCommonServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAppService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAuditService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAuditServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLdapService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLdapServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLeftMenuService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLeftMenuServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLoginService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLoginServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceCentralizedImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/FunctionalMenuService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/FunctionalMenuServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/GetAccessService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/GetAccessServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ManifestService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ManifestServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceProxyService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceProxyServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserAppService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserAppServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserWidgetService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserWidgetServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PortalAdminService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PortalAdminServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SearchService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SearchServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SharedContextService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SharedContextServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/TicketEventService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserNotificationService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserNotificationServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesCommonServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetParameterService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetParameterServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AllAppsWithRolesForUser.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/Analytics.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppCatalogPersonalization.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppNameIdIsAdmin.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppWithRolesForUser.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppsListWithAdminRole.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BulkUploadRoleFunction.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BulkUploadUserRoles.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRole.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRolesList.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralApp.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralRole.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralUser.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralUserApp.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CommonWidget.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CommonWidgetMeta.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPAppsManualPreference.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPAppsSortPreference.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPDeleteAppsManualSortPref.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPUserAppCurrentRoles.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPWidgetsSortPreference.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EcompUserAppRoles.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EcompUserRoles.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItem.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItemExtVO.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItemVO.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpRoleNotificationItem.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EventWidget.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EventWidgetMeta.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessPerms.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsDetail.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessRole.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessRolePerms.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessUser.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserRoleDetail.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalRequestFieldsValidator.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalRoleDescription.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FavoritesFunctionalMenuItem.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FavoritesFunctionalMenuItemJson.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FieldsValidator.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItem.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItemWithRoles.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuRole.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/LocalRole.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingApp.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingWidget.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/PortalAdmin.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/PortalAdminUserRole.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ProfileDetail.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RemoteRole.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RemoteUserWithRoles.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RoleInAppForUser.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RolesInAppForUser.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/UserApplicationRoles.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/UserWithNameSurnameTitle.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/WidgetCatalogPersonalization.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ueb/EPUebHelper.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ueb/EPUebMsgTypes.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/CustomLoggingFilter.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EPCommonSystemProperties.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EcompPortalUtils.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EcompVersion.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/HashMapFromList.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/ParallelExecutor.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/PortalConstants.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/AdminAuthExtension.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/EPProfileService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/EPProfileServiceImpl.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/RemoteWebServiceCallService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/CoreTimeoutHandler.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/ManageService.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/SessionCommunication.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/TimeoutHandler.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/util/EPUserUtils.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/util/SystemType.java delete mode 100644 ecomp-portal-BE-common/src/main/java/org/openecomp/portalsdk/core/lm/FusionLicenseManagerUtils.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/command/EPLoginBeanTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/command/PostSearchBeanTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/config/NotificationCleanupTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/config/PortalCentralAccessConfigurationTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppCatalogControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppContactUsControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppsControllerExternalRequestTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppsControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AuditLogControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/BEPropertyReaderControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/BasicAuthAccountControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/CommonWidgetControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ConsulClientControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardSearchResultControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/EPFusionBaseControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/EPRestrictedBaseControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ExternalAccessRolesControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ExternalAppsRestfulControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/FunctionalMenuControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/GetAccessControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ManifestControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/MicroserviceControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/MicroserviceProxyControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/PolicyControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/PortalAdminControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/RoleManageControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/RolesApprovalSystemControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SchedulerControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SessionCommunicationControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextRestClient.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextRestControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextTestProperties.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/TicketEventControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserNotificationControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserRolesControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WebAnalyticsExtAppControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WidgetsCatalogControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WidgetsCatalogMarkupControllerTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/shared-context-test.properties create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/MockEPUser.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/PopulateSampleTestData.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RemoveSampleTestData.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RestURLsTestSuite.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AdminUserAppTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AdminUserApplicationsTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AppContactUsTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/CentralRoleFunctionTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/CentralV2RoleFunctionTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPAppRoleFunctionTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPAppTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPEndpointAccountTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPEndpointTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPRoleTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppCatalogRolesTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequestDetailTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppRolesTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsSortPreferenceTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserNotificationTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EcompAppRoleIdTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EcompAppRoleTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalRoleDetailsTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalSystemAccessTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalSystemRoleApprovalTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/FunctionalMenuItemWithAppIDTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/GetAccessResultIdTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/MicroserviceDataTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/MicroserviceParameterTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/PersUserAppSelectionTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/PersUserWidgetSelectionTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ResultTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/SharedContextTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/UserIdRoleIdTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetCatalogParameterTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetCatalogTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetParameterResultTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/exceptions/NoHealthyServiceExceptionTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/ApplicationCommonContextTestSuite.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/MockitoTestSuite.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/listener/HealthMonitorTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppCatalogItemTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppCategoryFunctionsItemTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppContactUsItemTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/SearchResultItemTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/AppContactUsServiceImplTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/DashboardSearchServiceImplTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceCentralizedImplTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceImplTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleServiceImplTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/FunctionalMenuMockServiceImplTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/FunctionalMenuServiceImplTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/GetAccessServiceImplTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ManifestServiceImplTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/PersUserAppServiceImplTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AnalyticsTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppCatalogPersonalizationTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppNameIdIsAdminTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppWithRolesForUserTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppsListWithAdminRoleTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BulkUploadRoleFunctionTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BulkUploadUserRolesTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRoleTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRolesListTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralAppTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralRoleTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralUserAppTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralUserTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPAppsManualPreferenceTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPAppsSortPreferenceTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPDeleteAppsManualSortPrefTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPUserAppCurrentRolesTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPWidgetsSortPreferenceTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EcompUserAppRolesTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemExtVOTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemVOTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpRoleNotificationItemTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessPermsDetailTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessPermsTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessRolePermsTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessRoleTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessUserRoleDetailTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessUserTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalRoleDescriptionTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/FunctionalMenuItemTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/FunctionalMenuRoleTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/RemoteUserWithRolesTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/RoleInAppForUserTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/UserApplicationRolesTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/UserWithNameSurnameTitleTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/WidgetCatalogPersonalizationTest.java create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/utils/EcompPortalUtilsTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/command/EPLoginBeanTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/command/PostSearchBeanTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/config/NotificationCleanupTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/config/PortalCentralAccessConfigurationTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppCatalogControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppContactUsControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppsControllerExternalRequestTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppsControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AuditLogControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/BEPropertyReaderControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/BasicAuthAccountControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/CommonWidgetControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ConsulClientControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/DashboardControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/DashboardSearchResultControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/EPFusionBaseControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/EPRestrictedBaseControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ExternalAccessRolesControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ExternalAppsRestfulControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/FunctionalMenuControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/GetAccessControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ManifestControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/MicroserviceControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/MicroserviceProxyControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/PolicyControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/PortalAdminControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/RoleManageControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/RolesApprovalSystemControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SchedulerControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SessionCommunicationControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextRestClient.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextRestControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextTestProperties.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/TicketEventControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserNotificationControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserRolesControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/WebAnalyticsExtAppControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogMarkupControllerTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/shared-context-test.properties delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/core/MockEPUser.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AdminUserAppTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AdminUserApplicationsTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AppContactUsTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/CentralRoleFunctionTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPAppRoleFunctionTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPAppTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPEndpointAccountTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPEndpointTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPRoleTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppCatalogRolesTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequestDetailTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppsSortPreferenceTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserNotificationTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EcompAppRoleIdTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EcompAppRoleTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalRoleDetailsTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalSystemAccessTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalSystemRoleApprovalTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/FunctionalMenuItemWithAppIDTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/GetAccessResultIdTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/MicroserviceDataTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/MicroserviceParameterTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/PersUserAppSelectionTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/PersUserWidgetSelectionTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ResultTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/SharedContextTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/UserIdRoleIdTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetCatalogParameterTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetCatalogTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetParameterResultTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/exceptions/NoHealthyServiceExceptionTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/framework/MockitoTestSuite.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/listener/HealthMonitorTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/lm/FusionLicenseManagerImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/lm/LicenseableClassImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppCatalogItemTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppCategoryFunctionsItemTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppContactUsItemTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/SearchResultItemTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/AppContactUsServiceImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/DashboardSearchServiceImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceCentralizedImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleServiceImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/FunctionalMenuMockServiceImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/GetAccessServiceImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/LicenseableClassImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/ManifestServiceImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/PersUserAppServiceImplTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AnalyticsTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppCatalogPersonalizationTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppNameIdIsAdminTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppWithRolesForUserTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppsListWithAdminRoleTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BulkUploadRoleFunctionTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BulkUploadUserRolesTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRoleTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRolesListTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralAppTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralRoleTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralUserAppTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralUserTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPAppsManualPreferenceTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPAppsSortPreferenceTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPDeleteAppsManualSortPrefTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPUserAppCurrentRolesTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPWidgetsSortPreferenceTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EcompUserAppRolesTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemExtVOTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemVOTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpRoleNotificationItemTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsDetailTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessRolePermsTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessRoleTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserRoleDetailTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalRoleDescriptionTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItemTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/FunctionalMenuRoleTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/RemoteUserWithRolesTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/RoleInAppForUserTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/UserApplicationRolesTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/UserWithNameSurnameTitleTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/WidgetCatalogPersonalizationTest.java delete mode 100644 ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/utils/EcompPortalUtilsTest.java (limited to 'ecomp-portal-BE-common/src') diff --git a/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java b/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java index 4e069214..50e2720e 100644 --- a/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java +++ b/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java @@ -2,11 +2,11 @@ * ============LICENSE_START========================================== * ONAP Portal * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * =================================================================== * * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); + * under the Apache License, Version 2.0 (the "License"); * you may not use this software except in compliance with the License. * You may obtain a copy of the License at * @@ -19,7 +19,7 @@ * limitations under the License. * * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); * you may not use this documentation except in compliance with the License. * You may obtain a copy of the License at * diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/command/EPLoginBean.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/command/EPLoginBean.java new file mode 100644 index 00000000..99677b3d --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/command/EPLoginBean.java @@ -0,0 +1,204 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.command; + +import java.util.Set; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalsdk.core.domain.support.FusionCommand; + +public class EPLoginBean extends FusionCommand { + private String loginId; + private String loginPwd; + private String hrid; + private String orgUserId; + private String siteAccess; + private String loginErrorMessage; + + private EPUser user; + private Set menu; + private Set businessDirectMenu; + + /** + * getLoginId + * + * @return String + */ + public String getLoginId() { + return loginId; + } + + /** + * getLoginPwd + * + * @return String + */ + public String getLoginPwd() { + return loginPwd; + } + + /** + * getMenu + * + * @return Set + */ + public Set getMenu() { + return menu; + } + + /** + * getUser + * + * @return User + */ + public EPUser getUser() { + return user; + } + + /** + * getHrid + * + * @return String + */ + public String getHrid() { + return hrid; + } + + /** + * getSiteAccess + * + * @return String + */ + public String getSiteAccess() { + return siteAccess; + } + + /** + * getBusinessDirectMenu + * + * @return Set + */ + public Set getBusinessDirectMenu() { + return businessDirectMenu; + } + + /** + * getLoginErrorMessage + * + * @return String + */ + public String getLoginErrorMessage() { + return loginErrorMessage; + } + + public String getOrgUserId() { + return orgUserId; + } + + /** + * setLoginId + * + * @param loginId String + */ + public void setLoginId(String loginId) { + this.loginId = loginId; + } + + /** + * setLoginPwd + * + * @param loginPwd String + */ + public void setLoginPwd(String loginPwd) { + this.loginPwd = loginPwd; + } + + public void setMenu(Set menu) { + this.menu = menu; + } + + /** + * setUser + * + * @param user User + */ + public void setUser(EPUser user) { + this.user = user; + } + + /** + * setHrid + * + * @param hrid String + */ + public void setHrid(String hrid) { + this.hrid = hrid; + } + + /** + * setSiteAccess + * + * @param siteAccess String + */ + public void setSiteAccess(String siteAccess) { + this.siteAccess = siteAccess; + } + + /** + * setBusinessDirectMenu + * + * @param businessDirectMenu Set + */ + public void setBusinessDirectMenu(Set businessDirectMenu) { + this.businessDirectMenu = businessDirectMenu; + } + + /** + * setLoginErrorMessage + * + * @param loginErrorMessage String + */ + public void setLoginErrorMessage(String loginErrorMessage) { + this.loginErrorMessage = loginErrorMessage; + } + + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } +} + diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/command/PostSearchBean.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/command/PostSearchBean.java new file mode 100644 index 00000000..6fc8f2a5 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/command/PostSearchBean.java @@ -0,0 +1,391 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.command; + +import java.util.List; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalsdk.core.command.support.SearchBase; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +@JsonSerialize +public class PostSearchBean extends SearchBase { + + private EPUser user = null; + private EPUser userOrig = null; + private String[] selected; + private String[] postHrid; + private String[] postOrgUserId; + private String[] postFirstName; + private String[] postLastName; + private String[] postOrgCode; + private String[] postPhone; + private String[] postEmail; + private String[] postAddress1; + private String[] postAddress2; + private String[] postCity; + private String[] postState; + private String[] postZipCode; + private String[] postLocationClli; + private String[] postBusinessCountryCode; + private String[] postBusinessCountryName; + private String[] postDepartment; + private String[] postDepartmentName; + private String[] postBusinessUnit; + private String[] postBusinessUnitName; + private String[] postJobTitle; + private String[] postOrgManagerUserId; + private String[] postCommandChain; + private String[] postCompanyCode; + private String[] postCompany; + private String[] postCostCenter; + private String[] postSiloStatus; + private String[] postFinancialLocCode; + + + public PostSearchBean() { + this(null); + } // PostSearchBean + + public PostSearchBean(List items) { + super(items); + + user = new EPUser(); + userOrig = new EPUser(); + + setSortBy1(""); + setSortBy1Orig(""); + + //setSortByList(...); + } // PostSearchBean + + + public String getFirstName() { return user.getFirstName(); } + public String getLastName() { return user.getLastName(); } + public String getHrid() { return user.getHrid(); } + public String getOrgUserId() { return user.getOrgUserId(); } + public String getOrgCode() { return user.getOrgCode(); } + public String getEmail() { return user.getEmail(); } + public String getOrgManagerUserId() { return user.getOrgManagerUserId(); } + + public String getFirstNameOrig() { return user.getFirstName(); } + public String getLastNameOrig() { return user.getLastName(); } + public String getHridOrig() { return user.getHrid(); } + public String getOrgUserIdOrig() { return user.getOrgUserId(); } + public String getOrgCodeOrig() { return user.getOrgCode(); } + public String getEmailOrig() { return user.getEmail(); } + public String getOrgManagerUserIdOrig() { return user.getOrgManagerUserId(); } + + + public EPUser getUser() { return user; } + + public String[] getPostEmail() { + return postEmail; + } + + public String[] getPostFirstName() { + return postFirstName; + } + + public String[] getPostHrid() { + return postHrid; + } + + public String[] getPostLastName() { + return postLastName; + } + + public String[] getPostOrgCode() { + return postOrgCode; + } + + public String[] getPostPhone() { + return postPhone; + } + + public String[] getPostOrgUserId() { + return postOrgUserId; + } + + public String[] getSelected() { + return selected; + } + + public String[] getPostAddress1() { + return postAddress1; + } + + public String[] getPostBusinessCountryCode() { + return postBusinessCountryCode; + } + + public String[] getPostCity() { + return postCity; + } + + public String[] getPostCommandChain() { + return postCommandChain; + } + + public String[] getPostCompany() { + return postCompany; + } + + public String[] getPostCompanyCode() { + return postCompanyCode; + } + + public String[] getPostDepartment() { + return postDepartment; + } + + public String[] getPostDepartmentName() { + return postDepartmentName; + } + + public String[] getPostBusinessCountryName() { + return postBusinessCountryName; + } + + public String[] getPostJobTitle() { + return postJobTitle; + } + + public String[] getPostLocationClli() { + return postLocationClli; + } + + public String[] getPostManagerUserId() { + return postOrgManagerUserId; + } + + public String[] getPostState() { + return postState; + } + + public String[] getPostZipCode() { + return postZipCode; + } + + public void setFirstName(String value) { user.setFirstName(value); } + public void setLastName(String value) { user.setLastName(value); } + public void setHrid(String value) { user.setHrid(value); } + public void setOrgUserId(String value) { user.setOrgUserId(value); } + public void setOrgCode(String value) { user.setOrgCode(value); } + public void setEmail(String value) { user.setEmail(value); } + public void setOrgManagerUserId(String value) { user.setOrgManagerUserId(value); } + + public void setFirstNameOrig(String value) { userOrig.setFirstName(value); } + public void setLastNameOrig(String value) { userOrig.setLastName(value); } + public void setHridOrig(String value) { userOrig.setHrid(value); } + public void setOrgUserIdOrig(String value) { userOrig.setOrgUserId(value); } + public void setOrgCodeOrig(String value) { userOrig.setOrgCode(value); } + public void setEmailOrig(String value) { userOrig.setEmail(value); } + public void setOrgManagerUserIdOrig(String value) { userOrig.setOrgManagerUserId(value); } + + public void setUser(EPUser value) { this.user = value; } + + public void setPostEmail(String[] postEmail) { + this.postEmail = postEmail; + } + + public void setPostFirstName(String[] postFirstName) { + this.postFirstName = postFirstName; + } + + public void setPostHrid(String[] postHrid) { + this.postHrid = postHrid; + } + + public void setPostLastName(String[] postLastName) { + this.postLastName = postLastName; + } + + public void setPostOrgCode(String[] postOrgCode) { + this.postOrgCode = postOrgCode; + } + + public void setPostPhone(String[] postPhone) { + this.postPhone = postPhone; + } + + public void setPostUserId(String[] postOrgUserId) { + this.postOrgUserId = postOrgUserId; + } + + public void setSelected(String[] selected) { + this.selected = selected; + } + + public void setPostAddress1(String[] postAddress1) { + this.postAddress1 = postAddress1; + } + + public void setPostBusinessCountryCode(String[] postBusinessCountryCode) { + this.postBusinessCountryCode = postBusinessCountryCode; + } + + public void setPostCity(String[] postCity) { + this.postCity = postCity; + } + + public void setPostCommandChain(String[] postCommandChain) { + this.postCommandChain = postCommandChain; + } + + public void setPostCompany(String[] postCompany) { + this.postCompany = postCompany; + } + + public void setPostCompanyCode(String[] postCompanyCode) { + this.postCompanyCode = postCompanyCode; + } + + public void setPostDepartment(String[] postDepartment) { + this.postDepartment = postDepartment; + } + + public void setPostDepartmentName(String[] postDepartmentName) { + this.postDepartmentName = postDepartmentName; + } + + public void setPostBusinessCountryName(String[] postBusinessCountryName) { + this.postBusinessCountryName = postBusinessCountryName; + } + + public void setPostJobTitle(String[] postJobTitle) { + this.postJobTitle = postJobTitle; + } + + public void setPostLocationClli(String[] postLocationClli) { + this.postLocationClli = postLocationClli; + } + + public void setPostManagerUserId(String[] postOrgManagerUserId) { + this.postOrgManagerUserId = postOrgManagerUserId; + } + + public void setPostState(String[] postState) { + this.postState = postState; + } + + public void setPostZipCode(String[] postZipCode) { + this.postZipCode = postZipCode; + } + + public String[] getPostAddress2() { + return postAddress2; + } + + public void setPostAddress2(String[] postAddress2) { + this.postAddress2 = postAddress2; + } + + public EPUser getUserOrig() { + return userOrig; + } + + public void setUserOrig(EPUser userOrig) { + this.userOrig = userOrig; + } + + public String[] getPostBusinessUnit() { + return postBusinessUnit; + } + + public void setPostBusinessUnit(String[] postBusinessUnit) { + this.postBusinessUnit = postBusinessUnit; + } + + public String[] getPostBusinessUnitName() { + return postBusinessUnitName; + } + + public void setPostBusinessUnitName(String[] postBusinessUnitName) { + this.postBusinessUnitName = postBusinessUnitName; + } + + public String[] getPostCostCenter() { + return postCostCenter; + } + + public void setPostCostCenter(String[] postCostCenter) { + this.postCostCenter = postCostCenter; + } + + public String[] getPostSiloStatus() { + return postSiloStatus; + } + + public void setPostSiloStatus(String[] postSiloStatus) { + this.postSiloStatus = postSiloStatus; + } + + public String[] getPostFinancialLocCode() { + return postFinancialLocCode; + } + + public void setPostFinancialLocCode(String[] postFinancialLocCode) { + this.postFinancialLocCode = postFinancialLocCode; + } + + public void resetSearch() { + super.resetSearch(); + setUser(new EPUser()); + } // resetSearch + + + public boolean isCriteriaUpdated() { + if(user==null&&userOrig==null) + return false; + else if(user==null||userOrig==null) + return true; + else + return (! ( + Utilities.nvl(user.getFirstName()).equals(Utilities.nvl(userOrig.getFirstName()))&& + Utilities.nvl(user.getLastName()).equals(Utilities.nvl(userOrig.getLastName()))&& + //Utilities.nvl(user.getHrid()).equals(Utilities.nvl(userOrig.getHrid()))&& + Utilities.nvl(user.getOrgUserId()).equals(Utilities.nvl(userOrig.getOrgUserId()))&& + Utilities.nvl(user.getOrgCode()).equals(Utilities.nvl(userOrig.getOrgCode()))&& + Utilities.nvl(user.getEmail()).equals(Utilities.nvl(userOrig.getEmail()))&& + Utilities.nvl(user.getOrgManagerUserId()).equals(Utilities.nvl(userOrig.getOrgManagerUserId()))&& + true)); + } // isCriteriaUpdated + +} // PostSearchBean diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/ExternalSecurityConfig.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/ExternalSecurityConfig.java new file mode 100644 index 00000000..f509dd21 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/ExternalSecurityConfig.java @@ -0,0 +1,74 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.config; + +import java.util.regex.Pattern; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.web.csrf.CookieCsrfTokenRepository; +import org.springframework.security.web.util.matcher.RegexRequestMatcher; +import org.springframework.security.web.util.matcher.RequestMatcher; + + +@Configuration +@EnableWebSecurity +public class ExternalSecurityConfig extends WebSecurityConfigurerAdapter { + @Override + protected void configure(HttpSecurity http) throws Exception { + RequestMatcher csrfRequestMatcher = new RequestMatcher() { + private RegexRequestMatcher requestMatcher = new RegexRequestMatcher("/portalApi/.*", null); + private Pattern allowedMethods = Pattern.compile("^(GET|HEAD|TRACE|OPTIONS)$"); + @Override + public boolean matches(HttpServletRequest request) { + if(allowedMethods.matcher(request.getMethod()).matches()) + return false; + + if(requestMatcher.matches(request)) + return true; + + return false; + } + }; + http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()).requireCsrfProtectionMatcher(csrfRequestMatcher); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/NotificationCleanup.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/NotificationCleanup.java new file mode 100644 index 00000000..60148f9e --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/NotificationCleanup.java @@ -0,0 +1,58 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.config; + +import java.util.TimerTask; + +import org.onap.portalapp.portal.service.UserNotificationService; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +public class NotificationCleanup extends TimerTask { + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(NotificationCleanup.class); + + @Override + public void run() { + logger.debug(EELFLoggerDelegate.debugLogger, "run: cleaning the ep-notification table"); + UserNotificationService notificationService = NotificationCleanupConfig.getApplicationContext() + .getBean(UserNotificationService.class); + notificationService.deleteNotificationsFromEpUserNotificationTable(); + notificationService.deleteNotificationsFromEpRoleNotificationTable(); + notificationService.deleteNotificationsFromEpNotificationTable(); + } + +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/NotificationCleanupConfig.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/NotificationCleanupConfig.java new file mode 100644 index 00000000..1cf4091c --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/NotificationCleanupConfig.java @@ -0,0 +1,80 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.config; + +import java.util.Timer; +import java.util.TimerTask; + +import javax.annotation.PostConstruct; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class NotificationCleanupConfig implements ApplicationContextAware { + + // Once every 10 minutes should be adequate + public final static int CLEANUP_PERIOD_MINUTES = 10; + + private static ApplicationContext applicationContext; + + public void setApplicationContext(ApplicationContext context) throws BeansException { + applicationContext = context; + } + + public static ApplicationContext getApplicationContext() { + return applicationContext; + + } + + @PostConstruct + public void StartSchedular() { + TimerTask task = new NotificationCleanup(); + Timer timer = new Timer(); + timer.schedule(task, 1000, CLEANUP_PERIOD_MINUTES * 60 * 1000); + } + + @Bean + public NotificationCleanupConfig getConfig() { + return new NotificationCleanupConfig(); + } + +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/PortalCentralAccessConfiguration.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/PortalCentralAccessConfiguration.java new file mode 100644 index 00000000..f19f238e --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/PortalCentralAccessConfiguration.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.config; + +import org.onap.portalapp.portal.service.EPRoleFunctionService; +import org.onap.portalapp.portal.service.EPRoleFunctionServiceCentralizedImpl; +import org.onap.portalapp.portal.service.EPRoleFunctionServiceImpl; +import org.onap.portalsdk.core.service.CentralAccessCondition; +import org.onap.portalsdk.core.service.LocalAccessCondition; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Conditional; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class PortalCentralAccessConfiguration { + + + @Bean + @Conditional(LocalAccessCondition.class) + public EPRoleFunctionService ePRoleFunctionServiceImpl() { + return new EPRoleFunctionServiceImpl(); + } + + + @Bean + @Conditional(CentralAccessCondition.class) + public EPRoleFunctionService ePRoleFunctionServiceCentralizedImpl() { + return new EPRoleFunctionServiceCentralizedImpl(); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/SwaggerConfig.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/SwaggerConfig.java new file mode 100644 index 00000000..96aaaebe --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/SwaggerConfig.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@Configuration +@EnableSwagger2 +public class SwaggerConfig { + + @Bean + public Docket api(){ + return new Docket(DocumentationType.SWAGGER_2) + .select() + .apis(RequestHandlerSelectors.any()) + .paths(PathSelectors.regex("/auxapi/.*")) + .build() + .apiInfo(apiInfo()); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("ONAP Portal API") + .description("ONAP Portal API Documentation") + .version("2.1") + .termsOfServiceUrl("http://www.onap.org") + .license("Apache 2.0") + .licenseUrl("https://www.apache.org/licenses/LICENSE-2.0") + .build(); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/SwaggerMVCConfig.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/SwaggerMVCConfig.java new file mode 100644 index 00000000..668c3f35 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/config/SwaggerMVCConfig.java @@ -0,0 +1,55 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@EnableWebMvc +public class SwaggerMVCConfig extends WebMvcConfigurerAdapter { + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); + registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPFusionBaseController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPFusionBaseController.java new file mode 100644 index 00000000..a425812f --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPFusionBaseController.java @@ -0,0 +1,122 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.controller; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.controller.FusionBaseController; +import org.onap.portalsdk.core.domain.MenuData; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.ModelAttribute; + +import com.fasterxml.jackson.databind.ObjectMapper; + +@Controller +public abstract class EPFusionBaseController extends FusionBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPFusionBaseController.class); + + @Override + public boolean isAccessible() { + return true; + } + + public boolean isRESTfulCall() { + return true; + } + + @ModelAttribute("menu") + public Map messages(HttpServletRequest request) { + HttpSession session = null; + Map model = new HashMap(); + session = request.getSession(); + EPUser user = EPUserUtils.getUserSession(request); + if (session != null && user != null) { + @SuppressWarnings("unchecked") + Set menuResult = (Set) session + .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME)); + try { + model = setMenu(menuResult); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "messages failed", e); + } + } + + return model; + } + + public Map setMenu(Set menuResult) throws Exception { + ObjectMapper mapper = new ObjectMapper(); + List> childItemList = new ArrayList>(); + + List parentList = new ArrayList(); + + Map model = new HashMap(); + for (MenuData menu : menuResult) { + MenuData parentData = new MenuData(); + parentData.setLabel(menu.getLabel()); + parentData.setAction(menu.getAction()); + parentData.setImageSrc(menu.getImageSrc()); + parentList.add(parentData); + List tempList = new ArrayList(); + for (Object o : menu.getChildMenus()) { + MenuData m = (MenuData) o; + MenuData data = new MenuData(); + data.setLabel(m.getLabel()); + data.setAction(m.getAction()); + data.setImageSrc(m.getImageSrc()); + tempList.add(data); + } + childItemList.add(tempList); + } + model.put("childItemList", mapper.writeValueAsString(childItemList)); + model.put("parentList", mapper.writeValueAsString(parentList)); + return model; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPRestrictedBaseController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPRestrictedBaseController.java new file mode 100644 index 00000000..82931249 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPRestrictedBaseController.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.controller; + +public class EPRestrictedBaseController extends EPFusionBaseController{ + + protected String viewName; + private String exceptionView; + + @Override + public boolean isAccessible() { + return false; + } + + @Override + public boolean isRESTfulCall(){ + return false; + } + + protected String getViewName() { + return viewName; + } + + protected void setViewName(String viewName) { + this.viewName = viewName; + } + + public String getExceptionView() { + return (exceptionView == null) ? "runtime_error_handler" : exceptionView; + } + + public void setExceptionView(String exceptionView) { + this.exceptionView = exceptionView; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPRestrictedRESTfulBaseController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPRestrictedRESTfulBaseController.java new file mode 100644 index 00000000..1532f688 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPRestrictedRESTfulBaseController.java @@ -0,0 +1,72 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.controller; + +public class EPRestrictedRESTfulBaseController extends EPFusionBaseController{ + + protected String viewName; + private String exceptionView; + + @Override + public boolean isAccessible() { + return false; + } + + @Override + public boolean isRESTfulCall(){ + return true; + } + + protected String getViewName() { + return viewName; + } + + protected void setViewName(String viewName) { + this.viewName = viewName; + } + + public String getExceptionView() { + return (exceptionView == null) ? "runtime_error_handler" : exceptionView; + } + + public void setExceptionView(String exceptionView) { + this.exceptionView = exceptionView; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPUnRestrictedBaseController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPUnRestrictedBaseController.java new file mode 100644 index 00000000..7d0c18f6 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/EPUnRestrictedBaseController.java @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.controller; + +public class EPUnRestrictedBaseController extends EPFusionBaseController{ + protected String viewName; + + @Override + public boolean isAccessible() { + return true; + } + + @Override + public boolean isRESTfulCall(){ + return false; + } + + protected String getViewName() { + return viewName; + } + + protected void setViewName(String viewName) { + this.viewName = viewName; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/sessionmgt/SessionCommunicationController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/sessionmgt/SessionCommunicationController.java new file mode 100644 index 00000000..e17c67c5 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/controller/sessionmgt/SessionCommunicationController.java @@ -0,0 +1,90 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.controller.sessionmgt; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPRestrictedRESTfulBaseController; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalapp.service.sessionmgt.ManageService; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import io.swagger.annotations.ApiOperation; + + +@RestController +@RequestMapping(PortalConstants.REST_AUX_API) +@Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class SessionCommunicationController extends EPRestrictedRESTfulBaseController { + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SessionCommunicationController.class); + + @Autowired + private ManageService manageService; + + protected boolean isAuxRESTfulCall(){ + return true; + } + + @ApiOperation(value = "Gets session slot-check interval, a duration in milliseconds.", + response = Integer.class) + @RequestMapping(value={"/getSessionSlotCheckInterval"}, method = RequestMethod.GET, produces = "application/json") + public Integer getSessionSlotCheckInterval(HttpServletRequest request, HttpServletResponse response) throws Exception { + return manageService.fetchSessionSlotCheckInterval(); + } + + @ApiOperation(value = "Extends session timeout values for all on-boarded applications.", + response = Boolean.class) + @RequestMapping(value={"/extendSessionTimeOuts"}, method = RequestMethod.POST) + public Boolean extendSessionTimeOuts(HttpServletRequest request, HttpServletResponse response, @RequestParam String sessionMap) throws Exception { + manageService.extendSessionTimeOuts(sessionMap); + + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/externalsystemapproval/model/ExternalSystemRoleApproval.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/externalsystemapproval/model/ExternalSystemRoleApproval.java new file mode 100644 index 00000000..5c6ca1ad --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/externalsystemapproval/model/ExternalSystemRoleApproval.java @@ -0,0 +1,56 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.externalsystemapproval.model; + +import java.io.Serializable; + +public class ExternalSystemRoleApproval implements Serializable { + + private static final long serialVersionUID = 6048830318039958615L; + + private String roleName; + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/externalsystemapproval/model/ExternalSystemUser.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/externalsystemapproval/model/ExternalSystemUser.java new file mode 100644 index 00000000..47128ca5 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/externalsystemapproval/model/ExternalSystemUser.java @@ -0,0 +1,92 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.externalsystemapproval.model; + + +import java.util.ArrayList; +import java.util.List; + +public class ExternalSystemUser { + + private String loginId; + + private String applicationName; + + private String myloginrequestId; + + private List roles; + + public ExternalSystemUser() { + roles = new ArrayList(); + } + + public String getApplicationName() { + return applicationName; + } + + public void setApplicationName(String applicationName) { + this.applicationName = applicationName; + } + + public String getLoginId() { + return loginId; + } + + public void setLoginId(String loginId) { + this.loginId = loginId; + } + + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } + + public String getMyloginrequestId() { + return myloginrequestId; + } + + public void setMyloginrequestId(String myloginrequestId) { + this.myloginrequestId = myloginrequestId; + } + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/model/Result.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/model/Result.java new file mode 100644 index 00000000..ce50d564 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/model/Result.java @@ -0,0 +1,55 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.model; + +public class Result { + private String result; + + public Result(String result) { + this.result = result; + } + + public String getResult() { + return result; + } + + public void setResult(String result) { + this.result = result; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppCatalogController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppCatalogController.java new file mode 100644 index 00000000..80a236df --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppCatalogController.java @@ -0,0 +1,148 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.IOException; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.AppCatalogItem; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.EPAppService; +import org.onap.portalapp.portal.service.PersUserAppService; +import org.onap.portalapp.portal.transport.AppCatalogPersonalization; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class AppCatalogController extends EPRestrictedBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppCatalogController.class); + + @Autowired + private AdminRolesService adminRolesService; + @Autowired + private EPAppService appService; + @Autowired + private PersUserAppService persUserAppService; + + /** + * RESTful service method to fetch all enabled applications, with details + * about which are accessible to the current user, selected by the current + * user. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @throws IOException If sendError fails + * @return List of items suitable for display + */ + @RequestMapping(value = { "/portalApi/appCatalog" }, method = RequestMethod.GET, produces = "application/json") + public List getAppCatalog(HttpServletRequest request, HttpServletResponse response) + throws IOException { + EPUser user = EPUserUtils.getUserSession(request); + List appCatalog = null; + try { + if (user == null) { + EcompPortalUtils.setBadPermissions(user, response, "getAppCatalog"); + } else { + if (adminRolesService.isSuperAdmin(user)) + appCatalog = appService.getAdminAppCatalog(user); + else + appCatalog = appService.getUserAppCatalog(user); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/getAppCatalog", "GET result =", appCatalog); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppCatalog failed", e); + response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString()); + } + return appCatalog; + } + + /** + * RESTful service to accept a user's action made on the application + * catalog. + * + * @param request + * HttpServletRequest + * @param persRequest + * JSON with data including application ID + * @param response + * HttpServletResponse + * @return FieldsValidator + * @throws IOException If sendError fails + */ + @RequestMapping(value = { "/portalApi/appCatalog" }, method = RequestMethod.PUT, produces = "application/json") + public FieldsValidator putAppCatalogSelection(HttpServletRequest request, + @RequestBody AppCatalogPersonalization persRequest, HttpServletResponse response) throws IOException { + FieldsValidator result = new FieldsValidator(); + EPApp app = appService.getApp(persRequest.getAppId()); + EPUser user = EPUserUtils.getUserSession(request); + try { + if (app == null || user == null) { + EcompPortalUtils.setBadPermissions(user, response, "putAppCatalogSelection"); + } else { + persUserAppService.setPersUserAppValue(user, app, persRequest.getSelect(), persRequest.getPending()); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "putAppCatalogSelection failed", e); + response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString()); + } + result.httpStatusCode = new Long(HttpServletResponse.SC_OK); + return result; + } + +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppContactUsController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppContactUsController.java new file mode 100644 index 00000000..409b75d2 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppContactUsController.java @@ -0,0 +1,242 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.json.JSONObject; +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; +import org.onap.portalapp.portal.ecomp.model.AppContactUsItem; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.AppContactUsService; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/portalApi/contactus") +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class AppContactUsController extends EPRestrictedBaseController { + + static final String FAILURE = "failure"; + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppContactUsController.class); + + @Autowired + private AppContactUsService contactUsService; + + /** + * Answers a JSON object with three items from the system.properties file: + * user self-help ticket URL, email for feedback, and Portal info link. + * + * @param request HttpServletRequest + * @return PortalRestResponse + */ + @RequestMapping(value = "/feedback", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse getPortalDetails(HttpServletRequest request) { + PortalRestResponse portalRestResponse = null; + try { + final String ticketUrl = SystemProperties.getProperty(EPCommonSystemProperties.USH_TICKET_URL); + final String portalInfoUrl = SystemProperties.getProperty(EPCommonSystemProperties.PORTAL_INFO_URL); + final String feedbackEmail = SystemProperties.getProperty(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS); + HashMap map = new HashMap(); + map.put(EPCommonSystemProperties.USH_TICKET_URL, ticketUrl); + map.put(EPCommonSystemProperties.PORTAL_INFO_URL, portalInfoUrl); + map.put(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS, feedbackEmail); + JSONObject j = new JSONObject(map); + String contactUsPortalResponse = j.toString(); + portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.OK, "success", + contactUsPortalResponse); + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, FAILURE, e.getMessage()); + } + return portalRestResponse; + } + + /** + * Answers the contents of the contact-us table, extended with the + * application name. + * + * @param request HttpServletRequest + * @return PortalRestResponse> + */ + @RequestMapping(value = "/list", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> getAppContactUsList(HttpServletRequest request) { + PortalRestResponse> portalRestResponse = null; + try { + List contents = contactUsService.getAppContactUs(); + portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.OK, "success", + contents); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppContactUsList failed", e); + portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.ERROR, + e.getMessage(), null); + } + return portalRestResponse; + } + + /** + * Answers a list of objects, one per application, extended with available + * data on how to contact that app's organization (possibly none). + * + * @param request HttpServletRequest + * @return PortalRestResponse> + */ + @RequestMapping(value = "/allapps", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> getAppsAndContacts(HttpServletRequest request) { + PortalRestResponse> portalRestResponse = null; + try { + List contents = contactUsService.getAppsAndContacts(); + portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.OK, "success", + contents); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAllAppsAndContacts failed", e); + portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.ERROR, + e.getMessage(), null); + } + return portalRestResponse; + } + + /** + * Sorts by category name. + */ + private Comparator appCategoryFunctionsItemComparator = new Comparator() { + @Override + public int compare(AppCategoryFunctionsItem o1, AppCategoryFunctionsItem o2) { + return o1.getCategory().compareTo(o2.getCategory()); + } + }; + + /** + * Answers a list of objects with category-application-function details. Not + * all applications participate in the functional menu. + * + * @param request HttpServletRequest + * @return PortalRestResponse> + */ + @RequestMapping(value = "/functions", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> getAppCategoryFunctions(HttpServletRequest request) { + PortalRestResponse> portalRestResponse = null; + try { + List contents = contactUsService.getAppCategoryFunctions(); + // logger.debug(EELFLoggerDelegate.debugLogger, + // "getAppCategoryFunctions: result list size is " + + // contents.size()); + Collections.sort(contents, appCategoryFunctionsItemComparator); + portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.OK, + "success", contents); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppCategoryFunctions failed", e); + // TODO build JSON error + portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.ERROR, + e.getMessage(), null); + } + return portalRestResponse; + } + + /** + * Accepts a new application's contact us details. + * + * @param contactUs AppContactUsItem + * @return PortalRestResponse + */ + @RequestMapping(value = "/save", method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse save(@RequestBody AppContactUsItem contactUs) { + + if (contactUs == null || contactUs.getAppName() == null) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, FAILURE, + "AppName cannot be null or empty"); + + String saveAppContactUs = FAILURE; + try { + saveAppContactUs = contactUsService.saveAppContactUs(contactUs); + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, saveAppContactUs, e.getMessage()); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, saveAppContactUs, ""); + } + + @RequestMapping(value = "/saveAll", method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse save(@RequestBody List contactUsList) { + + String saveAppContactUs = FAILURE; + try { + saveAppContactUs = contactUsService.saveAppContactUs(contactUsList); + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, saveAppContactUs, e.getMessage()); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, saveAppContactUs, ""); + } + + /** + * Deletes the specified application's contact-us details entry from the + * table. + * + * @param id app ID + * @return PortalRestResponse + */ + @RequestMapping(value = "/delete/{appid}", method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse delete(@PathVariable("appid") Long id) { + + String saveAppContactUs = FAILURE; + try { + saveAppContactUs = contactUsService.deleteContactUs(id); + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, saveAppContactUs, e.getMessage()); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, saveAppContactUs, ""); + } + +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsController.java new file mode 100644 index 00000000..3ddfc7c3 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsController.java @@ -0,0 +1,812 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.IOException; +import java.util.List; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.AdminUserApplications; +import org.onap.portalapp.portal.domain.AppIdAndNameTransportModel; +import org.onap.portalapp.portal.domain.AppsResponse; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EcompApp; +import org.onap.portalapp.portal.domain.UserRoles; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.EPAppService; +import org.onap.portalapp.portal.service.EPLeftMenuService; +import org.onap.portalapp.portal.transport.EPAppsManualPreference; +import org.onap.portalapp.portal.transport.EPAppsSortPreference; +import org.onap.portalapp.portal.transport.EPDeleteAppsManualSortPref; +import org.onap.portalapp.portal.transport.EPWidgetsSortPreference; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.LocalRole; +import org.onap.portalapp.portal.transport.OnboardingApp; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.AppUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@EnableAspectJAutoProxy +@EPAuditLog +public class AppsController extends EPRestrictedBaseController { + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsController.class); + + @Autowired + private AdminRolesService adminRolesService; + + @Autowired + private EPAppService appService; + + @Autowired + private EPLeftMenuService leftMenuService; + + /** + * RESTful service method to fetch all Applications available to current + * user + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return List + */ + @RequestMapping(value = { "/portalApi/userApps" }, method = RequestMethod.GET, produces = "application/json") + public List getUserApps(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List ecompApps = null; + + try { + if (user == null) { + EcompPortalUtils.setBadPermissions(user, response, "getUserApps"); + } else { + ecompApps = appService.transformAppsToEcompApps(appService.getUserApps(user)); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userApps", "GET result =", ecompApps); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUserApps failed", e); + } + + return ecompApps; + } + + /** + * RESTful service method to fetch all applications accessible to the + * current user, with personalizations. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return List + * @throws IOException + * if sendError fails + */ + @RequestMapping(value = { "/portalApi/persUserApps" }, method = RequestMethod.GET, produces = "application/json") + public List getPersUserApps(HttpServletRequest request, HttpServletResponse response) throws IOException { + EPUser user = EPUserUtils.getUserSession(request); + List ecompApps = null; + try { + if (user == null) { + EcompPortalUtils.setBadPermissions(user, response, "getPersUserApps"); + } else { + List apps = null; + if (adminRolesService.isSuperAdmin(user)) + apps = appService.getPersAdminApps(user); + else + apps = appService.getPersUserApps(user); + ecompApps = appService.transformAppsToEcompApps(apps); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userPersApps", "GET result =", ecompApps); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getPersUserApps failed", e); + response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString()); + } + return ecompApps; + } + + /** + * RESTful service method to fetch applications for which the current user + * is an Administrator + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return List + */ + @RequestMapping(value = { "/portalApi/adminApps" }, method = RequestMethod.GET, produces = "application/json") + public List getAdminApps(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List adminApps = null; + + try { + if (!adminRolesService.isAccountAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "getAdminApps"); + } else { + adminApps = appService.getAdminApps(user); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/adminApps", "GET result =", adminApps); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAdminApps failed", e); + } + + return adminApps; + } + + /** + * RESTful service method to fetch Applications for user who is super admin + * and/or app admin. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return List + */ + @RequestMapping(value = { + "/portalApi/appsForSuperAdminAndAccountAdmin" }, method = RequestMethod.GET, produces = "application/json") + public List getAppsForSuperAdminAndAccountAdmin(HttpServletRequest request, + HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List adminApps = null; + + try { + if (!adminRolesService.isSuperAdmin(user) && !adminRolesService.isAccountAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "getAdminApps"); + } else { + adminApps = appService.getAppsForSuperAdminAndAccountAdmin(user); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appsForSuperAdminAndAccountAdmin", + "GET result =", adminApps); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppsForSuperAdminAndAccountAdmin failed", e); + } + + return adminApps; + } + + /** + * RESTful service method to fetch left menu items from the user's session. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return JSON with left menu + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + @RequestMapping(value = { "/portalApi/leftmenuItems" }, method = RequestMethod.GET, produces = "application/json") + public String getLeftMenuItems(HttpServletRequest request, HttpServletResponse response) { + String menuList = null; + Set menuSet = (Set) AppUtils.getSession(request) + .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME)); + + Set roleFunctionSet = (Set) AppUtils.getSession(request) + .getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME)); + + EPUser user = EPUserUtils.getUserSession(request); + + try { + menuList = leftMenuService.getLeftMenuItems(user, menuSet, roleFunctionSet); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/leftmenuItems", "GET result =", menuList); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getLeftMenuItems failed", e); + } + return menuList; + } + + @RequestMapping(value = { + "/portalApi/userAppsOrderBySortPref" }, method = RequestMethod.GET, produces = "application/json") + public List getUserAppsOrderBySortPref(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List ecompApps = null; + try { + if (user == null) { + EcompPortalUtils.setBadPermissions(user, response, "getUserAppsOrderBySortPref"); + } else { + String usrSortPref = request.getParameter("mparams"); + if (usrSortPref.equals("")) { + usrSortPref = "N"; + } + switch (usrSortPref) { + case "N": + ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByName(user)); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =", + ecompApps); + break; + case "L": + ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByLastUsed(user)); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =", + ecompApps); + break; + case "F": + ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByMostUsed(user)); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =", + ecompApps); + break; + case "M": + ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByManual(user)); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =", + ecompApps); + break; + default: + logger.error(EELFLoggerDelegate.errorLogger, + "getUserAppsOrderBySortPref failed: no match for " + usrSortPref); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUserAppsOrderBySortPref failed", e); + } + return ecompApps; + } + + /** + * Sets the user apps manual sort preference + * + * @param request + * HTTP servlet request + * @param response + * HTTP servlet response + * @param epAppsManualPref + * sort pref + * @return FieldsValidator + */ + @RequestMapping(value = { + "/portalApi/saveUserAppsSortingManual" }, method = RequestMethod.PUT, produces = "application/json") + public FieldsValidator putUserAppsSortingManual(HttpServletRequest request, + @RequestBody List epAppsManualPref, HttpServletResponse response) { + FieldsValidator fieldsValidator = null; + try { + EPUser user = EPUserUtils.getUserSession(request); + fieldsValidator = appService.saveAppsSortManual(epAppsManualPref, user); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "putUserAppsSortingManual failed", e); + } + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/saveUserAppsSortingManual", "PUT result =", + response.getStatus()); + return fieldsValidator; + } + + @RequestMapping(value = { + "/portalApi/saveUserWidgetsSortManual" }, method = RequestMethod.PUT, produces = "application/json") + public FieldsValidator putUserWidgetsSortManual(HttpServletRequest request, + @RequestBody List saveManualWidgetSData, HttpServletResponse response) { + FieldsValidator fieldsValidator = null; + try { + EPUser user = EPUserUtils.getUserSession(request); + fieldsValidator = appService.saveWidgetsSortManual(saveManualWidgetSData, user); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "putUserWidgetsSortManual failed", e); + } + // return fieldsValidator; + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserWidgetsSortManual", "PUT result =", + response.getStatus()); + return fieldsValidator; + } + + @RequestMapping(value = { + "/portalApi/updateWidgetsSortPref" }, method = RequestMethod.PUT, produces = "application/json") + public FieldsValidator putUserWidgetsSortPref(HttpServletRequest request, + @RequestBody List delManualWidgetData, HttpServletResponse response) { + FieldsValidator fieldsValidator = null; + try { + EPUser user = EPUserUtils.getUserSession(request); + fieldsValidator = appService.deleteUserWidgetSortPref(delManualWidgetData, user); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "putUserWidgetsSortPref failed", e); + + } + // return fieldsValidator; + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserWidgetsSortPref", "PUT result =", + response.getStatus()); + return fieldsValidator; + } + + /** + * Deletes the user app manual sort preference record + * + * @param request + * HTTP servlet request + * @param response + * HTTP servlet response + * @param delManualAppData + * data to delete + * @return FieldsValidator + */ + @RequestMapping(value = { + "/portalApi/UpdateUserAppsSortManual" }, method = RequestMethod.PUT, produces = "application/json") + public FieldsValidator deleteUserAppSortManual(HttpServletRequest request, + @RequestBody EPDeleteAppsManualSortPref delManualAppData, HttpServletResponse response) { + FieldsValidator fieldsValidator = null; + try { + EPUser user = EPUserUtils.getUserSession(request); + fieldsValidator = appService.deleteUserAppSortManual(delManualAppData, user); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteUserAppSortManual failed", e); + + } + // return fieldsValidator; + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/deleteUserAppSortManual", "PUT result =", + response.getStatus()); + return fieldsValidator; + } + + @RequestMapping(value = { + "/portalApi/saveUserAppsSortingPreference" }, method = RequestMethod.PUT, produces = "application/json") + public FieldsValidator putUserAppsSortingPreference(HttpServletRequest request, + @RequestBody EPAppsSortPreference userAppsValue, HttpServletResponse response) { + FieldsValidator fieldsValidator = null; + try { + EPUser user = EPUserUtils.getUserSession(request); + fieldsValidator = appService.saveAppsSortPreference(userAppsValue, user); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "putUserAppsSortingPreference failed", e); + + } + + // return fieldsValidator; + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserAppsSortingPreference", "PUT result =", + response.getStatus()); + return fieldsValidator; + } + + @RequestMapping(value = { + "/portalApi/userAppsSortTypePreference" }, method = RequestMethod.GET, produces = "application/String") + public String getUserAppsSortTypePreference(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + String userSortPreference = null; + + try { + if (user == null) { + EcompPortalUtils.setBadPermissions(user, response, "userAppsSortTypePreference"); + } else { + userSortPreference = appService.getUserAppsSortTypePreference(user); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsSortTypePreference", "GET result =", + userSortPreference); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUserAppsSortTypePreference failed", e); + } + + return userSortPreference; + } + + /** + * RESTful service method to fetch Application Administrators to Super + * Administrator user. Attention: Users which have Super Administrator roles + * only are not included! + * + * @param request + * HTTP servlet request + * @param response + * HTTP servlet response + * @return List + */ + @RequestMapping(value = { "/portalApi/accountAdmins" }, method = RequestMethod.GET, produces = "application/json") + public List getAppsAdministrators(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List admins = null; + try { + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "getAppsAdministrators"); + } else { + admins = appService.getAppsAdmins(); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/accountAdmins", "GET result =", admins); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppsAdministrators failed", e); + } + + return admins; + } + + @RequestMapping(value = { "/portalApi/availableApps" }, method = RequestMethod.GET, produces = "application/json") + public List getApps(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List apps = null; + try { + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "getApps"); + } else { + apps = appService.getAllApps(false); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/availableApps", "GET result =", apps); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getApps failed", e); + } + + return apps; + } + + /** + * Gets all apps, both active and inactive; i.e., all on-boarded apps, + * regardless of enabled status. + * + * @param request + * HTTP servlet request + * @param response + * HTTP servlet response + * @return List of applications + */ + @RequestMapping(value = { + "/portalApi/allAvailableApps" }, method = RequestMethod.GET, produces = "application/json") + public List getAllApps(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List apps = null; + try { + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "getApps"); + } else { + apps = appService.getAllApps(true); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/availableApps", "GET result =", apps); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAllApps failed", e); + } + + return apps; + } + + /** + * + * @param request + * HTTP servlet request + * @param response + * HTTP servlet response + * @return List of applications + */ + @RequestMapping(value = { "/portalApi/appsFullList" }, method = RequestMethod.GET, produces = "application/json") + public List getAppsFullList(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List ecompApps = null; + if (user == null) { + EcompPortalUtils.setBadPermissions(user, response, "getAppsFullList"); + } else { + ecompApps = appService.getEcompAppAppsFullList(); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appsFullList", "GET result =", ecompApps); + } + return ecompApps; + } + + /** + * + * @param request + * HTTP servlet request + * @param response + * HTTP servlet response + * @return UserRoles + */ + @RequestMapping(value = { "/portalApi/userProfile" }, method = RequestMethod.GET, produces = "application/json") + public UserRoles getUserProfile(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + UserRoles userAndRoles = null; + try { + if (user == null) { + EcompPortalUtils.setBadPermissions(user, response, "getUserProfile"); + } else { + userAndRoles = appService.getUserProfileNormalized(user); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUserProfile failed", e); + } + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userProfile", "getUserProfile result =", + userAndRoles); + return userAndRoles; + } + + /** + * + * @param request + * HTTP servlet request + * @param appId + * application ID + * @return List + */ + @RequestMapping(value = { "/portalApi/appRoles/{appId}" }, method = { + RequestMethod.GET }, produces = "application/json") + public List getAppRoles(HttpServletRequest request, @PathVariable("appId") Long appId, + HttpServletResponse response) { + List roleList = null; + EPUser user = EPUserUtils.getUserSession(request); + EPApp requestedApp = appService.getApp(appId); + if (user != null && (adminRolesService.isAccountAdminOfApplication(user, requestedApp) + || (adminRolesService.isSuperAdmin(user) && requestedApp.getId() == PortalConstants.PORTAL_APP_ID))) { + try { + roleList = appService.getAppRoles(appId); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appRoles/" + appId, "GET result =", + roleList); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppRoles failed", e); + } + } else { + EcompPortalUtils.setBadPermissions(user, response, "getAppRoles"); + } + return roleList; + } + + /** + * + * Return single app information with appName as parameter + * + * @param request + * @param response + * @return EPApp object + */ + @RequestMapping(value = { "/portalApi/singleAppInfo" }, method = { + RequestMethod.GET }, produces = "application/json") + public EPApp getSingleAppInfo(HttpServletRequest request, HttpServletResponse response) { + EPApp app = null; + EPUser user = EPUserUtils.getUserSession(request); + try { + String appName = request.getParameter("appParam"); + app = appService.getAppDetailByAppName(appName); + if (user != null && (adminRolesService.isAccountAdminOfApplication(user, app) + || (adminRolesService.isSuperAdmin(user) && app.getId() == PortalConstants.PORTAL_APP_ID))) + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/singleAppInfo" + appName, "GET result =", app); + else{ + app= null; + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + } + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getSingleAppInfo failed", e); + } + return app; + } + + /** + * + * Return single app information with appId as parameter + * + * @param request + * @param response + * @return EPApp object + */ + @RequestMapping(value = { "/portalApi/singleAppInfoById" }, method = { + RequestMethod.GET }, produces = "application/json") + public EPApp getSingleAppInfoById(HttpServletRequest request, HttpServletResponse response) { + EPApp app = null; + EPUser user = EPUserUtils.getUserSession(request); + try { + String appId = request.getParameter("appParam"); + app = appService.getApp(Long.valueOf(appId)); + if(!EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + app.setCentralAuth(false); + } + if (user != null && (adminRolesService.isAccountAdminOfApplication(user, app) + || (adminRolesService.isSuperAdmin(user) && app.getId() == PortalConstants.PORTAL_APP_ID))) + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/singleAppInfoById" + appId, "GET result =", app); + else{ + app= null; + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + } + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getSingleAppInfo failed", e); + } + return app; + } + + /** + * + * @param request + * HTTP servlet request + * @param response + * HTTP servlet response + * @return List + */ + @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.GET, produces = "application/json") + public List getOnboardingApps(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List onboardingApps = null; + try { + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "getOnboardingApps"); + } else { + onboardingApps = appService.getOnboardingApps(); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "GET result =", + "onboardingApps of size " + onboardingApps.size()); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getOnboardingApps failed", e); + } + + return onboardingApps; + } + + /** + * + * @param request + * HTTP servlet request + * @param response + * HTTP servlet response + * @param modifiedOnboardingApp + * app to update + * @return FieldsValidator + */ + @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.PUT, produces = "application/json") + public FieldsValidator putOnboardingApp(HttpServletRequest request, + @RequestBody OnboardingApp modifiedOnboardingApp, HttpServletResponse response) { + FieldsValidator fieldsValidator = null; + try { + EPUser user = EPUserUtils.getUserSession(request); + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "putOnboardingApp"); + } else { + modifiedOnboardingApp.normalize(); + fieldsValidator = appService.modifyOnboardingApp(modifiedOnboardingApp, user); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "putOnboardingApps failed", e); + } + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "PUT result =", + response.getStatus()); + return fieldsValidator; + } + + /** + * + * @param request + * HTTP servlet request + * @param response + * HTTP servlet response + * @param newOnboardingApp + * app to add + * @return FieldsValidator + */ + @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.POST, produces = "application/json") + public FieldsValidator postOnboardingApp(HttpServletRequest request, @RequestBody OnboardingApp newOnboardingApp, + HttpServletResponse response) { + FieldsValidator fieldsValidator = null; + try { + EPUser user = EPUserUtils.getUserSession(request); + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "postOnboardingApps"); + } else { + newOnboardingApp.normalize(); + fieldsValidator = appService.addOnboardingApp(newOnboardingApp, user); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "postOnboardingApp failed", e); + } + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "POST result =", + response.getStatus()); + return fieldsValidator; + } + + /** + * REST endpoint to process a request to delete an on-boarded application. + * + * @param request + * HTTP servlet request + * @param response + * HTTP servlet response + * @param appId + * ID of app to delete + * @return FieldsValidator + */ + @RequestMapping(value = { "/portalApi/onboardingApps/{appId}" }, method = { + RequestMethod.DELETE }, produces = "application/json") + public FieldsValidator deleteOnboardingApp(HttpServletRequest request, @PathVariable("appId") Long appId, + HttpServletResponse response) { + FieldsValidator fieldsValidator = null; + try { + EPUser user = EPUserUtils.getUserSession(request); + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "deleteOnboardingApps"); + } else { + fieldsValidator = appService.deleteOnboardingApp(user, appId); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteOnboardingApp failed", e); + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps" + appId, "DELETE result =", + response.getStatus()); + return fieldsValidator; + } + + /** + * Gets the application thumbnail image; sets status 404 if none exists. + * + * @param request + * HTTP servlet request + * @param response + * HTTP servlet response + * @param appId + * Application ID + * @return Bytes with the app thumbnail image; null if not available. + */ + @RequestMapping(value = { "/portalApi/appThumbnail/{appId}" }, method = { RequestMethod.GET }) + public HttpEntity getAppThumbnail(HttpServletRequest request, @PathVariable("appId") Long appId, + HttpServletResponse response) { + EPApp app = appService.getApp(appId); + if (app == null || app.getImageUrl() == null || app.getThumbnail() == null || app.getThumbnail().length == 0) { + logger.debug(EELFLoggerDelegate.debugLogger, + "getAppThumbnail: no app and/or no thumbnail for app " + appId); + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + return null; + } + String url = app.getImageUrl(); + int indexOfDot = url.lastIndexOf('.'); + String urlSuffix = indexOfDot > 0 ? url.substring(indexOfDot + 1).toLowerCase() : "UNK"; + // Default to JPG if no usable suffix. + MediaType mediaType = MediaType.IMAGE_JPEG; + if ("png".equals(urlSuffix)) + mediaType = MediaType.IMAGE_PNG; + else if ("gif".equals(urlSuffix)) + mediaType = MediaType.IMAGE_GIF; + HttpHeaders header = new HttpHeaders(); + header.setContentType(mediaType); + header.setContentLength(app.getThumbnail().length); + return new HttpEntity(app.getThumbnail(), header); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsControllerExternalRequest.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsControllerExternalRequest.java new file mode 100644 index 00000000..34aa481e --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AppsControllerExternalRequest.java @@ -0,0 +1,392 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.EPAppService; +import org.onap.portalapp.portal.service.PortalAdminService; +import org.onap.portalapp.portal.service.UserService; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.OnboardingApp; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import io.swagger.annotations.ApiOperation; + +/** + * Processes requests from external systems (i.e., not the front-end web UI). + * First use case is ECOMP Controller, which has to create an admin and onboard + * itself upon launch of a fresh Portal. + * + * Listens on the "auxapi" path prefix. Provides alternate implementations of + * methods in several existing controllers because an EPUser object is not + * available in the session for these requests. + * + * Checks credentials sent via HTTP Basic Authentication. The Portal's basic + * HTTP authentication system requires that the user names and endpoints are + * registered together. + */ +@RestController +@RequestMapping(PortalConstants.REST_AUX_API) +@Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class AppsControllerExternalRequest implements BasicAuthenticationController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsControllerExternalRequest.class); + + private static final String ONBOARD_APP = "/onboardApp"; + + // Where is this used? + public boolean isAuxRESTfulCall() { + return true; + } + + /** + * For testing whether a user is a superadmin. + */ + @Autowired + private AdminRolesService adminRolesService; + + /** + * For onboarding or updating an app + */ + @Autowired + private EPAppService appService; + + /** + * For promoting a user to Portal admin + */ + @Autowired + private PortalAdminService portalAdminService; + + /** + * For creating a new user + */ + @Autowired + private UserService userService; + + /** + * Creates a new user as a Portal administrator. + * + *
+	 { 
+		"loginId" : "abc123",
+		"loginPwd": "",
+		"email":"ecomp@controller" 
+	 }
+	 * 
+ * + * @param request + * HttpServletRequest + * @param epUser + * User details; the email and orgUserId fields are mandatory + * @param response + * HttpServletResponse + * @return PortalRestResponse with success or failure + */ + @ApiOperation(value = "Creates a new user as a Portal administrator.", response = PortalRestResponse.class) + @RequestMapping(value = "/portalAdmin", method = RequestMethod.POST, produces = "application/json") + @ResponseBody + public PortalRestResponse postPortalAdmin(HttpServletRequest request, HttpServletResponse response, + @RequestBody EPUser epUser) { + EcompPortalUtils.logAndSerializeObject(logger, "postPortalAdmin", "request", epUser); + PortalRestResponse portalResponse = new PortalRestResponse<>(); + + // Check mandatory fields. + if (epUser.getEmail() == null || epUser.getEmail().trim().length() == 0 // + || epUser.getLoginId() == null || epUser.getLoginId().trim().length() == 0 // + || epUser.getLoginPwd() == null) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage("Missing required field: email, loginId, or loginPwd"); + return portalResponse; + } + + try { + // Check for existing user; create if not found. + List userList = userService.getUserByUserId(epUser.getOrgUserId()); + if (userList == null || userList.size() == 0) { + // Create user with first, last names etc.; do check for + // duplicates. + String userCreateResult = userService.saveNewUser(epUser, "Yes"); + if (!"success".equals(userCreateResult)) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage(userCreateResult); + return portalResponse; + } + } + + // Check for Portal admin status; promote if not. + if (adminRolesService.isSuperAdmin(epUser)) { + portalResponse.setStatus(PortalRestStatusEnum.OK); + } else { + FieldsValidator fv = portalAdminService.createPortalAdmin(epUser.getOrgUserId()); + if (fv.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { + portalResponse.setStatus(PortalRestStatusEnum.OK); + } else { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage(fv.toString()); + } + } + } catch (Exception ex) { + // Uncaught exceptions yield 404 and an empty error page + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage(ex.toString()); + } + + EcompPortalUtils.logAndSerializeObject(logger, "postPortalAdmin", "response", portalResponse); + return portalResponse; + } + + /** + * Gets the specified application that is on-boarded in Portal. + * + * @param request + * HttpServletRequest + * @param appId + * Application ID to get + * @param response + * httpServletResponse + * @return OnboardingApp objects + */ + @ApiOperation(value = "Gets the specified application that is on-boarded in Portal.", response = OnboardingApp.class) + @RequestMapping(value = { ONBOARD_APP + "/{appId}" }, method = RequestMethod.GET, produces = "application/json") + @ResponseBody + public OnboardingApp getOnboardAppExternal(HttpServletRequest request, HttpServletResponse response, + @PathVariable("appId") Long appId) { + EPApp epApp = appService.getApp(appId); + OnboardingApp obApp = new OnboardingApp(); + appService.createOnboardingFromApp(epApp, obApp); + EcompPortalUtils.logAndSerializeObject(logger, "getOnboardAppExternal", "response", obApp); + return obApp; + } + + /** + * Adds a new application to Portal. The My Logins App Owner in the request + * must be the organization user ID of a person who is a Portal + * administrator. + * + *
+	 * { 
+		"myLoginsAppOwner" : "abc123",
+		"name": "dashboard",
+		"url": "http://k8s/something",
+		"restUrl" : "http://targeturl.com",
+		"restrictedApp" : true,
+		"isOpen" : true,
+		"isEnabled": false
+		}
+	 * 
+ * + * @param request + * HttpServletRequest + * @param response + * httpServletResponse + * @param newOnboardApp + * Message with details about the app to add + * @return PortalRestResponse + */ + @ApiOperation(value = "Adds a new application to Portal.", response = PortalRestResponse.class) + @RequestMapping(value = { ONBOARD_APP }, method = RequestMethod.POST, produces = "application/json") + @ResponseBody + public PortalRestResponse postOnboardAppExternal(HttpServletRequest request, HttpServletResponse response, + @RequestBody OnboardingApp newOnboardApp) { + EcompPortalUtils.logAndSerializeObject(logger, "postOnboardAppExternal", "request", newOnboardApp); + PortalRestResponse portalResponse = new PortalRestResponse<>(); + + // Validate fields + if (newOnboardApp.id != null) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage("Unexpected field: id"); + return portalResponse; + } + if (newOnboardApp.name == null || newOnboardApp.name.trim().length() == 0 // + || newOnboardApp.url == null || newOnboardApp.url.trim().length() == 0 // + || newOnboardApp.restUrl == null || newOnboardApp.restUrl.trim().length() == 0 + || newOnboardApp.myLoginsAppOwner == null || newOnboardApp.myLoginsAppOwner.trim().length() == 0 + || newOnboardApp.restrictedApp == null // + || newOnboardApp.isOpen == null // + || newOnboardApp.isEnabled == null) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage( + "Missing required field: name, url, restUrl, restrictedApp, isOpen, isEnabled, myLoginsAppOwner"); + return portalResponse; + } + + try { + List userList = userService.getUserByUserId(newOnboardApp.myLoginsAppOwner); + if (userList == null || userList.size() != 1) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage("Failed to find user: " + newOnboardApp.myLoginsAppOwner); + return portalResponse; + } + + EPUser epUser = userList.get(0); + // Check for Portal admin status + if (! adminRolesService.isSuperAdmin(epUser)) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage("User lacks Portal admin role: " + epUser.getLoginId()); + return portalResponse; + } + + newOnboardApp.normalize(); + FieldsValidator fv = appService.addOnboardingApp(newOnboardApp, epUser); + if (fv.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { + portalResponse.setStatus(PortalRestStatusEnum.OK); + } else { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage(fv.toString()); + } + } catch (Exception ex) { + // Uncaught exceptions yield 404 and an empty error page + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage(ex.toString()); + } + EcompPortalUtils.logAndSerializeObject(logger, "postOnboardAppExternal", "response", portalResponse); + return portalResponse; + } + + /** + * Updates information about an on-boarded application in Portal. The My + * Logins App Owner in the request must be the organization user ID of a + * person who is a Portal administrator. + *
+	   { 
+		"id" : 123,
+		"myLoginsAppOwner" : "abc123",
+		"name": "dashboard",
+		"url": "http://k8s/something",
+		"restUrl" : "http://targeturl.com",
+		"restrictedApp" : true,
+		"isOpen" : true,
+		"isEnabled": false
+		}
+		
+ * @param request + * HttpServletRequest + * @param response + * httpServletResponse + * @param appId + * application id + * @param oldOnboardApp + * Message with details about the app to add + * @return PortalRestResponse + */ + @ApiOperation(value = "Updates information about an on-boarded application in Portal.", response = PortalRestResponse.class) + @RequestMapping(value = { ONBOARD_APP + "/{appId}" }, method = RequestMethod.PUT, produces = "application/json") + @ResponseBody + public PortalRestResponse putOnboardAppExternal(HttpServletRequest request, HttpServletResponse response, + @PathVariable("appId") Long appId, @RequestBody OnboardingApp oldOnboardApp) { + EcompPortalUtils.logAndSerializeObject(logger, "putOnboardAppExternal", "request", oldOnboardApp); + PortalRestResponse portalResponse = new PortalRestResponse<>(); + // Validate fields. + if (oldOnboardApp.id == null || !appId.equals(oldOnboardApp.id)) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage("Unexpected value for field: id"); + return portalResponse; + } + if (oldOnboardApp.name == null || oldOnboardApp.name.trim().length() == 0 // + || oldOnboardApp.url == null || oldOnboardApp.url.trim().length() == 0 // + || oldOnboardApp.restUrl == null || oldOnboardApp.restUrl.trim().length() == 0 + || oldOnboardApp.myLoginsAppOwner == null || oldOnboardApp.myLoginsAppOwner.trim().length() == 0 + || oldOnboardApp.restrictedApp == null // + || oldOnboardApp.isOpen == null // + || oldOnboardApp.isEnabled == null) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage( + "Missing required field: name, url, restUrl, restrictedApp, isOpen, isEnabled, myLoginsAppOwner"); + return portalResponse; + } + + try { + List userList = userService.getUserByUserId(oldOnboardApp.myLoginsAppOwner); + if (userList == null || userList.size() != 1) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage("Failed to find user: " + oldOnboardApp.myLoginsAppOwner); + return portalResponse; + } + + EPUser epUser = userList.get(0); + // Check for Portal admin status + if (! adminRolesService.isSuperAdmin(epUser)) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage("User lacks Portal admin role: " + epUser.getLoginId()); + return portalResponse; + } + + oldOnboardApp.normalize(); + FieldsValidator fv = appService.modifyOnboardingApp(oldOnboardApp, epUser); + if (fv.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { + portalResponse.setStatus(PortalRestStatusEnum.OK); + } else { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage(fv.toString()); + } + } catch (Exception ex) { + // Uncaught exceptions yield 404 and an empty error page + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage(ex.toString()); + } + EcompPortalUtils.logAndSerializeObject(logger, "putOnboardAppExternal", "response", portalResponse); + return portalResponse; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AuditLogController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AuditLogController.java new file mode 100644 index 00000000..e0232850 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/AuditLogController.java @@ -0,0 +1,129 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import javax.servlet.http.HttpServletRequest; + +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.aop.EPEELFLoggerAdvice; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.AuditLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.AuditService; + +@RestController +@RequestMapping("/portalApi/auditLog") +public class AuditLogController extends EPRestrictedBaseController { + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(DashboardController.class); + + @Autowired + private AuditService auditService; + + /** + * Store audit log of the specified access type. + * + * @param request + * HttpServletRequest + * @param affectedAppId + * App ID + * @param type + * Access type + * @param comment + * Comment + */ + @RequestMapping(value = "/store", method = RequestMethod.GET, produces = "application/json") + public void auditLog(HttpServletRequest request, @RequestParam String affectedAppId, @RequestParam String type, + @RequestParam String comment) { + logger.debug(EELFLoggerDelegate.debugLogger, "auditLog: appId {}, type {], comment {}", affectedAppId, type, + comment); + String cd_type = null; + try { + EPUser user = EPUserUtils.getUserSession(request); + /* Check type of Activity CD */ + if (type.equals("app")) { + cd_type = AuditLog.CD_ACTIVITY_APP_ACCESS; + } else if (type.equals("tab")) { + cd_type = AuditLog.CD_ACTIVITY_TAB_ACCESS; + } else if (type.equals("functional")) { + cd_type = AuditLog.CD_ACTIVITY_FUNCTIONAL_ACCESS; + } else if (type.equals("leftMenu")) { + cd_type = AuditLog.CD_ACTIVITY_LEFT_MENU_ACCESS; + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "Storing auditLog failed! Activity CD type is not correct."); + } + /* Store the audit log only if it contains valid Activity CD */ + if (cd_type != null) { + AuditLog auditLog = new AuditLog(); + auditLog.setActivityCode(cd_type); + /* + * Check affectedAppId and comment and see if these two values are valid + */ + if (comment != null && !comment.equals("") && !comment.equals("undefined")) + auditLog.setComments(EcompPortalUtils.truncateString(comment, PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + if (affectedAppId != null && !affectedAppId.equals("") && !affectedAppId.equals("undefined")) + auditLog.setAffectedRecordId(affectedAppId); + long userId = EPUserUtils.getUserId(request); + auditLog.setUserId(userId); + auditService.logActivity(auditLog, null); + + // Log file + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + logger.info(EELFLoggerDelegate.auditLogger, EPLogUtil.formatAuditLogMessage( + "AuditLogController.auditLog", cd_type, user.getOrgUserId(), affectedAppId, comment)); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "auditLog failed", e); + } + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BEPropertyReaderController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BEPropertyReaderController.java new file mode 100644 index 00000000..6b5d31d7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BEPropertyReaderController.java @@ -0,0 +1,63 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.onap.portalapp.portal.domain.BEProperty; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalsdk.core.controller.FusionBaseController; +import org.onap.portalsdk.core.util.SystemProperties; + +@RestController +@RequestMapping("/portalApi/properties") +public class BEPropertyReaderController extends FusionBaseController{ + @RequestMapping(value = "/readProperty", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse readProperty(HttpServletRequest request, @RequestParam String key) { + try { + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", new BEProperty(key, SystemProperties.getProperty(key))); + } catch (Exception e) { + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); + } + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BasicAuthAccountController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BasicAuthAccountController.java new file mode 100644 index 00000000..f02d8fce --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BasicAuthAccountController.java @@ -0,0 +1,215 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.BasicAuthCredentials; +import org.onap.portalapp.portal.domain.EPEndpoint; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.BasicAuthAccountService; +import org.onap.portalapp.util.EPUserUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class BasicAuthAccountController extends EPRestrictedBaseController { + + @Autowired + private BasicAuthAccountService basicAuthAccountService; + + @Autowired + private AdminRolesService adminRolesService; + + /** + * Saves Basic Authentication account for external systems + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @param newBasicAuthAccount + * BasicAuthCredentials + * @return Id of the newly created account + * @throws Exception + * on failure + */ + @RequestMapping(value = { "/portalApi/basicAuthAccount" }, method = RequestMethod.POST) + public PortalRestResponse createBasicAuthAccount(HttpServletRequest request, HttpServletResponse response, + @RequestBody BasicAuthCredentials newBasicAuthAccount) throws Exception { + + EPUser user = EPUserUtils.getUserSession(request); + if (!adminRolesService.isSuperAdmin(user)) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Authorization Required", + "Admin Only Operation! "); + } + + if (newBasicAuthAccount == null) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", + "newBasicAuthAccount cannot be null or empty"); + } + long accountId = basicAuthAccountService.saveBasicAuthAccount(newBasicAuthAccount); + + List endpointIdList = new ArrayList<>(); + try { + for (EPEndpoint ep : newBasicAuthAccount.getEndpoints()) { + endpointIdList.add(basicAuthAccountService.saveEndpoints(ep)); + } + for (Long endpointId : endpointIdList) { + basicAuthAccountService.saveEndpointAccount(accountId, endpointId); + } + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); + } + + return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); + } + + /** + * Returns list of all BasicAuthCredentials in the system + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return List + * @throws Exception + * on failure + */ + + @RequestMapping(value = { "/portalApi/basicAuthAccount" }, method = RequestMethod.GET) + public PortalRestResponse> getBasicAuthAccount(HttpServletRequest request, + HttpServletResponse response) throws Exception { + + EPUser user = EPUserUtils.getUserSession(request); + if (!adminRolesService.isSuperAdmin(user)) { + return new PortalRestResponse>(PortalRestStatusEnum.ERROR, + "UnAuthorized! Admin Only Operation", new ArrayList<>()); + } + + return new PortalRestResponse>(PortalRestStatusEnum.OK, "Success", + basicAuthAccountService.getAccountData()); + } + + /** + * Updates an existing BasicAuthCredentials account + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @param accountId + * account ID + * @param newBasicAuthAccount + * BasicAuthCredentials + * @return PortalRestResponse + * @throws Exception + * on failure + */ + @RequestMapping(value = { "/portalApi/basicAuthAccount/{accountId}" }, method = RequestMethod.PUT) + public PortalRestResponse updateAccount(HttpServletRequest request, HttpServletResponse response, + @PathVariable("accountId") long accountId, @RequestBody BasicAuthCredentials newBasicAuthAccount) + throws Exception { + + EPUser user = EPUserUtils.getUserSession(request); + if (!adminRolesService.isSuperAdmin(user)) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Authorization Required", + "Admin Only Operation! "); + } + + if (newBasicAuthAccount == null) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", + "BasicAuthCredentials cannot be null or empty"); + } + try { + basicAuthAccountService.updateBasicAuthAccount(accountId, newBasicAuthAccount); + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); + } + + /** + * deletes an existing BasicAuthCredentials account + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @param accountId + * account ID + * @return PortalRestResponse + * @throws Exception + * on failure + */ + @RequestMapping(value = { "/portalApi/basicAuthAccount/{accountId}" }, method = RequestMethod.DELETE) + public PortalRestResponse deleteAccount(HttpServletRequest request, HttpServletResponse response, + @PathVariable("accountId") long accountId) throws Exception { + + EPUser user = EPUserUtils.getUserSession(request); + if (!adminRolesService.isSuperAdmin(user)) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Authorization Required", + "Admin Only Operation! "); + } + + try { + basicAuthAccountService.deleteEndpointAccout(accountId); + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BasicAuthenticationController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BasicAuthenticationController.java new file mode 100644 index 00000000..94e38286 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/BasicAuthenticationController.java @@ -0,0 +1,46 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +/** + * Marker interface to indicate that requests to this controller present HTTP + * Basic Authentication credentials. + */ +public interface BasicAuthenticationController { + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/CommonWidgetController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/CommonWidgetController.java new file mode 100644 index 00000000..0ede833b --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/CommonWidgetController.java @@ -0,0 +1,99 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.controller.DashboardController.WidgetCategory; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.service.DashboardSearchService; +import org.onap.portalapp.portal.transport.CommonWidgetMeta; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class CommonWidgetController extends EPRestrictedBaseController implements BasicAuthenticationController{ + + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(CommonWidgetController.class); + @Autowired + private DashboardSearchService searchService; + + /** + * Validates the resource type parameter. + * + * @param resourceType + * @return True if known in the enum WidgetCategory, else false. + */ + private boolean isValidResourceType(String resourceType) { + if (resourceType == null) + return false; + for (WidgetCategory wc : WidgetCategory.values()) + if (wc.name().equals(resourceType)) + return true; + return false; + } + + /** + * Gets all widgets of the specified resource type. + * + * @param request + * @param resourceType + * Request parameter. + * @return Rest response wrapped around a CommonWidgetMeta object. + */ + @RequestMapping(value = "/commonWidgets", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse getWidgetData(HttpServletRequest request, + @RequestParam String resourceType) { + if (!isValidResourceType(resourceType)){ + logger.debug(EELFLoggerDelegate.debugLogger, "Unexpected resource type {}", resourceType); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + "Unexpected resource type " + resourceType, null); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "success", + searchService.getWidgetData(resourceType)); + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ConsulClientController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ConsulClientController.java new file mode 100644 index 00000000..3a8f6c8d --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ConsulClientController.java @@ -0,0 +1,113 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.service.ConsulHealthService; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import com.orbitz.consul.ConsulException; +import com.orbitz.consul.model.health.ServiceHealth; + +import io.searchbox.client.config.exception.NoServerConfiguredException; + +@RestController +@RequestMapping("/portalApi/consul") +public class ConsulClientController extends EPRestrictedBaseController { + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ConsulClientController.class); + + @Autowired + private ConsulHealthService consulHealthService; + + // Get location of a healthy node running our service + @RequestMapping(value = { "/service/{service}" }, method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse getServiceLocation(HttpServletRequest request, HttpServletResponse response, + @PathVariable("service") String service) { + + try { + return new PortalRestResponse(PortalRestStatusEnum.OK, "Success!", + consulHealthService.getServiceLocation(service, null)); + } catch (NoServerConfiguredException e) { + logger.error(logger.errorLogger, "No healthy service exception!"); + return new PortalRestResponse(PortalRestStatusEnum.WARN, "Warning!", + "No healthy service exception!"); + } catch (ConsulException e) { + logger.error(logger.errorLogger, "Couldn't connect ot consul - Is consul running?"); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Error!", + "Couldn't connect ot consul - Is consul running?"); + } + } + + @RequestMapping(value = { "/service/healthy/{service}" }, method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> getAllHealthyNodes(HttpServletRequest request, + HttpServletResponse response, @PathVariable("service") String service) { + try { + return new PortalRestResponse>(PortalRestStatusEnum.OK, "Success!", + consulHealthService.getAllHealthyNodes(service)); + } catch (ConsulException e) { + logger.error(logger.errorLogger, "Couldn't connect to consul - shouldn't break anything."); + return new PortalRestResponse>(PortalRestStatusEnum.ERROR, "Error!", new ArrayList<>()); + } + } + + @RequestMapping(value = { "/service/all/{service}" }, method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> getAllNodes(HttpServletRequest request, HttpServletResponse response, + @PathVariable("service") String service) { + try { + return new PortalRestResponse>(PortalRestStatusEnum.OK, "Success!", + consulHealthService.getAllNodes(service)); + } catch (ConsulException e) { + logger.error(logger.errorLogger, "Couldn't connect to consul - shouldn't break anything."); + return new PortalRestResponse>(PortalRestStatusEnum.ERROR, "Error!", new ArrayList<>()); + } + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/DashboardController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/DashboardController.java new file mode 100644 index 00000000..d8e8aeb0 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/DashboardController.java @@ -0,0 +1,414 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EcompAuditLog; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.ecomp.model.SearchResultItem; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.aop.EPEELFLoggerAdvice; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.DashboardSearchService; +import org.onap.portalapp.portal.transport.CommonWidget; +import org.onap.portalapp.portal.transport.CommonWidgetMeta; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.AuditLog; +import org.onap.portalsdk.core.domain.support.CollaborateList; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.AuditService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * Controller supplies data to Angular services on the dashboard page. + */ +@Configuration +@RestController +@RequestMapping("/portalApi/dashboard") +public class DashboardController extends EPRestrictedBaseController { + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(DashboardController.class); + + @Autowired + private DashboardSearchService searchService; + @Autowired + private AuditService auditService; + + @Autowired + private AdminRolesService adminRolesService; + + public enum WidgetCategory { + EVENTS, NEWS, IMPORTANTRESOURCES; + } + + /** + * Validates the resource type parameter. + * + * @param resourceType + * @return True if known in the enum WidgetCategory, else false. + */ + private boolean isValidResourceType(String resourceType) { + if (resourceType == null) + return false; + for (WidgetCategory wc : WidgetCategory.values()) + if (wc.name().equals(resourceType)) + return true; + return false; + } + + /** + * Gets all widgets of the specified resource type. + * In iteration 41 (when widget will utilized service onboarding), this method can be removed, instead we will use CommonWidgetController.java (basic auth based) + * + * @param request + * @param resourceType + * Request parameter. + * @return Rest response wrapped around a CommonWidgetMeta object. + */ + @RequestMapping(value = "/widgetData", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse getWidgetData(HttpServletRequest request, + @RequestParam String resourceType) { + if (!isValidResourceType(resourceType)) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + "Unexpected resource type " + resourceType, null); + return new PortalRestResponse(PortalRestStatusEnum.OK, "success", + searchService.getWidgetData(resourceType)); + } + + + /** + * Saves a batch of events, news or resources. + * + * @param commonWidgetMeta + * read from POST body. + * @return Rest response wrapped around a String; e.g., "success" or "ERROR" + */ + @RequestMapping(value = "/widgetDataBulk", method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse saveWidgetDataBulk(@RequestBody CommonWidgetMeta commonWidgetMeta) { + logger.debug(EELFLoggerDelegate.debugLogger, "saveWidgetDataBulk: argument is {}", commonWidgetMeta); + if (commonWidgetMeta.getCategory() == null || commonWidgetMeta.getCategory().trim().equals("")) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "ERROR", + "Category cannot be null or empty"); + if (!isValidResourceType(commonWidgetMeta.getCategory())) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + "Unexpected resource type " + commonWidgetMeta.getCategory(), null); + // validate dates + for (CommonWidget cw : commonWidgetMeta.getItems()) { + String err = validateCommonWidget(cw); + if (err != null) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, err, null); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "success", + searchService.saveWidgetDataBulk(commonWidgetMeta)); + } + + /** + * Saves one: event, news or resource + * + * @param commonWidget + * read from POST body + * @return Rest response wrapped around a String; e.g., "success" or "ERROR" + */ + @RequestMapping(value = "/widgetData", method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse saveWidgetData(@RequestBody CommonWidget commonWidget, HttpServletRequest request, + HttpServletResponse response) { + logger.debug(EELFLoggerDelegate.debugLogger, "saveWidgetData: argument is {}", commonWidget); + EPUser user = EPUserUtils.getUserSession(request); + if (adminRolesService.isSuperAdmin(user)) { + if (commonWidget.getCategory() == null || commonWidget.getCategory().trim().isEmpty()) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "ERROR", + "Category cannot be null or empty"); + String err = validateCommonWidget(commonWidget); + if (err != null) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, err, null); + return new PortalRestResponse(PortalRestStatusEnum.OK, "success", + searchService.saveWidgetData(commonWidget)); + } else { + EcompPortalUtils.setBadPermissions(user, response, "saveWidgetData"); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed", null); + } + } + + /** + * Used by the validate function + */ + private final SimpleDateFormat yearMonthDayFormat = new SimpleDateFormat("yyyy-MM-dd"); + + /** + * Validates the content of a common widget. + * + * @param cw + * @return null on success; an error message if validation fails. + * @throws Exception + */ + private String validateCommonWidget(CommonWidget cw) { + if (!isValidResourceType(cw.getCategory())) + return "Invalid category: " + cw.getCategory(); + if (cw.getTitle() == null || cw.getTitle().trim().length() == 0) + return "Title is missing"; + if (cw.getHref() == null || cw.getHref().trim().length() == 0) + return "HREF is missing"; + if (!cw.getHref().toLowerCase().startsWith("http")) + return "HREF does not start with http"; + if (cw.getSortOrder() == null) + return "Sort order is null"; + if (cw.getEventDate() == null || cw.getEventDate().trim().length() == 0) + return "Date is missing"; + try { + yearMonthDayFormat.setLenient(false); + Date date = yearMonthDayFormat.parse(cw.getEventDate()); + if (date == null) + return "Failed to parse date " + cw.getEventDate(); + } catch (ParseException ex) { + return "Invalid date format " +ex.toString(); + } + return null; + } + + /** + * Deletes one: event, news or resource + * + * @param commonWidget + * read from POST body + * @return Rest response wrapped around a String; e.g., "success" or "ERROR" + */ + @RequestMapping(value = "/deleteData", method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse deleteWidgetData(@RequestBody CommonWidget commonWidget) { + logger.debug(EELFLoggerDelegate.debugLogger, "deleteWidgetData: argument is {}", commonWidget); + return new PortalRestResponse(PortalRestStatusEnum.OK, "success", + searchService.deleteWidgetData(commonWidget)); + } + + /** + * Searches all portal for the input string. + * + * @param request + * @param searchString + * @return Rest response wrapped around a Map of String to List of Search + * Result Item. + */ + @EPAuditLog + @RequestMapping(value = "/search", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse>> searchPortal(HttpServletRequest request, + @RequestParam String searchString) { + + if (searchString != null) + searchString = searchString.trim(); + EPUser user = EPUserUtils.getUserSession(request); + try { + if (user == null) { + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, + "searchPortal: User object is null? - check logs", + new HashMap>()); + } else if (searchString == null || searchString.length() == 0) { + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "searchPortal: String string is null", + new HashMap>()); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "searchPortal: user {}, search string '{}'", + user.getLoginId(), searchString); + Map> results = searchService.searchResults(user.getLoginId(), + searchString); + /*Audit log the search*/ + AuditLog auditLog = new AuditLog(); + auditLog.setUserId(user.getId()); + auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_SEARCH); + auditLog.setComments(EcompPortalUtils.truncateString(searchString, PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP,EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + auditService.logActivity(auditLog, null); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP,EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog(MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP),MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, EPLogUtil.formatAuditLogMessage("DashboardController.PortalRestResponse", + EcompAuditLog.CD_ACTIVITY_SEARCH, user.getOrgUserId(), null, searchString)); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "searchPortal failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage() + " - check logs.", + new HashMap>()); + } + } + + /** + * Gets all active users. + * + * TODO: should only the superuser be allowed to use this API? + * + * @param request + * @return Rest response wrapped around a list of String + */ + @RequestMapping(value = "/activeUsers", method = RequestMethod.GET, produces = "application/json") + public List getActiveUsers(HttpServletRequest request) { + List activeUsers = null; + List onlineUsers = new ArrayList<>(); + try { + EPUser user = EPUserUtils.getUserSession(request); + String userId = user.getOrgUserId(); + + activeUsers = searchService.getRelatedUsers(userId); + HashSet usersSet = (HashSet) CollaborateList.getInstance().getAllUserName(); + for (String users : activeUsers) { + if (usersSet.contains(users)) { + onlineUsers.add(users); + } + } + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getActiveUsers failed", e); + } + return onlineUsers; + } + + /** + * Gets the refresh interval and duration of a cycle of continuous refreshing for the online users side panel, both in milliseconds. + * + * @param request + * @return Rest response wrapped around a number that is the number of milliseconds. + */ + @RequestMapping(value = "/onlineUserUpdateRate", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> getOnlineUserUpdateRate(HttpServletRequest request) { + try { + String updateRate = SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_RATE); + String updateDuration = SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_DURATION); + Integer rateInMiliSec = Integer.valueOf(updateRate)*1000; + Integer durationInMiliSec = Integer.valueOf(updateDuration)*1000; + Map results = new HashMap(); + results.put("onlineUserUpdateRate", String.valueOf(rateInMiliSec)); + results.put("onlineUserUpdateDuration", String.valueOf(durationInMiliSec)); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getOnlineUserUpdateRate failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); + } + } + + /** + * Gets the window width threshold for collapsing right menu from system.properties. + * + * @param request + * @return Rest response wrapped around a number that is the window width threshold to collapse right menu. + */ + @RequestMapping(value = "/windowWidthThresholdRightMenu", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> getWindowWidthThresholdForRightMenu(HttpServletRequest request) { + try { + String windowWidthString = SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_RIGHT_MENU); + Integer windowWidth = Integer.valueOf(windowWidthString); + Map results = new HashMap(); + results.put("windowWidth", String.valueOf(windowWidth)); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getWindowWidthThresholdForRightMenu failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); + } + } + + + /** + * Gets the window width threshold for collapsing left menu from system.properties. + * + * @param request + * @return Rest response wrapped around a number that is the window width threshold to collapse the left menu. + */ + @RequestMapping(value = "/windowWidthThresholdLeftMenu", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> getWindowWidthThresholdForLeftMenu(HttpServletRequest request) { + try { + String windowWidthString = SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_LEFT_MENU); + Integer windowWidth = Integer.valueOf(windowWidthString); + Map results = new HashMap(); + results.put("windowWidth", String.valueOf(windowWidth)); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getWindowWidthThresholdForLeftMenu failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); + } + } + + /** + * Gets only those users that are 'related' to the currently logged-in user. + * + * @param request + * @return Rest response wrapped around a List of String + */ + @RequestMapping(value = "/relatedUsers", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> activeUsers(HttpServletRequest request) { + EPUser user = EPUserUtils.getUserSession(request); + try { + if (user == null) { + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "User object is null? - check logs", + new ArrayList<>()); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "activeUsers: searching for user {}", user.getLoginId()); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", + searchService.getRelatedUsers(user.getLoginId())); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "activeUsers failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage() + " - check logs.", + new ArrayList<>()); + } + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/DashboardSearchResultController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/DashboardSearchResultController.java new file mode 100644 index 00000000..b26bd1bc --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/DashboardSearchResultController.java @@ -0,0 +1,261 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.ecomp.model.SearchResultItem; +import org.onap.portalapp.portal.service.DashboardSearchService; +import org.onap.portalapp.portal.transport.CommonWidget; +import org.onap.portalapp.portal.transport.CommonWidgetMeta; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.support.CollaborateList; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/portalApi/search") +public class DashboardSearchResultController extends EPRestrictedBaseController { + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(DashboardSearchResultController.class); + + @Autowired + private DashboardSearchService searchService; + + /** + * Gets all widgets by type: NEW or RESOURCE + * + * @param request + * @param resourceType + * Request parameter. + * @return Rest response wrapped around a CommonWidgetMeta object. + */ + @RequestMapping(value = "/widgetData", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse getWidgetData(HttpServletRequest request, + @RequestParam String resourceType) { + return new PortalRestResponse(PortalRestStatusEnum.OK, "success", + searchService.getWidgetData(resourceType)); + } + + /** + * Saves all: news and resources + * + * @param commonWidgetMeta + * read from POST body. + * @return Rest response wrapped around a String; e.g., "success" or "ERROR" + */ + @RequestMapping(value = "/widgetDataBulk", method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse saveWidgetDataBulk(@RequestBody CommonWidgetMeta commonWidgetMeta) { + logger.debug(EELFLoggerDelegate.debugLogger, "saveWidgetDataBulk: argument is {}", commonWidgetMeta); + if (commonWidgetMeta.getCategory() == null || commonWidgetMeta.getCategory().trim().equals("")) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "ERROR", + "Category cannot be null or empty"); + // validate dates + for (CommonWidget cw : commonWidgetMeta.getItems()) { + String err = validateCommonWidget(cw); + if (err != null) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, err, null); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "success", + searchService.saveWidgetDataBulk(commonWidgetMeta)); + } + + /** + * Saves one: news or resource + * + * @param commonWidget + * read from POST body + * @return Rest response wrapped around a String; e.g., "success" or "ERROR" + */ + @RequestMapping(value = "/widgetData", method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse saveWidgetData(@RequestBody CommonWidget commonWidget) { + logger.debug(EELFLoggerDelegate.debugLogger, "saveWidgetData: argument is {}", commonWidget); + if (commonWidget.getCategory() == null || commonWidget.getCategory().trim().equals("")) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "ERROR", + "Cateogry cannot be null or empty"); + String err = validateCommonWidget(commonWidget); + if (err != null) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, err, null); + return new PortalRestResponse(PortalRestStatusEnum.OK, "success", + searchService.saveWidgetData(commonWidget)); + } + + /** + * Used by the validate function + */ + private final SimpleDateFormat yearMonthDayFormat = new SimpleDateFormat("yyyy-MM-dd"); + + /** + * Validates the content of a common widget. + * + * @param cw + * @return null on success; an error message if validation fails. + * @throws Exception + */ + private String validateCommonWidget(CommonWidget cw) { + try { + if (cw.getEventDate() != null && cw.getEventDate().trim().length() > 0) + yearMonthDayFormat.parse(cw.getEventDate()); + } catch (ParseException ex) { + return ex.toString(); + } + return null; + } + + /** + * Deletes one: news or resource + * + * @param commonWidget + * read from POST body + * @return Rest response wrapped around a String; e.g., "success" or "ERROR" + */ + @RequestMapping(value = "/deleteData", method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse deleteWidgetData(@RequestBody CommonWidget commonWidget) { + logger.debug(EELFLoggerDelegate.debugLogger, "deleteWidgetData: argument is {}", commonWidget); + return new PortalRestResponse(PortalRestStatusEnum.OK, "success", + searchService.deleteWidgetData(commonWidget)); + } + + /** + * Searches all portal for the input string. + * + * @param request + * @param searchString + * @return Rest response wrapped around a Map of String to List of Search + * Result Item. + */ + @RequestMapping(value = "/allPortal", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse>> searchPortal(HttpServletRequest request, + @RequestParam String searchString) { + + EPUser user = EPUserUtils.getUserSession(request); + try { + if (user == null) { + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, + "searchPortal: User object is null? - check logs", + new HashMap>()); + } else if (searchString == null || searchString.trim().length() == 0) { + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "searchPortal: String string is null", + new HashMap>()); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "searchPortal: user {}, search string '{}'", + user.getLoginId(), searchString); + Map> results = searchService.searchResults(user.getLoginId(), + searchString); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "searchPortal failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage() + " - check logs.", + new HashMap>()); + } + } + + /** + * Gets all active users. + * + * TODO: should only the superuser be allowed to use this API? + * + * @param request + * @return Rest response wrapped around a list of String + */ + @RequestMapping(value = "/activeUsers", method = RequestMethod.GET, produces = "application/json") + public List getActiveUsers(HttpServletRequest request) { + List activeUsers = null; + List onlineUsers = new ArrayList<>(); + try { + EPUser user = EPUserUtils.getUserSession(request); + String userId = user.getOrgUserId(); + + activeUsers = searchService.getRelatedUsers(userId); + HashSet usersSet = (HashSet) CollaborateList.getInstance().getAllUserName(); + for (String users : activeUsers) { + if (usersSet.contains(users)) { + onlineUsers.add(users); + } + } + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getActiveUsers failed", e); + } + return onlineUsers; + } + + /** + * Gets only those users that are 'related' to the currently logged-in user. + * + * @param request + * @return Rest response wrapped around a List of String + */ + @RequestMapping(value = "/relatedUsers", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> activeUsers(HttpServletRequest request) { + EPUser user = EPUserUtils.getUserSession(request); + try { + if (user == null) { + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "User object is null? - check logs", + new ArrayList<>()); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "activeUsers: searching for user {}", user.getLoginId()); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", + searchService.getRelatedUsers(user.getLoginId())); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "activeUsers failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage() + " - check logs.", + new ArrayList<>()); + } + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/EncryptAdminController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/EncryptAdminController.java new file mode 100644 index 00000000..65b24707 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/EncryptAdminController.java @@ -0,0 +1,220 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.hibernate.Query; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.exception.CipherUtilException; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.service.DataAccessService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping(PortalConstants.REST_AUX_API) +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class EncryptAdminController implements BasicAuthenticationController { + @Autowired + DataAccessService dataAccessService; + @Autowired + protected SessionFactory sessionFactory; + + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EncryptAdminController.class); + + @RequestMapping(value = { "/executeEncryptQuery" }, method = RequestMethod.POST) + public Map executeEncrypt(HttpServletRequest request, HttpServletResponse response) + throws CipherUtilException { + + return fetchRecords(); + } + + public Map fetchRecords() throws CipherUtilException { + List appPassword = null; + Session localSession = null; + Map responsemap; + try { + localSession = sessionFactory.openSession(); + responsemap = new LinkedHashMap(); + appPassword = dataAccessService.executeNamedQuery("getAppPassword", null, null); + if (appPassword != null) { + Iterator i = appPassword.iterator(); + while (i.hasNext()) { + Object[] user = (Object[]) i.next(); + Long app_id = (Long) user[0]; + String app_password = (String) user[1]; + if (app_id != null && StringUtils.isNotEmpty(app_password)) { + try { + final String pass = CipherUtil.encryptPKC(CipherUtil.decrypt(app_password)); + Query query = null; + try { + localSession.getTransaction().begin(); + query = localSession.createSQLQuery( + "UPDATE fn_app m SET m.app_password= :pass " + " where m.app_id = :app_id"); + query.setParameter("pass", pass); + query.setParameter("app_id", app_id); + int result = query.executeUpdate(); + localSession.getTransaction().commit(); + logger.debug(EELFLoggerDelegate.debugLogger, + "--------------getAppPassword-------query successfull------------------" + + query); + + } catch (Exception e) { + localSession.getTransaction().rollback(); + logger.debug(EELFLoggerDelegate.debugLogger, + "--------------getAppPassword--------query failed-----------------" + query); + responsemap.put(app_id, "-------query failed-----------------" + query); + logger.error(EELFLoggerDelegate.errorLogger, + "getAppPassword error while executing the query", e); + + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "getAppPassword error while executing the query", e); + } + } + } + } + appPassword = dataAccessService.executeNamedQuery("getBasicauthAccount", null, null); + if (appPassword != null) { + Iterator i = appPassword.iterator(); + while (i.hasNext()) { + Object[] user = (Object[]) i.next(); + Long app_id = (Long) user[0]; + String password = (String) user[1]; + if (app_id != null && StringUtils.isNotEmpty(password)) { + try { + final String pass = CipherUtil.encryptPKC(CipherUtil.decrypt(password)); + Query query = null; + try { + localSession.getTransaction().begin(); + query = localSession + .createSQLQuery("UPDATE ep_basic_auth_account m SET m.password = :pass" + + " where m.id = :app_id"); + query.setParameter("pass", pass); + query.setParameter("app_id", app_id); + int result = query.executeUpdate(); + localSession.getTransaction().commit(); + logger.debug(EELFLoggerDelegate.debugLogger, + "--------------getAppPassword-------query successfull------------------" + + query); + + } catch (Exception e) { + localSession.getTransaction().rollback(); + logger.debug(EELFLoggerDelegate.debugLogger, + "--------------getAppPassword--------query failed-----------------" + query); + responsemap.put(app_id, "-------query failed-----------------" + query); + logger.error(EELFLoggerDelegate.errorLogger, + "getAppPassword error while executing the query", e); + + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "getAppPassword error while executing the query", e); + } + + } + + } + } + appPassword = dataAccessService.executeNamedQuery("getMicroserviceInfo", null, null); + if (appPassword != null) { + Iterator i = appPassword.iterator(); + while (i.hasNext()) { + Object[] user = (Object[]) i.next(); + Long app_id = (Long) user[0]; + String password = (String) user[1]; + if (app_id != null && StringUtils.isNotEmpty(password)) { + try { + final String pass = CipherUtil.encryptPKC(CipherUtil.decrypt(password)); + Query query = null; + try { + localSession.getTransaction().begin(); + query = localSession.createSQLQuery( + "UPDATE ep_microservice m SET m.password = :pass" + " WHERE m.id = :app_id"); + query.setParameter("pass", pass); + query.setParameter("app_id", app_id); + int result = query.executeUpdate(); + localSession.getTransaction().commit(); + logger.debug(EELFLoggerDelegate.debugLogger, + "--------------getAppPassword-------query successfull------------------" + + query); + + } catch (Exception e) { + localSession.getTransaction().rollback(); + logger.debug(EELFLoggerDelegate.debugLogger, + "--------------getAppPassword--------query failed-----------------" + query); + responsemap.put(app_id, "-------query failed-----------------" + query); + logger.error(EELFLoggerDelegate.errorLogger, + "getAppPassword error while executing the query", e); + + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "getAppPassword error while executing the query", e); + } + + } + + } + } + + } finally { + EcompPortalUtils.closeLocalSession(localSession, "updateRecords"); + } + return responsemap; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ExternalAccessRolesController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ExternalAccessRolesController.java new file mode 100644 index 00000000..0be015ee --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ExternalAccessRolesController.java @@ -0,0 +1,807 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + + +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.onap.portalapp.portal.domain.CentralV2RoleFunction; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EcompAuditLog; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.exceptions.InvalidRoleException; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.aop.EPEELFLoggerAdvice; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.service.ExternalAccessRolesService; +import org.onap.portalapp.portal.transport.CentralRole; +import org.onap.portalapp.portal.transport.CentralRoleFunction; +import org.onap.portalapp.portal.transport.CentralUser; +import org.onap.portalapp.portal.transport.CentralV2Role; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.domain.AuditLog; +import org.onap.portalsdk.core.domain.Role; +import org.onap.portalsdk.core.domain.RoleFunction; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.restful.domain.EcompUser; +import org.onap.portalsdk.core.service.AuditService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.slf4j.MDC; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.swagger.annotations.ApiOperation; + +@RestController +@RequestMapping("/auxapi") +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class ExternalAccessRolesController implements BasicAuthenticationController { + + private static final String ROLE_INVALID_CHARS = "%=():,\"\""; + + private static final String SUCCESSFULLY_DELETED = "Successfully Deleted"; + + private static final String INVALID_UEB_KEY = "Invalid uebkey!"; + + private static final String LOGIN_ID = "LoginId"; + + RestTemplate template = new RestTemplate(); + + @Autowired + private AuditService auditService; + + private static final String UEBKEY = "uebkey"; + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ExternalAccessRolesController.class); + + @Autowired + private ExternalAccessRolesService externalAccessRolesService; + + @ApiOperation(value = "Gets user role for an application.", response = CentralUser.class, responseContainer="List") + @RequestMapping(value = { + "/user/{loginId}" }, method = RequestMethod.GET, produces = "application/json") + public CentralUser getUser(HttpServletRequest request, HttpServletResponse response, + @PathVariable("loginId") String loginId) throws Exception { + + CentralUser answer = null; + try { + fieldsValidation(request); + answer = externalAccessRolesService.getUserRoles(loginId, request.getHeader(UEBKEY)); + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getUser failed", e); + } + return answer; + } + + @ApiOperation(value = "Gets user roles for an application which is upgraded to newer version.", response = String.class, responseContainer="List") + @RequestMapping(value = { + "/v2/user/{loginId}" }, method = RequestMethod.GET, produces = "application/json") + public String getV2UserList(HttpServletRequest request, HttpServletResponse response, + @PathVariable("loginId") String loginId) throws Exception { + String answer = null; + try { + fieldsValidation(request); + answer = externalAccessRolesService.getV2UserWithRoles(loginId, request.getHeader(UEBKEY)); + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getV2UserList failed", e); + } + return answer; + } + + @ApiOperation(value = "Gets roles for an application.", response = CentralRole.class, responseContainer="Json") + @RequestMapping(value = { + "/roles" }, method = RequestMethod.GET, produces = "application/json") + public List getRolesForApp(HttpServletRequest request, HttpServletResponse response) throws Exception { + logger.debug(EELFLoggerDelegate.debugLogger, "Request received for getRolesForApp"); + List v2CenRole = null; + List cenRole = null; + try { + fieldsValidation(request); + EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); + // Sync all roles from external system into Ecomp portal DB + logger.debug(EELFLoggerDelegate.debugLogger, "getRolesForApp: Entering into syncApplicationRolesWithEcompDB"); + externalAccessRolesService.syncApplicationRolesWithEcompDB(app); + logger.debug(EELFLoggerDelegate.debugLogger, "getRolesForApp: Finished syncApplicationRolesWithEcompDB"); + v2CenRole = externalAccessRolesService.getRolesForApp(request.getHeader(UEBKEY)); + cenRole = externalAccessRolesService.convertV2CentralRoleListToOldVerisonCentralRoleList(v2CenRole); + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getRolesForApp failed", e); + } + logger.debug(EELFLoggerDelegate.debugLogger, "Request completed for getRolesForApp"); + return cenRole; + } + + @ApiOperation(value = "Gets roles for an application which is upgraded to newer version.", response = CentralV2Role.class, responseContainer="Json") + @RequestMapping(value = { + "/v2/roles" }, method = RequestMethod.GET, produces = "application/json") + public List getV2RolesForApp(HttpServletRequest request, HttpServletResponse response) throws Exception { + logger.debug(EELFLoggerDelegate.debugLogger, "Request received for getV2RolesForApp"); + List answer = null; + try { + fieldsValidation(request); + EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); + // Sync all roles from external system into Ecomp portal DB + logger.debug(EELFLoggerDelegate.debugLogger, "getV2RolesForApp: Entering into syncApplicationRolesWithEcompDB"); + externalAccessRolesService.syncApplicationRolesWithEcompDB(app); + logger.debug(EELFLoggerDelegate.debugLogger, "getV2RolesForApp: Finished syncApplicationRolesWithEcompDB"); + answer = externalAccessRolesService.getRolesForApp(request.getHeader(UEBKEY)); + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getV2RolesForApp failed", e); + } + logger.debug(EELFLoggerDelegate.debugLogger, "Request completed for getV2RolesForApp"); + return answer; + } + + @ApiOperation(value = "Gets all role functions for an application for older version.", response = CentralRoleFunction.class, responseContainer="Json") + @RequestMapping(value = { + "/functions" }, method = RequestMethod.GET, produces = "application/json") + public List getRoleFunctionsList(HttpServletRequest request, HttpServletResponse response) + throws Exception { + List answer = null; + List roleFuncList = null; + logger.debug(EELFLoggerDelegate.debugLogger, "Request received for getRoleFunctionsList"); + try { + fieldsValidation(request); + EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); + // Sync all functions from external system into Ecomp portal DB + logger.debug(EELFLoggerDelegate.debugLogger, "getRoleFunctionsList: Entering into syncRoleFunctionFromExternalAccessSystem"); + externalAccessRolesService.syncRoleFunctionFromExternalAccessSystem(app); + logger.debug(EELFLoggerDelegate.debugLogger, "getRoleFunctionsList: Finished syncRoleFunctionFromExternalAccessSystem"); + answer = externalAccessRolesService.getRoleFuncList(request.getHeader(UEBKEY)); + roleFuncList = externalAccessRolesService.convertCentralRoleFunctionToRoleFunctionObject(answer); + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getRoleFunctionsList failed", e); + } + logger.debug(EELFLoggerDelegate.debugLogger, "Request completed for getRoleFunctionsList"); + return roleFuncList; + } + + @ApiOperation(value = "Gets all role functions for an application which is upgraded to newer version.", response = CentralV2RoleFunction.class, responseContainer="Json") + @RequestMapping(value = { + "/v2/functions" }, method = RequestMethod.GET, produces = "application/json") + public List getV2RoleFunctionsList(HttpServletRequest request, HttpServletResponse response) + throws Exception { + List cenRoleFuncList = null; + logger.debug(EELFLoggerDelegate.debugLogger, "Request received for getV2RoleFunctionsList"); + try { + fieldsValidation(request); + EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); + // Sync all functions from external system into Ecomp portal DB + logger.debug(EELFLoggerDelegate.debugLogger, "getV2RoleFunctionsList: Entering into syncRoleFunctionFromExternalAccessSystem"); + externalAccessRolesService.syncRoleFunctionFromExternalAccessSystem(app); + logger.debug(EELFLoggerDelegate.debugLogger, "getV2RoleFunctionsList: Finished syncRoleFunctionFromExternalAccessSystem"); + cenRoleFuncList = externalAccessRolesService.getRoleFuncList(request.getHeader(UEBKEY)); + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getV2RoleFunctionsList failed", e); + } + logger.debug(EELFLoggerDelegate.debugLogger, "Request completed for getV2RoleFunctionsList"); + return cenRoleFuncList; + } + + @ApiOperation(value = "Gets role information for an application.", response = CentralRole.class, responseContainer="Json") + @RequestMapping(value = { + "/role/{role_id}" }, method = RequestMethod.GET, produces = "application/json") + public CentralRole getRoleInfo(HttpServletRequest request, HttpServletResponse response, + @PathVariable("role_id") Long roleId) throws Exception { + CentralV2Role answer = null; + CentralRole cenRole = null; + logger.debug(EELFLoggerDelegate.debugLogger, "Request received for getRoleInfo"); + try { + fieldsValidation(request); + answer = externalAccessRolesService.getRoleInfo(roleId, request.getHeader(UEBKEY)); + cenRole = externalAccessRolesService.convertV2CentralRoleToOldVerisonCentralRole(answer); + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getRoleInfo failed", e); + } + logger.debug(EELFLoggerDelegate.debugLogger, "Request completed for getRoleInfo"); + return cenRole; + } + + @ApiOperation(value = "Gets v2 role information for an application which is upgraded to newer version.", response = CentralV2Role.class, responseContainer="Json") + @RequestMapping(value = { + "/v2/role/{role_id}" }, method = RequestMethod.GET, produces = "application/json") + public CentralV2Role getV2RoleInfo(HttpServletRequest request, HttpServletResponse response, + @PathVariable("role_id") Long roleId) throws Exception { + CentralV2Role answer = null; + logger.debug(EELFLoggerDelegate.debugLogger, "Request received for getV2RoleInfo"); + try { + fieldsValidation(request); + answer = externalAccessRolesService.getRoleInfo(roleId, request.getHeader(UEBKEY)); + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getV2RoleInfo failed", e); + } + logger.debug(EELFLoggerDelegate.debugLogger, "Request completed for getV2RoleInfo"); + return answer; + } + + @ApiOperation(value = "Gets role information for an application provided by function code.", response = CentralRoleFunction.class, responseContainer = "Json") + @RequestMapping(value = { "/function/{code}" }, method = RequestMethod.GET, produces = "application/json") + public CentralRoleFunction getRoleFunction(HttpServletRequest request, HttpServletResponse response, + @PathVariable("code") String code) throws Exception { + CentralV2RoleFunction centralV2RoleFunction = null; + CentralRoleFunction centralRoleFunction = new CentralRoleFunction(); + try { + fieldsValidation(request); + centralV2RoleFunction = externalAccessRolesService.getRoleFunction(code, request.getHeader(UEBKEY)); + if(centralV2RoleFunction != null && EcompPortalUtils.getFunctionCode(centralV2RoleFunction.getCode()).equals(code)) { + BeanUtils.copyProperties(centralV2RoleFunction, centralRoleFunction, "type","action"); + } + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getRoleFunction failed", e); + } + return centralRoleFunction; + } + + @ApiOperation(value = "Gets role information for an application provided by function code.", response = CentralV2RoleFunction.class, responseContainer = "Json") + @RequestMapping(value = { "/v2/function/{code}" }, method = RequestMethod.GET, produces = "application/json") + public CentralV2RoleFunction getV2RoleFunction(HttpServletRequest request, HttpServletResponse response, + @PathVariable("code") String code) throws Exception { + CentralV2RoleFunction centralV2RoleFunction = null; + try { + fieldsValidation(request); + centralV2RoleFunction = externalAccessRolesService.getRoleFunction(code, request.getHeader(UEBKEY)); + if(centralV2RoleFunction == null || !EcompPortalUtils.getFunctionCode(centralV2RoleFunction.getCode()).equals(code)) { + centralV2RoleFunction = new CentralV2RoleFunction(); + } + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getV2RoleFunction failed", e); + } + return centralV2RoleFunction; + } + + @ApiOperation(value = "Saves role function for an application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/roleFunction" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse saveRoleFunction(HttpServletRequest request, HttpServletResponse response, + @RequestBody String roleFunc) throws Exception { + try { + fieldsValidation(request); + String data = roleFunc; + ObjectMapper mapper = new ObjectMapper(); + List applicationList = externalAccessRolesService.getApp(request.getHeader(UEBKEY)); + EPApp requestedApp = applicationList.get(0); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + CentralV2RoleFunction availableRoleFunction = mapper.readValue(data, CentralV2RoleFunction.class); + CentralV2RoleFunction domainRoleFunction = externalAccessRolesService.getRoleFunction(availableRoleFunction.getCode(), + requestedApp.getUebKey()); + boolean saveOrUpdateResponse = false; + if (domainRoleFunction != null) { + domainRoleFunction.setName(availableRoleFunction.getName()); + saveOrUpdateResponse = externalAccessRolesService.saveCentralRoleFunction(domainRoleFunction, + requestedApp); + } else { + availableRoleFunction.setAppId(requestedApp.getId()); + saveOrUpdateResponse = externalAccessRolesService.saveCentralRoleFunction(availableRoleFunction, + requestedApp); + } + if (saveOrUpdateResponse) { + EPUser user = externalAccessRolesService.getUser(request.getHeader(LOGIN_ID)).get(0); + EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); + CentralV2RoleFunction function = externalAccessRolesService + .getRoleFunction(availableRoleFunction.getCode(), request.getHeader(UEBKEY)); + String activityCode = (function.getCode() == null) + ? EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_ADD_FUNCTION + : EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_FUNCTION; + logger.info(EELFLoggerDelegate.applicationLogger, "saveRoleFunction: succeeded for app {}, function {}", + app.getId(), availableRoleFunction.getCode()); + AuditLog auditLog = new AuditLog(); + auditLog.setUserId(user.getId()); + auditLog.setActivityCode(activityCode); + auditLog.setComments( + EcompPortalUtils.truncateString( + "saveRoleFunction role for app:" + app.getId() + " and function:'" + + availableRoleFunction.getCode() + "'", + PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + auditLog.setAffectedRecordId(user.getOrgUserId()); + auditService.logActivity(auditLog, null); + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("ExternalAccessRolesController.saveRoleFunction", activityCode, + String.valueOf(user.getId()), user.getOrgUserId(), availableRoleFunction.getCode())); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "saveRoleFunction failed"); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + "Failed to saveRoleFunction for '" + availableRoleFunction.getCode() + "'", "Failed"); + } + } catch (Exception e) { + if (e.getMessage().contains(INVALID_UEB_KEY)) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + }else { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + logger.error(EELFLoggerDelegate.errorLogger, "saveRoleFunction failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), "Failed"); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully Saved", "Success"); + } + + @ApiOperation(value = "Deletes role function for an application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/roleFunction/{code}" }, method = RequestMethod.DELETE, produces = "application/json") + public PortalRestResponse deleteRoleFunction(HttpServletRequest request, HttpServletResponse response, + @PathVariable("code") String code) throws Exception { + try { + fieldsValidation(request); + EPUser user = externalAccessRolesService.getUser(request.getHeader(LOGIN_ID)).get(0); + EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); + boolean getDelFuncResponse = externalAccessRolesService.deleteCentralRoleFunction(code, app); + if (getDelFuncResponse) { + logger.info(EELFLoggerDelegate.applicationLogger, "deleteRoleFunction: succeeded for app {}, role {}", + app.getId(), code); + AuditLog auditLog = new AuditLog(); + auditLog.setUserId(user.getId()); + auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_FUNCTION); + auditLog.setComments(EcompPortalUtils.truncateString( + "Deleted function for app:" + app.getId() + " and function code:'" + code + "'", + PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + auditLog.setAffectedRecordId(user.getOrgUserId()); + auditService.logActivity(auditLog, null); + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("ExternalAccessRolesController.deleteRoleFunction", + EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_FUNCTION, String.valueOf(user.getId()), + user.getOrgUserId(), code)); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "deleteRoleFunction failed"); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + "Failed to deleteRoleFunction for '" + code + "'", "Failed"); + } + } catch (Exception e) { + if (e.getMessage().contains(INVALID_UEB_KEY)) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + } else { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + } + logger.error(EELFLoggerDelegate.errorLogger, "deleteRoleFunction failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage(), "Failed"); + } + return new PortalRestResponse<>(PortalRestStatusEnum.OK, SUCCESSFULLY_DELETED, "Success"); + + } + + @ApiOperation(value = "Saves role for an application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/role" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse saveRole(HttpServletRequest request, HttpServletResponse response, + @RequestBody Role role) throws Exception { + try { + fieldsValidation(request); + ExternalRequestFieldsValidator saveRoleResult = null; + EPUser user = externalAccessRolesService.getUser(request.getHeader(LOGIN_ID)).get(0); + EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); + if(role.getId()!=null && StringUtils.containsAny(role.getName(), ROLE_INVALID_CHARS)) { + throw new InvalidRoleException("Invalid role name found for '" + role.getName() + "'. Any one of the following characters '%,(),=,:,comma, and double quotes' are not allowed"); + } + saveRoleResult = externalAccessRolesService.saveRoleForApplication(role, request.getHeader(UEBKEY)); + if (saveRoleResult.isResult()) { + String activityCode = (role.getId() == null) ? EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_ADD_ROLE + : EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_ROLE_AND_FUNCTION; + logger.info(EELFLoggerDelegate.applicationLogger, "saveRole: succeeded for app {}, role {}", + app.getId(), role.getName()); + AuditLog auditLog = new AuditLog(); + auditLog.setUserId(user.getId()); + auditLog.setActivityCode(activityCode); + auditLog.setComments(EcompPortalUtils.truncateString( + "saveRole role for app:" + app.getId() + " and role:'" + role.getName() + "'", + PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + auditLog.setAffectedRecordId(user.getOrgUserId()); + auditService.logActivity(auditLog, null); + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("ExternalAccessRolesController.saveRole", activityCode, + String.valueOf(user.getId()), user.getOrgUserId(), role.getName())); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + } else { + if(saveRoleResult.getDetailMessage().contains("406")){ + response.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, + "Failed to create a role for '" + role.getName() + "'. Any one of the following characters '%,(),=,:,comma, and double quotes' are not allowed" + , "Failed"); + } else{ + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, + "Failed to saveRole for '" + role.getName() + "'", "Failed"); + } + } + } catch (Exception e) { + if (e.getMessage().contains(INVALID_UEB_KEY)) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + }else { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + logger.error(EELFLoggerDelegate.errorLogger, "saveRole failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), "Failed"); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully Saved", "Success"); + } + + @ApiOperation(value = "Deletes role for an application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/deleteRole/{code}" }, method = RequestMethod.DELETE, produces = "application/json") + public PortalRestResponse deleteRole(HttpServletRequest request, HttpServletResponse response, + @PathVariable String code) throws Exception { + try { + fieldsValidation(request); + boolean deleteResponse = externalAccessRolesService.deleteRoleForApplication(code, + request.getHeader(UEBKEY)); + if (deleteResponse) { + EPUser user = externalAccessRolesService.getUser(request.getHeader(LOGIN_ID)).get(0); + EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); + logger.info(EELFLoggerDelegate.applicationLogger, "deleteRole: succeeded for app {}, role {}", + app.getId(), code); + AuditLog auditLog = new AuditLog(); + auditLog.setUserId(user.getId()); + auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_ROLE); + auditLog.setComments(EcompPortalUtils.truncateString( + "Deleted role for app:" + app.getId() + " and role:'" + code + "'", + PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + auditLog.setAffectedRecordId(user.getOrgUserId()); + auditService.logActivity(auditLog, null); + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("ExternalAccessRolesController.deleteRole", + EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_ROLE, String.valueOf(user.getId()), + user.getOrgUserId(), code)); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "deleteRole failed"); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + "Failed to deleteRole for '" + code + "'", "Failed"); + } + } catch (Exception e) { + if (e.getMessage().contains(INVALID_UEB_KEY)) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + } else { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + } + logger.error(EELFLoggerDelegate.errorLogger, "deleteRole failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), "Failed"); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, SUCCESSFULLY_DELETED, "Success"); + } + + @ApiOperation(value = "Gets active roles for an application.", response = CentralV2Role.class, responseContainer = "Json") + @RequestMapping(value = { "/activeRoles" }, method = RequestMethod.GET, produces = "application/json") + public List getActiveRoles(HttpServletRequest request, HttpServletResponse response) throws Exception { + List cenRole = null; + try { + fieldsValidation(request); + cenRole = externalAccessRolesService.getActiveRoles(request.getHeader(UEBKEY)); + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getActiveRoles failed", e); + } + return cenRole; + + } + + @ApiOperation(value = "deletes user roles for an application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/deleteDependcyRoleRecord/{roleId}" }, method = RequestMethod.DELETE, produces = "application/json") + public PortalRestResponse deleteDependencyRoleRecord(HttpServletRequest request, HttpServletResponse response, + @PathVariable("roleId") Long roleId) throws Exception { + ExternalRequestFieldsValidator removeResult = null; + try { + fieldsValidation(request); + removeResult = externalAccessRolesService.deleteDependencyRoleRecord(roleId, + request.getHeader(UEBKEY), request.getHeader(LOGIN_ID)); + if (!removeResult.isResult()) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "Failed to deleteDependencyRoleRecord", + "Failed"); + } + } catch (Exception e) { + if (e.getMessage().contains(INVALID_UEB_KEY)) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + } else { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + logger.error(EELFLoggerDelegate.errorLogger, "deleteDependencyRoleRecord failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage(), "Failed"); + } + return new PortalRestResponse<>(PortalRestStatusEnum.OK, SUCCESSFULLY_DELETED, "Success"); + } + + + @ApiOperation(value = "deletes roles for an application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/v2/deleteRole/{roleId}" }, method = RequestMethod.DELETE, produces = "application/json") + public PortalRestResponse deleteRole(HttpServletRequest request, HttpServletResponse response, + @PathVariable("roleId") Long roleId) throws Exception { + ExternalRequestFieldsValidator removeResult = null; + try { + fieldsValidation(request); + removeResult = externalAccessRolesService.deleteDependencyRoleRecord(roleId, + request.getHeader(UEBKEY), request.getHeader(LOGIN_ID)); + if (!removeResult.isResult()) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "Failed to deleteRole", + "Failed"); + } + } catch (Exception e) { + if (e.getMessage().contains(INVALID_UEB_KEY)) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + } else { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + logger.error(EELFLoggerDelegate.errorLogger, "deleteRole failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage(), "Failed"); + } + return new PortalRestResponse<>(PortalRestStatusEnum.OK, SUCCESSFULLY_DELETED, "Success"); + } + + + @ApiOperation(value = "Bulk upload functions for an application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/upload/portal/functions" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse bulkUploadFunctions(HttpServletRequest request, HttpServletResponse response) throws Exception { + Integer result = 0; + try { + result = externalAccessRolesService.bulkUploadFunctions(request.getHeader(UEBKEY)); + } catch (Exception e) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadFunctions failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadFunctions", "Failed"); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added: "+result, "Success"); + } + + @ApiOperation(value = "Bulk upload roles for an application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/upload/portal/roles" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse bulkUploadRoles(HttpServletRequest request, HttpServletResponse response) throws Exception { + Integer result = 0; + try { + result = externalAccessRolesService.bulkUploadRoles(request.getHeader(UEBKEY)); + } catch (Exception e) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRoles failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadRoles", "Failed"); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added: "+result, "Success"); + } + + @ApiOperation(value = "Bulk upload role functions for an application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/upload/portal/roleFunctions" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse bulkUploadRoleFunctions(HttpServletRequest request, HttpServletResponse response) throws Exception { + Integer result = 0; + try { + result = externalAccessRolesService.bulkUploadRolesFunctions(request.getHeader(UEBKEY)); + } catch (Exception e) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRoleFunctions failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadRoleFunctions", "Failed"); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added: "+result, "Success"); + } + + @ApiOperation(value = "Bulk upload user roles for an application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/upload/portal/userRoles" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse bulkUploadUserRoles(HttpServletRequest request, HttpServletResponse response) throws Exception { + Integer result = 0; + try { + result = externalAccessRolesService.bulkUploadUserRoles(request.getHeader(UEBKEY)); + } catch (Exception e) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadUserRoles failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadUserRoles", "Failed"); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added: "+result, "Success"); + } + + @ApiOperation(value = "Bulk upload users for renamed role of an application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/upload/portal/userRole/{roleId}" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse bulkUploadUsersSingleRole(HttpServletRequest request, HttpServletResponse response, @PathVariable Long roleId) throws Exception { + Integer result = 0; + try { + String roleName = request.getHeader("RoleName"); + result = externalAccessRolesService.bulkUploadUsersSingleRole(request.getHeader(UEBKEY), roleId, roleName); + } catch (Exception e) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadUsersSingleRole failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadUsersSingleRole", "Failed"); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added: "+result, "Success"); + } + + @ApiOperation(value = "Bulk upload functions for an partner application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/upload/partner/functions" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse bulkUploadPartnerFunctions(HttpServletRequest request, HttpServletResponse response, @RequestBody List upload) throws Exception { + try { + externalAccessRolesService.bulkUploadPartnerFunctions(request.getHeader(UEBKEY), upload); + } catch (Exception e) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadFunctions failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadFunctions", "Failed"); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added", "Success"); + } + + @ApiOperation(value = "Bulk upload roles for an partner application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/upload/partner/roles" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse bulkUploadPartnerRoles(HttpServletRequest request, HttpServletResponse response, @RequestBody List upload) throws Exception { + try { + externalAccessRolesService.bulkUploadPartnerRoles(request.getHeader(UEBKEY), upload); + } catch (Exception e) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRoles failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadRoles", "Failed"); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added", "Success"); + } + + @ApiOperation(value = "Bulk upload role functions for an partner application.", response = PortalRestResponse.class, responseContainer = "Json") + @RequestMapping(value = { "/upload/partner/roleFunctions" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse bulkUploadPartnerRoleFunctions(HttpServletRequest request, HttpServletResponse response, @RequestBody List upload) throws Exception { + try { + externalAccessRolesService.bulkUploadPartnerRoleFunctions(request.getHeader(UEBKEY), upload); + } catch (Exception e) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRoles failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadPartnerRoleFunctions", "Failed"); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added", "Success"); + } + + @ApiOperation(value = "Gets all functions along with global functions", response = List.class, responseContainer = "Json") + @RequestMapping(value = { "/menuFunctions" }, method = RequestMethod.GET, produces = "application/json") + public List getMenuFunctions(HttpServletRequest request, HttpServletResponse response) throws Exception { + List functionsList = null; + try { + fieldsValidation(request); + functionsList = externalAccessRolesService.getMenuFunctionsList(request.getHeader(UEBKEY)); + } catch (Exception e) { + sendErrorResponse(response, e); + logger.error(EELFLoggerDelegate.errorLogger, "getMenuFunctions failed", e); + } + return functionsList; + } + + @ApiOperation(value = "Gets all active Users of application", response = String.class, responseContainer = "Json") + @RequestMapping(value = { "/users" }, method = RequestMethod.GET, produces = "application/json") + public List getUsersOfApplication(HttpServletRequest request, HttpServletResponse response) throws Exception { + List users = null; + try { + users = externalAccessRolesService.getAllAppUsers(request.getHeader(UEBKEY)); + } catch (Exception e) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + logger.error(EELFLoggerDelegate.errorLogger, "getUsersOfApplication failed", e); + throw new Exception(e.getMessage()); + } + return users; + } + + /** + * + * It checks the input uebkey of the application and throws exception if it is invalid key + * + * @param request + * @throws Exception + */ + private void fieldsValidation(HttpServletRequest request) throws Exception{ + List app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)); + if(app.isEmpty()){ + throw new Exception(INVALID_UEB_KEY); + } + if(!app.isEmpty() && app.get(0).getCentralAuth()){ + ResponseEntity response = externalAccessRolesService.getNameSpaceIfExists(app.get(0)); + if (response.getStatusCode().value() == HttpServletResponse.SC_NOT_FOUND) + throw new Exception("Invalid NameSpace"); + } + } + + /** + * + * It returns http response with appropriate message + * + * @param response + * @param e + * @throws IOException + */ + private void sendErrorResponse(HttpServletResponse response, Exception e) throws IOException { + response.setContentType("application/json"); + response.setCharacterEncoding("UTF-8"); + final Map uebkeyResponse = new HashMap<>(); + ObjectMapper mapper = new ObjectMapper(); + String reason = ""; + if (e.getMessage().contains(INVALID_UEB_KEY)) { + uebkeyResponse.put("error",INVALID_UEB_KEY); + reason = mapper.writeValueAsString(uebkeyResponse); + response.getWriter().write(reason); + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + } else { + uebkeyResponse.put("error",e.getMessage()); + reason = mapper.writeValueAsString(uebkeyResponse); + response.getWriter().write(reason); + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + } + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ExternalAppsRestfulController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ExternalAppsRestfulController.java new file mode 100644 index 00000000..bd2b0a1a --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ExternalAppsRestfulController.java @@ -0,0 +1,231 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPRestrictedRESTfulBaseController; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.EPLoginService; +import org.onap.portalapp.portal.service.EPRoleService; +import org.onap.portalapp.portal.service.FunctionalMenuService; +import org.onap.portalapp.portal.service.UserNotificationService; +import org.onap.portalapp.portal.transport.EpNotificationItem; +import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.crossapi.PortalAPIResponse; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import io.swagger.annotations.ApiOperation; + +@RestController +@RequestMapping(PortalConstants.REST_AUX_API) +@Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class ExternalAppsRestfulController extends EPRestrictedRESTfulBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ExternalAppsRestfulController.class); + + @Autowired + private FunctionalMenuService functionalMenuService; + + @Autowired + private EPLoginService epLoginService; + + @Autowired + private AdminRolesService adminRolesService; + + @Autowired + private UserNotificationService userNotificationService; + + @Autowired + private EPRoleService epRoleService; + + @ApiOperation(value = "Creates a Portal user notification for roles identified in the content from an external application.", response = PortalAPIResponse.class) + @RequestMapping(value = { "/publishNotification" }, method = RequestMethod.POST, produces = "application/json") + @ResponseBody + public PortalAPIResponse publishNotification(HttpServletRequest request, + @RequestBody EpNotificationItem notificationItem) throws Exception { + String appKey = request.getHeader("uebkey"); + EPApp app = findEpApp(appKey); + List postRoleIds = new ArrayList(); + for (Long roleId : notificationItem.getRoleIds()) { + EPRole role = epRoleService.getRole(app.getId(), roleId); + if (role != null) + postRoleIds.add(role.getId()); + } + + // --- recreate the user notification object with the POrtal Role Ids + EpNotificationItem postItem = new EpNotificationItem(); + postItem.setRoleIds(postRoleIds); + postItem.setIsForAllRoles("N"); + postItem.setIsForOnlineUsers("N"); + postItem.setActiveYn("Y"); + postItem.setPriority(notificationItem.getPriority()); + postItem.setMsgHeader(notificationItem.getMsgHeader()); + postItem.setMsgDescription(notificationItem.getMsgDescription()); + postItem.setStartTime(notificationItem.getStartTime()); + postItem.setEndTime(notificationItem.getEndTime()); + postItem.setCreatedDate(Calendar.getInstance().getTime()); + // default creator to 1 for now + postItem.setCreatorId(PortalConstants.DEFAULT_NOTIFICATION_CREATOR); + // ---- + + try { + userNotificationService.saveNotification(postItem); + } catch (Exception e) { + return new PortalAPIResponse(false, e.getMessage()); + } + + PortalAPIResponse response = new PortalAPIResponse(true, "success"); + return response; + } + + private EPApp findEpApp(String uebKey) { + List list = null; + Map params = new HashMap<>(); + params.put("appKey", uebKey); + try { + list = this.getDataAccessService().executeNamedQuery("getMyAppDetailsByUebKey", params, null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getMyAppDetailsByUebKey failed", e); + } + + return (list == null || list.size() == 0) ? null : (EPApp) list.get(0); + } + + @ApiOperation(value = "Gets favorite items within the functional menu for the current user.", response = FavoritesFunctionalMenuItemJson.class, responseContainer="List") + @RequestMapping(value = { "/getFavorites" }, method = RequestMethod.GET, produces = "application/json") + public List getFavoritesForUser(HttpServletRequest request, + HttpServletResponse response) throws Exception { + String loginId = ""; + String userAgent = ""; + List favorites = null; + + loginId = request.getHeader(EPCommonSystemProperties.MDC_LOGIN_ID); + userAgent = MDC.get(EPCommonSystemProperties.PARTNER_NAME); + + EPUser epUser = epLoginService.findUserWithoutPwd(loginId); + logger.info(EELFLoggerDelegate.errorLogger, + "getFavorites request was received from " + userAgent + " for the user " + loginId + "."); + if (epUser == null || epUser.getId() == null) { + logger.error(EELFLoggerDelegate.errorLogger, + "No User record found for the LoginId '" + loginId + "' in the database."); + throw new Exception("Received null for Login-Id."); + } else { + favorites = functionalMenuService.getFavoriteItems(epUser.getId()); + FieldsValidator fieldsValidator = new FieldsValidator(); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + + EcompPortalUtils.logAndSerializeObject(logger, "/getFavorites", "result = ", favorites); + } + + return favorites; + } + + @ApiOperation(value = "Gets functional menu items appropriate for the current user.", response = FunctionalMenuItem.class, responseContainer="List") + @RequestMapping(value = { + "/functionalMenuItemsForUser" }, method = RequestMethod.GET, produces = "application/json") + public List getFunctionalMenuItemsForUser(HttpServletRequest request, + HttpServletResponse response) throws Exception { + String loginId = ""; + String userAgent = ""; + List fnMenuItems = null; + + loginId = request.getHeader("LoginId"); + userAgent = MDC.get(EPCommonSystemProperties.PARTNER_NAME); + + EPUser epUser = epLoginService.findUserWithoutPwd(loginId); + logger.info(EELFLoggerDelegate.errorLogger, "getFunctionalMenuItemsForUser request was received from " + + userAgent + " for the user " + loginId + "."); + if (epUser == null || epUser.getId() == null) { + logger.error(EELFLoggerDelegate.errorLogger, + "No User record found for the LoginId '" + loginId + "' in the database."); + throw new Exception("Received null for Login-Id."); + } else if (adminRolesService.isSuperAdmin(epUser)) { + logger.debug(EELFLoggerDelegate.debugLogger, + "FunctionalMenuHandler: SuperUser, about to call getFunctionalMenuItems()"); + fnMenuItems = functionalMenuService.getFunctionalMenuItems(); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, + "getMenuItemsForAuthUser: about to call getFunctionalMenuItemsForUser()"); + fnMenuItems = functionalMenuService.getFunctionalMenuItemsForUser(epUser.getOrgUserId()); + } + + FieldsValidator fieldsValidator = new FieldsValidator(); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + + EcompPortalUtils.logAndSerializeObject(logger, "/functionalMenuItemsForUser", "result = ", fnMenuItems); + + return fnMenuItems; + } + + @ExceptionHandler(Exception.class) + protected void handleBadRequests(Exception e, HttpServletResponse response) throws IOException { + logger.warn(EELFLoggerDelegate.errorLogger, "Handling bad request", e); + response.sendError(HttpStatus.BAD_REQUEST.value(), e.getMessage()); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/FunctionalMenuController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/FunctionalMenuController.java new file mode 100644 index 00000000..1b54ebb4 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/FunctionalMenuController.java @@ -0,0 +1,666 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.json.JSONObject; +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.SharedContext; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.FunctionalMenuService; +import org.onap.portalapp.portal.service.SearchService; +import org.onap.portalapp.portal.service.SharedContextService; +import org.onap.portalapp.portal.transport.BusinessCardApplicationRole; +import org.onap.portalapp.portal.transport.BusinessCardApplicationRolesList; +import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItem; +import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; +import org.onap.portalapp.portal.transport.FunctionalMenuItemWithRoles; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * Supports menus at the top of the Portal app landing page. + */ +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class FunctionalMenuController extends EPRestrictedBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FunctionalMenuController.class); + + @Autowired + private AdminRolesService adminRolesService; + @Autowired + private FunctionalMenuService functionalMenuService; + @Autowired + private SharedContextService sharedContextService; + @Autowired + private SearchService searchService; + + /** + * RESTful service method to fetch all the FunctionalMenuItems. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return List of FunctionalMenuItem objects + */ + @RequestMapping(value = { "/portalApi/functionalMenu" }, method = RequestMethod.GET, produces = "application/json") + public List getMenuItems(HttpServletRequest request, HttpServletResponse response) { + // TODO: should only the superuser be allowed to use this API? + List menuItems = null; + try { + menuItems = functionalMenuService.getFunctionalMenuItems(); + functionalMenuService.assignHelpURLs(menuItems); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenu", "result =", menuItems); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getMenuItems failed", e); + } + return menuItems; + } + + /** + * RESTful service method to get ECOMP Portal Title. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return PortalRestResponse of ECOMP portal title + */ + @RequestMapping(value = { "/portalApi/ecompTitle" }, method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse getECOMPTitle(HttpServletRequest request, HttpServletResponse response) { + PortalRestResponse portalRestResponse = null; + try { + String ecompTitle = SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME); + portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.OK, "success", ecompTitle); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/ecompTitle", "result =", ecompTitle); + } catch (Exception e) { + portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), null); + logger.error(EELFLoggerDelegate.errorLogger, "getEcompTitle failed", e); + } + return portalRestResponse; + } + + /** + * RESTful service method to fetch all the FunctionalMenuItems, both active and + * inactive, for the EditFunctionalMenu feature. Can only be accessed by the + * portal admin. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return List of FunctionalMenuItem objects + */ + @RequestMapping(value = { + "/portalApi/functionalMenuForEditing" }, method = RequestMethod.GET, produces = "application/json") + public List getMenuItemsForEditing(HttpServletRequest request, HttpServletResponse response) { + // TODO: should only the superuser be allowed to use this API? + EPUser user = EPUserUtils.getUserSession(request); + List menuItems = null; + try { + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "getFunctionalMenuItemDetails"); + } else { + menuItems = functionalMenuService.getFunctionalMenuItems(true); + } + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuForEditing", "result =", + menuItems); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getMenuItemsForEditing failed", e); + } + return menuItems; + } + + /** + * RESTful service method to fetch all the FunctionalMenuItems, active , for the + * Functional menu in notification Tree feature. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return List of FunctionalMenuItem objects + */ + @RequestMapping(value = { + "/portalApi/functionalMenuForNotificationTree" }, method = RequestMethod.GET, produces = "application/json") + public List getMenuItemsForNotifications(HttpServletRequest request, + HttpServletResponse response) { + // TODO: should only the superuser be allowed to use this API? + // EPUser user = EPUserUtils.getUserSession(request); + List menuItems = null; + try { + menuItems = functionalMenuService.getFunctionalMenuItemsForNotificationTree(true); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuForNotificationTree", "result =", + menuItems); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getMenuItemsForNotifications failed", e); + } + return menuItems; + } + + /** + * RESTful service method to fetch all FunctionalMenuItems associated with an + * application. + * + * @param request + * HttpServletRequest + * @param appId + * application ID + * @return List of FunctionalMenuItem objects + */ + @RequestMapping(value = { + "/portalApi/functionalMenuForApp/{appId}" }, method = RequestMethod.GET, produces = "application/json") + public List getMenuItemsForApp(HttpServletRequest request, + @PathVariable("appId") Integer appId) { + // TODO: should only the superuser be allowed to use this API? + List menuItems = null; + try { + menuItems = functionalMenuService.getFunctionalMenuItemsForApp(appId); + functionalMenuService.assignHelpURLs(menuItems); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuForApp/" + appId, "result =", + menuItems); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getMenuItemsForApp failed", e); + } + return menuItems; + } + + /** + * RESTful service method to fetch all FunctionalMenuItems associated with the + * applications and roles that a user has access to. + * + * @param request + * HttpServletRequest + * @param orgUserId + * user ID + * @return List of FunctionalMenuItem objects + */ + @RequestMapping(value = { + "/portalApi/functionalMenuForUser/{orgUserId}" }, method = RequestMethod.GET, produces = "application/json") + public List getMenuItemsForUser(HttpServletRequest request, + @PathVariable("orgUserId") String orgUserId) { + // TODO: should only the superuser be allowed to use this API? + List menuItems = null; + try { + menuItems = functionalMenuService.getFunctionalMenuItemsForUser(orgUserId); + functionalMenuService.assignHelpURLs(menuItems); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuForUser/" + orgUserId, "result =", + menuItems); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getMenuItemsForUser failed", e); + } + + return menuItems; + } + + /** + * RESTful service method to fetch all FunctionalMenuItems associated with the + * applications and roles that the authenticated user has access to. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return List of FunctionalMenuItem objects + */ + @RequestMapping(value = { + "/portalApi/functionalMenuForAuthUser" }, method = RequestMethod.GET, produces = "application/json") + public List getMenuItemsForAuthUser(HttpServletRequest request, HttpServletResponse response) { + + EPUser user = EPUserUtils.getUserSession(request); + List menuItems = null; + try { + if (user == null) { + EcompPortalUtils.setBadPermissions(user, response, "getMenuItemsForAuthUser"); + } else if (adminRolesService.isSuperAdmin(user)) { + menuItems = functionalMenuService.getFunctionalMenuItems(); + } else { + // calculate the menu items + String orgUserId = user.getOrgUserId(); + menuItems = functionalMenuService.getFunctionalMenuItemsForUser(orgUserId); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuForUser/" + orgUserId, + "result =", menuItems); + } + functionalMenuService.assignHelpURLs(menuItems); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getMenuItemsForAuthUser failed", e); + } + return menuItems; + } + + /** + * RESTful service method to fetch the details for a functional menu item. + * Requirement: you must be the Ecomp portal super admin user. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @param menuId + * menu ID + * @return FunctionalMenuItem object + */ + @RequestMapping(value = { + "/portalApi/functionalMenuItemDetails/{menuId}" }, method = RequestMethod.GET, produces = "application/json") + public FunctionalMenuItem getFunctionalMenuItemDetails(HttpServletRequest request, + @PathVariable("menuId") Long menuId, HttpServletResponse response) { + // TODO: return FunctionalMenuItemJson + // TODO: modify FunctionalMenuItem to not include the transient fields + FunctionalMenuItem menuItem = null; + try { + EPUser user = EPUserUtils.getUserSession(request); + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "getFunctionalMenuItemDetails"); + } else { + menuItem = functionalMenuService.getFunctionalMenuItemDetails(menuId); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuItemDetails/" + menuId, + "result =", menuItem); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getFunctionalMenuItemDetails failed", e); + } + + return menuItem; + } + + /** + * RESTful service method to create a new menu item. + * + * Requirement: you must be the Ecomp portal super admin user. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @param menuItemJson + * FunctionalMenuItemWithRoles + * @return FieldsValidator + */ + @RequestMapping(value = { "/portalApi/functionalMenuItem" }, method = RequestMethod.POST) + public FieldsValidator createFunctionalMenuItem(HttpServletRequest request, + @RequestBody FunctionalMenuItemWithRoles menuItemJson, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + FieldsValidator fieldsValidator = null; + if (!adminRolesService.isSuperAdmin(user)) { + logger.debug(EELFLoggerDelegate.debugLogger, + "FunctionalMenuController.createFunctionalMenuItem bad permissions"); + EcompPortalUtils.setBadPermissions(user, response, "createFunctionalMenuItem"); + } else { + fieldsValidator = functionalMenuService.createFunctionalMenuItem(menuItemJson); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuItem", "POST result =", + response.getStatus()); + } + + return fieldsValidator; + } + + /** + * RESTful service method to update an existing menu item + * + * Requirement: you must be the Ecomp portal super admin user. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @param menuItemJson + * FunctionalMenuItemWithRoles + * @return FieldsValidator + */ + @RequestMapping(value = { "/portalApi/functionalMenuItem" }, method = RequestMethod.PUT) + public FieldsValidator editFunctionalMenuItem(HttpServletRequest request, + @RequestBody FunctionalMenuItemWithRoles menuItemJson, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + FieldsValidator fieldsValidator = null; + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "editFunctionalMenuItem"); + } else { + fieldsValidator = functionalMenuService.editFunctionalMenuItem(menuItemJson); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuItem", "PUT result =", + response.getStatus()); + } + + return fieldsValidator; + } + + /** + * RESTful service method to delete a menu item + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @param menuId + * menu identifier + * @return FieldsValidator + */ + @RequestMapping(value = { "/portalApi/functionalMenuItem/{menuId}" }, method = RequestMethod.DELETE) + public FieldsValidator deleteFunctionalMenuItem(HttpServletRequest request, @PathVariable("menuId") Long menuId, + HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + FieldsValidator fieldsValidator = null; + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "deleteFunctionalMenuItem"); + } else { + fieldsValidator = functionalMenuService.deleteFunctionalMenuItem(menuId); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuItem", "DELETE result =", + response.getStatus()); + } + + return fieldsValidator; + } + + /** + * RESTful service to regenerate table + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return FieldsValidator + */ + @RequestMapping(value = { "/portalApi/regenerateFunctionalMenuAncestors" }, method = RequestMethod.GET) + public FieldsValidator regenerateAncestorTable(HttpServletRequest request, HttpServletResponse response) { + // TODO: should only the superuser be allowed to use this API? + EPUser user = EPUserUtils.getUserSession(request); + FieldsValidator fieldsValidator = null; + + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "deleteFunctionalMenuItem"); + } else { + fieldsValidator = functionalMenuService.regenerateAncestorTable(); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/regenerateAncestorTable", "GET result =", + response.getStatus()); + } + + return fieldsValidator; + } + + /** + * RESful service to set a favorite item. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @param menuItemJson + * FunctionalMenuItemWithRoles + * @return FieldsValidator + */ + @RequestMapping(value = { "/portalApi/setFavoriteItem" }, method = RequestMethod.POST) + public FieldsValidator addFavoriteItem(HttpServletRequest request, + @RequestBody FavoritesFunctionalMenuItem menuItemJson, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + FieldsValidator fieldsValidator = null; + menuItemJson.userId = user.getId(); + fieldsValidator = functionalMenuService.setFavoriteItem(menuItemJson); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/setFavoriteItem", "Post result =", + response.getStatus()); + + return fieldsValidator; + } + + /** + * RESTful service to get favorites for the current user as identified in the + * session + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return List of FavoritesFunctionalMenuItemJson + */ + @RequestMapping(value = { + "/portalApi/getFavoriteItems" }, method = RequestMethod.GET, produces = "application/json") + public List getFavoritesForUser(HttpServletRequest request, + HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List favorites = functionalMenuService.getFavoriteItems(user.getId()); + FieldsValidator fieldsValidator = new FieldsValidator(); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/getFavoriteItems", "GET result =", + response.getStatus()); + return favorites; + } + + /** + * RESTful service to delete a favorite menu item for the current user as + * identified in the session. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @param menuId + * menu identifier + * @return FieldsValidator + */ + @RequestMapping(value = { "/portalApi/removeFavoriteItem/{menuId}" }, method = RequestMethod.DELETE) + public FieldsValidator deleteFavoriteItem(HttpServletRequest request, @PathVariable("menuId") Long menuId, + HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + FieldsValidator fieldsValidator = null; + Long userId = user.getId(); + fieldsValidator = functionalMenuService.removeFavoriteItem(userId, menuId); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + EcompPortalUtils.logAndSerializeObject(logger, "/deleteFavoriteItem", "DELETE result =", response.getStatus()); + + return fieldsValidator; + } + + /** + * RESTful service to get user information: user's first and last names, org + * user ID, email and last-login. (Actually has nothing to do with the real + * functional menu.) First attempts to get the information from the Tomcat + * session (i.e., the CSP cookie); if that fails, calls the shared context + * service to read the information from the database. Gives back what it found, + * any of which may be null, as a JSON collection. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return JSON collection of key-value pairs shown below. + */ + @RequestMapping(value = { + "/portalApi/functionalMenuStaticInfo" }, method = RequestMethod.GET, produces = "application/json") + public String getFunctionalMenuStaticInfo(HttpServletRequest request, HttpServletResponse response) { + + // Get user details from session + logger.debug(EELFLoggerDelegate.debugLogger, "getFunctionalMenuStaticInfo: getting user info"); + String fnMenuStaticResponse = null; + try { + String orgUserIdStr = null, firstNameStr = null, lastNameStr = null, emailStr = null, lastLogin = null; + EPUser user = EPUserUtils.getUserSession(request); + firstNameStr = user.getFirstName(); + lastNameStr = user.getLastName(); + orgUserIdStr = user.getOrgUserId(); + emailStr = user.getEmail(); + if (emailStr == null || emailStr.equals("")) { + EPUser userResult = searchService.searchUserByUserId(orgUserIdStr); + emailStr = userResult.getEmail(); + } + SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ssZ"); + Date lastLoginDate = user.getLastLoginDate(); + if (lastLoginDate == null) { + // should never happen + logger.error(EELFLoggerDelegate.errorLogger, "getFunctionalMenuStaticInfo: no last login in session"); + lastLogin = "no last login available"; + } else { + lastLogin = sdf.format(lastLoginDate); + } + + // If any item is missing from session, try the Shared Context + // service. + SharedContext orgUserIdSC = null, firstNameSC = null, lastNameSC = null, emailSC = null; + String sessionId = request.getSession().getId(); + if (firstNameStr == null) + firstNameSC = sharedContextService.getSharedContext(sessionId, + EPCommonSystemProperties.USER_FIRST_NAME); + if (lastNameStr == null) + lastNameSC = sharedContextService.getSharedContext(sessionId, EPCommonSystemProperties.USER_LAST_NAME); + if (emailStr == null) + emailSC = sharedContextService.getSharedContext(sessionId, EPCommonSystemProperties.USER_EMAIL); + if (orgUserIdStr == null) + orgUserIdSC = sharedContextService.getSharedContext(sessionId, + EPCommonSystemProperties.USER_ORG_USERID); + + // Build the response + Map map = new HashMap(); + map.put("firstName", + firstNameStr != null ? firstNameStr : (firstNameSC != null ? firstNameSC.getCvalue() : null)); + map.put("lastName", + lastNameStr != null ? lastNameStr : (lastNameSC != null ? lastNameSC.getCvalue() : null)); + map.put("email", emailStr != null ? emailStr : (emailSC != null ? emailSC.getCvalue() : null)); + map.put("userId", + orgUserIdStr != null ? orgUserIdStr : (orgUserIdSC != null ? orgUserIdSC.getCvalue() : null)); + map.put("last_login", lastLogin); + JSONObject j = new JSONObject(map); + fnMenuStaticResponse = j.toString(); + // Be chatty in the log + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuStaticInfo", "GET result =", + fnMenuStaticResponse); + } catch (Exception e) { + // Should never happen. + logger.error(EELFLoggerDelegate.errorLogger, "getFunctionalMenuStaticInfo failed", e); + // Return a real error? + // fnMenuStaticResponse = "{ \"status\": \"error\", \"message\": \"" + // + e.toString() + "\" }"; + // But the angular controller expects null on error. + } + return fnMenuStaticResponse; + } + + private Comparator getUserAppRolesComparator = new Comparator() { + public int compare(BusinessCardApplicationRole o1, BusinessCardApplicationRole o2) { + return o1.getAppName().compareTo(o2.getAppName()); + } + }; + + /** + * + * @param request + * HttpServletRequest + * @param userId + * user ID + * @return List + * @throws IOException + * on error + */ + @RequestMapping(value = { + "/portalApi/userApplicationRoles" }, method = RequestMethod.GET, produces = "application/json") + public List getAppList(HttpServletRequest request, + @RequestParam("userId") String userId) throws IOException { + + List AppRoles = null; + try { + List userAppRoleList = functionalMenuService.getUserAppRolesList(userId); + + Collections.sort(userAppRoleList, getUserAppRolesComparator); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userApplicationRoles", "result =", + userAppRoleList); + + AppRoles = new ArrayList(); + for (BusinessCardApplicationRole userAppRole : userAppRoleList) { + boolean found = false; + List roles = null; + + for (BusinessCardApplicationRolesList app : AppRoles) { + if (app.getAppName().equals(userAppRole.getAppName())) { + roles = app.getRoleNames(); + roles.add(userAppRole.getRoleName()); + app.setRoleNames(roles); + found = true; + break; + } + } + + if (!found) { + roles = new ArrayList(); + roles.add(userAppRole.getRoleName()); + AppRoles.add(new BusinessCardApplicationRolesList(userAppRole.getAppName(), roles)); + } + + Collections.sort(roles); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppList failed", e); + } + + return AppRoles; + + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/GetAccessController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/GetAccessController.java new file mode 100644 index 00000000..b590c5ea --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/GetAccessController.java @@ -0,0 +1,90 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.IOException; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.onap.portalapp.controller.EPUnRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.GetAccessResult; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.GetAccessService; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class GetAccessController extends EPUnRestrictedBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(GetAccessController.class); + + @Autowired + private GetAccessService getAccessService; + + /** + * Sorts the list by ECOMP function name. + */ + private Comparator getAccessComparator = new Comparator() { + public int compare(GetAccessResult o1, GetAccessResult o2) { + return o1.getAppName().compareTo(o2.getAppName()); + } + }; + + @RequestMapping(value = { "/portalApi/getAppList" }, method = RequestMethod.GET, produces = "application/json") + public List getAppList(HttpServletRequest request) throws IOException { + List appsList = null; + EPUser user = EPUserUtils.getUserSession(request); + appsList = getAccessService.getAppAccessList(user); + Collections.sort(appsList, getAccessComparator); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/getAppList", "result =", appsList); + return appsList; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/HealthCheckController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/HealthCheckController.java new file mode 100644 index 00000000..80e16b59 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/HealthCheckController.java @@ -0,0 +1,249 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.MDC; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.onap.portalapp.controller.EPUnRestrictedBaseController; +import org.onap.portalapp.portal.listener.HealthMonitor; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +import com.google.gson.Gson; + +/** + * This controller processes requests for the health-check feature implemented + * in the HealthMonitor, which runs in its own thread. These requests do not + * require any authentication nor an active user session. + */ +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class HealthCheckController extends EPUnRestrictedBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(HealthCheckController.class); + + private class HealthStatus { + public int statusCode; + @SuppressWarnings("unused") + public String body; + + public HealthStatus(int code, String body) { + this.statusCode = code; + this.body = body; + } + } + + private class HealthStatusInfo { + HealthStatusInfo(String healthCheckComponent) { + this.healthCheckComponent = healthCheckComponent; + this.healthCheckStatus = statusUp; // Default value + this.version = ""; + this.description = statusOk; // Default value + this.hostName = ""; + this.ipAddress = ""; + this.dbClusterStatus = ""; + this.dbPermissions = ""; + } + + @SuppressWarnings("unused") + public String healthCheckComponent; + @SuppressWarnings("unused") + public String healthCheckStatus; + @SuppressWarnings("unused") + public String version; + @SuppressWarnings("unused") + public String description; + @SuppressWarnings("unused") + public String hostName; + @SuppressWarnings("unused") + public String ipAddress; + @SuppressWarnings("unused") + public String dbClusterStatus; + @SuppressWarnings("unused") + public String dbPermissions; + } + + private final String statusUp = "UP"; + private final String statusDown = "DOWN"; + private final String statusOk = "OK"; + + @RequestMapping(value = { "/portalApi/healthCheck" }, method = RequestMethod.GET, produces = "application/json") + public HealthStatus healthCheck(HttpServletRequest request, HttpServletResponse response) { + HealthStatus healthStatus = new HealthStatus(500, ""); + + // Return the status as 500 if it suspended due to manual fail over + if (HealthMonitor.isSuspended) { + healthStatus.body = "Suspended"; + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + MDC.put(EPCommonSystemProperties.RESPONSE_CODE, + Integer.toString(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); + return healthStatus; + } + + try { + boolean overallStatus = true; + + List statusCollection = new ArrayList(); + + HealthStatusInfo beInfo = new HealthStatusInfo("BE"); + beInfo.hostName = EcompPortalUtils.getMyHostName(); + beInfo.ipAddress = EcompPortalUtils.getMyIpAdddress(); + if (!HealthMonitor.isBackEndUp()) { + overallStatus = false; + beInfo.healthCheckStatus = statusDown; + beInfo.description = "Check the logs for more details"; + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckError); + } + statusCollection.add(beInfo); + + HealthStatusInfo feInfo = new HealthStatusInfo("FE"); + if (!HealthMonitor.isFrontEndUp()) { + overallStatus = false; + feInfo.healthCheckStatus = statusDown; + feInfo.description = "Check the logs for more details"; + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.FeHealthCheckError); + } + statusCollection.add(feInfo); + + HealthStatusInfo dbInfo = new HealthStatusInfo("DB"); + if (!HealthMonitor.isDatabaseUp()) { + overallStatus = false; + dbInfo.healthCheckStatus = statusDown; + dbInfo.description = "Check the logs for more details"; + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError); + } + + if (!HealthMonitor.isClusterStatusOk()) { + dbInfo.dbClusterStatus = "Problem, check the logs for more details"; + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError); + } else { + dbInfo.dbClusterStatus = statusOk; + } + + if (!HealthMonitor.isDatabasePermissionsOk()) { + dbInfo.dbPermissions = "Problem, check the logs for more details"; + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError); + } else { + dbInfo.dbPermissions = statusOk; + } + statusCollection.add(dbInfo); + + HealthStatusInfo uebInfo = new HealthStatusInfo("UEB"); + if (!HealthMonitor.isUebUp()) { + // As per test case review meeting, UEB is considered as + // critical as DB. Hence commenting + // overallStatus = false; + uebInfo.healthCheckStatus = statusDown; + uebInfo.description = "Check the logs for more details"; + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebConnectionError); + } + statusCollection.add(uebInfo); + + String json = ""; + try { + json = new Gson().toJson(statusCollection); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput); + } + logger.info(EELFLoggerDelegate.debugLogger, json); + + if (overallStatus) { + healthStatus = new HealthStatus(200, json); + } else { + healthStatus = new HealthStatus(500, json); + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + MDC.put(EPCommonSystemProperties.RESPONSE_CODE, Integer.toString(healthStatus.statusCode)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "healthCheck failed", e); + } + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/healthCheck", "GET result =", response.getStatus()); + + return healthStatus; + } + + @RequestMapping(value = { + "/portalApi/healthCheckSuspend" }, method = RequestMethod.GET, produces = "application/json") + public HealthStatus healthCheckSuspend(HttpServletRequest request, HttpServletResponse response) { + HealthStatus healthStatus = new HealthStatus(500, "Suspended for manual failover mechanism"); + + HealthMonitor.isSuspended = true; + healthStatus.statusCode = 200; + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/healthCheckSuspend", "GET result =", + response.getStatus()); + + return healthStatus; + } + + @RequestMapping(value = { + "/portalApi/healthCheckResume" }, method = RequestMethod.GET, produces = "application/json") + public HealthStatus healthCheckResume(HttpServletRequest request, HttpServletResponse response) { + HealthStatus healthStatus = new HealthStatus(500, "Resumed from manual failover mechanism"); + + HealthMonitor.isSuspended = false; + healthStatus.statusCode = 200; + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/healthCheckResume", "GET result =", + response.getStatus()); + return healthStatus; + } + + @RequestMapping(value = { "/portalApi/ping" }, method = RequestMethod.GET, produces = "application/json") + public HealthStatus ping(HttpServletRequest request, HttpServletResponse response) { + HealthStatus healthStatus = new HealthStatus(200, "OK"); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/ping", "GET result =", response.getStatus()); + + return healthStatus; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ManifestController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ManifestController.java new file mode 100644 index 00000000..7f68ab21 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ManifestController.java @@ -0,0 +1,108 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.HashMap; +import java.util.Map; +import java.util.jar.Attributes; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.ManifestService; +import org.onap.portalsdk.core.controller.RestrictedBaseController; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +/** + * This controller responds to a request for the web application manifest, + * returning a JSON with the information that was created at build time. + * + * Manifest entries have names with hyphens, which means Javascript code can't + * simply use the shorthand object.key; instead use object['key']. + */ +@RestController +@Configuration("manifestPortalController") +@EnableAspectJAutoProxy +@RequestMapping("/") +@EPAuditLog +public class ManifestController extends RestrictedBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ManifestController.class); + + @Autowired + private ManifestService manifestService; + + /** + * Gets the webapp manifest contents as a JSON object. + * + * @param request + * HttpServletRequest + * @return A map of key-value pairs. On success: + * + *
+	 * { "manifest" : { "key1": "value1", "key2": "value2" } }
+	 *         
+ * + * On failure: + * + *
+	 * { "error": "message" }
+	 *         
+ */ + @RequestMapping(value = { "/portalApi/manifest" }, method = RequestMethod.GET, produces = "application/json") + @ResponseBody + public Map getManifest(HttpServletRequest request) { + Map response = new HashMap(); + try { + Attributes attributes = manifestService.getWebappManifest(); + response.put("manifest", attributes); + } catch (Exception ex) { + logger.error(EELFLoggerDelegate.errorLogger, "getManifest: failed to read manifest", ex); + response.put("error", "failed to get manifest: " + ex.toString()); + } + return response; + } + +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/MicroserviceController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/MicroserviceController.java new file mode 100644 index 00000000..4530266a --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/MicroserviceController.java @@ -0,0 +1,156 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.MicroserviceData; +import org.onap.portalapp.portal.domain.WidgetCatalog; +import org.onap.portalapp.portal.domain.WidgetServiceHeaders; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.ConsulHealthService; +import org.onap.portalapp.portal.service.MicroserviceService; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +@SuppressWarnings("unchecked") +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class MicroserviceController extends EPRestrictedBaseController { + + String whatService = "widgets-service"; + RestTemplate template = new RestTemplate(); + + @Autowired + private ConsulHealthService consulHealthService; + + @Autowired + private MicroserviceService microserviceService; + + @RequestMapping(value = { "/portalApi/microservices" }, method = RequestMethod.POST) + public PortalRestResponse createMicroservice(HttpServletRequest request, HttpServletResponse response, + @RequestBody MicroserviceData newServiceData) throws Exception { + if (newServiceData == null) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", + "MicroserviceData cannot be null or empty"); + } + long serviceId = microserviceService.saveMicroservice(newServiceData); + + try { + microserviceService.saveServiceParameters(serviceId, newServiceData.getParameterList()); + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); + } + + return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); + } + + @RequestMapping(value = { "/portalApi/microservices" }, method = RequestMethod.GET) + public List getMicroservice(HttpServletRequest request, HttpServletResponse response) + throws Exception { + List list = microserviceService.getMicroserviceData(); + return list; + } + + @RequestMapping(value = { "/portalApi/microservices/{serviceId}" }, method = RequestMethod.PUT) + public PortalRestResponse updateMicroservice(HttpServletRequest request, HttpServletResponse response, + @PathVariable("serviceId") long serviceId, @RequestBody MicroserviceData newServiceData) throws Exception { + + if (newServiceData == null) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", + "MicroserviceData cannot be null or empty"); + } + try { + microserviceService.updateMicroservice(serviceId, newServiceData); + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); + } + + @RequestMapping(value = { "/portalApi/microservices/{serviceId}" }, method = RequestMethod.DELETE) + public PortalRestResponse deleteMicroservice(HttpServletRequest request, HttpServletResponse response, + @PathVariable("serviceId") long serviceId) throws Exception { + try { + ParameterizedTypeReference> typeRef = new ParameterizedTypeReference>() { + }; + // If this service is assoicated with widgets, cannnot be deleted + ResponseEntity> ans = (ResponseEntity>) template.exchange( + EcompPortalUtils.widgetMsProtocol() + "://" + consulHealthService.getServiceLocation(whatService, SystemProperties.getProperty("microservices.widget.local.port")) + + "/widget/microservices/widgetCatalog/service/" + serviceId, + HttpMethod.GET, new HttpEntity(WidgetServiceHeaders.getInstance()), typeRef); + List widgets = ans.getBody(); + if(widgets.size() == 0) + microserviceService.deleteMicroservice(serviceId); + else{ + StringBuilder sb = new StringBuilder(); + for(int i = 0; i < widgets.size(); i++){ + sb.append("'" + widgets.get(i).getName() + "' "); + if(i < (widgets.size()-1)){ + sb.append(","); + } + } + return new PortalRestResponse(PortalRestStatusEnum.WARN, "SOME WIDGETS ASSOICATE WITH THIS SERVICE", sb.toString()); + } + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/MicroserviceProxyController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/MicroserviceProxyController.java new file mode 100644 index 00000000..934d8f50 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/MicroserviceProxyController.java @@ -0,0 +1,115 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.IOException; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPUnRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.MicroserviceProxyService; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.HttpClientErrorException; + +import com.fasterxml.jackson.databind.ObjectMapper; + +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class MicroserviceProxyController extends EPUnRestrictedBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MicroserviceProxyController.class); + + @Autowired + private MicroserviceProxyService microserviceProxyService; + + @RequestMapping(value = { "/portalApi/microservice/proxy/{serviceId}" }, method = { + RequestMethod.GET }, produces = "application/json") + public String getMicroserviceProxy(HttpServletRequest request, HttpServletResponse response, + @PathVariable("serviceId") long serviceId) throws Exception { + EPUser user = EPUserUtils.getUserSession(request); + String answer = ""; + try { + answer = microserviceProxyService.proxyToDestination(serviceId, user, request); + } catch (HttpClientErrorException e) { + answer = e.getResponseBodyAsString(); + } + return isValidJSON(answer) ? answer : "{\"error\":\"" + answer.replace(System.getProperty("line.separator"), "") + "\"}"; + } + + @RequestMapping(value = { "/portalApi/microservice/proxy/parameter/{widgetId}" }, method = { + RequestMethod.GET }, produces = "application/json") + public String getMicroserviceProxyByWidgetId(HttpServletRequest request, HttpServletResponse response, + @PathVariable("widgetId") long widgetId) throws Exception { + EPUser user = EPUserUtils.getUserSession(request); + String answer = ""; + try { + answer = microserviceProxyService.proxyToDestinationByWidgetId(widgetId, user, request); + } catch (HttpClientErrorException e) { + answer = e.getResponseBodyAsString(); + } + return isValidJSON(answer) ? answer : "{\"error\":\"" + answer.replace(System.getProperty("line.separator"), "") + "\"}"; + } + + /** + * Check whether the response is a valid JSON + * @param response + * @return true if the response is valid JSON, otherwise, false + */ + private boolean isValidJSON(String response) { + try { + final ObjectMapper mapper = new ObjectMapper(); + mapper.readTree(response); + return true; + } catch (IOException e) { + logger.debug(EELFLoggerDelegate.debugLogger, "isValidJSON failed", e); + return false; + } + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/PortalAdminController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/PortalAdminController.java new file mode 100644 index 00000000..e77f8f95 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/PortalAdminController.java @@ -0,0 +1,230 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EcompAuditLog; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.aop.EPEELFLoggerAdvice; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.PortalAdminService; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.PortalAdmin; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.AuditLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.AuditService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class PortalAdminController extends EPRestrictedBaseController { + @Autowired + PortalAdminService portalAdminService; + @Autowired + AdminRolesService adminRolesService; + @Autowired + AuditService auditService; + + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PortalAdminController.class); + + @RequestMapping(value = { "/portalApi/portalAdmins" }, method = RequestMethod.GET, produces = "application/json") + public List getPortalAdmins(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List portalAdmins = null; + if (user == null) { + logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.getPortalAdmins, null user"); + EcompPortalUtils.setBadPermissions(user, response, "getPortalAdmins"); + } else if (!adminRolesService.isSuperAdmin(user)) { + logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.getPortalAdmins, bad permissions"); + EcompPortalUtils.setBadPermissions(user, response, "createPortalAdmin"); + } else { + // return the list of portal admins + portalAdmins = portalAdminService.getPortalAdmins(); + logger.debug(EELFLoggerDelegate.debugLogger, "portalAdmins: called getPortalAdmins()"); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/getPortalAdmins", "result =", portalAdmins); + } + + return portalAdmins; + } + + /** + * RESTful service method to create a new portal admin. Requirement: you + * must be the Ecomp portal super admin user. + * @param request + * @param userId + * @param response + * @return FieldsValidator + */ + @RequestMapping(value = { "/portalApi/portalAdmin" }, method = RequestMethod.POST) + public FieldsValidator createPortalAdmin(HttpServletRequest request, @RequestBody String userId, + HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + FieldsValidator fieldsValidator = null; + if (user == null) { + logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.createPortalAdmin, null user"); + EcompPortalUtils.setBadPermissions(user, response, "createPortalAdmin"); + } else if (!adminRolesService.isSuperAdmin(user)) { + logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.createPortalAdmin bad permissions"); + EcompPortalUtils.setBadPermissions(user, response, "createPortalAdmin"); + } else { + fieldsValidator = portalAdminService.createPortalAdmin(userId); + int statusCode = fieldsValidator.httpStatusCode.intValue(); + response.setStatus(statusCode); + if (statusCode == 200) { + AuditLog auditLog = new AuditLog(); + auditLog.setUserId(user.getId()); + auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_ADD_PORTAL_ADMIN); + auditLog.setAffectedRecordId(userId); + try { + auditService.logActivity(auditLog, null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "createPortalAdmin: failed for save audit log", e); + } + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("PortalAdminController.createPortalAdmin", + EcompAuditLog.CD_ACTIVITY_ADD_PORTAL_ADMIN, user.getOrgUserId(), userId, + "A new Portal Admin has been added")); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + } + } + EcompPortalUtils.logAndSerializeObject(logger, "/portalAdmin", "POST result =", response.getStatus()); + + return fieldsValidator; + } + + @RequestMapping(value = { "/portalApi/portalAdmin/{userInfo}" }, method = RequestMethod.DELETE) + public FieldsValidator deletePortalAdmin(HttpServletRequest request, @PathVariable("userInfo") String userInfo, + HttpServletResponse response) { + int userIdIdx = userInfo.indexOf("-"); + Long userId = null; + String sbcid = null; + FieldsValidator fieldsValidator = null; + try { + if (userIdIdx == -1) { + logger.error(EELFLoggerDelegate.errorLogger, "deletePortalAdmin missing userId"); + return fieldsValidator; + } else { + String userIdStr = userInfo.substring(0, userIdIdx); + userId = Long.valueOf(userIdStr); + sbcid = userInfo.substring(userIdIdx + 1, userInfo.length()); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deletePortalAdmin error while parsing the userInfo", e); + } + EPUser user = EPUserUtils.getUserSession(request); + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "deletePortalAdmin"); + } else { + fieldsValidator = portalAdminService.deletePortalAdmin(userId); + int statusCode = fieldsValidator.httpStatusCode.intValue(); + response.setStatus(statusCode); + if (statusCode == 200) { + AuditLog auditLog = new AuditLog(); + auditLog.setUserId(user.getId()); + auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_DELETE_PORTAL_ADMIN); + auditLog.setAffectedRecordId(sbcid); + auditService.logActivity(auditLog, null); + + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("PortalAdminController.deletePortalAdmin", + EcompAuditLog.CD_ACTIVITY_DELETE_PORTAL_ADMIN, user.getOrgUserId(), sbcid, + "A Portal Admin has been deleted")); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + } + } + EcompPortalUtils.logAndSerializeObject(logger, "/portalAdmin", "DELETE result =", response.getStatus()); + + return fieldsValidator; + } + + @RequestMapping(value = { + "/portalApi/adminAppsRoles/{appId}" }, method = RequestMethod.GET, produces = "application/json") + public List getRolesByApp(HttpServletRequest request, @PathVariable("appId") Long appId, + HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List rolesByApp = null; + + try { + if (user == null) { + EcompPortalUtils.setBadPermissions(user, response, "getUserApps"); + } else { + rolesByApp = adminRolesService.getRolesByApp(user, appId); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getRolesByApp failed", e); + } + + return rolesByApp; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/RoleManageController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/RoleManageController.java new file mode 100644 index 00000000..1433fb21 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/RoleManageController.java @@ -0,0 +1,747 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.json.JSONObject; +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.controller.core.RoleController; +import org.onap.portalapp.controller.core.RoleListController; +import org.onap.portalapp.portal.domain.CentralV2RoleFunction; +import org.onap.portalapp.portal.domain.CentralizedApp; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EcompAuditLog; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.exceptions.DuplicateRecordException; +import org.onap.portalapp.portal.exceptions.InvalidApplicationException; +import org.onap.portalapp.portal.exceptions.InvalidRoleException; +import org.onap.portalapp.portal.exceptions.NonCentralizedAppException; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.aop.EPEELFLoggerAdvice; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.EPAppService; +import org.onap.portalapp.portal.service.ExternalAccessRolesService; +import org.onap.portalapp.portal.transport.CentralV2Role; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.AuditLog; +import org.onap.portalsdk.core.domain.Role; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.AuditService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.JsonMessage; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.type.TypeFactory; + +/** + * Proxies REST calls to role-management functions that arrive on paths + * /portalApi/* over to controller methods provided by the SDK-Core library. + * Those controller methods are mounted on paths not exposed by the Portal FE. + */ +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class RoleManageController extends EPRestrictedBaseController { + private static final String ROLE_INVALID_CHARS = "%=():,\"\""; + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RoleManageController.class); + + @Autowired + private RoleController roleController; + + @Autowired + private RoleListController roleListController; + + @Autowired + private EPAppService appService; + + @Autowired + private AuditService auditService; + + @Autowired + private ExternalAccessRolesService externalAccessRolesService; + + + @Autowired + private AdminRolesService adminRolesService; + + /** + * Calls an SDK-Core library method that gets the available roles and writes + * them to the request object. Portal specifies a Hibernate mappings from + * the Role class to the fn_role_v view, which ensures that only Portal + * (app_id is null) roles are fetched. + * + * Any method declared void (no return value) or returning null causes the + * audit log aspect method to declare failure. TODO: should return a JSON + * string. + * + * @param request + * @param response + * @throws Exception + */ + + @RequestMapping(value = { "/portalApi/get_roles/{appId}" }, method = RequestMethod.GET) + public void getRoles(HttpServletRequest request, HttpServletResponse response, @PathVariable("appId") Long appId) throws Exception { + try { + EPUser user = EPUserUtils.getUserSession(request); + EPApp requestedApp = appService.getApp(appId); + if (isAuthorizedUser(user, requestedApp)) { + fieldsValidation(requestedApp); + if (requestedApp.getCentralAuth()) { + List answer = null; + Map model = new HashMap<>(); + ObjectMapper mapper = new ObjectMapper(); + answer = externalAccessRolesService.getRolesForApp(requestedApp.getUebKey()); + model.put("availableRoles", answer); + JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); + JSONObject j = new JSONObject(msg); + response.getWriter().write(j.toString()); + } else + throw new NonCentralizedAppException(requestedApp.getName()); + } else { + logger.info(EELFLoggerDelegate.auditLogger, "RoleManageController.getRoles, Unauthorized user"); + SendErrorForUnauthorizedUser(response, user); + } + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getRoles failed", e); + } + } + + + + @RequestMapping(value = { "/portalApi/role_list/toggleRole/{appId}/{roleId}" }, method = RequestMethod.POST) + public Map toggleRole(HttpServletRequest request, HttpServletResponse response, @PathVariable("appId") Long appId, + @PathVariable("roleId") Long roleId) throws Exception { + EPApp requestedApp = null; + String restcallStatus = null; + HashMap responseMap = new HashMap<>(); + EPUser user = EPUserUtils.getUserSession(request); + try { + requestedApp = appService.getApp(appId); + if (isAuthorizedUser(user, requestedApp)) { + fieldsValidation(requestedApp); + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + CentralV2Role domainRole = externalAccessRolesService.getRoleInfo(roleId, requestedApp.getUebKey()); + // role. toggle active ind + boolean active = domainRole.isActive(); + domainRole.setActive(!active); + + String result = mapper.writeValueAsString(domainRole); + Role newRole = externalAccessRolesService.ConvertCentralRoleToRole(result); + ExternalRequestFieldsValidator externalRequestFieldsValidator = externalAccessRolesService + .saveRoleForApplication(newRole, requestedApp.getUebKey()); + boolean getAddResponse = externalRequestFieldsValidator.isResult(); + if (getAddResponse) { + restcallStatus = "Success"; + logger.info(EELFLoggerDelegate.auditLogger, "Toggle active status for role " + domainRole.getId()); + } else { + restcallStatus = "Toggle Role Failed"; + logger.info(EELFLoggerDelegate.auditLogger, "Toggle Role Failed " + domainRole.getId()); + } + responseMap.put("restcallStatus", restcallStatus); + responseMap.put("availableRoles", externalAccessRolesService.getRolesForApp(requestedApp.getUebKey())); + } else { + logger.info(EELFLoggerDelegate.auditLogger, "RoleManageController.toggleRole, Unauthorized user"); + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + responseMap.put("restcallStatus", " Unauthorized user"); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "toggleRole failed", e); + throw e; + } + return responseMap; + } + + @RequestMapping(value = { "/portalApi/role_list/removeRole/{appId}/{roleId}" }, method = RequestMethod.POST) + public Map removeRole(HttpServletRequest request, HttpServletResponse response, @PathVariable("appId") Long appId, + @PathVariable("roleId") Long roleId) throws Exception { + + EPUser user = EPUserUtils.getUserSession(request); + EPApp requestedApp = null; + String restCallStatus = null; + HashMap responseMap = new HashMap<>(); + ExternalRequestFieldsValidator externalRequestFieldsValidator = null; + try { + requestedApp = appService.getApp(appId); + if (isAuthorizedUser(user, requestedApp)) { + fieldsValidation(requestedApp); + if (requestedApp.getCentralAuth()) { + externalRequestFieldsValidator = externalAccessRolesService.deleteDependencyRoleRecord(roleId, + requestedApp.getUebKey(), user.getOrgUserId()); + boolean deleteResponse = externalRequestFieldsValidator.isResult(); + if (deleteResponse) { + restCallStatus = "Success"; + EPUser requestedUser = (EPUser) externalAccessRolesService.getUser(user.getOrgUserId()).get(0); + EPApp app = (EPApp) externalAccessRolesService.getApp(requestedApp.getUebKey()).get(0); + logger.info(EELFLoggerDelegate.applicationLogger, "deleteRole: succeeded for app {}, role {}", + app.getId(), roleId); + String activityCode = EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_ROLE; + AuditLog auditLog = getAuditInfo(requestedUser, activityCode); + auditLog.setComments(EcompPortalUtils.truncateString( + "Deleted role for app:" + app.getId() + " and role:'" + roleId + "'", + PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + auditService.logActivity(auditLog, null); + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, + EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, + EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("RoleManageController.removeRole", + EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_ROLE, + String.valueOf(requestedUser.getId()), requestedUser.getOrgUserId(), + roleId.toString())); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + } else { + restCallStatus = "Remove Role failed"; + responseMap.put("error", externalRequestFieldsValidator.getDetailMessage()); + logger.error(EELFLoggerDelegate.errorLogger, "removeRole failed"); + } + responseMap.put("restCallStatus", restCallStatus); + responseMap.put("availableRoles", + externalAccessRolesService.getRolesForApp(requestedApp.getUebKey())); + } else + throw new NonCentralizedAppException(requestedApp.getName()); + } else { + logger.info(EELFLoggerDelegate.auditLogger, "RoleManageController.removeRole, Unauthorized user"); + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + responseMap.put("restCallStatus", " Unauthorized user"); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "removeRole failed", e); + throw e; + } + return responseMap; + } + + @RequestMapping(value = { "/portalApi/role/saveRole/{appId}" }, method = RequestMethod.POST) + public Map saveRole(HttpServletRequest request, HttpServletResponse response, + @PathVariable("appId") Long appId) throws Exception { + EPUser user = EPUserUtils.getUserSession(request); + String responseString = null; + HashMap responseMap = new HashMap<>(); + try { + EPApp requestedApp = appService.getApp(appId); + if (isAuthorizedUser(user, requestedApp)) { + fieldsValidation(requestedApp); + if (requestedApp != null && requestedApp.getCentralAuth().equals(true)) { + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + JsonNode root = mapper.readTree(request.getReader()); + CentralV2Role role = mapper.readValue(root.get("role").toString(), CentralV2Role.class); + + List childRoles = mapper.readValue(root.get("childRoles").toString(), + TypeFactory.defaultInstance().constructCollectionType(List.class, CentralV2Role.class)); + List roleFunctions = mapper.readValue(root.get("roleFunctions").toString(), + TypeFactory.defaultInstance().constructCollectionType(List.class, + CentralV2RoleFunction.class)); + if (role.getId() != null && StringUtils.containsAny(role.getName(), ROLE_INVALID_CHARS)) { + throw new InvalidRoleException("Invalid role name found for '" + role.getName() + + "'. Any one of the following characters '%,(),=,:,comma, and double quotes' are not allowed"); + } + CentralV2Role domainRole; + if (role.getId() != null) { + domainRole = externalAccessRolesService.getRoleInfo(role.getId(), requestedApp.getUebKey()); + domainRole.setName(role.getName()); + domainRole.setPriority(role.getPriority()); + } else { + // check for existing role of same name + List roles = externalAccessRolesService.getRolesForApp(requestedApp.getUebKey()); + for (CentralV2Role existRole : roles) + if (existRole.getName().equalsIgnoreCase(role.getName())) + throw new DuplicateRecordException("role already exists: " + existRole.getName()); + + domainRole = new CentralV2Role(); + domainRole.setName(role.getName()); + domainRole.setPriority(role.getPriority()); + if (role.getChildRoles() != null && role.getChildRoles().size() > 0) { + for (Object childRole : childRoles) { + domainRole.addChildRole((CentralV2Role) childRole); + } + } + } + if (role.getRoleFunctions() != null && role.getRoleFunctions().size() > 0) { + domainRole.setRoleFunctions(new TreeSet()); + for (CentralV2RoleFunction roleFunction : roleFunctions) { + if (roleFunction.getType() == null && roleFunction.getAction() == null) { + throw new InvalidRoleException("Invalid role function type:" + roleFunction.getType() + + " and action: " + roleFunction.getAction() + " found while saving!"); + } + roleFunction.setCode(externalAccessRolesService.encodeFunctionCode(roleFunction.getCode())); + roleFunction.setCode(roleFunction.getType() + "|" + roleFunction.getCode() + "|" + + roleFunction.getAction()); + domainRole.addRoleFunction((CentralV2RoleFunction) roleFunction); + } + } else { + domainRole.setRoleFunctions(new TreeSet<>()); + } + String result = mapper.writeValueAsString(domainRole); + Role newRole = externalAccessRolesService.ConvertCentralRoleToRole(result); + ExternalRequestFieldsValidator externalRequestFieldsValidator = externalAccessRolesService + .saveRoleForApplication(newRole, requestedApp.getUebKey()); + boolean getAddResponse = externalRequestFieldsValidator.isResult(); + if (getAddResponse) { + String activityCode = (role.getId() == null) ? EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_ADD_ROLE + : EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_ROLE_AND_FUNCTION; + logger.info(EELFLoggerDelegate.applicationLogger, "saveRole: succeeded for app {}, role {}", + requestedApp.getId(), role.getName()); + AuditLog auditLog = new AuditLog(); + auditLog.setUserId(user.getId()); + auditLog.setActivityCode(activityCode); + auditLog.setComments(EcompPortalUtils.truncateString( + "saveRole role for app:" + requestedApp.getId() + " and role:'" + role.getName() + "'", + PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + auditLog.setAffectedRecordId(user.getOrgUserId()); + auditService.logActivity(auditLog, null); + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, + EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, + EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("RoleManageController.saveRole", activityCode, + String.valueOf(user.getId()), user.getOrgUserId(), role.getName())); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + responseMap.put("status", "Success"); + responseMap.put("role", domainRole); + } else { + if (externalRequestFieldsValidator.getDetailMessage().contains("406")) { + externalRequestFieldsValidator.setDetailMessage("Failed to save role for '" + role.getName() + + "'. Any one of the following characters '%,(),=,:,comma, and double quotes' are not allowed"); + } + responseMap.put("status", "SaveRole Failed"); + responseMap.put("role", responseString); + responseMap.put("error", externalRequestFieldsValidator.getDetailMessage()); + logger.error(EELFLoggerDelegate.errorLogger, "saveRole failed"); + } + } + } else { + logger.info(EELFLoggerDelegate.auditLogger, "RoleManageController.saveRole, Unauthorized user"); + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + responseMap.put("error", " Unauthorized user"); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveRole failed", e); + responseMap.put("error", e.getMessage()); + } + return responseMap; + } + + @RequestMapping(value = { "/portalApi/role/removeRoleFunction" }, method = RequestMethod.POST) + public ModelAndView removeRoleRoleFunction(HttpServletRequest request, HttpServletResponse response) + throws Exception { + return getRoleController().removeRoleFunction(request, response); + } + + @RequestMapping(value = { "/portalApi/role/addRoleFunction" }, method = RequestMethod.POST) + public ModelAndView addRoleRoRoleFunction(HttpServletRequest request, HttpServletResponse response) + throws Exception { + return getRoleController().addRoleFunction(request, response); + } + + @RequestMapping(value = { "/portalApi/role/removeChildRole" }, method = RequestMethod.POST) + public ModelAndView removeChildRole(HttpServletRequest request, HttpServletResponse response) throws Exception { + return getRoleController().removeChildRole(request, response); + } + + @RequestMapping(value = { "/portalApi/role/addChildRole" }, method = RequestMethod.POST) + public ModelAndView addChildRole(HttpServletRequest request, HttpServletResponse response) throws Exception { + return getRoleController().addChildRole(request, response); + } + + @RequestMapping(value = { "/portalApi/get_role/{appId}/{roleId}" }, method = RequestMethod.GET) + public void getRole(HttpServletRequest request, HttpServletResponse response, @PathVariable("appId") Long appId, + @PathVariable("roleId") Long roleId) throws Exception { + try { + EPUser user = EPUserUtils.getUserSession(request); + ObjectMapper mapper = new ObjectMapper(); + EPApp requestedApp = appService.getApp(appId); + if (isAuthorizedUser(user, requestedApp)) { + fieldsValidation(requestedApp); + if (requestedApp.getCentralAuth()) { + CentralV2Role answer = externalAccessRolesService.getRoleInfo(roleId, requestedApp.getUebKey()); + logger.info(EELFLoggerDelegate.applicationLogger, "role_id" + roleId); + Map model = new HashMap<>(); + model.put("availableRoleFunctions", mapper.writeValueAsString( + externalAccessRolesService.getRoleFuncList(requestedApp.getUebKey()))); + model.put("availableRoles", + mapper.writeValueAsString(getAvailableChildRoles(requestedApp.getUebKey(), roleId))); + model.put("role", mapper.writeValueAsString(answer)); + JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); + JSONObject j = new JSONObject(msg); + response.getWriter().write(j.toString()); + } else + throw new NonCentralizedAppException(requestedApp.getName()); + } else { + logger.info(EELFLoggerDelegate.auditLogger, + "RoleManageController.getRoleFunctionList, Unauthorized user"); + SendErrorForUnauthorizedUser(response, user); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getRole failed", e); + throw e; + } + } + + @RequestMapping(value = { "/portalApi/get_role_functions/{appId}" }, method = RequestMethod.GET) + public void getRoleFunctionList(HttpServletRequest request, HttpServletResponse response, + @PathVariable("appId") Long appId) throws Exception { + try { + EPUser user = EPUserUtils.getUserSession(request); + EPApp requestedApp = appService.getApp(appId); + if (isAuthorizedUser(user, requestedApp)) { + fieldsValidation(requestedApp); + if (requestedApp.getCentralAuth()) { + List answer = null; + Map model = new HashMap<>(); + ObjectMapper mapper = new ObjectMapper(); + answer = externalAccessRolesService.getRoleFuncList(requestedApp.getUebKey()); + model.put("availableRoleFunctions", answer); + JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); + JSONObject j = new JSONObject(msg); + response.getWriter().write(j.toString()); + } else + throw new NonCentralizedAppException(requestedApp.getName()); + } else { + logger.info(EELFLoggerDelegate.auditLogger, + "RoleManageController.getRoleFunctionList, Unauthorized user"); + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + response.getWriter().write("Unauthorized User"); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getRoleFunctionList failed", e); + throw e; + } + } + + @RequestMapping(value = { "/portalApi/role_function_list/saveRoleFunction/{appId}" }, method = RequestMethod.POST) + public PortalRestResponse saveRoleFunction(HttpServletRequest request, HttpServletResponse response, @RequestBody CentralV2RoleFunction roleFunc, + @PathVariable("appId") Long appId) throws Exception { + EPUser user = EPUserUtils.getUserSession(request); + boolean saveOrUpdateResponse = false; + try { + EPApp requestedApp = appService.getApp(appId); + if (isAuthorizedUser(user, requestedApp)) { + fieldsValidation(requestedApp); + if (requestedApp.getCentralAuth()) { + saveOrUpdateResponse = externalAccessRolesService.saveCentralRoleFunction(roleFunc, requestedApp); + if (saveOrUpdateResponse) { + EPUser requestedUser = externalAccessRolesService.getUser(user.getOrgUserId()).get(0); + EPApp app = externalAccessRolesService.getApp(requestedApp.getUebKey()).get(0); + CentralV2RoleFunction function = externalAccessRolesService.getRoleFunction(roleFunc.getCode(), + requestedApp.getUebKey()); + String activityCode = (function.getCode() == null) + ? EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_ADD_FUNCTION + : EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_FUNCTION; + logger.info(EELFLoggerDelegate.applicationLogger, + "saveRoleFunction: succeeded for app {}, function {}", app.getId(), roleFunc.getCode()); + AuditLog auditLog = getAuditInfo(requestedUser, activityCode); + auditLog.setComments(EcompPortalUtils.truncateString("saveRoleFunction role for app:" + + app.getId() + " and function:'" + roleFunc.getCode() + "'", + PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + auditService.logActivity(auditLog, null); + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, + EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, + EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("RoleManageController.saveRoleFunction", activityCode, + String.valueOf(requestedUser.getId()), requestedUser.getOrgUserId(), + roleFunc.getCode())); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + } + } else + throw new NonCentralizedAppException(requestedApp.getName() + " is not Centralized Application"); + } else { + logger.info(EELFLoggerDelegate.auditLogger, + "RoleManageController.saveRoleFunction, Unauthorized user"); + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "Unauthorized User", "Failure"); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveRoleFunction: Failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage(), "Failure"); + } + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "Saved Successfully!", "Success"); + } + + @RequestMapping(value = { "/portalApi/role_function_list/removeRoleFunction/{appId}" }, method = RequestMethod.POST) + public PortalRestResponse removeRoleFunction(HttpServletRequest request, HttpServletResponse response, + @RequestBody String roleFunc, @PathVariable("appId") Long appId) throws Exception { + EPUser user = EPUserUtils.getUserSession(request); + try { + EPApp requestedApp = appService.getApp(appId); + if (isAuthorizedUser(user, requestedApp)) { + fieldsValidation(requestedApp); + if (requestedApp.getCentralAuth()) { + ObjectMapper mapper = new ObjectMapper(); + String data = roleFunc; + CentralV2RoleFunction availableRoleFunction = mapper.readValue(data, CentralV2RoleFunction.class); + CentralV2RoleFunction domainRoleFunction = externalAccessRolesService + .getRoleFunction(availableRoleFunction.getCode(), requestedApp.getUebKey()); + boolean getDelFuncResponse = externalAccessRolesService + .deleteCentralRoleFunction(domainRoleFunction.getCode(), requestedApp); + if (getDelFuncResponse) { + logger.info(EELFLoggerDelegate.applicationLogger, + "deleteRoleFunction: succeeded for app {}, role {}", requestedApp.getId(), + domainRoleFunction.getCode()); + String activityCode = EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_FUNCTION; + AuditLog auditLog = getAuditInfo(user, activityCode); + auditLog.setComments( + EcompPortalUtils.truncateString( + "Deleted function for app:" + requestedApp.getId() + " and function code:'" + + domainRoleFunction.getCode() + "'", + PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + auditService.logActivity(auditLog, null); + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, + EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, + EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("RoleManageController.removeRoleFunction", + EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_FUNCTION, + String.valueOf(user.getId()), user.getOrgUserId(), + domainRoleFunction.getCode())); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + logger.info(EELFLoggerDelegate.auditLogger, + "Remove role function " + domainRoleFunction.getName()); + } + } else + throw new NonCentralizedAppException(requestedApp.getName() + " is not Centralized Application"); + } else { + logger.info(EELFLoggerDelegate.auditLogger, + "RoleManageController.removeRoleFunction, Unauthorized user"); + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "Unauthorized User", "Failure"); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "removeRoleFunction failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage(), "Failure"); + } + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "Deleted Successfully!", "Success"); + } + + @RequestMapping(value = { "/portalApi/centralizedApps" }, method = RequestMethod.GET) + public List getCentralizedAppRoles(HttpServletRequest request, HttpServletResponse response, String userId) throws IOException { + EPUser user = EPUserUtils.getUserSession(request); + List applicationsList = null; + if (adminRolesService.isAccountAdmin(user) || adminRolesService.isSuperAdmin(user)) { + applicationsList = externalAccessRolesService.getCentralizedAppsOfUser(userId); + } else { + logger.info(EELFLoggerDelegate.auditLogger, + "RoleManageController.getCentralizedAppRoles, Unauthorized user"); + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + } + return applicationsList; + } + + public RoleListController getRoleListController() { + return roleListController; + } + + public void setRoleListController(RoleListController roleListController) { + this.roleListController = roleListController; + } + + public RoleController getRoleController() { + return roleController; + } + + public void setRoleController(RoleController roleController) { + this.roleController = roleController; + } + + + @RequestMapping(value = { "/portalApi/syncRoles" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse syncRoles(HttpServletRequest request, HttpServletResponse response, + @RequestBody Long appId) { + EPUser user = EPUserUtils.getUserSession(request); + try { + EPApp app = appService.getApp(appId); + if (isAuthorizedUser(user, app)) { + fieldsValidation(app); + externalAccessRolesService.syncApplicationRolesWithEcompDB(app); + } else { + logger.info(EELFLoggerDelegate.auditLogger, + "RoleManageController.syncRoles, Unauthorized user:" + user.getOrgUserId()); + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "Unauthorized User", "Failure"); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "failed syncRoles", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage(), "Failed"); + } + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "Sync roles completed successfully!", "Success"); + } + + @RequestMapping(value = { "/portalApi/syncFunctions" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse syncFunctions(HttpServletRequest request, HttpServletResponse response, + @RequestBody Long appId) { + EPUser user = EPUserUtils.getUserSession(request); + try { + EPApp app = appService.getApp(appId); + if (isAuthorizedUser(user, app)) { + fieldsValidation(app); + externalAccessRolesService.syncRoleFunctionFromExternalAccessSystem(app);; + } else { + logger.info(EELFLoggerDelegate.auditLogger, + "RoleManageController.syncFunctions, Unauthorized user:" + user.getOrgUserId()); + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "Unauthorized User", "Failure"); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "failed syncFunctions", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage(), "Failed"); + } + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "Sync Functions completed successfully!", "Success"); + } + + public List getAvailableChildRoles(String uebKey, Long roleId) throws Exception { + List availableChildRoles = externalAccessRolesService.getRolesForApp(uebKey); + if (roleId == null || roleId == 0) { + return availableChildRoles; + } + CentralV2Role currentRole = externalAccessRolesService.getRoleInfo(roleId, uebKey); + Set allParentRoles = new TreeSet<>(); + allParentRoles = getAllParentRolesAsList(currentRole, allParentRoles); + Iterator availableChildRolesIterator = availableChildRoles.iterator(); + while (availableChildRolesIterator.hasNext()) { + CentralV2Role role = availableChildRolesIterator.next(); + if (!role.isActive() || allParentRoles.contains(role) || role.getId().equals(roleId)) { + availableChildRolesIterator.remove(); + } + } + return availableChildRoles; + } + + private Set getAllParentRolesAsList(CentralV2Role role, Set allParentRoles) { + Set parentRoles = role.getParentRoles(); + allParentRoles.addAll(parentRoles); + Iterator parentRolesIterator = parentRoles.iterator(); + while (parentRolesIterator.hasNext()) { + getAllParentRolesAsList(parentRolesIterator.next(), allParentRoles); + } + return allParentRoles; + } + + public AuditLog getAuditInfo(EPUser user, String activityCode) + { + AuditLog auditLog = new AuditLog(); + auditLog.setUserId(user.getId()); + auditLog.setActivityCode(activityCode); + auditLog.setAffectedRecordId(user.getOrgUserId()); + + return auditLog; + } + + private void fieldsValidation(EPApp app) throws Exception{ + app.getUebKey(); + List appInfo = externalAccessRolesService.getApp(app.getUebKey()); + if(appInfo.isEmpty()){ + throw new InvalidApplicationException("Invalid uebkey"); + } + if(!appInfo.isEmpty() && EcompPortalUtils.checkIfRemoteCentralAccessAllowed() && appInfo.get(0).getCentralAuth()){ + ResponseEntity response = externalAccessRolesService.getNameSpaceIfExists(appInfo.get(0)); + if (response.getStatusCode().value() == HttpServletResponse.SC_NOT_FOUND) + throw new InvalidApplicationException("Invalid NameSpace"); + } + } + + private boolean isAuthorizedUser(EPUser user, EPApp requestedApp) { + if (user != null && (adminRolesService.isAccountAdminOfApplication(user, requestedApp) + || (adminRolesService.isSuperAdmin(user) && requestedApp.getId() == PortalConstants.PORTAL_APP_ID))) + return true; + return false; + } + + private void SendErrorForUnauthorizedUser(HttpServletResponse response, EPUser user) throws IOException { + EcompPortalUtils.setBadPermissions(user, response, "createAdmin"); + response.getWriter().write("Unauthorized User"); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/RolesApprovalSystemController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/RolesApprovalSystemController.java new file mode 100644 index 00000000..b4babfdf --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/RolesApprovalSystemController.java @@ -0,0 +1,232 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.controller; + +import java.util.ArrayList; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.externalsystemapproval.model.ExternalSystemRoleApproval; +import org.onap.portalapp.externalsystemapproval.model.ExternalSystemUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.UserRolesService; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import io.swagger.annotations.ApiOperation; + +@RestController +@RequestMapping("/auxapi") +@Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class RolesApprovalSystemController implements BasicAuthenticationController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RolesApprovalSystemController.class); + + @Autowired + private UserRolesService userRolesService; + + /** + * Creates an application user with the specified roles. + * + * @param request + * @param extSysUser + * @return PortalRestResponse with appropriate status value and message + */ + @ApiOperation(value = "Creates an application user with the specified roles.", response = PortalRestResponse.class) + @RequestMapping(value = { "/userProfile" }, method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse postUserProfile(HttpServletRequest request, + @RequestBody ExternalSystemUser extSysUser, HttpServletResponse response) { + ExternalRequestFieldsValidator reqResult = null; + try { + logger.info(EELFLoggerDelegate.debugLogger, "postUserProfile: request received for app {}, user {}", + extSysUser.getApplicationName(), extSysUser.getLoginId()); + + validateExtSystemUser(extSysUser, true); + reqResult = userRolesService.setExternalRequestUserAppRole(extSysUser, "POST"); + if (!reqResult.isResult()) + throw new Exception(reqResult.getDetailMessage()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "postUserProfile: failed for app {}, user {}", + extSysUser.getApplicationName(), extSysUser.getLoginId(), e); + if(reqResult == null || (!reqResult.isResult() && !e.getMessage().contains("404") && !e.getMessage().contains("405"))){ + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + e.getMessage(), "save user profile failed"); + } else if(e.getMessage().contains("404")){ + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + e.getMessage(), "save user profile failed"); + } else if(e.getMessage().contains("500")){ + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + e.getMessage(), "save user profile failed"); + } else if (e.getMessage().contains("405")) { + response.setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), + "save user profile failed"); + } else { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), + "save user profile failed"); + } + } + return new PortalRestResponse(PortalRestStatusEnum.OK, reqResult.getDetailMessage(), "Success"); + } + + /** + * Updates an application user to have only the specified roles. + * + * @param request + * @param extSysUser + * @return PortalRestResponse with appropriate status value and message + */ + @ApiOperation(value = "Updates an application user to have only the specified roles.", response = PortalRestResponse.class) + @RequestMapping(value = { "/userProfile" }, method = RequestMethod.PUT, produces = "application/json") + public PortalRestResponse putUserProfile(HttpServletRequest request, + @RequestBody ExternalSystemUser extSysUser, HttpServletResponse response) { + ExternalRequestFieldsValidator reqResult = null; + try { + logger.info(EELFLoggerDelegate.debugLogger, "putUserProfile: request received for app {}, user {}", + extSysUser.getApplicationName(), extSysUser.getLoginId()); + validateExtSystemUser(extSysUser, true); + reqResult = userRolesService.setExternalRequestUserAppRole(extSysUser, "PUT"); + if (!reqResult.isResult()) + throw new Exception(reqResult.getDetailMessage()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "putUserProfile: failed for app {}, user {}", + extSysUser.getApplicationName(), extSysUser.getLoginId(), e); + if(reqResult == null || (!reqResult.isResult() && !e.getMessage().contains("404") && !e.getMessage().contains("405"))){ + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + e.getMessage(), "save user profile failed"); + } else if(e.getMessage().contains("404")){ + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + e.getMessage(), "save user profile failed"); + } else if(e.getMessage().contains("500")){ + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + e.getMessage(), "save user profile failed"); + } else if (e.getMessage().contains("405")) { + response.setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), "save user profile failed"); + } else{ + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + e.getMessage(), "save user profile failed"); + } + } + return new PortalRestResponse(PortalRestStatusEnum.OK, reqResult.getDetailMessage() , "Success"); + } + + /** + * Deletes an application user by removing all assigned roles. + * + * @param request + * @param extSysUser + * This object must have zero roles. + * @return PortalRestResponse with appropriate status value and message + */ + @ApiOperation(value = "Processes a request to delete one or more application roles for one specified user who has roles.", response = PortalRestResponse.class) + @RequestMapping(value = { "/userProfile" }, method = RequestMethod.DELETE, produces = "application/json") + public PortalRestResponse deleteUserProfile(HttpServletRequest request, + @RequestBody ExternalSystemUser extSysUser, HttpServletResponse response) { + ExternalRequestFieldsValidator reqResult = null; + try { + logger.info(EELFLoggerDelegate.debugLogger, "deleteUserProfile: request received for app {}, user {}", + extSysUser.getApplicationName(), extSysUser.getLoginId()); + validateExtSystemUser(extSysUser, false); + // Ignore any roles that might be mistakenly present in the request + extSysUser.setRoles(new ArrayList()); + reqResult = userRolesService.setExternalRequestUserAppRole(extSysUser, "DELETE"); + if (!reqResult.isResult()) + throw new Exception(reqResult.getDetailMessage()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteUserProfile: failed for app {}, user {}", + extSysUser.getApplicationName(), extSysUser.getLoginId(), e); + if(reqResult == null || (!reqResult.isResult() && !e.getMessage().contains("404"))){ + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + e.getMessage(), "delete user profile failed"); + }else if(e.getMessage().contains("404")){ + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + e.getMessage(), "delete user profile failed"); + } else{ + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, + e.getMessage(), "delete user profile failed"); + } + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "Deleted Successfully", "Success"); + } + + /** + * Checks for presence of required fields. + * + * @param extSysUser + * @param rolesRequired + * If true, checks whether roles are present + * @throws Exception + * If any field is missing. + */ + private void validateExtSystemUser(ExternalSystemUser extSysUser, boolean rolesRequired) throws Exception { + if (extSysUser.getLoginId() == null || extSysUser.getLoginId() == "") + throw new Exception("Request has no login ID"); + if (extSysUser.getApplicationName() == null || extSysUser.getApplicationName() == "") + throw new Exception("Request has no application name"); + if (extSysUser.getMyloginrequestId() == null) + throw new Exception("Request has no request ID"); + if (rolesRequired && (extSysUser.getRoles() == null || extSysUser.getRoles().size() == 0)) + throw new Exception("Request has no roles"); + } + +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SchedulerAuxController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SchedulerAuxController.java new file mode 100644 index 00000000..c676fa98 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SchedulerAuxController.java @@ -0,0 +1,141 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import javax.servlet.http.HttpServletRequest; + +import org.json.simple.JSONObject; +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.scheduler.SchedulerProperties; +import org.onap.portalapp.portal.scheduleraux.RestObject; +import org.onap.portalapp.portal.scheduleraux.SchedulerAuxResponseWrapper; +import org.onap.portalapp.portal.scheduleraux.SchedulerAuxRestInterfaceFactory; +import org.onap.portalapp.portal.scheduleraux.SchedulerAuxRestInterfaceIfc; +import org.onap.portalapp.portal.scheduleraux.SchedulerAuxUtil; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +/*import org.openecomp.vid.policy.PolicyProperties; +import org.openecomp.vid.policy.PolicyResponseWrapper; +import org.openecomp.vid.policy.PolicyRestInterfaceFactory; +import org.openecomp.vid.policy.PolicyRestInterfaceIfc; +import org.openecomp.vid.policy.PolicyUtil;*/ +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +/** + * Controller to handle Policy requests. + */ + +@RestController +@RequestMapping(PortalConstants.PORTAL_AUX_API) +@Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class SchedulerAuxController extends EPRestrictedBaseController { + + /** The logger. */ + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerAuxController.class); + + @RequestMapping(value = "/get_policy", method = RequestMethod.GET, produces = "application/json") + public ResponseEntity getPolicyInfo(HttpServletRequest request) throws Exception { + try { + + logger.debug(EELFLoggerDelegate.debugLogger, + "SchedulerAux Controller Call Started: " + SchedulerProperties.SCHEDULERAUX_GET_CONFIG_VAL); + String path = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_GET_CONFIG_VAL); + SchedulerAuxResponseWrapper policyResWrapper = getPolicyConfig(path); + + logger.debug(EELFLoggerDelegate.debugLogger, "SchedulerAux Request END : Response: ", + new ResponseEntity(policyResWrapper.getResponse(), HttpStatus.OK).toString()); + + return (new ResponseEntity(policyResWrapper.getResponse(), + HttpStatus.valueOf(policyResWrapper.getStatus()))); + } catch (Exception e) { + SchedulerAuxResponseWrapper policyResWrapper = new SchedulerAuxResponseWrapper(); + policyResWrapper.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); + policyResWrapper.setEntity(e.getMessage()); + logger.error(EELFLoggerDelegate.errorLogger, "Exception with getpolicy ", e); + return (new ResponseEntity(policyResWrapper.getResponse(), HttpStatus.INTERNAL_SERVER_ERROR)); + } + } + + protected static SchedulerAuxResponseWrapper getPolicyConfig(String path) throws Exception { + String methodName = "getPolicyConfig"; + String uuid = UUID.randomUUID().toString(); + logger.debug(EELFLoggerDelegate.debugLogger, "starting getPolicyConfig "); + + try { + // STARTING REST API CALL AS AN FACTORY INSTACE + SchedulerAuxRestInterfaceIfc policyRestController = SchedulerAuxRestInterfaceFactory.getInstance(); + JSONObject request = new JSONObject(); + String policyName = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULER_POLICY_NAME); + request.put("policyName", policyName); + RestObject restObjStr = new RestObject(); + String str = new String(); + restObjStr.set(str); + policyRestController.Post(str, request, uuid, path, restObjStr); + SchedulerAuxResponseWrapper policyRespWrapper = SchedulerAuxUtil.wrapResponse(restObjStr); + logger.debug(EELFLoggerDelegate.debugLogger, "Getpolicy Request END : Response: ", methodName, + policyRespWrapper.getResponse()); + if (policyRespWrapper.getStatus() != 200) { + String message = String.format( + " get policy Information failed . MethodName: %s, PolicyRespWrapperResponse: %s", methodName, + policyRespWrapper.getResponse()); + logger.error(EELFLoggerDelegate.errorLogger, message); + EPLogUtil.schedulerAccessAlarm(logger, policyRespWrapper.getStatus()); + } + return policyRespWrapper; + } catch (Exception e) { + String message = String.format(" EXCEPTION in getPolicyConfig . MethodName: %s and Exception: %s", methodName, e); + logger.error(EELFLoggerDelegate.errorLogger, "EXCEPTION in getPolicyConfig", message); + throw e; + } + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SchedulerController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SchedulerController.java new file mode 100644 index 00000000..f7d90db1 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SchedulerController.java @@ -0,0 +1,348 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.json.simple.JSONObject; +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.scheduler.SchedulerProperties; +import org.onap.portalapp.portal.scheduler.SchedulerRestInterface; +import org.onap.portalapp.portal.scheduler.SchedulerUtil; +import org.onap.portalapp.portal.scheduler.restobjects.GetTimeSlotsRestObject; +import org.onap.portalapp.portal.scheduler.restobjects.PostCreateNewVnfRestObject; +import org.onap.portalapp.portal.scheduler.restobjects.PostSubmitVnfChangeRestObject; +import org.onap.portalapp.portal.scheduler.wrapper.GetTimeSlotsWrapper; +import org.onap.portalapp.portal.scheduler.wrapper.PostCreateNewVnfWrapper; +import org.onap.portalapp.portal.scheduler.wrapper.PostSubmitVnfChangeTimeSlotsWrapper; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping(PortalConstants.PORTAL_AUX_API) +@Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class SchedulerController extends EPRestrictedBaseController { + + @Autowired + private SchedulerRestInterface schedulerRestController; + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerController.class); + + /** The request date format. */ + public DateFormat requestDateFormat = new SimpleDateFormat("EEE, dd MMM YYYY HH:mm:ss z"); + + @RequestMapping(value = "/get_time_slots/{scheduler_request}", method = RequestMethod.GET, produces = "application/json") + public ResponseEntity getTimeSlots(HttpServletRequest request, + @PathVariable("scheduler_request") String scheduler_request) throws Exception { + try { + + Date startingTime = new Date(); + String startTimeRequest = requestDateFormat.format(startingTime); + logger.debug(EELFLoggerDelegate.debugLogger, "Controller Scheduler GET Timeslots for startTimeRequest: ", + startTimeRequest); + logger.debug(EELFLoggerDelegate.debugLogger, "Original Request : \n ", scheduler_request); + String path = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULER_GET_TIME_SLOTS) + + scheduler_request; + + GetTimeSlotsWrapper schedulerResWrapper = getTimeSlots(scheduler_request, path, scheduler_request); + + Date endTime = new Date(); + String endTimeRequest = requestDateFormat.format(endTime); + logger.debug(EELFLoggerDelegate.debugLogger, "Controller Scheduler - GET for EndTimeRequest", + endTimeRequest); + return (new ResponseEntity(schedulerResWrapper.getResponse(), + HttpStatus.valueOf(schedulerResWrapper.getStatus()))); + } catch (Exception e) { + GetTimeSlotsWrapper schedulerResWrapper=new GetTimeSlotsWrapper(); + schedulerResWrapper.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); + schedulerResWrapper.setEntity(e.getMessage()); + logger.error(EELFLoggerDelegate.errorLogger, "Exception with getTimeslots", e); + return (new ResponseEntity(schedulerResWrapper.getResponse(), HttpStatus.INTERNAL_SERVER_ERROR)); + } + + } + + protected GetTimeSlotsWrapper getTimeSlots(String request, String path, String uuid) throws Exception { + + try { + // STARTING REST API CALL AS AN FACTORY INSTACE + logger.debug(EELFLoggerDelegate.debugLogger, "Get Time Slots Request START"); + + GetTimeSlotsRestObject restObjStr = new GetTimeSlotsRestObject(); + String str = new String(); + + restObjStr.set(str); + + schedulerRestController.Get(str, uuid, path, restObjStr); + GetTimeSlotsWrapper schedulerRespWrapper = SchedulerUtil.getTimeSlotsWrapResponse(restObjStr); + logger.debug(EELFLoggerDelegate.debugLogger, "Get Time Slots Request END : Response: ", + schedulerRespWrapper.getResponse()); + if (schedulerRespWrapper.getStatus() != 200 && schedulerRespWrapper.getStatus() != 204 + && schedulerRespWrapper.getStatus() != 202) { + String message = String.format( + " getTimeslots Information failed . SchedulerResponseWrapper for gettimeslots: %s", schedulerRespWrapper.getResponse()); + logger.error(EELFLoggerDelegate.errorLogger, message); + EPLogUtil.schedulerAccessAlarm(logger, schedulerRespWrapper.getStatus()); + + } + return schedulerRespWrapper; + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "Get Time Slots Request ERROR : Exception:",e); + throw e; + } + } + + @SuppressWarnings("unchecked") + @RequestMapping(value = "/post_create_new_vnf_change", method = RequestMethod.POST, produces = "application/json") + public ResponseEntity postCreateNewVNFChange(HttpServletRequest request, + @RequestBody JSONObject scheduler_request) throws Exception { + try { + Date startingTime = new Date(); + String startTimeRequest = requestDateFormat.format(startingTime); + + logger.debug(EELFLoggerDelegate.debugLogger, "Controller Scheduler POST : post_create_new_vnf_change", + startTimeRequest); + + // Generating uuid + String uuid = UUID.randomUUID().toString(); + + scheduler_request.put("scheduleId", uuid); + logger.debug(EELFLoggerDelegate.debugLogger, "UUID : ", uuid); + + // adding uuid to the request payload + scheduler_request.put("scheduleId", uuid); + logger.debug(EELFLoggerDelegate.debugLogger, "Original Request ", scheduler_request.toString()); + + String path = SchedulerProperties + .getProperty(SchedulerProperties.SCHEDULER_CREATE_NEW_VNF_CHANGE_INSTANCE_VAL) + uuid; + + PostCreateNewVnfWrapper responseWrapper = postSchedulingRequest(scheduler_request, path, uuid); + + Date endTime = new Date(); + String endTimeRequest = requestDateFormat.format(endTime); + logger.debug(EELFLoggerDelegate.debugLogger, "Controller Scheduler - POST", endTimeRequest); + + return new ResponseEntity(responseWrapper.getResponse(), + HttpStatus.valueOf(responseWrapper.getStatus())); + } catch (Exception e) { + PostCreateNewVnfWrapper responseWrapper=new PostCreateNewVnfWrapper(); + responseWrapper.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); + responseWrapper.setEntity(e.getMessage()); + logger.error(EELFLoggerDelegate.errorLogger, "Exception with postCreateNewVNFChange ", e); + return (new ResponseEntity(responseWrapper.getResponse(), HttpStatus.INTERNAL_SERVER_ERROR)); + + } + + } + + protected PostCreateNewVnfWrapper postSchedulingRequest(JSONObject request, String path, String uuid) + throws Exception { + + try { + // STARTING REST API CALL AS AN FACTORY INSTACE + + PostCreateNewVnfRestObject restObjStr = new PostCreateNewVnfRestObject(); + String str = new String(); + + restObjStr.set(str); + schedulerRestController.Post(str, request, path, restObjStr); + + int status = restObjStr.getStatusCode(); + if (status >= 200 && status <= 299) { + restObjStr.setUUID(uuid); + } + + PostCreateNewVnfWrapper responseWrapper = SchedulerUtil.postCreateNewVnfWrapResponse(restObjStr); + + logger.debug(EELFLoggerDelegate.debugLogger, " Post Create New Vnf Scheduling Request END : Response: ", + responseWrapper.getResponse()); + if (responseWrapper.getStatus() != 200 && responseWrapper.getStatus() != 202 && responseWrapper.getStatus() != 204) { + logger.error(EELFLoggerDelegate.errorLogger, "PostCreateNewVnfWrapper Information failed", responseWrapper.getResponse()); + EPLogUtil.schedulerAccessAlarm(logger, responseWrapper.getStatus()); + + } + return responseWrapper; + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "PostCreateNewVnfWrapper failed . Post Create New Vnf Scheduling Request ERROR :",e); + throw e; + } + } + + @RequestMapping(value = "/submit_vnf_change_timeslots", method = RequestMethod.POST, produces = "application/json") + public ResponseEntity postSubmitVnfChangeTimeslots(HttpServletRequest request, + @RequestBody JSONObject scheduler_request) throws Exception { + try { + Date startingTime = new Date(); + String startTimeRequest = requestDateFormat.format(startingTime); + logger.debug(EELFLoggerDelegate.debugLogger, " Controller Scheduler POST : submit_vnf_change_timeslots", + startTimeRequest); + + // Generating uuid + String uuid = (String) scheduler_request.get("scheduleId"); + logger.debug(EELFLoggerDelegate.debugLogger, "UUID : ", uuid); + + scheduler_request.remove("scheduleId"); + logger.debug(EELFLoggerDelegate.debugLogger, "Original Request for the schedulerId: ", + scheduler_request.toString()); + + String path = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULER_SUBMIT_NEW_VNF_CHANGE) + .replace("{scheduleId}", uuid); + + PostSubmitVnfChangeTimeSlotsWrapper responseWrapper = postSubmitSchedulingRequest(scheduler_request, path, + uuid); + + Date endTime = new Date(); + String endTimeRequest = requestDateFormat.format(endTime); + logger.debug(EELFLoggerDelegate.debugLogger, " Controller Scheduler - POST Submit for end time request", + endTimeRequest); + + return (new ResponseEntity(responseWrapper.getResponse(),HttpStatus.valueOf(responseWrapper.getStatus()))); + } catch (Exception e) { + PostSubmitVnfChangeTimeSlotsWrapper responseWrapper=new PostSubmitVnfChangeTimeSlotsWrapper(); + responseWrapper.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); + responseWrapper.setEntity(e.getMessage()); + logger.error(EELFLoggerDelegate.errorLogger, "Exception with Post submit Vnf change Timeslots", e); + return (new ResponseEntity(responseWrapper.getResponse(), HttpStatus.INTERNAL_SERVER_ERROR)); + + } + } + + protected PostSubmitVnfChangeTimeSlotsWrapper postSubmitSchedulingRequest(JSONObject request, String path, + String uuid) throws Exception { + + try { + // STARTING REST API CALL AS AN FACTORY INSTACE + + PostSubmitVnfChangeRestObject restObjStr = new PostSubmitVnfChangeRestObject(); + String str = new String(); + + restObjStr.set(str); + schedulerRestController.Post(str, request, path, restObjStr); + + int status = restObjStr.getStatusCode(); + if (status >= 200 && status <= 299) { + status=(status==204)?200:status; + restObjStr.setStatusCode(status); + restObjStr.setUUID(uuid); + } + + PostSubmitVnfChangeTimeSlotsWrapper responseWrapper = SchedulerUtil + .postSubmitNewVnfWrapResponse(restObjStr); + logger.debug(EELFLoggerDelegate.debugLogger, "Post Submit Scheduling Request END : Response = ", + responseWrapper.getResponse()); + if (responseWrapper.getStatus() != 200 && responseWrapper.getStatus() != 202 + && responseWrapper.getStatus() != 204) { + logger.error(EELFLoggerDelegate.errorLogger, "PostCreateNewVnfWrapper Information failed", responseWrapper.getResponse()); + EPLogUtil.schedulerAccessAlarm(logger, responseWrapper.getStatus()); + + } + return responseWrapper; + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, " PostCreateNewVnfWrapper failed . Post Submit Scheduling Request ERROR :",e); + throw e; + } + } + + /** + * Get Scheduler UI constant values from properties file + * + * @return Rest response wrapped around a String; e.g., "success" or "ERROR" + */ + @RequestMapping(value = "/get_scheduler_constant", method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> getSchedulerConstant(HttpServletRequest request, + HttpServletResponse response) { + logger.debug(EELFLoggerDelegate.debugLogger, "get scheduler constant"); + + PortalRestResponse> portalRestResponse = null; + String errorMsg = " is not defined in property file. Please check the property file and make sure all the schedule constant values are defined"; + HashMap constantMap = new HashMap<>(); + constantMap.put(SchedulerProperties.SCHEDULER_DOMAIN_NAME, "domainName"); + constantMap.put(SchedulerProperties.SCHEDULER_SCHEDULE_NAME, "scheduleName"); + constantMap.put(SchedulerProperties.SCHEDULER_WORKFLOW_NAME, "workflowName"); + constantMap.put(SchedulerProperties.SCHEDULER_CALLBACK_URL, "callbackUrl"); + constantMap.put(SchedulerProperties.SCHEDULER_APPROVAL_TYPE, "approvalType"); + constantMap.put(SchedulerProperties.SCHEDULER_APPROVAL_SUBMIT_STATUS, "approvalSubmitStatus"); + constantMap.put(SchedulerProperties.SCHEDULER_APPROVAL_REJECT_STATUS, "approvalRejectStatus"); + constantMap.put(SchedulerProperties.SCHEDULER_POLICY_NAME, "policyName"); + constantMap.put(SchedulerProperties.SCHEDULER_INTERVAL_GET_TIMESLOT_RATE, "intervalRate"); + constantMap.put(SchedulerProperties.SCHEDULER_GROUP_ID, "groupId"); + try { + Map map = new HashMap<>(); + for (Map.Entry entry : constantMap.entrySet()) { + if (SchedulerProperties.containsProperty(entry.getKey())) + map.put(entry.getValue(), SchedulerProperties.getProperty(entry.getKey())); + else + throw new Exception(entry.getKey() + errorMsg); + } + portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.OK, "success", map); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getSchedulerConstant failed", e); + portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.ERROR, e.getMessage(), + null); + } + return portalRestResponse; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SharedContextRestController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SharedContextRestController.java new file mode 100644 index 00000000..9a684966 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/SharedContextRestController.java @@ -0,0 +1,384 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPRestrictedRESTfulBaseController; +import org.onap.portalapp.portal.domain.SharedContext; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.SharedContextService; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.swagger.annotations.ApiOperation; + +/** + * The shared-context feature allows onboarded applications to share data among + * themselves easily for a given session. It basically implements a Java map: + * put or get a key-value pair within a map identified by a session ID. + * + * This REST endpoint listens on the Portal app server and answers requests made + * by back-end application servers. Reads and writes values to the database + * using a Hibernate service to ensure all servers in a high-availability + * cluster see the same data. + */ +@Configuration +@RestController +@RequestMapping(PortalConstants.REST_AUX_API + "/context") +@EnableAspectJAutoProxy +@EPAuditLog +public class SharedContextRestController extends EPRestrictedRESTfulBaseController { + + /** + * Model for a one-element JSON object returned by many methods. + */ + class SharedContextJsonResponse { + String response; + } + + /** + * Access to the database + */ + @Autowired + private SharedContextService contextService; + + /** + * Logger for debug etc. + */ + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SharedContextRestController.class); + + /** + * Reusable JSON (de)serializer + */ + private final ObjectMapper mapper = new ObjectMapper(); + + /** + * Gets a value for the specified context and key (RESTful service method). + * + * @param request + * HTTP servlet request + * @param context_id + * ID that identifies the context, usually the ECOMP Portal + * session key. + * @param ckey + * Key for the key-value pair to fetch + * @return JSON with shared context object; response=null if not found. + * @throws Exception + * on bad arguments + */ + @ApiOperation(value = "Gets a value for the specified context and key.", response = SharedContext.class) + @RequestMapping(value = { "/get" }, method = RequestMethod.GET, produces = "application/json") + public String getContext(HttpServletRequest request, @RequestParam String context_id, @RequestParam String ckey) + throws Exception { + + logger.debug(EELFLoggerDelegate.debugLogger, "getContext for ID " + context_id + ", key " + ckey); + if (context_id == null || ckey == null) + throw new Exception("Received null for context_id and/or ckey"); + + SharedContext context = contextService.getSharedContext(context_id, ckey); + String jsonResponse = ""; + if (context == null) + jsonResponse = convertResponseToJSON(context); + else + jsonResponse = mapper.writeValueAsString(context); + + return jsonResponse; + } + + /** + * Gets user information for the specified context (RESTful service method). + * + * @param request + * HTTP servlet request + * @param context_id + * ID that identifies the context, usually the ECOMP Portal + * session key. + * @return List of shared-context objects as JSON; should have user's first + * name, last name and email address; null if none found + * @throws Exception + * on bad arguments + */ + @ApiOperation(value = "Gets user information for the specified context.", response = SharedContext.class, responseContainer = "List") + @RequestMapping(value = { "/get_user" }, method = RequestMethod.GET, produces = "application/json") + public String getUserContext(HttpServletRequest request, @RequestParam String context_id) throws Exception { + + logger.debug(EELFLoggerDelegate.debugLogger, "getUserContext for ID " + context_id); + if (context_id == null) + throw new Exception("Received null for context_id"); + + List listSharedContext = new ArrayList(); + SharedContext firstNameContext = contextService.getSharedContext(context_id, + EPCommonSystemProperties.USER_FIRST_NAME); + SharedContext lastNameContext = contextService.getSharedContext(context_id, + EPCommonSystemProperties.USER_LAST_NAME); + SharedContext emailContext = contextService.getSharedContext(context_id, EPCommonSystemProperties.USER_EMAIL); + SharedContext orgUserIdContext = contextService.getSharedContext(context_id, + EPCommonSystemProperties.USER_ORG_USERID); + if (firstNameContext != null) + listSharedContext.add(firstNameContext); + if (lastNameContext != null) + listSharedContext.add(lastNameContext); + if (emailContext != null) + listSharedContext.add(emailContext); + if (orgUserIdContext != null) + listSharedContext.add(orgUserIdContext); + String jsonResponse = convertResponseToJSON(listSharedContext); + return jsonResponse; + } + + /** + * Tests for presence of the specified key in the specified context (RESTful + * service method). + * + * @param request + * HTTP servlet request + * @param context_id + * ID that identifies the context, usually the ECOMP Portal + * session key. + * @param ckey + * Key for the key-value pair to test + * @return JSON with result indicating whether the context and key were + * found. + * @throws Exception + * on bad arguments + */ + @ApiOperation(value = "Tests for presence of the specified key in the specified context.", response = SharedContextJsonResponse.class) + @RequestMapping(value = { "/check" }, method = RequestMethod.GET, produces = "application/json") + public String checkContext(HttpServletRequest request, @RequestParam String context_id, @RequestParam String ckey) + throws Exception { + + logger.debug(EELFLoggerDelegate.debugLogger, "checkContext for " + context_id + ", key " + ckey); + if (context_id == null || ckey == null) + throw new Exception("Received null for contextId and/or key"); + + String response = null; + SharedContext context = contextService.getSharedContext(context_id, ckey); + if (context != null) + response = "exists"; + + String jsonResponse = convertResponseToJSON(response); + return jsonResponse; + } + + /** + * Removes the specified key in the specified context (RESTful service + * method). + * + * @param request + * HTTP servlet request + * @param context_id + * ID that identifies the context, usually the ECOMP Portal + * session key. + * @param ckey + * Key for the key-value pair to remove + * @return JSON with result indicating whether the context and key were + * found. + * @throws Exception + * on bad arguments + */ + @ApiOperation(value = "Removes the specified key in the specified context.", response = SharedContextJsonResponse.class) + @RequestMapping(value = { "/remove" }, method = RequestMethod.GET, produces = "application/json") + public String removeContext(HttpServletRequest request, @RequestParam String context_id, @RequestParam String ckey) + throws Exception { + + logger.debug(EELFLoggerDelegate.debugLogger, "removeContext for " + context_id + ", key " + ckey); + if (context_id == null || ckey == null) + throw new Exception("Received null for contextId and/or key"); + + SharedContext context = contextService.getSharedContext(context_id, ckey); + String response = null; + if (context != null) { + contextService.deleteSharedContext(context); + response = "removed"; + } + + String jsonResponse = convertResponseToJSON(response); + return jsonResponse; + } + + /** + * Clears all key-value pairs in the specified context (RESTful service + * method). + * + * @param request + * HTTP servlet request + * @param context_id + * ID that identifies the context, usually the ECOMP Portal + * session key. + * @return JSON with result indicating the number of key-value pairs + * removed. + * @throws Exception + * on bad arguments + */ + @ApiOperation(value = "Clears all key-value pairs in the specified context.", response = SharedContextJsonResponse.class) + @RequestMapping(value = { "/clear" }, method = RequestMethod.GET, produces = "application/json") + public String clearContext(HttpServletRequest request, @RequestParam String context_id) throws Exception { + + logger.debug(EELFLoggerDelegate.debugLogger, "clearContext for " + context_id); + if (context_id == null) + throw new Exception("clearContext: Received null for contextId"); + + int count = contextService.deleteSharedContexts(context_id); + String jsonResponse = convertResponseToJSON(Integer.toString(count)); + return jsonResponse; + } + + /** + * Sets a context value for the specified context and key (RESTful service + * method). Creates the context if no context with the specified ID-key pair + * exists, overwrites the value if it exists already. + * + * @param request + * HTTP servlet request + * @param userJson + * JSON block with these tag-value pairs: + *
    + *
  • context_id: ID that identifies the context + *
  • ckey: Key for the key-value pair to store + *
  • cvalue: Value to store + *
+ * @return JSON with result indicating whether the value was added (key not + * previously known) or replaced (key previously known). + * @throws Exception + * on bad arguments + */ + @ApiOperation(value = "Sets a context value for the specified context and key. Creates the context if no context with the specified ID-key pair exists, overwrites the value if it exists already.", response = SharedContextJsonResponse.class) + @RequestMapping(value = { "/set" }, method = RequestMethod.POST, produces = "application/json") + public String setContext(HttpServletRequest request, @RequestBody String userJson) throws Exception { + + @SuppressWarnings("unchecked") + Map userData = mapper.readValue(userJson, Map.class); + // Use column names as JSON tags + final String contextId = (String) userData.get("context_id"); + final String key = (String) userData.get("ckey"); + final String value = (String) userData.get("cvalue"); + if (contextId == null || key == null) + throw new Exception("setContext: received null for contextId and/or key"); + + logger.debug(EELFLoggerDelegate.debugLogger, "setContext: ID " + contextId + ", key " + key + "->" + value); + String response = null; + SharedContext existing = contextService.getSharedContext(contextId, key); + if (existing == null) { + contextService.addSharedContext(contextId, key, value); + } else { + existing.setCvalue(value); + contextService.saveSharedContext(existing); + } + response = existing == null ? "added" : "replaced"; + String jsonResponse = convertResponseToJSON(response); + return jsonResponse; + } + + /** + * Creates a two-element JSON object tagged "response". + * + * @param responseBody + * @return JSON object as String + * @throws JsonProcessingException + */ + private String convertResponseToJSON(String responseBody) throws JsonProcessingException { + Map responseMap = new HashMap(); + responseMap.put("response", responseBody); + String response = mapper.writeValueAsString(responseMap); + return response; + } + + /** + * Converts a list of SharedContext objects to a JSON array. + * + * @param contextList + * @return JSON array as String + * @throws JsonProcessingException + */ + private String convertResponseToJSON(List contextList) throws JsonProcessingException { + String jsonArray = mapper.writeValueAsString(contextList); + return jsonArray; + } + + /** + * Creates a JSON object with the content of the shared context; null is ok. + * + * @param context + * @return tag "response" with collection of context object's fields + * @throws JsonProcessingException + */ + private String convertResponseToJSON(SharedContext context) throws JsonProcessingException { + Map responseMap = new HashMap(); + responseMap.put("response", context); + String responseBody = mapper.writeValueAsString(responseMap); + return responseBody; + } + + /** + * Handles any exception thrown by a method in this controller. + * + * @param e + * Exception + * @param response + * HttpServletResponse + * @throws IOException + */ + @ExceptionHandler(Exception.class) + protected void handleBadRequests(Exception e, HttpServletResponse response) throws IOException { + logger.error(EELFLoggerDelegate.errorLogger, "handleBadRequest caught exception", e); + response.sendError(HttpStatus.BAD_REQUEST.value(), e.getMessage()); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/TicketEventController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/TicketEventController.java new file mode 100644 index 00000000..522c7aea --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/TicketEventController.java @@ -0,0 +1,229 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.Arrays; +import java.util.Calendar; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.TicketEventService; +import org.onap.portalapp.portal.service.UserNotificationService; +import org.onap.portalapp.portal.transport.EpNotificationItem; +import org.onap.portalapp.portal.transport.EpRoleNotificationItem; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.swagger.annotations.ApiOperation; + +/** + * Receives messages from the Collaboration Bus (C-BUS) notification and event + * brokering tool. Creates notifications for ECOMP Portal users. + */ +@RestController +@RequestMapping(PortalConstants.REST_AUX_API) +@Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class TicketEventController implements BasicAuthenticationController { + + + @Autowired + private UserNotificationService userNotificationService; + + @Autowired + private TicketEventService ticketEventService; + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(TicketEventController.class); + + public boolean isAuxRESTfulCall() { + return true; + } + + private final ObjectMapper mapper = new ObjectMapper(); + + + + @ApiOperation(value = "Accepts messages from external ticketing systems and creates notifications for Portal users.", response = PortalRestResponse.class) + @RequestMapping(value = { "/ticketevent" }, method = RequestMethod.POST) + public PortalRestResponse handleRequest(HttpServletRequest request, HttpServletResponse response, + @RequestBody String ticketEventJson) throws Exception { + + logger.debug(EELFLoggerDelegate.debugLogger, "Ticket Event notification" + ticketEventJson); + PortalRestResponse portalResponse = new PortalRestResponse<>(); + try { + JsonNode ticketEventNotif = mapper.readTree(ticketEventJson); + + // Reject request if required fields are missing. + String error = validateTicketEventMessage(ticketEventNotif); + if (error != null) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + portalResponse.setMessage(error); + response.setStatus(400); + return portalResponse; + } + + EpNotificationItem epItem = new EpNotificationItem(); + epItem.setCreatedDate(new Date()); + epItem.setIsForOnlineUsers("Y"); + epItem.setIsForAllRoles("N"); + epItem.setActiveYn("Y"); + + JsonNode event = ticketEventNotif.get("event"); + JsonNode header = event.get("header"); + JsonNode body = event.get("body"); + JsonNode application = ticketEventNotif.get("application"); + epItem.setMsgDescription(body.toString()); + Long eventDate = System.currentTimeMillis(); + if (body.get("eventDate") != null) { + eventDate = body.get("eventDate").asLong(); + } + String eventSource = header.get("eventSource").asText(); + epItem.setMsgSource(eventSource); + String ticket = body.get("ticketNum").asText(); + String hyperlink = ticketEventService.getNotificationHyperLink(application, ticket, eventSource); + if(body.get("notificationHyperlink")!=null){ + hyperlink=body.get("notificationHyperlink").asText(); + } + epItem.setNotificationHyperlink(hyperlink); + epItem.setStartTime(new Date(eventDate)); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(epItem.getStartTime()); + int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); + calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth + 30); + epItem.setEndTime(calendar.getTime()); + String severityString = "1"; + if (body.get("severity") != null) { + severityString = (body.get("severity").toString()).substring(1, 2); + } + Long severity = Long.parseLong(severityString); + epItem.setPriority(severity); + epItem.setCreatorId(null); + Set roles = new HashSet<>(); + JsonNode SubscriberInfo = ticketEventNotif.get("SubscriberInfo"); + JsonNode userList = SubscriberInfo.get("UserList"); + String UserIds[] = userList.toString().replace("[", "").replace("]", "").trim().replace("\"", "") + .split(","); + String assetID = eventSource + ' ' + + userList.toString().replace("[", "").replace("]", "").trim().replace("\"", "") + ' ' + + new Date(eventDate); + if (body.get("assetID") != null) { + assetID = body.get("assetID").asText(); + } + epItem.setMsgHeader(assetID); + List users = userNotificationService.getUsersByOrgIds(Arrays.asList(UserIds)); + for (String userId : UserIds) { + EpRoleNotificationItem roleNotifItem = new EpRoleNotificationItem(); + for (EPUser user : users) { + if (user.getOrgUserId().equals(userId)) { + roleNotifItem.setRecvUserId(user.getId().intValue()); + roles.add(roleNotifItem); + break; + } + } + + } + epItem.setRoles(roles); + userNotificationService.saveNotification(epItem); + + portalResponse.setStatus(PortalRestStatusEnum.OK); + portalResponse.setMessage("processEventNotification: notification created"); + portalResponse.setResponse("NotificationId is :" + epItem.notificationId); + } catch (Exception ex) { + portalResponse.setStatus(PortalRestStatusEnum.ERROR); + response.setStatus(400); + portalResponse.setMessage(ex.toString()); + } + return portalResponse; + } + + /** + * Validates that mandatory fields are present. + * + * @param ticketEventNotif + * @return Error message if a problem is found; null if all is well. + */ + private String validateTicketEventMessage(JsonNode ticketEventNotif) { + JsonNode application = ticketEventNotif.get("application"); + JsonNode event = ticketEventNotif.get("event"); + JsonNode header = event.get("header"); + JsonNode eventSource=header.get("eventSource"); + JsonNode body = event.get("body"); + JsonNode SubscriberInfo = ticketEventNotif.get("SubscriberInfo"); + JsonNode userList = SubscriberInfo.get("UserList"); + + if (application == null||application.asText().length()==0||application.asText().equalsIgnoreCase("null")) + return "Application is mandatory"; + if (body == null) + return "body is mandatory"; + if (eventSource == null||eventSource.asText().trim().length()==0||eventSource.asText().equalsIgnoreCase("null")) + return "Message Source is mandatory"; + if (userList == null) + return "At least one user Id is mandatory"; + JsonNode eventDate=body.get("eventDate"); + + if(eventDate!=null&&eventDate.asText().length()==8) + return "EventDate is invalid"; + String UserIds[] = userList.toString().replace("[", "").replace("]", "").trim().replace("\"", "") + .split(","); + List users = userNotificationService.getUsersByOrgIds(Arrays.asList(UserIds)); + if(users==null||users.size()==0) + return "Invalid Org User ID"; + return null; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserController.java new file mode 100644 index 00000000..cbcd2639 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserController.java @@ -0,0 +1,141 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.UserService; +import org.onap.portalapp.portal.transport.ProfileDetail; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class UserController extends EPRestrictedBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserController.class); + + @Autowired + private UserService userService; + + /** + * RESTful service method to get ECOMP Logged in User details. + * + * @param request + * HttpServletRequest + * + * @return PortalRestResponse of EPUser + */ + @RequestMapping(value = { "/portalApi/loggedinUser" }, method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse getLoggedinUser(HttpServletRequest request) { + PortalRestResponse portalRestResponse = null; + try { + EPUser user = EPUserUtils.getUserSession(request); + ProfileDetail profileDetail = new ProfileDetail(user.getFirstName(), user.getLastName(), + user.getMiddleInitial(), user.getEmail(), user.getLoginId(), CipherUtil.decryptPKC(user.getLoginPwd())); + portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.OK, "success", + profileDetail); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/loggedinUser", "result =", profileDetail); + } catch (Exception e) { + portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), + null); + logger.error(EELFLoggerDelegate.errorLogger, "getLoggedinUser failed", e); + } + return portalRestResponse; + } + + /** + * RESTful service method to update ECOMP Logged in User in DB. + * + * @param request + * HttpServletRequest + * @param profileDetail + * Body with user information + * @return PortalRestResponse of String + */ + @RequestMapping(value = { + "/portalApi/modifyLoggedinUser" }, method = RequestMethod.PUT, produces = "application/json") + public PortalRestResponse modifyLoggedinUser(HttpServletRequest request, + @RequestBody ProfileDetail profileDetail) { + PortalRestResponse portalRestResponse = null; + try { + String errorMsg = ""; + if (profileDetail.getFirstName().equals("") || profileDetail.getLastName().equals("") + || profileDetail.getEmail().equals("") || profileDetail.getLoginId().equals("") + || profileDetail.getLoginPassword().equals("")) { + errorMsg = "Required field(s) is missing"; + portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.ERROR, errorMsg, null); + logger.error(EELFLoggerDelegate.errorLogger, "modifyLoggedinUser failed", errorMsg); + } else { + EPUser user = EPUserUtils.getUserSession(request); + user.setFirstName(profileDetail.getFirstName()); + user.setLastName(profileDetail.getLastName()); + user.setEmail(profileDetail.getEmail()); + user.setMiddleInitial(profileDetail.getMiddleName()); + user.setLoginId(profileDetail.getLoginId()); + user.setLoginPwd(CipherUtil.encryptPKC(profileDetail.getLoginPassword())); + userService.saveUser(user); + // Update user info in the session + request.getSession().setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), + user); + portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.OK, "success", null); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/modifyLoggedinUser", "result =", user); + } + } catch (Exception e) { + portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.ERROR, e.toString(), null); + logger.error(EELFLoggerDelegate.errorLogger, "modifyLoggedinUser failed", e); + } + return portalRestResponse; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserNotificationController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserNotificationController.java new file mode 100644 index 00000000..d25ad2c7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserNotificationController.java @@ -0,0 +1,234 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EcompAppRole; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.FunctionalMenuService; +import org.onap.portalapp.portal.service.UserNotificationService; +import org.onap.portalapp.portal.transport.EpNotificationItem; +import org.onap.portalapp.portal.transport.EpNotificationItemVO; +import org.onap.portalapp.portal.transport.EpRoleNotificationItem; +import org.onap.portalapp.portal.transport.FunctionalMenuRole; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.UserUtils; + +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class UserNotificationController extends EPRestrictedBaseController { + + @Autowired + FunctionalMenuService functionalMenuService; + + @Autowired + UserNotificationService userNotificationService; + + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserNotificationController.class); + + @RequestMapping(value = { + "/portalApi/getFunctionalMenuRole" }, method = RequestMethod.GET, produces = "application/json") + public List getMenuIdRoleId(HttpServletRequest request, HttpServletResponse response) { + // EPUser user = EPUserUtils.getUserSession(request); + List menuRoleList = null; + menuRoleList = functionalMenuService.getFunctionalMenuRole(); + return menuRoleList; + } + + @RequestMapping(value = { + "/portalApi/getNotifications" }, method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> getNotifications(HttpServletRequest request, + HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + PortalRestResponse> portalRestResponse = null; + try { + List notificationList = userNotificationService.getNotifications(user.getId()); + portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.OK, "success", + notificationList); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAllAppsAndContacts failed", e); + portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.ERROR, + e.getMessage(), null); + } + return portalRestResponse; + } + + @RequestMapping(value = { + "/portalApi/getAdminNotifications" }, method = RequestMethod.GET, produces = "application/json") + public List getAdminNotifications(HttpServletRequest request, HttpServletResponse response) { + List adminNotificationList = null; + EPUser user = EPUserUtils.getUserSession(request); + adminNotificationList = userNotificationService.getAdminNotificationVOS(user.getId()); + return adminNotificationList; + } + + @RequestMapping(value = "/portalApi/saveNotification", method = RequestMethod.POST, produces = "application/json") + public PortalRestResponse save(HttpServletRequest request, HttpServletResponse response, + @RequestBody EpNotificationItem notificationItem) { + + if (notificationItem == null || notificationItem.getMsgHeader() == null) + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", + "Notification Header cannot be null or empty"); + if (notificationItem.getEndTime().compareTo(notificationItem.getStartTime()) < 0) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", + "End Time should be greater than start time"); + } + + if ((notificationItem.getIsForAllRoles() == "N") && notificationItem.getRoleIds().isEmpty()) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", + "No Roles Ids Exist for the selected Roles"); + } + + Long creatorId = UserUtils.getUserIdAsLong(request); + notificationItem.setCreatorId(creatorId); + + // Front-end date picker does not accept a time value, so all + // values are the start of the chosen day in the local time zone. + // Move the end time value to the very end of the chosen day. + // Avoid Calendar.getDefault() which uses the server's locale. + Long endTime = notificationItem.getEndTime().getTime(); + endTime += (23 * 3600 + 59 * 60 + 59) * 1000; + notificationItem.getEndTime().setTime(endTime); + + try { + userNotificationService.saveNotification(notificationItem); + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); + } + + @RequestMapping(value = { + "/portalApi/notificationUpdateRate" }, method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> getNotificationUpdateRate(HttpServletRequest request) { + try { + String updateRate = SystemProperties.getProperty(EPCommonSystemProperties.NOTIFICATION_UPDATE_RATE); + String updateDuration = SystemProperties.getProperty(EPCommonSystemProperties.NOTIFICATION_UPDATE_DURATION); + Integer rateInMiliSec = Integer.valueOf(updateRate) * 1000; + Integer durationInMiliSec = Integer.valueOf(updateDuration) * 1000; + Map results = new HashMap(); + results.put("updateRate", String.valueOf(rateInMiliSec)); + results.put("updateDuration", String.valueOf(durationInMiliSec)); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getNotificationUpdateRate failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); + } + } + + @RequestMapping(value = { + "/portalApi/notificationRead" }, method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse> notificationRead( + @RequestParam("notificationId") String notificationID, HttpServletRequest request) { + try { + userNotificationService.setNotificationRead(Long.parseLong(notificationID), UserUtils.getUserId(request)); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "notificationRead failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); + } + } + + @RequestMapping(value = { + "/portalApi/getNotificationHistory" }, method = RequestMethod.GET, produces = "application/json") + public List getNotificationHistory(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List notificationList = null; + notificationList = userNotificationService.getNotificationHistoryVO(user.getId()); + return notificationList; + } + + @RequestMapping(value = { "/portalApi/notificationRole/{notificationId}/roles" }, method = { + RequestMethod.GET }, produces = "application/json") + public List testGetRoles(HttpServletRequest request, @PathVariable("notificationId") Long notificationId) { + List NotifRoles = userNotificationService.getNotificationRoles(notificationId); + ArrayList rolesList = new ArrayList(); + for (EpRoleNotificationItem notifRole : NotifRoles) { + rolesList.add(notifRole.roleId); + } + return rolesList; + } + + @RequestMapping(value = { "/portalApi/getNotificationAppRoles" }, method = { + RequestMethod.GET }, produces = "application/json") + public List getNotificationAppRoles(HttpServletRequest request, HttpServletResponse response) { + List epAppRoleList = null; + try { + epAppRoleList = userNotificationService.getAppRoleList(); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "Exception occurred while performing UserNofiticationController.getNotificationAppRoles. Details: ", + e); + } + return epAppRoleList; + } + + @RequestMapping(value = { + "/portalApi/getMessageRecipients" }, method = RequestMethod.GET, produces = "application/json") + public List getMessageRecipients(@RequestParam("notificationId") Long notificationID) { + // EPUser user = EPUserUtils.getUserSession(request); + List messageUserRecipients = null; + messageUserRecipients = userNotificationService.getMessageRecipients(notificationID); + return messageUserRecipients; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserRolesController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserRolesController.java new file mode 100644 index 00000000..167fa2e8 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/UserRolesController.java @@ -0,0 +1,546 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.cxf.transport.http.HTTPException; +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserAppCatalogRoles; +import org.onap.portalapp.portal.domain.EcompAuditLog; +import org.onap.portalapp.portal.domain.ExternalSystemAccess; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.aop.EPEELFLoggerAdvice; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.ApplicationsRestClientService; +import org.onap.portalapp.portal.service.SearchService; +import org.onap.portalapp.portal.service.UserRolesService; +import org.onap.portalapp.portal.transport.AppNameIdIsAdmin; +import org.onap.portalapp.portal.transport.AppWithRolesForUser; +import org.onap.portalapp.portal.transport.AppsListWithAdminRole; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.RoleInAppForUser; +import org.onap.portalapp.portal.transport.UserApplicationRoles; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.AuditLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.restful.domain.EcompRole; +import org.onap.portalsdk.core.service.AuditService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class UserRolesController extends EPRestrictedBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserRolesController.class); + + @Autowired + private SearchService searchService; + @Autowired + private AdminRolesService adminRolesService; + private @Autowired UserRolesService userRolesService; + @Autowired + private ApplicationsRestClientService applicationsRestClientService; + @Autowired + private AuditService auditService; + + private static final String FAILURE = "failure"; + + /** + * RESTful service method to fetch users in the WebPhone external service + * + * @param request + * HttpServletRequest + * @param searchString + * search string + * @param response + * HttpServletResponse + * @return array of found users as json + */ + @RequestMapping(value = { "/portalApi/queryUsers" }, method = RequestMethod.GET, produces = "application/json") + public String getPhoneBookSearchResult(HttpServletRequest request, @RequestParam("search") String searchString, + HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + String searchResult = null; + if (!adminRolesService.isSuperAdmin(user) && !adminRolesService.isAccountAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "getPhoneBookSearchResult"); + } else { + searchString = searchString.trim(); + if (searchString.length() > 2) { + searchResult = searchService.searchUsersInPhoneBook(searchString); + } else { + logger.info(EELFLoggerDelegate.errorLogger, + "getPhoneBookSearchResult - too short search string: " + searchString); + } + } + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/queryUsers", "result =", searchResult); + + return searchResult; + } + + /** + * RESTful service method to fetch applications where user is admin + * + * @param request + * HttpServletRequest + * @param orgUserId + * search string + * @param response + * HttpServletResponse + * @return for GET: array of all applications with boolean + * isAdmin=true/false for each application + */ + @RequestMapping(value = { "/portalApi/adminAppsRoles" }, method = { + RequestMethod.GET }, produces = "application/json") + public AppsListWithAdminRole getAppsWithAdminRoleStateForUser(HttpServletRequest request, + @RequestParam("user") String orgUserId, HttpServletResponse response) { + + EPUser user = EPUserUtils.getUserSession(request); + AppsListWithAdminRole result = null; + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "getAppsWithAdminRoleStateForUser"); + } else { + if (EcompPortalUtils.legitimateUserId(orgUserId)) { + result = adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId); + } else { + logger.info(EELFLoggerDelegate.errorLogger, + "getAppsWithAdminRoleStateForUser - parms error, no Organization User ID"); + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + } + } + + StringBuilder adminAppRoles = new StringBuilder(); + if(result != null){ + if ( result.appsRoles.size() >= 1) { + adminAppRoles.append("User '" + result.orgUserId + "' has admin role to the apps = {"); + for (AppNameIdIsAdmin adminAppRole : result.appsRoles) { + if (adminAppRole.isAdmin) { + adminAppRoles.append(adminAppRole.appName + ", "); + } + } + adminAppRoles.append("}."); + } else { + adminAppRoles.append("User '" + result.orgUserId + "' has no Apps with Admin Role."); + } + }else{ + logger.error(EELFLoggerDelegate.errorLogger, "putAppWithUserRoleStateForUser: getAppsWithAdminRoleStateForUser result is null"); + } + + logger.info(EELFLoggerDelegate.errorLogger, adminAppRoles.toString()); + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/adminAppsRoles", "get result =", result); + + return result; + } + + /** + * + * @param request + * HttpServletRequest + * @param newAppsListWithAdminRoles + * new apps + * @param response + * HttpServletResponse + * @return FieldsValidator + */ + @RequestMapping(value = { "/portalApi/adminAppsRoles" }, method = { + RequestMethod.PUT }, produces = "application/json") + public FieldsValidator putAppsWithAdminRoleStateForUser(HttpServletRequest request, + @RequestBody AppsListWithAdminRole newAppsListWithAdminRoles, HttpServletResponse response) { + + // newAppsListWithAdminRoles.appsRoles + FieldsValidator fieldsValidator = new FieldsValidator(); + StringBuilder newAppRoles = new StringBuilder(); + if(newAppsListWithAdminRoles != null ){ + if (newAppsListWithAdminRoles.appsRoles.size() >= 1) { + newAppRoles.append("User '" + newAppsListWithAdminRoles.orgUserId + "' has admin role to the apps = { "); + for (AppNameIdIsAdmin adminAppRole : newAppsListWithAdminRoles.appsRoles) { + if (adminAppRole.isAdmin) { + newAppRoles.append(adminAppRole.appName + " ,"); + } + } + newAppRoles.deleteCharAt(newAppRoles.length() - 1); + newAppRoles.append("}."); + } else { + newAppRoles.append("User '" + newAppsListWithAdminRoles.orgUserId + "' has no Apps with Admin Role."); + } + }else{ + logger.error(EELFLoggerDelegate.errorLogger, "putAppWithUserRoleStateForUser: putAppsWithAdminRoleStateForUser result is null"); + } + + logger.info(EELFLoggerDelegate.errorLogger, newAppRoles.toString()); + + EPUser user = EPUserUtils.getUserSession(request); + boolean changesApplied = false; + + if (!adminRolesService.isSuperAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "putAppsWithAdminRoleStateForUser"); + } else { + changesApplied = adminRolesService.setAppsWithAdminRoleStateForUser(newAppsListWithAdminRoles); + AuditLog auditLog = new AuditLog(); + auditLog.setUserId(user.getId()); + auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN); + auditLog.setAffectedRecordId(newAppsListWithAdminRoles.orgUserId); + auditLog.setComments(EcompPortalUtils.truncateString(newAppRoles.toString(), PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + auditService.logActivity(auditLog, null); + + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("UserRolesController.putAppsWithAdminRoleStateForUser", + EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN, user.getOrgUserId(), + newAppsListWithAdminRoles.orgUserId, newAppRoles.toString())); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + } + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/adminAppsRoles", "put result =", changesApplied); + + return fieldsValidator; + } + + /** + * It returns a list of user app roles for single app + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @param orgUserId + * user ID + * @param appid + * application ID + * @param extRequestValue + * set to false if request is from users page otherwise true + * @return List + */ + @RequestMapping(value = { "/portalApi/userAppRoles" }, method = { + RequestMethod.GET }, produces = "application/json") + public List getAppRolesForUser(HttpServletRequest request, @RequestParam("user") String orgUserId, + @RequestParam("app") Long appid, @RequestParam("externalRequest") Boolean extRequestValue, + HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List result = null; + String feErrorString = ""; + if (!adminRolesService.isAccountAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "getAppRolesForUser"); + feErrorString = EcompPortalUtils.getFEErrorString(true, response.getStatus()); + } else { + if (EcompPortalUtils.legitimateUserId(orgUserId)) { + result = userRolesService.getAppRolesForUser(appid, orgUserId, extRequestValue); + int responseCode = EcompPortalUtils.getExternalAppResponseCode(); + if (responseCode != 0 && responseCode != 200) { + // external error + response.setStatus(responseCode); + feErrorString = EcompPortalUtils.getFEErrorString(false, responseCode); + } else if (result == null) { + // If the result is null, there was an internal ecomp error + // in the service call. + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + feErrorString = EcompPortalUtils.getFEErrorString(true, + HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + } else { + logger.info(EELFLoggerDelegate.errorLogger, "getAppRolesForUser - no Organization User ID"); + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + feErrorString = EcompPortalUtils.getFEErrorString(true, HttpServletResponse.SC_BAD_REQUEST); + } + } + + StringBuilder sbUserApps = new StringBuilder(); + if (result != null && result.size() >= 1) { + sbUserApps.append("User '" + orgUserId + "' has Roles={"); + for (RoleInAppForUser appRole : result) { + if (appRole.isApplied) { + sbUserApps.append(appRole.roleName + ", "); + } + } + sbUserApps.append("} assigned to the appId '" + appid + "'."); + } else { + // Not sure creating an empty object will make any difference + // but would like to give it a shot for defect #DE221057 + if (result == null) { + result = new ArrayList(); + } + sbUserApps.append("User '" + orgUserId + "' and appid " + appid + " has no roles"); + } + logger.info(EELFLoggerDelegate.errorLogger, sbUserApps.toString()); + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppRoles", "get result =", result); + if (feErrorString != "") { + logger.debug(EELFLoggerDelegate.debugLogger, "LR: FEErrorString to header: " + feErrorString); + + response.addHeader("FEErrorString", feErrorString); + response.addHeader("Access-Control-Expose-Headers", "FEErrorString"); + } + return result; + } + + @RequestMapping(value = { "/portalApi/userAppRoles" }, method = { + RequestMethod.PUT }, produces = "application/json") + public FieldsValidator putAppWithUserRoleStateForUser(HttpServletRequest request, + @RequestBody AppWithRolesForUser newAppRolesForUser, HttpServletResponse response) { + FieldsValidator fieldsValidator = new FieldsValidator(); + StringBuilder sbUserApps = new StringBuilder(); + if (newAppRolesForUser != null) { + sbUserApps.append("User '" + newAppRolesForUser.orgUserId); + if (newAppRolesForUser.appRoles != null && newAppRolesForUser.appRoles.size() >= 1) { + sbUserApps.append("' has roles = { "); + for (RoleInAppForUser appRole : newAppRolesForUser.appRoles) { + if (appRole.isApplied) { + sbUserApps.append(appRole.roleName + " ,"); + } + } + sbUserApps.deleteCharAt(sbUserApps.length() - 1); + sbUserApps.append("} assigned for the app " + newAppRolesForUser.appId); + } else { + sbUserApps.append("' has no roles assigned for app " + newAppRolesForUser.appId); + } + } + logger.info(EELFLoggerDelegate.applicationLogger, "putAppWithUserRoleStateForUser: {}", sbUserApps.toString()); + + EPUser user = EPUserUtils.getUserSession(request); + boolean changesApplied = false; + if (!adminRolesService.isAccountAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, "putAppWithUserRoleStateForUser"); + } else if(newAppRolesForUser==null){ + logger.error(EELFLoggerDelegate.errorLogger, "putAppWithUserRoleStateForUser: newAppRolesForUser is null"); + } else{ + changesApplied = userRolesService.setAppWithUserRoleStateForUser(user, newAppRolesForUser); + if (changesApplied) { + logger.info(EELFLoggerDelegate.applicationLogger, + "putAppWithUserRoleStateForUser: succeeded for app {}, user {}", newAppRolesForUser.appId, + newAppRolesForUser.orgUserId); + + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + AuditLog auditLog = new AuditLog(); + auditLog.setUserId(user.getId()); + auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_UPDATE_USER); + auditLog.setAffectedRecordId(newAppRolesForUser.orgUserId); + auditLog.setComments(EcompPortalUtils.truncateString(sbUserApps.toString(), PortalConstants.AUDIT_LOG_COMMENT_SIZE)); + auditService.logActivity(auditLog, null); + + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatAuditLogMessage("UserRolesController.putAppWithUserRoleStateForUser", + EcompAuditLog.CD_ACTIVITY_UPDATE_USER, user.getOrgUserId(), + newAppRolesForUser.orgUserId, sbUserApps.toString())); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "putAppWithUserRoleStateForUser: failed for app {}, user {}", newAppRolesForUser.appId, + newAppRolesForUser.orgUserId); + } + } + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppRoles", "put result =", changesApplied); + return fieldsValidator; + } + + @RequestMapping(value = { "/portalApi/updateRemoteUserProfile" }, method = { + RequestMethod.GET }, produces = "application/json") + public PortalRestResponse updateRemoteUserProfile(HttpServletRequest request, + HttpServletResponse response) { + + String updateRemoteUserFlag = FAILURE; + try { + // saveNewUser = userService.saveNewUser(newUser); + String orgUserId = request.getParameter("loginId"); + Long appId = Long.parseLong(request.getParameter("appId")); + userRolesService.updateRemoteUserProfile(orgUserId, appId); + + } catch (Exception e) { + return new PortalRestResponse(PortalRestStatusEnum.OK, updateRemoteUserFlag, e.getMessage()); + } + return new PortalRestResponse(PortalRestStatusEnum.ERROR, updateRemoteUserFlag, ""); + + } + + @RequestMapping(value = { "/portalApi/app/{appId}/users" }, method = { + RequestMethod.GET }, produces = "application/json") + public List getUsersFromAppEndpoint(HttpServletRequest request, + @PathVariable("appId") Long appId) throws HTTPException { + try { + logger.debug(EELFLoggerDelegate.debugLogger, "/portalApi/app/{}/users was invoked", appId); + List appUsers = userRolesService.getUsersFromAppEndpoint(appId); + return appUsers; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUsersFromAppEndpoint failed", e); + return new ArrayList(); + } + } + + @RequestMapping(value = { "/portalApi/app/{appId}/roles" }, method = { + RequestMethod.GET }, produces = "application/json") + public List testGetRoles(HttpServletRequest request, @PathVariable("appId") Long appId) + throws HTTPException { + EcompRole[] appRoles = applicationsRestClientService.get(EcompRole[].class, appId, "/roles"); + List rolesList = Arrays.asList(appRoles); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/app/{appId}/roles", "response for appId=" + appId, + rolesList); + + return rolesList; + } + + @RequestMapping(value = { "/portalApi/admin/import/app/{appId}/roles" }, method = { + RequestMethod.GET }, produces = "application/json") + public List importRolesFromRemoteApplication(HttpServletRequest request, @PathVariable("appId") Long appId) + throws HTTPException { + List rolesList = userRolesService.importRolesFromRemoteApplication(appId); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/admin/import/app/{appId}/roles", + "response for appId=" + appId, rolesList); + + return rolesList; + } + + @RequestMapping(value = { "/portalApi/app/{appId}/user/{orgUserId}/roles" }, method = { + RequestMethod.GET }, produces = "application/json") + public EcompRole testGetRoles(HttpServletRequest request, @PathVariable("appId") Long appId, + @PathVariable("orgUserId") String orgUserId) throws Exception { + if (!EcompPortalUtils.legitimateUserId(orgUserId)) { + String msg = "Error /user//roles not legitimate orgUserId = " + orgUserId; + logger.error(EELFLoggerDelegate.errorLogger, msg); + throw new Exception(msg); + } + EcompRole[] roles = applicationsRestClientService.get(EcompRole[].class, appId, + String.format("/user/%s/roles", orgUserId)); + if (roles.length != 1) { + String msg = "Error /user//roles returned array. expected size 1 recieved size = " + roles.length; + logger.error(EELFLoggerDelegate.errorLogger, msg); + throw new Exception(msg); + } + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/app/{appId}/user/{orgUserId}/roles", + "response for appId='" + appId + "' and orgUserId='" + orgUserId + "'", roles[0]); + return roles[0]; + } + + @RequestMapping(value = { "/portalApi/saveUserAppRoles" }, method = { + RequestMethod.PUT }, produces = "application/json") + public FieldsValidator putAppWithUserRoleRequest(HttpServletRequest request, + @RequestBody AppWithRolesForUser newAppRolesForUser, HttpServletResponse response) { + FieldsValidator fieldsValidator = null; + try { + + EPUser user = EPUserUtils.getUserSession(request); + fieldsValidator = userRolesService.putUserAppRolesRequest(newAppRolesForUser, user); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "putAppWithUserRoleRequest failed", e); + + } + // return fieldsValidator; + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/saveUserAppRoles", "PUT result =", + response.getStatus()); + return fieldsValidator; + } + + @RequestMapping(value = { "/portalApi/appCatalogRoles" }, method = { + RequestMethod.GET }, produces = "application/json") + public List getUserAppCatalogRoles(HttpServletRequest request, + @RequestParam("appName") String appName) { + EPUser user = EPUserUtils.getUserSession(request); + List userAppRoleList = null; + try { + userAppRoleList = userRolesService.getUserAppCatalogRoles(user, appName); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "putUserWidgetsSortPref failed", e); + + } + Collections.sort(userAppRoleList, getUserAppCatalogRolesComparator); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userApplicationRoles", "result =", userAppRoleList); + + return userAppRoleList; + + } + + private Comparator getUserAppCatalogRolesComparator = new Comparator() { + public int compare(EPUserAppCatalogRoles o1, EPUserAppCatalogRoles o2) { + return o1.getRolename().compareTo(o2.getRolename()); + } + }; + + @RequestMapping(value = "/portalApi/externalRequestAccessSystem", method = RequestMethod.GET, produces = "application/json") + public ExternalSystemAccess readExternalRequestAccess(HttpServletRequest request) { + ExternalSystemAccess result = null; + try { + result = userRolesService.getExternalRequestAccess(); + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/externalRequestAccessSystem", "GET result =", + result); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "readExternalRequestAccess failed: " + e.getMessage()); + } + return result; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WebAnalyticsExtAppController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WebAnalyticsExtAppController.java new file mode 100644 index 00000000..35e26c04 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WebAnalyticsExtAppController.java @@ -0,0 +1,257 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.io.IOUtils; +import org.onap.portalapp.controller.EPRestrictedRESTfulBaseController; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EcompAuditLog; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.aop.EPEELFLoggerAdvice; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.service.AppsCacheService; +import org.onap.portalapp.portal.service.ConsulHealthService; +import org.onap.portalapp.portal.transport.Analytics; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.crossapi.PortalAPIResponse; +import org.onap.portalsdk.core.service.AuditService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.util.concurrent.FailureCallback; +import org.springframework.util.concurrent.ListenableFuture; +import org.springframework.util.concurrent.SuccessCallback; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.AsyncRestTemplate; + +import io.swagger.annotations.ApiOperation; + +@RestController +@RequestMapping(PortalConstants.REST_AUX_API) +@Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class WebAnalyticsExtAppController extends EPRestrictedRESTfulBaseController { + + @Autowired + private ConsulHealthService consulHealthService; + + private static final String MACHINE_LEARNING_SERVICE_CTX = "/ml_api"; + private static final String REGISTER_ACTION = MACHINE_LEARNING_SERVICE_CTX + "/" + "registerAction"; + private static final String CONSUL_ML_SERVICE_ID = "machine-learning"; + private static final String APP_KEY = "uebkey"; + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WebAnalyticsExtAppController.class); + private AsyncRestTemplate restTemplate = new AsyncRestTemplate(); + + + @Autowired + AuditService auditService; + + @Autowired + AppsCacheService appCacheService; + + SuccessCallback> successCallback = new SuccessCallback>() { + @Override + public void onSuccess(ResponseEntity arg) { + logger.info(EELFLoggerDelegate.debugLogger, arg.getBody()); + } + }; + + FailureCallback failureCallback = new FailureCallback() { + @Override + public void onFailure(Throwable arg) { + logger.error(EELFLoggerDelegate.errorLogger, "storeAuxAnalytics failed", arg); + } + }; + + protected boolean isAuxRESTfulCall() { + return true; + } + + /** + * Answers requests from partner applications for a file that is expected to + * contain javascript to support web analytics. + * + * @param request + * HttpServletRequest + * @return String + * @throws Exception + * on failure + */ + @ApiOperation(value = "Gets javascript with functions that support gathering and reporting web analytics.", response = String.class) + @RequestMapping(value = { "/analytics" }, method = RequestMethod.GET, produces = "application/javascript") + public String getAnalyticsScript(HttpServletRequest request) throws Exception { + String responseText = ""; + final String fileName = "analytics.txt"; + InputStream analyticsFileStream = null; + try { + analyticsFileStream = this.getClass().getClassLoader().getResourceAsStream(fileName); + responseText = IOUtils.toString(analyticsFileStream, StandardCharsets.UTF_8.name()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "Error reading contents of the file " + fileName, e); + } finally { + if (analyticsFileStream != null) + analyticsFileStream.close(); + } + + String feURLContext = SystemProperties.getProperty("frontend_url"); + String feURL = feURLContext.substring(0, feURLContext.lastIndexOf('/')); + + responseText = responseText.replace("PORTAL_ENV_URL", feURL); + return responseText; + } + + /** + * Accepts data from partner applications with web analytics data. + * + * @param request + * HttpServletRequest + * @param analyticsMap + * Analytics + * @return PortalAPIResponse + * @throws Exception + * on failure + */ + @RequestMapping(value = { "/storeAnalytics" }, method = RequestMethod.POST, produces = "application/json") + @ResponseBody + @ApiOperation(value = "Accepts data from partner applications with web analytics data.", response = PortalAPIResponse.class) + public PortalAPIResponse storeAnalyticsScript(HttpServletRequest request, @RequestBody Analytics analyticsMap) + throws Exception { + try { + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + String appName = ""; + try { + appName = getAppName(request, appName); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + " Error retrieving Application to capture app name for analytics; Proceeding with empty app name"); + } + + try { + storeAuxAnalytics(analyticsMap, appName); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + " Error retrieving Application to capture app name for analytics; Proceeding with empty app name"); + } + + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); + + EcompPortalUtils.calculateDateTimeDifferenceForLog( + MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + logger.info(EELFLoggerDelegate.auditLogger, + EPLogUtil.formatStoreAnalyticsAuditLogMessage(analyticsMap.getUserid(), appName, + "WebAnalyticsExtAppController.postWebAnalyticsData", + EcompAuditLog.CD_ACTIVITY_STORE_ANALYTICS, analyticsMap.getAction(), analyticsMap.getPage(), + analyticsMap.getFunction(), analyticsMap.getType())); + + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(SystemProperties.MDC_TIMER); + + PortalAPIResponse response = new PortalAPIResponse(true, "success"); + return response; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "storeAnalytics failed", e); + PortalAPIResponse response = new PortalAPIResponse(true, "error"); + return response; + } + } + + protected String getAppName(HttpServletRequest request, String appName) { + String appKeyValue = request.getHeader(APP_KEY); + if (appKeyValue == null || appKeyValue.equals("")) { + logger.error(EELFLoggerDelegate.errorLogger, " App Key unavailable; Proceeding with null app name"); + } else { + EPApp appRecord = appCacheService.getAppForAnalytics(appKeyValue); + if (appRecord == null) { + logger.error(EELFLoggerDelegate.errorLogger, " App could not be found for the key " + appKeyValue); + } else + appName = appRecord.getName(); + + } + return appName; + } + + protected void storeAuxAnalytics(Analytics analyticsMap, String appName) { + logger.info(EELFLoggerDelegate.debugLogger, + " Registering an action for recommendation: AppName/Function/UserId " + appName + "/" + + analyticsMap.getFunction() + "/" + analyticsMap.getUserid()); + + Map requestMapping = new HashMap(); + requestMapping.put("id", analyticsMap.getUserid()); + requestMapping.put("action", appName + "|" + analyticsMap.getFunction()); + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + + // set your entity to send + HttpEntity> entity = new HttpEntity>(requestMapping, headers); + + // send it! + ListenableFuture> out = restTemplate.exchange( + EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(CONSUL_ML_SERVICE_ID, + SystemProperties.getProperty("microservices.m-learn.local.port")) + + REGISTER_ACTION, + HttpMethod.POST, entity, String.class); + out.addCallback(successCallback, failureCallback); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogController.java new file mode 100644 index 00000000..15e19829 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogController.java @@ -0,0 +1,417 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.MicroserviceParameter; +import org.onap.portalapp.portal.domain.WidgetCatalog; +import org.onap.portalapp.portal.domain.WidgetCatalogParameter; +import org.onap.portalapp.portal.domain.WidgetParameterResult; +import org.onap.portalapp.portal.domain.WidgetServiceHeaders; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.ConsulHealthService; +import org.onap.portalapp.portal.service.MicroserviceService; +import org.onap.portalapp.portal.service.WidgetParameterService; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.core.io.FileSystemResource; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.multipart.commons.CommonsMultipartResolver; + +@SuppressWarnings("unchecked") +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class WidgetsCatalogController extends EPRestrictedBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetsCatalogController.class); + + private static final String MS_WIDGET_LOCAL_PORT = "microservices.widget.local.port"; + + private RestTemplate template = new RestTemplate(); + + private String whatService = "widgets-service"; + + @Autowired + private ConsulHealthService consulHealthService; + + @Autowired + private MicroserviceService microserviceService; + + @Autowired + private WidgetParameterService widgetParameterService; + + @Bean + public CommonsMultipartResolver multipartResolver() { + return new CommonsMultipartResolver(); + } + + static { + // for localhost testing only + javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(new javax.net.ssl.HostnameVerifier() { + public boolean verify(String hostname, javax.net.ssl.SSLSession sslSession) { + if ("localhost".equals(hostname)) + return true; + return false; + } + }); + } + + @RequestMapping(value = { "/portalApi/microservices/widgetCatalog/{loginName}" }, method = RequestMethod.GET) + public List getUserWidgetCatalog(@PathVariable("loginName") String loginName) { + List widgets = new ArrayList<>(); + try { + ResponseEntity ans = template.exchange( + EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) + + "/widget/microservices/widgetCatalog/" + loginName, + HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), List.class); + widgets = ans.getBody(); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUserWidgetCatalog failed", e); + // returning null because null help check on the UI if there was a + // communication problem with Microservice. + return null; + } + return widgets; + } + + @RequestMapping(value = { "/portalApi/microservices/widgetCatalog" }, method = RequestMethod.GET) + public List getWidgetCatalog() { + List widgets = new ArrayList<>(); + try { + ResponseEntity ans = template.exchange( + EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) + + "/widget/microservices/widgetCatalog", + HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), List.class); + widgets = ans.getBody(); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getWidgetCatalog failed", e); + // returning null because null help check on the UI if there was a + // communication problem with Microservice. + return null; + } + return widgets; + } + + @RequestMapping(value = { + "/portalApi/microservices/widgetCatalog/{widgetId}" }, method = RequestMethod.PUT, produces = "application/json") + public void updateWidgetCatalog(@RequestBody WidgetCatalog newWidgetCatalog, @PathVariable("widgetId") long widgetId) throws Exception { + template.exchange( + EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) + + "/widget/microservices/widgetCatalog/" + widgetId, + HttpMethod.PUT, new HttpEntity<>(newWidgetCatalog, WidgetServiceHeaders.getInstance()), String.class); + } + + @RequestMapping(value = { "/portalApi/microservices/widgetCatalog/{widgetId}" }, method = RequestMethod.DELETE) + public void deleteOnboardingWidget(@PathVariable("widgetId") long widgetId) throws Exception { + template.exchange( + EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) + + "/widget/microservices/widgetCatalog/" + widgetId, + HttpMethod.DELETE, new HttpEntity<>(WidgetServiceHeaders.getInstance()), String.class); + } + + @RequestMapping(value = { "/portalApi/microservices/widgetCatalog/{widgetId}" }, method = RequestMethod.POST) + public String updateWidgetCatalogWithFiles(HttpServletRequest request, + @PathVariable("widgetId") long widgetId) throws RestClientException, Exception { + MultipartHttpServletRequest mRequest; + MultiValueMap multipartRequest = new LinkedMultiValueMap<>(); + String fileName; + String tmpFolderName = "/tmp/"; + String respond = null; + FileOutputStream fo = null; + try { + mRequest = (MultipartHttpServletRequest) request; + MultipartFile mFile = mRequest.getFile("file"); + fileName = mFile.getOriginalFilename(); + fo = new FileOutputStream(tmpFolderName + fileName); + fo.write(mFile.getBytes()); + // silence sonar scan by calling close here + fo.close(); + fo = null; + + HttpHeaders header = new HttpHeaders(); + header.setContentType(MediaType.MULTIPART_FORM_DATA); + multipartRequest.add("file", new FileSystemResource(tmpFolderName + fileName)); + multipartRequest.add("widget", request.getParameter("newWidget")); + respond = template.postForObject( + EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) + + "/widget/microservices/widgetCatalog/" + widgetId, + new HttpEntity<>(multipartRequest, WidgetServiceHeaders.getInstance()), String.class); + File f = new File(tmpFolderName + fileName); + f.delete(); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "updateWidgetCatalogWithFiles failed", e); + } finally { + try { + if (fo != null) + fo.close(); + } catch (IOException e) { + logger.error(EELFLoggerDelegate.errorLogger, "updateWidgetCatalogWithFiles failed 2", e); + } + } + return respond; + } + + @RequestMapping(value = { "/portalApi/microservices/widgetCatalog" }, method = RequestMethod.POST) + public String createWidgetCatalog(HttpServletRequest request) + throws Exception { + MultipartHttpServletRequest mRequest; + MultiValueMap multipartRequest = new LinkedMultiValueMap<>(); + String fileName; + String tmpFolderName = "/tmp/"; + String respond = null; + FileOutputStream fo = null; + try { + mRequest = (MultipartHttpServletRequest) request; + MultipartFile mFile = mRequest.getFile("file"); + fileName = mFile.getOriginalFilename(); + fo = new FileOutputStream(tmpFolderName + fileName); + fo.write(mFile.getBytes()); + // silence sonar scan by calling close here + fo.close(); + fo = null; + + HttpHeaders header = new HttpHeaders(); + header.setContentType(MediaType.MULTIPART_FORM_DATA); + multipartRequest.add("file", new FileSystemResource(tmpFolderName + fileName)); + multipartRequest.add("widget", request.getParameter("newWidget")); + + respond = template.postForObject( + EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) + + "/widget/microservices/widgetCatalog", + new HttpEntity<>(multipartRequest, WidgetServiceHeaders.getInstance()), String.class); + File f = new File(tmpFolderName + fileName); + f.delete(); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "createWidgetCatalog failed", e); + } finally { + try { + if (fo != null) + fo.close(); + } catch (IOException e) { + logger.error(EELFLoggerDelegate.errorLogger, "createWidgetCatalog failed 2", e); + } + } + return respond; + } + + @RequestMapping(value = "/portalApi/microservices/{widgetId}/framework.js", method = RequestMethod.GET) + public String getWidgetFramework(@PathVariable("widgetId") long widgetId) throws Exception { + return template.getForObject(EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) + + "/widget/microservices/" + widgetId + "/framework.js", String.class, + WidgetServiceHeaders.getInstance()); + } + + @RequestMapping(value = "/portalApi/microservices/{widgetId}/controller.js", method = RequestMethod.GET) + public String getWidgetController(@PathVariable("widgetId") long widgetId) throws Exception { + return template.getForObject(EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) + + "/widget/microservices/" + widgetId + "/controller.js", String.class, + WidgetServiceHeaders.getInstance()); + } + + @RequestMapping(value = "/portalApi/microservices/{widgetId}/style.css", method = RequestMethod.GET) + public String getWidgetCSS(@PathVariable("widgetId") long widgetId) throws Exception { + return template.getForObject(EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) + + "/widget/microservices/" + widgetId + "/styles.css", String.class, + WidgetServiceHeaders.getInstance()); + } + + @RequestMapping(value = { "/portalApi/microservices/parameters/{widgetId}" }, method = RequestMethod.GET) + public PortalRestResponse> getWidgetParameterResult(HttpServletRequest request, + @PathVariable("widgetId") long widgetId) throws Exception { + EPUser user = EPUserUtils.getUserSession(request); + + List list = new ArrayList<>(); + Long serviceId = template.exchange( + EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) + + "/widget/microservices/widgetCatalog/parameters/" + widgetId, + HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), Long.class).getBody(); + if (serviceId == null) { + // return ok/sucess and no service parameter for this widget + return new PortalRestResponse>(PortalRestStatusEnum.WARN, + "No service parameters for this widget", list); + } else { + List defaultParam = microserviceService.getParametersById(serviceId); + for (MicroserviceParameter param : defaultParam) { + WidgetParameterResult userResult = new WidgetParameterResult(); + userResult.setParam_id(param.getId()); + userResult.setDefault_value(param.getPara_value()); + userResult.setParam_key(param.getPara_key()); + WidgetCatalogParameter userValue = widgetParameterService.getUserParamById(widgetId, user.getId(), + param.getId()); + if (userValue == null) + userResult.setUser_value(param.getPara_value()); + else { + userResult.setUser_value(userValue.getUser_value()); + } + list.add(userResult); + } + } + return new PortalRestResponse>(PortalRestStatusEnum.OK, "SUCCESS", list); + } + + @RequestMapping(value = { "/portalApi/microservices/services/{paramId}" }, method = RequestMethod.GET) + public List getUserParameterById( @PathVariable("paramId") long paramId) { + List list = widgetParameterService.getUserParameterById(paramId); + return list; + } + + @RequestMapping(value = { "/portalApi/microservices/services/{paramId}" }, method = RequestMethod.DELETE) + public void deleteUserParameterById(@PathVariable("paramId") long paramId) { + widgetParameterService.deleteUserParameterById(paramId); + } + + @RequestMapping(value = { "/portalApi/microservices/download/{widgetId}" }, method = RequestMethod.GET) + public void doDownload(HttpServletRequest request, HttpServletResponse response, + @PathVariable("widgetId") long widgetId) throws Exception { + + ServletContext context = request.getServletContext(); + byte[] byteFile = template + .exchange( + EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) + + "/widget/microservices/download/" + widgetId, + HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), byte[].class) + .getBody(); + + File downloadFile = File.createTempFile("temp", ".zip"); + FileOutputStream stream = new FileOutputStream(downloadFile.getPath()); + stream.write(byteFile); + stream.close(); + + FileInputStream inputStream = new FileInputStream(downloadFile); + String mimeType = context.getMimeType(downloadFile.getPath()); + if (mimeType == null) { + mimeType = "application/octet-stream"; + } + + response.setContentType(mimeType); + response.setContentLength((int) downloadFile.length()); + String headerKey = "Content-Disposition"; + String headerValue = String.format("attachment; filename=\"%s\"", downloadFile.getName()); + downloadFile.delete(); + response.setHeader(headerKey, headerValue); + + OutputStream outStream = response.getOutputStream(); + byte[] buffer = new byte[32 * 1024]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + outStream.write(buffer, 0, bytesRead); + } + + inputStream.close(); + outStream.close(); + } + + @RequestMapping(value = { "/portalApi/microservices/parameters" }, method = RequestMethod.POST) + public PortalRestResponse saveWidgetParameter(HttpServletRequest request, + @RequestBody WidgetCatalogParameter widgetParameters) { + EPUser user = EPUserUtils.getUserSession(request); + widgetParameters.setUserId(user.getId()); + try { + WidgetCatalogParameter oldParam = widgetParameterService.getUserParamById(widgetParameters.getWidgetId(), + widgetParameters.getUserId(), widgetParameters.getParamId()); + if (oldParam != null) { + widgetParameters.setId(oldParam.getId()); + } + widgetParameterService.saveUserParameter(widgetParameters); + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveWidgetParameter failed", e); + return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); + } + return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogMarkupController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogMarkupController.java new file mode 100644 index 00000000..f7210881 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogMarkupController.java @@ -0,0 +1,103 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.controller.EPUnRestrictedBaseController; +import org.onap.portalapp.portal.domain.WidgetServiceHeaders; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.ConsulHealthService; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.multipart.commons.CommonsMultipartResolver; + +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class WidgetsCatalogMarkupController extends EPUnRestrictedBaseController { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetsCatalogMarkupController.class); + private RestTemplate template = new RestTemplate(); + private final String whatService = "widgets-service"; + + @Autowired + private ConsulHealthService consulHealthService; + + @Bean + public CommonsMultipartResolver multipartResolver() { + return new CommonsMultipartResolver(); + } + + static { + // for localhost testing only + javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(new javax.net.ssl.HostnameVerifier() { + + public boolean verify(String hostname, javax.net.ssl.SSLSession sslSession) { + if (hostname.equals("localhost")) { + return true; + } + return false; + } + }); + } + + @RequestMapping(value = "/portalApi/microservices/markup/{widgetId}", method = RequestMethod.GET) + public String getWidgetMarkup(HttpServletRequest request, HttpServletResponse response, + @PathVariable("widgetId") long widgetId) throws RestClientException, Exception { + return template + .getForObject( + EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty("microservices.widget.local.port")) + + "/widget/microservices/markup/" + widgetId, + String.class, WidgetServiceHeaders.getInstance()); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsController.java new file mode 100644 index 00000000..fec16b0c --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsController.java @@ -0,0 +1,186 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.IOException; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.cxf.common.util.StringUtils; +import org.onap.portalapp.controller.EPRestrictedBaseController; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.PersUserWidgetService; +import org.onap.portalapp.portal.service.WidgetService; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.OnboardingWidget; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class WidgetsController extends EPRestrictedBaseController { + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetsController.class); + + @Autowired + private AdminRolesService adminRolesService; + @Autowired + private WidgetService widgetService; + @Autowired + private PersUserWidgetService persUserWidgetService; + + @RequestMapping(value = { "/portalApi/widgets" }, method = RequestMethod.GET, produces = "application/json") + public List getOnboardingWidgets(HttpServletRequest request, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + List onboardingWidgets = null; + + if (user == null || user.isGuest()) { + EcompPortalUtils.setBadPermissions(user, response, "getOnboardingWidgets"); + } else { + String getType = request.getHeader("X-Widgets-Type"); + if (!StringUtils.isEmpty(getType) && (getType.equals("managed") || getType.equals("all"))) { + onboardingWidgets = widgetService.getOnboardingWidgets(user, getType.equals("managed")); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "WidgetsController.getOnboardingApps - request must contain header 'X-Widgets-Type' with 'all' or 'managed'"); + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + } + } + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/widgets", "GET result =", response.getStatus()); + return onboardingWidgets; + } + + private boolean userHasPermissions(EPUser user, HttpServletResponse response, String invocator) { + if (!adminRolesService.isSuperAdmin(user) && !adminRolesService.isAccountAdmin(user)) { + EcompPortalUtils.setBadPermissions(user, response, invocator); + return false; + } + return true; + } + + // Attention: real json has all OnboardingWidget fields except "id", we use OnboardingWidget for not to create new class for parsing + @RequestMapping(value = { "/portalApi/widgets/{widgetId}" }, method = { RequestMethod.PUT }, produces = "application/json") + public FieldsValidator putOnboardingWidget(HttpServletRequest request, @PathVariable("widgetId") Long widgetId, + @RequestBody OnboardingWidget onboardingWidget, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + FieldsValidator fieldsValidator = null; + if (userHasPermissions(user, response, "putOnboardingWidget")) { + onboardingWidget.id = widgetId; // ! + onboardingWidget.normalize(); + fieldsValidator = widgetService.setOnboardingWidget(user, onboardingWidget); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + } + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/widgets/" + widgetId, "GET result =", response.getStatus()); + + return fieldsValidator; + } + + // Attention: real json has all OnboardingWidget fields except "id", we use OnboardingWidget for not to create new class for parsing + @RequestMapping(value = { "/portalApi/widgets" }, method = { RequestMethod.POST }, produces = "application/json") + public FieldsValidator postOnboardingWidget(HttpServletRequest request, @RequestBody OnboardingWidget onboardingWidget, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + FieldsValidator fieldsValidator = null; ; + + if (userHasPermissions(user, response, "postOnboardingWidget")) { + onboardingWidget.id = null; // ! + onboardingWidget.normalize(); + fieldsValidator = widgetService.setOnboardingWidget(user, onboardingWidget); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + } + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/widgets", "POST result =", response.getStatus()); + return fieldsValidator; + } + + @RequestMapping(value = { "/portalApi/widgets/{widgetId}" }, method = { RequestMethod.DELETE }, produces = "application/json") + public FieldsValidator deleteOnboardingWidget(HttpServletRequest request, @PathVariable("widgetId") Long widgetId, HttpServletResponse response) { + EPUser user = EPUserUtils.getUserSession(request); + FieldsValidator fieldsValidator = null; ; + + if (userHasPermissions(user, response, "deleteOnboardingWidget")) { + fieldsValidator = widgetService.deleteOnboardingWidget(user, widgetId); + response.setStatus(fieldsValidator.httpStatusCode.intValue()); + } + + EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/widgets/" + widgetId, "DELETE result =", response.getStatus()); + return fieldsValidator; + } + + /** + * service to accept a user's action made on the application + * catalog. + * + * @param request + * @param selectRequest + * JSON with data including application ID + * @param response + * @return FieldsValidator + * @throws IOException + */ + @RequestMapping(value = { "portalApi/widgetCatalogSelection" }, method = RequestMethod.PUT, produces = "application/json") + public FieldsValidator putWidgetCatalogSelection(HttpServletRequest request, + @RequestBody org.onap.portalapp.portal.transport.WidgetCatalogPersonalization persRequest, HttpServletResponse response) throws IOException { + FieldsValidator result = new FieldsValidator(); + EPUser user = EPUserUtils.getUserSession(request); + try { + if (persRequest.getWidgetId() == null || user == null) { + EcompPortalUtils.setBadPermissions(user, response, "putWidgetCatalogSelection"); + } else { + persUserWidgetService.setPersUserAppValue(user, persRequest.getWidgetId(), persRequest.getSelect()); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "Failed in putAppCatalogSelection", e); + response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString()); + } + result.httpStatusCode = new Long(HttpServletResponse.SC_OK); + return result; + } +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AdminUserApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AdminUserApp.java new file mode 100644 index 00000000..72bd798d --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AdminUserApp.java @@ -0,0 +1,106 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class AdminUserApp implements Serializable{ + private static final long serialVersionUID = 1L; + + @Id + @Column(name="USER_ID") + private Long user_Id; + + @Column(name="FIRST_NAME") + private String firstName; + + @Column(name="LAST_NAME") + private String lastName; + + @Column(name="ORG_USER_ID") + private String orgUserId; + + @Id + @Column(name="APP_ID") + private Long appId; + + @Column(name="APP_NAME") + private String appName; + + public Long getAppId() { + return appId; + } + public void setAppId(Long appId) { + this.appId = appId; + } + public Long getUser_Id() { + return user_Id; + } + public void setUserId(Long user_Id) { + this.user_Id = user_Id; + } + public String getFirstName() { + return firstName; + } + public void setFirstName(String firstName) { + this.firstName = firstName; + } + public String getLastName() { + return lastName; + } + public void setLastName(String lastName) { + this.lastName = lastName; + } + public String getOrgUserId() { + return orgUserId; + } + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + public String getAppName() { + return appName; + } + public void setAppName(String appName) { + this.appName = appName; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AdminUserApplications.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AdminUserApplications.java new file mode 100644 index 00000000..ca54d236 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AdminUserApplications.java @@ -0,0 +1,114 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.ArrayList; +import java.util.List; + +public class AdminUserApplications { + private List apps = new ArrayList(); + + private Long user_Id; + private String firstName; + private String lastName; + private String orgUserId; + + public AdminUserApplications(AdminUserApp app) { + setUser_Id(app.getUser_Id()); + setOrgUserId(app.getOrgUserId()); + setFirstName(app.getFirstName()); + setLastName(app.getLastName()); + + addApp(app.getAppId(), app.getAppName()); + } + public Long getUser_Id() { + return user_Id; + } + public void setUser_Id(Long user_Id) { + this.user_Id = user_Id; + } + public String getFirstName() { + return firstName; + } + public void setFirstName(String firstName) { + this.firstName = firstName; + } + public String getLastName() { + return lastName; + } + public void setLastName(String lastName) { + this.lastName = lastName; + } + public String getOrgUserId() { + return orgUserId; + } + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + public List getApps() { + return apps; + } + public void setApps(List apps) { + this.apps = apps; + } + public void addApp(Long otherAppId, String otherAppName) { + apps.add(new Application(otherAppId, otherAppName)); + } + + public class Application { + private Long appId; + private String appName; + + public Application(Long otherAppId, String otherAppName) { + setAppId(otherAppId); + setAppName(otherAppName); + } + public Long getAppId() { + return appId; + } + public void setAppId(Long appId) { + this.appId = appId; + } + public String getAppName() { + return appName; + } + public void setAppName(String appName) { + this.appName = appName; + } + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/App.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/App.java new file mode 100644 index 00000000..aa5a4b8d --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/App.java @@ -0,0 +1,80 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +//@Entity +//@Table(name = "FN_APP") +public class App implements Serializable{ + + private static final long serialVersionUID = 1L; + + //@Id + //@Column(name = "APP_ID") + //@GeneratedValue(strategy=GenerationType.AUTO) + private Long appId; + + //@Column(name = "APP_Name") + private String appName; + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppContactUs.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppContactUs.java new file mode 100644 index 00000000..f3117622 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppContactUs.java @@ -0,0 +1,103 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +import com.fasterxml.jackson.annotation.JsonBackReference; + +public class AppContactUs extends DomainVo { + + private static final long serialVersionUID = -2742197830465055134L; + + @JsonBackReference private EPApp app; + private String description; + private String contactEmail; + private String contactName; + private String url; + private String activeYN; + + public EPApp getApp() { + return app; + } + + public void setApp(EPApp app) { + this.app = app; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getContactEmail() { + return contactEmail; + } + + public void setContactEmail(String contactEmail) { + this.contactEmail = contactEmail; + } + + public String getContactName() { + return contactName; + } + + public void setContactName(String contactName) { + this.contactName = contactName; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getActiveYN() { + return activeYN; + } + + public void setActiveYN(String activeYN) { + this.activeYN = activeYN; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppIdAndNameTransportModel.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppIdAndNameTransportModel.java new file mode 100644 index 00000000..d57e2828 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppIdAndNameTransportModel.java @@ -0,0 +1,81 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class AppIdAndNameTransportModel implements Serializable{ + private static final long serialVersionUID = 1L; + + @Id + @Column(name="APP_ID") + private Long id; + + @Column(name="APP_NAME") + private String name; + + @Column(name="APP_TYPE") + private Integer appType; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Boolean isRestrictedApp() { + return (this.appType == 2 ? true : false); + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppsResponse.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppsResponse.java new file mode 100644 index 00000000..a7835fd5 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/AppsResponse.java @@ -0,0 +1,94 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +public class AppsResponse { + + public AppsResponse(Long id, String name, Boolean restrictedApp, Boolean enabled) { + this.index = id; + this.title = this.value = name; + this.restrictedApp = restrictedApp; + this.enabled = enabled; + } + + public Long getIndex() { + return index; + } + + public void setIndex(Long index) { + this.index = index; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + // Hide the implementation of restricted and normal app from the front end. + // The json sent and received will include restrictedApp but not appType. + + public void setRestrictedApp(Boolean restrictedApp) { + this.restrictedApp = restrictedApp; + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + private Long index; + private String title; + private String value; + public Boolean restrictedApp; + public Boolean enabled; + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/BEProperty.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/BEProperty.java new file mode 100644 index 00000000..737f4ab3 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/BEProperty.java @@ -0,0 +1,96 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +public class BEProperty { + private String key; + private String value; + + public BEProperty(String key, String value) { + this.key = key; + this.value = value; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((key == null) ? 0 : key.hashCode()); + result = prime * result + ((value == null) ? 0 : value.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + BEProperty other = (BEProperty) obj; + if (key == null) { + if (other.key != null) + return false; + } else if (!key.equals(other.key)) + return false; + if (value == null) { + if (other.value != null) + return false; + } else if (!value.equals(other.value)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/BasicAuthCredentials.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/BasicAuthCredentials.java new file mode 100644 index 00000000..30dad848 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/BasicAuthCredentials.java @@ -0,0 +1,113 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.List; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class BasicAuthCredentials extends DomainVo { + + private static final long serialVersionUID = 1L; + + public BasicAuthCredentials() { + + } + + private Long id; + private String applicationName; + private String username; + private String password; + private String isActive; + private List endpoints; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getApplicationName() { + return applicationName; + } + + public void setApplicationName(String applicationName) { + this.applicationName = applicationName; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getIsActive() { + return isActive; + } + + public void setIsActive(String isActive) { + this.isActive = isActive; + } + + public List getEndpoints() { + return endpoints; + } + + public void setEndpoints(List endpoints) { + this.endpoints = endpoints; + } + + @Override + public String toString() { + return "BasicAuthCredentials [id=" + id + ", applicationName=" + applicationName + ", username=" + username + + ", password=" + password + ", isActive=" + isActive + "]"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/CentralV2RoleFunction.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/CentralV2RoleFunction.java new file mode 100644 index 00000000..05c87ba6 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/CentralV2RoleFunction.java @@ -0,0 +1,188 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +@SuppressWarnings("rawtypes") +public class CentralV2RoleFunction extends DomainVo implements Serializable, Comparable{ + + /** + * + */ + private static final long serialVersionUID = -4018975640065252688L; + private String code; + private String name; + @JsonIgnore + private Long appId; + @JsonIgnore + private Long roleId; + private String type; + private String action; + private String editUrl; + + + public CentralV2RoleFunction() { + + } + + + public CentralV2RoleFunction(Long id, String code, String name, Long appId, String type, String action,String editUrl) { + super(); + this.id = id; + this.code = code; + this.name = name; + this.appId = appId; + this.type = type; + this.action = action; + this.editUrl = editUrl; + } + + public CentralV2RoleFunction(Long id, String code, String name, Long appId,String editUrl) { + super(); + this.id = id; + this.code = code; + this.name = name; + this.appId = appId; + this.editUrl = editUrl; + } + + + + public CentralV2RoleFunction(String code, String name) { + super(); + this.code = code; + this.name = name; + } + + /** + * @return the code + */ + public String getCode() { + return code; + } + /** + * @param code the code to set + */ + public void setCode(String code) { + this.code = code; + } + /** + * @return the name + */ + public String getName() { + return name; + } + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + /** + * @return the appId + */ + public Long getAppId() { + return appId; + } + /** + * @param appId the appId to set + */ + public void setAppId(Long appId) { + this.appId = appId; + } + /** + * @return the editUrl + */ + public String getEditUrl() { + return editUrl; + } + /** + * @param editUrl the editUrl to set + */ + public void setEditUrl(String editUrl) { + this.editUrl = editUrl; + } + + + /** + * @return the type + */ + public String getType() { + return type; + } + + + /** + * @param type the type to set + */ + public void setType(String type) { + this.type = type; + } + + + /** + * @return the action + */ + public String getAction() { + return action; + } + + + /** + * @param action the action to set + */ + public void setAction(String action) { + this.action = action; + } + + + public int compareTo(Object obj){ + String c1 = getName(); + String c2 = ((CentralV2RoleFunction)obj).getName(); + + return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); + } + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/CentralizedApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/CentralizedApp.java new file mode 100644 index 00000000..2e902b83 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/CentralizedApp.java @@ -0,0 +1,81 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@Entity +@JsonInclude(JsonInclude.Include.NON_NULL) +public class CentralizedApp implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = -3773410386555027935L; + + @Id + @Column(name="app_id") + private int appId; + + @Id + @Column(name="app_name") + private String appName; + + public int getAppId() { + return appId; + } + + public void setAppId(int appId) { + this.appId = appId; + } + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPApp.java new file mode 100644 index 00000000..6f593df3 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPApp.java @@ -0,0 +1,484 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.Arrays; + +import javax.persistence.Lob; + +import org.apache.commons.lang.StringUtils; +import org.onap.portalsdk.core.domain.support.DomainVo; + +/** + * Model for all columns in the fn_app table. + */ +public class EPApp extends DomainVo { + + private static final long serialVersionUID = 1L; + + private String name; + private String imageUrl; + private String description; + private String notes; + private String url; + private String alternateUrl; + private String appRestEndpoint; + private String mlAppName; + private String mlAppAdminId; + private Long motsId; + private String username; + private String appPassword; + @Lob + private byte[] thumbnail; + private Boolean open; + private Boolean enabled; + private String uebTopicName; + private String uebKey; + private String uebSecret; + private Integer appType; + private AppContactUs contactUs; + private Boolean centralAuth; + private String nameSpace; + + public EPApp() { + // Attention!!! + // We set here all default values. We also place protection + // into setters for fields with default values. + // If we don't use such protection we are able to place null + // to these fields and save such fields into DB even if DB has + // default values for these fields. + this.name = ""; + this.mlAppName = ""; + this.mlAppAdminId = ""; + this.username = ""; + this.appPassword = ""; + this.open = new Boolean(false); + this.enabled = new Boolean(true); + this.uebTopicName = ""; + this.uebKey = ""; + this.uebSecret = ""; + this.appType = 1; + } + + public String getName() { + return name; + } + + public void setName(String name) { + if (StringUtils.isEmpty(name)) { + name = ""; + } + this.name = name; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + + + + public byte[] getThumbnail() { + return this.thumbnail; + } + + public void setThumbnail(byte[] thumbnail) { + this.thumbnail = thumbnail; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getAlternateUrl() { + return alternateUrl; + } + + public void setAlternateUrl(String alternateUrl) { + this.alternateUrl = alternateUrl; + } + + public String getAppRestEndpoint() { + return appRestEndpoint; + } + + public void setAppRestEndpoint(String appRestEndpoint) { + this.appRestEndpoint = appRestEndpoint; + } + + public String getMlAppName() { + return mlAppName; + } + + public void setMlAppName(String mlAppName) { + if (StringUtils.isEmpty(mlAppName)) { + mlAppName = ""; + } + this.mlAppName = mlAppName; + } + + public String getMlAppAdminId() { + return mlAppAdminId; + } + + public void setMlAppAdminId(String mlAppAdminId) { + if (StringUtils.isEmpty(mlAppAdminId)) { + mlAppAdminId = ""; + } + this.mlAppAdminId = mlAppAdminId; + } + + public Long getMotsId() { + return motsId; + } + + public void setMotsId(Long motsId) { + this.motsId = motsId; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getAppPassword() { + return appPassword; + } + + public void setAppPassword(String appPassword) { + if (StringUtils.isEmpty(appPassword)) { + appPassword = ""; + } + this.appPassword = appPassword; + } + + public Boolean getOpen() { + return open; + } + + public void setOpen(Boolean open) { + if (open == null) { + open = new Boolean(false); + } + this.open = open; + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + if (enabled == null) { + enabled = new Boolean(true); + } + this.enabled = enabled; + } + + public Integer getAppType() { + return appType; + } + + public void setAppType(Integer appType) { + if (appType == null) { + appType = new Integer(1); + } + this.appType = appType; + } + + public void setRestrictedApp(Boolean restrictedApp) { + Integer result = 1; + if (restrictedApp) { + result = 2; + } + this.appType = result; + } + + public Boolean isRestrictedApp() { + return (this.appType == 2 ? true : false); + } + + public int compareTo(Object obj) { + Long c1 = getId(); + Long c2 = ((EPApp) obj).getId(); + + return c1.compareTo(c2); + } + + public String getUebTopicName() { + return this.uebTopicName; + } + + public void setUebTopicName(String topicName) { + if (StringUtils.isEmpty(topicName)) { + this.uebTopicName = ""; + } + this.uebTopicName = topicName; + } + + public String getUebKey() { + return this.uebKey; + } + + public void setUebKey(String uebKey) { + if (StringUtils.isEmpty(uebKey)) { + this.uebKey = ""; + } + this.uebKey = uebKey; + } + + public String getUebSecret() { + return this.uebSecret; + } + + public void setUebSecret(String uebSecret) { + if (StringUtils.isEmpty(uebSecret)) { + this.uebSecret = ""; + } + this.uebSecret = uebSecret; + } + + public AppContactUs getContactUs() { + return contactUs; + } + + public void setContactUs(AppContactUs contactUs) { + this.contactUs = contactUs; + } + + public Boolean getCentralAuth() { + return centralAuth; + } + + public void setCentralAuth(Boolean centralAuth) { + if (centralAuth == null) { + centralAuth = new Boolean(false); + } + this.centralAuth = centralAuth; + } + + public String getNameSpace() { + return nameSpace; + } + + public void setNameSpace(String nameSpace) { + if (StringUtils.isEmpty(nameSpace)) { + nameSpace = null; + } + this.nameSpace = nameSpace; + } + + @Override + public String toString() { + String str = "[" + getId() + ":" + getName() + "]"; + return str; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((alternateUrl == null) ? 0 : alternateUrl.hashCode()); + result = prime * result + ((appPassword == null) ? 0 : appPassword.hashCode()); + result = prime * result + ((appRestEndpoint == null) ? 0 : appRestEndpoint.hashCode()); + result = prime * result + ((appType == null) ? 0 : appType.hashCode()); + result = prime * result + ((centralAuth == null) ? 0 : centralAuth.hashCode()); + result = prime * result + ((contactUs == null) ? 0 : contactUs.hashCode()); + result = prime * result + ((description == null) ? 0 : description.hashCode()); + result = prime * result + ((enabled == null) ? 0 : enabled.hashCode()); + result = prime * result + ((imageUrl == null) ? 0 : imageUrl.hashCode()); + result = prime * result + ((mlAppAdminId == null) ? 0 : mlAppAdminId.hashCode()); + result = prime * result + ((mlAppName == null) ? 0 : mlAppName.hashCode()); + result = prime * result + ((motsId == null) ? 0 : motsId.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((nameSpace == null) ? 0 : nameSpace.hashCode()); + result = prime * result + ((notes == null) ? 0 : notes.hashCode()); + result = prime * result + ((open == null) ? 0 : open.hashCode()); + result = prime * result + Arrays.hashCode(thumbnail); + result = prime * result + ((uebKey == null) ? 0 : uebKey.hashCode()); + result = prime * result + ((uebSecret == null) ? 0 : uebSecret.hashCode()); + result = prime * result + ((uebTopicName == null) ? 0 : uebTopicName.hashCode()); + result = prime * result + ((url == null) ? 0 : url.hashCode()); + result = prime * result + ((username == null) ? 0 : username.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + EPApp other = (EPApp) obj; + if (alternateUrl == null) { + if (other.alternateUrl != null) + return false; + } else if (!alternateUrl.equals(other.alternateUrl)) + return false; + if (appPassword == null) { + if (other.appPassword != null) + return false; + } else if (!appPassword.equals(other.appPassword)) + return false; + if (appRestEndpoint == null) { + if (other.appRestEndpoint != null) + return false; + } else if (!appRestEndpoint.equals(other.appRestEndpoint)) + return false; + if (appType == null) { + if (other.appType != null) + return false; + } else if (!appType.equals(other.appType)) + return false; + if (centralAuth == null) { + if (other.centralAuth != null) + return false; + } else if (!centralAuth.equals(other.centralAuth)) + return false; + if (contactUs == null) { + if (other.contactUs != null) + return false; + } else if (!contactUs.equals(other.contactUs)) + return false; + if (description == null) { + if (other.description != null) + return false; + } else if (!description.equals(other.description)) + return false; + if (enabled == null) { + if (other.enabled != null) + return false; + } else if (!enabled.equals(other.enabled)) + return false; + if (imageUrl == null) { + if (other.imageUrl != null) + return false; + } else if (!imageUrl.equals(other.imageUrl)) + return false; + if (mlAppAdminId == null) { + if (other.mlAppAdminId != null) + return false; + } else if (!mlAppAdminId.equals(other.mlAppAdminId)) + return false; + if (mlAppName == null) { + if (other.mlAppName != null) + return false; + } else if (!mlAppName.equals(other.mlAppName)) + return false; + if (motsId == null) { + if (other.motsId != null) + return false; + } else if (!motsId.equals(other.motsId)) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (nameSpace == null) { + if (other.nameSpace != null) + return false; + } else if (!nameSpace.equals(other.nameSpace)) + return false; + if (notes == null) { + if (other.notes != null) + return false; + } else if (!notes.equals(other.notes)) + return false; + if (open == null) { + if (other.open != null) + return false; + } else if (!open.equals(other.open)) + return false; + if (!Arrays.equals(thumbnail, other.thumbnail)) + return false; + if (uebKey == null) { + if (other.uebKey != null) + return false; + } else if (!uebKey.equals(other.uebKey)) + return false; + if (uebSecret == null) { + if (other.uebSecret != null) + return false; + } else if (!uebSecret.equals(other.uebSecret)) + return false; + if (uebTopicName == null) { + if (other.uebTopicName != null) + return false; + } else if (!uebTopicName.equals(other.uebTopicName)) + return false; + if (url == null) { + if (other.url != null) + return false; + } else if (!url.equals(other.url)) + return false; + if (username == null) { + if (other.username != null) + return false; + } else if (!username.equals(other.username)) + return false; + return true; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPAppRoleFunction.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPAppRoleFunction.java new file mode 100644 index 00000000..559050b9 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPAppRoleFunction.java @@ -0,0 +1,101 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class EPAppRoleFunction extends DomainVo implements java.io.Serializable{ + + private static final long serialVersionUID = 7752385247460299630L; + + private Long roleId; + private Long appId; + private String code; + private String roleAppId; + + /** + * @return the roleId + */ + public Long getRoleId() { + return roleId; + } + /** + * @param roleId the roleId to set + */ + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + /** + * @return the appId + */ + public Long getAppId() { + return appId; + } + /** + * @param appId the appId to set + */ + public void setAppId(Long appId) { + this.appId = appId; + } + /** + * @return the code + */ + public String getCode() { + return code; + } + /** + * @param code the code to set + */ + public void setCode(String code) { + this.code = code; + } + /** + * + * @return the roles app Id + */ + public String getRoleAppId() { + return roleAppId; + } + /** + * + * @param roleAppId + */ + public void setRoleAppId(String roleAppId) { + this.roleAppId = roleAppId; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPEndpoint.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPEndpoint.java new file mode 100644 index 00000000..c967919d --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPEndpoint.java @@ -0,0 +1,74 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class EPEndpoint extends DomainVo { + + private static final long serialVersionUID = 1L; + + public EPEndpoint() { + + } + + private Long id; + private String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "EPEndpoint [id=" + id + ", name=" + name + "]"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPEndpointAccount.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPEndpointAccount.java new file mode 100644 index 00000000..3184be41 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPEndpointAccount.java @@ -0,0 +1,83 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class EPEndpointAccount extends DomainVo { + + private static final long serialVersionUID = 1L; + + public EPEndpointAccount() { + + } + + private Long id; + private Long ep_id; + private Long account_id; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getEp_id() { + return ep_id; + } + + public void setEp_id(Long ep_id) { + this.ep_id = ep_id; + } + + public Long getAccount_id() { + return account_id; + } + + public void setAccount_id(Long account_id) { + this.account_id = account_id; + } + + @Override + public String toString() { + return "EPEndpointAccount [id=" + id + ", ep_id=" + ep_id + ", account_id=" + account_id + "]"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPRole.java new file mode 100644 index 00000000..601c7633 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPRole.java @@ -0,0 +1,221 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.Iterator; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.onap.portalsdk.core.domain.RoleFunction; +import org.onap.portalsdk.core.domain.support.DomainVo; +import com.fasterxml.jackson.annotation.JsonIgnore; + +public class EPRole extends DomainVo { + + private static final long serialVersionUID = 1L; + private String name; + private boolean active; + private Integer priority; + + // ECOMP will identify the specific remote application role id by appID;appRoleId among all the application roles it persists. + private Long appId; // used by ECOMP only + private Long appRoleId; // used by ECOMP only + + private SortedSet roleFunctions = new TreeSet(); + + private SortedSet childRoles = new TreeSet(); + + @JsonIgnore + private SortedSet parentRoles = new TreeSet(); + + public EPRole() {} + + public String getName() { + return name; + } + + public boolean getActive() { + return active; + } + + public SortedSet getRoleFunctions() { + return roleFunctions; + } + + public Integer getPriority() { + return priority; + } + + public SortedSet getChildRoles() { + return childRoles; + } + + public SortedSet getParentRoles() { + return parentRoles; + } + + public void setName(String name) { + this.name = name; + } + + public void setActive(boolean active) { + this.active = active; + } + + public void setRoleFunctions(SortedSet roleFunctions) { + this.roleFunctions = roleFunctions; + } + + public void setPriority(Integer priority) { + this.priority = priority; + } + + public void setChildRoles(SortedSet childRoles) { + this.childRoles = childRoles; + } + + public void setParentRoles(SortedSet parentRoles) { + this.parentRoles = parentRoles; + } + + public void addRoleFunction(RoleFunction roleFunction) { + this.roleFunctions.add(roleFunction); + } + + public void addChildRole(EPRole role) { + this.childRoles.add(role); + } + + public void addParentRole(EPRole role) { + this.parentRoles.add(role); + } + + public String getEditUrl() { + return "/role.htm?role_id=" + getId(); + } + + public String getToggleActiveImage() { + return "/static/fusion/images/" + (getActive() ? "active.png" : "inactive.png" ); + } + + public String getToggleActiveAltText() { + return getActive() ? "Click to Deactivate Role" : "Click to Activate Role"; + } + + public void removeChildRole(Long roleId) { + Iterator i = this.childRoles.iterator(); + + while (i.hasNext()) { + EPRole childRole = (EPRole)i.next(); + if (childRole.getId().equals(roleId)) { + this.childRoles.remove(childRole); + break; + } + } + } + + public void removeParentRole(Long roleId) { + Iterator i = this.parentRoles.iterator(); + + while (i.hasNext()) { + EPRole parentRole = (EPRole)i.next(); + if (parentRole.getId().equals(roleId)) { + this.parentRoles.remove(parentRole); + break; + } + } + } + + public void removeRoleFunction(String roleFunctionCd) { + Iterator i = this.roleFunctions.iterator(); + + while (i.hasNext()) { + RoleFunction roleFunction = (RoleFunction)i.next(); + if (roleFunction.getCode().equals(roleFunctionCd)) { + this.roleFunctions.remove(roleFunction); + break; + } + } + } + + public int compareTo(Object obj){ + EPRole other = (EPRole)obj; + + if(this.appId == null) + if(other.getAppId() == null) + return compareByName(other); //equal + else + return -1; + else // this.appId != null + if(other.getAppId() == null) + return 1; // appId != null, but others is null + else{ + int appIdCompareResult = appId.compareTo(other.getAppId()); + return appIdCompareResult == 0? compareByName(other) : appIdCompareResult; + } + } + + private int compareByName(EPRole other) { + String c1 = getName(); + String c2 = other.getName(); + + return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); + } + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public Long getAppRoleId() { + return appRoleId; + } + + public void setAppRoleId(Long appRoleId) { + this.appRoleId = appRoleId; + } + + @Override + public String toString() { + return "[Id = " + id + ", name = " + name + "]"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUser.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUser.java new file mode 100644 index 00000000..e7435203 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUser.java @@ -0,0 +1,668 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.Date; +import java.util.Iterator; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.domain.User; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +public class EPUser extends User { + + private Long orgId; + private Long managerId; + private String firstName; + private String middleInitial; + private String lastName; + private String phone; + private String fax; + private String cellular; + private String email; + private Long addressId; + private String alertMethodCd; + private String hrid; + private String orgUserId; + private String orgCode; + private String address1; + private String address2; + private String city; + private String state; + private String zipCode; + private String country; + private String orgManagerUserId; + private String locationClli; + private String businessCountryCode; + private String businessCountryName; + private String businessUnit; + private String businessUnitName; + private String department; + private String departmentName; + private String companyCode; + private String company; + private String zipCodeSuffix; + private String jobTitle; + private String commandChain; + private String siloStatus; + private String costCenter; + private String financialLocCode; + + + + private String loginId; + private String loginPwd; + private Date lastLoginDate; + private boolean active; + private boolean internal; + private Long selectedProfileId; + private Long timeZoneId; + private boolean online; + private String chatId; + + private static final long serialVersionUID = 1L; + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPUser.class); + private static final String ECOMP_PORTAL_NAME = "ECOMP"; + private boolean isGuest = false; + + private SortedSet userApps = new TreeSet(); + private SortedSet pseudoRoles = new TreeSet(); + + public EPUser() {} + + public Long getAddressId() { + return addressId; + } + + public String getAlertMethodCd() { + return alertMethodCd; + } + + public String getCellular() { + return cellular; + } + + public String getEmail() { + return email; + } + + public String getFax() { + return fax; + } + + public String getFirstName() { + return firstName; + } + + public String getHrid() { + return hrid; + } + + public Date getLastLoginDate() { + return lastLoginDate; + } + + public String getLastName() { + return lastName; + } + + @JsonIgnore + public String getFullName() { + return getFirstName() + " " + getLastName(); + } + + public String getLoginId() { + return loginId; + } + + public String getLoginPwd() { + return loginPwd; + } + + public Long getManagerId() { + return managerId; + } + + public String getMiddleInitial() { + return middleInitial; + } + + public String getOrgCode() { + return orgCode; + } + + public Long getOrgId() { + return orgId; + } + + public String getPhone() { + return phone; + } + + public String getOrgUserId() { + return orgUserId; + } + + public boolean getActive() { + return active; + } + + public boolean getInternal() { + return internal; + } + + public String getAddress1() { + return address1; + } + + public String getAddress2() { + return address2; + } + + public String getCity() { + return city; + } + + public String getCountry() { + return country; + } + + public String getState() { + return state; + } + + public String getZipCode() { + return zipCode; + } + + public String getBusinessCountryCode() { + return businessCountryCode; + } + + public String getCommandChain() { + return commandChain; + } + + public String getCompany() { + return company; + } + + public String getCompanyCode() { + return companyCode; + } + + public String getDepartment() { + return department; + } + + public String getJobTitle() { + return jobTitle; + } + + public String getLocationClli() { + return locationClli; + } + + public String getOrgManagerUserId() { + return orgManagerUserId; + } + + public String getZipCodeSuffix() { + return zipCodeSuffix; + } + + public String getBusinessCountryName() { + return businessCountryName; + } + + public Long getSelectedProfileId() { + return selectedProfileId; + } + + public void setAddressId(Long addressId) { + this.addressId = addressId; + } + + public void setAlertMethodCd(String alertMethodCd) { + this.alertMethodCd = alertMethodCd; + } + + public void setCellular(String cellular) { + this.cellular = cellular; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public void setHrid(String hrid) { + this.hrid = hrid; + } + + public void setLastLoginDate(Date lastLoginDate) { + this.lastLoginDate = lastLoginDate; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public void setLoginId(String loginId) { + this.loginId = loginId; + } + + public void setLoginPwd(String loginPwd) { + this.loginPwd = loginPwd; + } + + public void setManagerId(Long managerId) { + this.managerId = managerId; + } + + public void setMiddleInitial(String middleInitial) { + this.middleInitial = middleInitial; + } + + public void setOrgCode(String orgCode) { + this.orgCode = orgCode; + } + + public void setOrgId(Long orgId) { + this.orgId = orgId; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + + public void setActive(boolean active) { + this.active = active; + } + + public void setInternal(boolean internal) { + this.internal = internal; + } + + public void setAddress1(String address1) { + this.address1 = address1; + } + + public void setAddress2(String address2) { + this.address2 = address2; + } + + public void setCity(String city) { + this.city = city; + } + + public void setCountry(String country) { + this.country = country; + } + + public void setState(String state) { + this.state = state; + } + + public void setZipCode(String zipCode) { + this.zipCode = zipCode; + } + + public void setBusinessCountryCode(String businessCountryCode) { + this.businessCountryCode = businessCountryCode; + } + + public void setCommandChain(String commandChain) { + this.commandChain = commandChain; + } + + public void setCompany(String company) { + this.company = company; + } + + public void setCompanyCode(String companyCode) { + this.companyCode = companyCode; + } + + public void setDepartment(String department) { + this.department = department; + } + + public void setJobTitle(String jobTitle) { + this.jobTitle = jobTitle; + } + + public void setLocationClli(String locationClli) { + this.locationClli = locationClli; + } + + public void setOrgManagerUserId(String orgManagerUserId) { + this.orgManagerUserId = orgManagerUserId; + } + + public void setZipCodeSuffix(String zipCodeSuffix) { + this.zipCodeSuffix = zipCodeSuffix; + } + + public void setBusinessCountryName(String businessCountryName) { + this.businessCountryName = businessCountryName; + } + + public SortedSet getPseudoRoles() { + return pseudoRoles; + } + + public void setPseudoRoles(SortedSet pseudoRoles) { + this.pseudoRoles = pseudoRoles; + } + + public void setSelectedProfileId(Long selectedProfileId) { + this.selectedProfileId = selectedProfileId; + } + + public Long getTimeZoneId() { + return timeZoneId; + } + + public void setTimeZoneId(Long timeZoneId) { + this.timeZoneId = timeZoneId; + } + + public String getBusinessUnit() { + return businessUnit; + } + + public void setBusinessUnit(String businessUnit) { + this.businessUnit = businessUnit; + } + + public String getSiloStatus() { + return siloStatus; + } + + public void setSiloStatus(String siloStatus) { + this.siloStatus = siloStatus; + } + + public String getCostCenter() { + return costCenter; + } + + public void setCostCenter(String costCenter) { + this.costCenter = costCenter; + } + + public String getFinancialLocCode() { + return financialLocCode; + } + + public void setFinancialLocCode(String financialLocCode) { + this.financialLocCode = financialLocCode; + } + + public String getBusinessUnitName() { + return businessUnitName; + } + + public void setBusinessUnitName(String businessUnitName) { + this.businessUnitName = businessUnitName; + } + + public String getDepartmentName() { + return departmentName; + } + + public void setDepartmentName(String departmentName) { + this.departmentName = departmentName; + } + + public int compareTo(Object obj){ + EPUser user = (EPUser)obj; + + String c1 = getLastName() + getFirstName() + getMiddleInitial(); + String c2 = user.getLastName() + user.getFirstName() + user.getMiddleInitial(); + + return c1.compareTo(c2); + } + + public boolean isOnline() { + return online; + } + + public void setOnline(boolean online) { + this.online = online; + } + + public String getChatId() { + return chatId; + } + + public void setChatId(String chatId) { + this.chatId = chatId; + } + + + public void setPseudoEPRoles(SortedSet pseudoRoles) { + this.pseudoRoles = pseudoRoles; + } + + public SortedSet getEPUserApps() { + return userApps; + } + + public void setEPUserApps(SortedSet userApps) { + this.userApps = userApps; + } + + public void addUserApp(EPUserApp userApp) { + userApps.add(userApp); + } + + public void addAppRoles(EPApp app, SortedSet roles) { + if (roles != null) { + // add all + SortedSet userApps = new TreeSet(); + // this.userApps.removeAll(this.userApps); + Iterator itr = roles.iterator(); + while (itr.hasNext()) { + EPRole role = (EPRole) itr.next(); + EPUserApp userApp = new EPUserApp(); + userApp.setUserId(this.id); + userApp.setApp(app); + userApp.setRole(role); + userApps.add(userApp); + } + setEPUserApps(userApps); + } else { + // remove all + setEPUserApps(null); + } + + } + + public SortedSet getAppEPRoles(EPApp app) { + + logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - app = {}", app.getName()); + + SortedSet roles = new TreeSet(); + SortedSet userAppRoles = getEPUserApps(); + + logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - userApps = ", userAppRoles.size()); + + Iterator userAppRolesIterator = userAppRoles.iterator(); + EPUserApp userAppRole = null; + // getting default app + while (userAppRolesIterator.hasNext()) { + EPUserApp tempUserApp = (EPUserApp) userAppRolesIterator.next(); + if (tempUserApp.getApp().getId().equals(app.getId())) { + + logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - for user {}, found application {}", this.getFullName(), app.getName()); + + userAppRole = tempUserApp; + + EPRole role = userAppRole.getRole(); + if(role.getActive()){ + logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - Role {} is active - adding for user {} and app {}", role.getName(), this.getFullName(), app.getName()); + roles.add((EPRole) role); + } + else{ + logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - Role {} is NOT active - NOT adding for user {} and app {}", role.getName(), this.getFullName(), app.getName()); + } + } + } + logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - roles = ", roles.size()); + + return roles; + } + + + /** + * Attention! Not for use in ECOMP + */ + public SortedSet getAppRoles(EPApp app) { + SortedSet roles = new TreeSet(); + SortedSet apps = getEPUserApps(); + Iterator appsItr = apps.iterator(); + EPUserApp userApp = null; + // getting default app + while (appsItr.hasNext()) { + EPUserApp tempUserApp = (EPUserApp) appsItr.next(); + if (tempUserApp.getApp().getId().equals(app.getId())) { + userApp = tempUserApp; + roles.add((EPRole) userApp.getRole()); + } + } + return roles; + } + + + + /** + * Attention! Not for use in ECOMP + */ + public SortedSet getEPRoles() { + EPApp app = new EPApp(); + app.setId(new Long(PortalConstants.PORTAL_APP_ID)); + app.setName(ECOMP_PORTAL_NAME); + return getAppEPRoles(app); + } + + /** + * Attention! Not for use in ECOMP + */ + public void setEPRoles(SortedSet roles) { + EPApp app = new EPApp(); + app.setId(new Long(PortalConstants.PORTAL_APP_ID)); + app.setName(ECOMP_PORTAL_NAME); + addAppRoles(app, roles); + } + + /** + * Attention! Not for use in ECOMP + */ + public void removeEPRole(Long roleId) { + SortedSet apps = getEPUserApps(); + Iterator appsItr = apps.iterator(); + // getting default app + while (appsItr.hasNext()) { + EPUserApp tempUserApp = (EPUserApp) appsItr.next(); + if (tempUserApp.equals(new Long(PortalConstants.PORTAL_APP_ID)) && tempUserApp.getRole().getId().equals(roleId)) { + appsItr.remove(); + } + } + } + + /** + * Attention! Not for use in ECOMP + */ + public void addEPRole(EPRole role) { + if (role != null) { + SortedSet roles = getEPRoles(); + if (roles == null) { + roles = new TreeSet(); + } + roles.add(role); + setEPRoles(roles); + } + } + + public boolean isGuest() { + return isGuest; + } + + public void setGuest(boolean isGuest) { + this.isGuest = isGuest; + } + + @Override + public String toString() { + return "EPUser [orgId=" + orgId + ", managerId=" + managerId + ", firstName=" + firstName + ", middleInitial=" + + middleInitial + ", lastName=" + lastName + ", phone=" + phone + ", fax=" + fax + ", cellular=" + + cellular + ", email=" + email + ", addressId=" + addressId + ", alertMethodCd=" + alertMethodCd + + ", hrid=" + hrid + ", orgUserId=" + orgUserId + ", orgCode=" + orgCode + ", address1=" + address1 + + ", address2=" + address2 + ", city=" + city + ", state=" + state + ", zipCode=" + zipCode + + ", country=" + country + ", orgManagerUserId=" + orgManagerUserId + ", locationClli=" + locationClli + + ", businessCountryCode=" + businessCountryCode + ", businessCountryName=" + businessCountryName + + ", businessUnit=" + businessUnit + ", businessUnitName=" + businessUnitName + ", department=" + + department + ", departmentName=" + departmentName + ", companyCode=" + companyCode + ", company=" + + company + ", zipCodeSuffix=" + zipCodeSuffix + ", jobTitle=" + jobTitle + ", commandChain=" + + commandChain + ", siloStatus=" + siloStatus + ", costCenter=" + costCenter + ", financialLocCode=" + + financialLocCode + ", loginId=" + loginId + ", loginPwd=" + loginPwd + ", lastLoginDate=" + + lastLoginDate + ", active=" + active + ", internal=" + internal + ", selectedProfileId=" + + selectedProfileId + ", timeZoneId=" + timeZoneId + ", online=" + online + ", chatId=" + chatId + + ", isGuest=" + isGuest + ", userApps=" + userApps + ", pseudoRoles=" + pseudoRoles + "]"; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserApp.java new file mode 100644 index 00000000..1449af76 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserApp.java @@ -0,0 +1,137 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + + +@SuppressWarnings("rawtypes") +public class EPUserApp implements java.io.Serializable, Comparable { + + private static final long serialVersionUID = 1L; + + private Long userId; + private EPApp app; + private EPRole role; + private Short priority; + + public EPUserApp() { + } + + public Long getAppId() { + return this.getApp().getId(); + } + + public Long getRoleId() { + return (role == null) ? null : role.getId(); + } + + public Long getAppRoleId() { + return (role.getAppRoleId() == null) ? null : role.getAppRoleId(); + } + + @Override + public String toString() { + String str = "[u: "+getUserId()+"; a: "+getAppId()+", r: "+getRoleId()+"; appRoleId: "+getAppRoleId()+"]"; + return str; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long id) { + this.userId = id; + } + + public EPApp getApp() { + return app; + } + + public void setApp(EPApp app) { + this.app = app; + } + + public EPRole getRole() { + return role; + } + + public void setRole(EPRole role) { + this.role = role; + } + + public Short getPriority() { + return this.priority; + } + + public void setPriority(Short priority) { + this.priority = priority; + } + + public boolean equals(Object other) { + if ((this == other)) + return true; + if ((other == null)) + return false; + if (!(other instanceof EPUserApp)) + return false; + EPUserApp castOther = (EPUserApp) other; + + return (this.getUserId().equals(castOther.getUserId())) + && (this.getApp().getId().equals(castOther.getApp().getId())) + && (this.getRole().getId().equals(castOther.getRole().getId())) + && ((this.priority==null && castOther.getPriority()==null) || this.getPriority().equals(castOther.getPriority())); + } + + public int hashCode() { + int result = 17; + + result = 37 * result + (int) (this.getUserId()==null ? 0 : this.getUserId().intValue()); + result = 37 * result + (int) (this.getApp().getId()==null ? 0 : this.getApp().getId().intValue()); + result = 37 * result + (int) (this.getRole().getId()==null ? 0 : this.getRole().getId().intValue()); + result = 37 * result + (int) (this.priority==null ? 0 : this.priority); + return result; + } + + public int compareTo(Object other){ + EPUserApp castOther = (EPUserApp) other; + + Long c1 = (this.getUserId()==null ? 0 : this.getUserId()) + (this.getApp()==null||this.getApp().getId()==null ? 0 : this.getApp().getId()) + (this.getRole()==null||this.getRole().getId()==null ? 0 : this.getRole().getId()) + (this.priority==null ? 0 : this.priority); + Long c2 = (castOther.getUserId()==null ? 0 : castOther.getUserId()) + (castOther.getApp()==null||castOther.getApp().getId()==null ? 0 : castOther.getApp().getId()) + (castOther.getRole()==null||castOther.getRole().getId()==null ? 0 : castOther.getRole().getId()) + (castOther.priority==null ? 0 : castOther.priority); + + return c1.compareTo(c2); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppCatalogRoles.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppCatalogRoles.java new file mode 100644 index 00000000..f6d42b70 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppCatalogRoles.java @@ -0,0 +1,110 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@Entity +@JsonInclude +public class EPUserAppCatalogRoles extends DomainVo { + + private static final long serialVersionUID = -5259869298825093816L; + + + @Id + @Column(name="requested_role_id") + public Long requestedRoleId; + + + @Id + @Column(name="role_name") + public String rolename; + + @Id + @Column(name="request_status") + public String requestStatus; + + @Id + @Column(name="app_id") + public Long appId; + + public Long getRequestedRoleId() { + return requestedRoleId; + } + + public void setRequestedRoleId(Long requestedRoleId) { + this.requestedRoleId = requestedRoleId; + } + + public String getRolename() { + return rolename; + } + + public void setRolename(String rolename) { + this.rolename = rolename; + } + + public String getRequestStatus() { + return requestStatus; + } + + public void setRequestStatus(String requestStatus) { + this.requestStatus = requestStatus; + } + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public String toString() { + return "EPUserAppCatalogRoles [requestedRoleId=" + requestedRoleId + ", rolename=" + rolename + + ", requestStatus=" + requestStatus + ", appId=" + appId + "]"; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRoles.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRoles.java new file mode 100644 index 00000000..3e681081 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRoles.java @@ -0,0 +1,81 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@Entity +@JsonInclude(JsonInclude.Include.NON_NULL) +public class EPUserAppRoles extends DomainVo { + + private static final long serialVersionUID = -1484592641766545668L; + + @Id + @Column(name ="role_id") + public Long roleId; + + @Id + @Column(name ="app_id") + public Long appId; + + public Long getRoleId() { + return roleId; + } + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + public Long getAppId() { + return appId; + } + public void setAppId(Long appId) { + this.appId = appId; + } + + @Override + public String toString() { + return "EpUserAppRoles [roleId=" + roleId + ", appId=" + appId + "]"; + } +} + diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequest.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequest.java new file mode 100644 index 00000000..923d2444 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequest.java @@ -0,0 +1,158 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.Date; +import java.util.Set; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class EPUserAppRolesRequest extends DomainVo { + + private static final long serialVersionUID = -7225288307806389019L; + private Long userId; + private Long appId; + private Date createdDate; + private Date updatedDate; + private String requestStatus; + + private Set epRequestIdDetail; + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public Date getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(Date createdDate) { + this.createdDate = createdDate; + } + + public Date getUpdatedDate() { + return updatedDate; + } + + public void setUpdatedDate(Date updatedDate) { + this.updatedDate = updatedDate; + } + + public String getRequestStatus() { + return requestStatus; + } + + public void setRequestStatus(String requestStatus) { + this.requestStatus = requestStatus; + } + + public Set getEpRequestIdDetail() { + return epRequestIdDetail; + } + + public void setEpRequestIdDetail(Set epMyLoginsDetail) { + this.epRequestIdDetail = epMyLoginsDetail; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((appId == null) ? 0 : appId.hashCode()); + result = prime * result + ((createdDate == null) ? 0 : createdDate.hashCode()); + result = prime * result + ((epRequestIdDetail == null) ? 0 : epRequestIdDetail.hashCode()); + result = prime * result + ((requestStatus == null) ? 0 : requestStatus.hashCode()); + result = prime * result + ((updatedDate == null) ? 0 : updatedDate.hashCode()); + result = prime * result + ((userId == null) ? 0 : userId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + EPUserAppRolesRequest other = (EPUserAppRolesRequest) obj; + if (appId == null) { + if (other.appId != null) + return false; + } else if (!appId.equals(other.appId)) + return false; + if (createdDate == null) { + if (other.createdDate != null) + return false; + } else if (!createdDate.equals(other.createdDate)) + return false; + if (epRequestIdDetail == null) { + if (other.epRequestIdDetail != null) + return false; + } else if (!epRequestIdDetail.equals(other.epRequestIdDetail)) + return false; + if (requestStatus == null) { + if (other.requestStatus != null) + return false; + } else if (!requestStatus.equals(other.requestStatus)) + return false; + if (updatedDate == null) { + if (other.updatedDate != null) + return false; + } else if (!updatedDate.equals(other.updatedDate)) + return false; + if (userId == null) { + if (other.userId != null) + return false; + } else if (!userId.equals(other.userId)) + return false; + return true; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequestDetail.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequestDetail.java new file mode 100644 index 00000000..42373853 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequestDetail.java @@ -0,0 +1,111 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class EPUserAppRolesRequestDetail extends DomainVo { + + private static final long serialVersionUID = -4908856671135348157L; + + private Long reqRoleId; + private String reqType; + private EPUserAppRolesRequest epRequestIdData; + + public EPUserAppRolesRequest getEpRequestIdData() { + return epRequestIdData; + } + + public void setEpRequestIdData(EPUserAppRolesRequest epRequestIdData) { + this.epRequestIdData = epRequestIdData; + } + + public Long getReqRoleId() { + return reqRoleId; + } + + public void setReqRoleId(Long reqRoleId) { + this.reqRoleId = reqRoleId; + } + + public String getReqType() { + return reqType; + } + + public void setReqType(String reqType) { + this.reqType = reqType; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((epRequestIdData == null) ? 0 : epRequestIdData.hashCode()); + result = prime * result + ((reqRoleId == null) ? 0 : reqRoleId.hashCode()); + result = prime * result + ((reqType == null) ? 0 : reqType.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + EPUserAppRolesRequestDetail other = (EPUserAppRolesRequestDetail) obj; + if (epRequestIdData == null) { + if (other.epRequestIdData != null) + return false; + } else if (!epRequestIdData.equals(other.epRequestIdData)) + return false; + if (reqRoleId == null) { + if (other.reqRoleId != null) + return false; + } else if (!reqRoleId.equals(other.reqRoleId)) + return false; + if (reqType == null) { + if (other.reqType != null) + return false; + } else if (!reqType.equals(other.reqType)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreference.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreference.java new file mode 100644 index 00000000..4d943f62 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreference.java @@ -0,0 +1,68 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class EPUserAppsManualSortPreference extends DomainVo { + + private static final long serialVersionUID = -6270136291139278216L; + private int userId; + private Long appId; + private int appManualSortOrder; + + public int getUserId() { + return userId; + } + public void setUserId(int userId) { + this.userId = userId; + } + public Long getAppId() { + return appId; + } + public void setAppId(Long appId) { + this.appId = appId; + } + public int getAppManualSortOrder() { + return appManualSortOrder; + } + public void setAppManualSortOrder(int appManualSortOrder) { + this.appManualSortOrder = appManualSortOrder; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppsSortPreference.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppsSortPreference.java new file mode 100644 index 00000000..1fc7b8e9 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserAppsSortPreference.java @@ -0,0 +1,62 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class EPUserAppsSortPreference extends DomainVo{ + + private static final long serialVersionUID = -5267000174894006433L; + + private int userId; + private String sortPref; + + public int getUserId() { + return userId; + } + public void setUserId(final int userId) { + this.userId = userId; + } + public String getSortPref() { + return sortPref; + } + public void setSortPref(final String sortPref) { + this.sortPref = sortPref; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserNotification.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserNotification.java new file mode 100644 index 00000000..1cb85a55 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPUserNotification.java @@ -0,0 +1,75 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.Date; + +import org.onap.portalsdk.core.domain.support.DomainVo; + + +public class EPUserNotification extends DomainVo { + private Long userId; + private Long notificationId; + private String viewed; + private Date updateTime; + + public Long getUserId() { + return userId; + } + public void setUserId(Long userId) { + this.userId = userId; + } + public Long getNotificationId() { + return notificationId; + } + public void setNotificationId(Long notificationId) { + this.notificationId = notificationId; + } + public String getViewed() { + return viewed; + } + public void setViewed(String viewed) { + this.viewed = viewed; + } + public Date getUpdateTime() { + return updateTime; + } + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreference.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreference.java new file mode 100644 index 00000000..552e2e0f --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreference.java @@ -0,0 +1,88 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class EPWidgetsManualSortPreference extends DomainVo{ + + private static final long serialVersionUID = 4607102334801223570L; + private int userId; + private Long widgetId; + private int widgetRow; + private int widgetCol; + private int widgetWidth; + private int widgetHeight; + + public int getUserId() { + return userId; + } + public void setUserId(int userId) { + this.userId = userId; + } + public Long getWidgetId() { + return widgetId; + } + public void setWidgetId(Long widgetId) { + this.widgetId = widgetId; + } + public int getWidgetRow() { + return widgetRow; + } + public void setWidgetRow(int widgetRow) { + this.widgetRow = widgetRow; + } + public int getWidgetCol() { + return widgetCol; + } + public void setWidgetCol(int widgetCol) { + this.widgetCol = widgetCol; + } + public int getWidgetWidth() { + return widgetWidth; + } + public void setWidgetWidth(int widgetWidth) { + this.widgetWidth = widgetWidth; + } + public int getWidgetHeight() { + return widgetHeight; + } + public void setWidgetHeight(int widgetHeight) { + this.widgetHeight = widgetHeight; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompApp.java new file mode 100644 index 00000000..6fafbba4 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompApp.java @@ -0,0 +1,186 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +/** + * Model for a subset of the columns in the fn_app table. + */ +public class EcompApp { + + protected Long id; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + private String imageUrl; + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + + private String description; + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + private String notes; + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + private String url; + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + private String alternateUrl; + + public String getAlternateUrl() { + return alternateUrl; + } + + public void setAlternateUrl(String alternateUrl) { + this.alternateUrl = alternateUrl; + } + + private String uebTopicName; + + public String getUebTopicName() { + return uebTopicName; + } + + public void setUebTopicName(String topicName) { + this.uebTopicName = topicName; + } + + private String uebKey; + + public String getUebKey() { + return uebKey; + } + + public void setUebKey(String uebKey) { + this.uebKey = uebKey; + } + + private String uebSecret; + + public String getUebSecret() { + return uebSecret; + } + + public void setUebSecret(String secret) { + this.uebSecret = secret; + } + + private Boolean enabled; + + public Boolean isEnabled() { + return enabled; + } + + public void setEnabled(Boolean enable) { + this.enabled = enable; + } + + private Boolean restrictedApp; + + public Boolean isRestrictedApp() { + return restrictedApp; + } + + public void setRestrictedApp(Boolean restrictedApp) { + this.restrictedApp = restrictedApp; + } + + private Boolean centralAuth; + + public Boolean getCentralAuth() { + return centralAuth; + } + + public void setCentralAuth(Boolean centralAuth) { + this.centralAuth = centralAuth; + } + + private String nameSpace; + + public String getNameSpace() { + return nameSpace; + } + + public void setNameSpace(String nameSpace) { + this.nameSpace = nameSpace; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAppRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAppRole.java new file mode 100644 index 00000000..e6176ebb --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAppRole.java @@ -0,0 +1,98 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.IdClass; + +@Entity +@IdClass(EcompAppRoleId.class) +public class EcompAppRole { + + @Id + @Column(name="app_id") + private Long appId; + + @Id + @Column(name="app_name") + private String appName; + + @Id + @Column(name="role_id") + private Integer roleId; + + @Id + @Column(name="role_name") + private String roleName; + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + public Integer getRoleId() { + return roleId; + } + + public void setRoleId(Integer roleId) { + this.roleId = roleId; + } + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAppRoleId.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAppRoleId.java new file mode 100644 index 00000000..063714ee --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAppRoleId.java @@ -0,0 +1,101 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Id; + +public class EcompAppRoleId implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @Column(name="app_id") + private Long appId; + + @Id + @Column(name="app_name") + private String appName; + + @Id + @Column(name="role_id") + private Integer roleId; + + @Id + @Column(name="role_name") + private String roleName; + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + public Integer getRoleId() { + return roleId; + } + + public void setRoleId(Integer roleId) { + this.roleId = roleId; + } + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAuditLog.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAuditLog.java new file mode 100644 index 00000000..72307eb6 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EcompAuditLog.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.Date; + +import org.onap.portalsdk.core.domain.AuditLog; + +public class EcompAuditLog extends AuditLog { + + private static final long serialVersionUID = 7970458389782626231L; + + // values of activity_cd column in table fu_lu_activity + // as loaded by DML sql script + public static final String CD_ACTIVITY_ADD_CHILD_ROLE = "add_child_role"; + public static final String CD_ACTIVITY_ADD_ROLE = "add_role"; + public static final String CD_ACTIVITY_ADD_ROLE_FUNCTION = "add_role_function"; + public static final String CD_ACTIVITY_ADD_USER_ROLE = "add_user_role"; + public static final String CD_ACTIVITY_APP_ACCESS = "app_access"; + public static final String CD_ACTIVITY_FUNCTIONAL_ACCESS = "functional_access"; + public static final String CD_ACTIVITY_GUEST_LOGIN = "guest_login"; + public static final String CD_ACTIVITY_LOGIN = "login"; + public static final String CD_ACTIVITY_LOGOUT = "logout"; + public static final String CD_ACTIVITY_MOBILE_LOGIN = "mobile_login"; + public static final String CD_ACTIVITY_MOBILE_LOGOUT = "mobile_logout"; + public static final String CD_ACTIVITY_REMOVE_CHILD_ROLE = "remove_child_role"; + public static final String CD_ACTIVITY_REMOVE_ROLE = "remove_role"; + public static final String CD_ACTIVITY_REMOVE_ROLE_FUNCTION = "remove_role_function"; + public static final String CD_ACTIVITY_REMOVE_USER_ROLE = "remove_user_role"; + public static final String CD_ACTIVITY_TAB_ACCESS = "tab_access"; + public static final String CD_ACTIVITY_SEARCH = "search"; + public static final String CD_ACTIVITY_ADD_PORTAL_ADMIN = "apa "; + public static final String CD_ACTIVITY_DELETE_PORTAL_ADMIN = "dpa"; + public static final String CD_ACTIVITY_UPDATE_USER = "uu "; + public static final String CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN = "uaa "; + public static final String CD_ACTIVITY_STORE_ANALYTICS = "store_analytics"; + public static final String CD_ACTIVITY_EXTERNAL_AUTH_ADD_ROLE = "eaar"; + public static final String CD_ACTIVITY_EXTERNAL_AUTH_ADD_FUNCTION = "eaaf"; + public static final String CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_FUNCTION = "eauf"; + public static final String CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_ROLE_AND_FUNCTION = "eaurf"; + public static final String CD_ACTIVITY_EXTERNAL_AUTH_DELETE_ROLE = "eadr"; + public static final String CD_ACTIVITY_EXTERNAL_AUTH_DELETE_FUNCTION = "eadf"; + /** + * Creates a new object with the created field set to the current date-time. + */ + public EcompAuditLog() { + setCreated(new Date()); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/ExternalRoleDetails.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/ExternalRoleDetails.java new file mode 100644 index 00000000..6c8a548a --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/ExternalRoleDetails.java @@ -0,0 +1,115 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.List; + +public class ExternalRoleDetails implements Comparable { + + + private String name; + private boolean active; + private Integer priority; + + private Long appId; // used by ECOMP only + private Long appRoleId; // used by ECOMP only + + private List perms; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isActive() { + return active; + } + + public void setActive(boolean active) { + this.active = active; + } + + public Integer getPriority() { + return priority; + } + + public void setPriority(Integer priority) { + this.priority = priority; + } + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public Long getAppRoleId() { + return appRoleId; + } + + public void setAppRoleId(Long appRoleId) { + this.appRoleId = appRoleId; + } + + + + public List getPerms() { + return perms; + } + + public void setPerms(List perms) { + this.perms = perms; + } + + @Override + public int compareTo(Object obj) { + EPRole other = (EPRole)obj; + + String c1 = getName(); + String c2 = other.getName(); + + return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/ExternalSystemAccess.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/ExternalSystemAccess.java new file mode 100644 index 00000000..29b4fe35 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/ExternalSystemAccess.java @@ -0,0 +1,67 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +public class ExternalSystemAccess { + + private String key; + private Boolean accessValue; + + public ExternalSystemAccess(String key, Boolean accessValue){ + this.key = key; + this.accessValue = accessValue; + } + + public String getKey() { + return key; + } + public void setKey(String key) { + this.key = key; + } + + public Boolean getAccessValue() { + return accessValue; + } + + public void setAccessValue(Boolean accessValue) { + this.accessValue = accessValue; + } + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/FunctionalMenuItemWithAppID.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/FunctionalMenuItemWithAppID.java new file mode 100644 index 00000000..a9455d61 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/FunctionalMenuItemWithAppID.java @@ -0,0 +1,114 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Transient; +/*** + * + * This class is almost identical to org.openecomp.portalapp.portal.transport.FunctionalMenuItem + * The only difference is the appId field. In FunctionMenuItem, we used @Transient as an attribute, and we are using @Column in this class. + * In some sql queries, we need to have appId, but it's not a field in fn_menu_functional table. + * + * @author robertlo + * + */ +@Entity +public class FunctionalMenuItemWithAppID{ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) + @Column(name = "MENU_ID") + public Long menuId; + + @Column(name = "COLUMN_NUM") + public Integer column; + + @Column(name = "TEXT") + public String text; + + @Column(name = "PARENT_MENU_ID") + public Integer parentMenuId; + + @Column(name = "URL") + public String url; + + @Column(name="ACTIVE_YN") + public String active_yn; + + @Column(name="APP_ID") + public Integer appid; + + @Transient + public List roles; + + @Transient + public Boolean restrictedApp; + + public void normalize() { + if (this.column == null) + this.column = new Integer(1); + this.text = (this.text == null) ? "" : this.text.trim(); + if (this.parentMenuId == null) + this.parentMenuId = new Integer(-1); + this.url = (this.url == null) ? "" : this.url.trim(); + } + + @Override + public String toString() { + return "FunctionalMenuItem [menuId=" + menuId + ", column=" + column + ", text=" + text + ", parentMenuId=" + + parentMenuId + ", url=" + url + ", active_yn=" + active_yn + ", appid=" + appid + ", roles=" + roles + + ", restrictedApp=" + restrictedApp + "]"; + } + + public void setUrl(String url) { + this.url = url; + } + + public void setRestrictedApp(Boolean restrictedApp) { + this.restrictedApp = restrictedApp; + } +} + diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/GetAccessResult.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/GetAccessResult.java new file mode 100644 index 00000000..f64810d7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/GetAccessResult.java @@ -0,0 +1,132 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@Entity +@JsonInclude +public class GetAccessResult implements Serializable{ + + + private static final long serialVersionUID = 5239527705869613411L; + + @Id + @Column(name="row_id") + private String rowId; + + @Column(name="role_id") + private Long roleId; + + @Column(name="ecomp_function",nullable=true) + private String ecompFunction; + + @Column(name="app_name") + private String appName; + + @Column(name="app_mots_id",nullable=true) + private Integer appMotsId; + + @Column(name="role_name") + private String roleName; + + @Column(name="role_actv",nullable=true) + private String roleActive; + + + @Column(name="request_type",nullable=true) + private String reqType; + + + + public String getRowId() { + return rowId; + } + public void setRowId(String rowId) { + this.rowId = rowId; + } + public Long getRoleId() { + return roleId; + } + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + public String getEcompFunction() { + return ecompFunction; + } + public void setEcompFunction(String ecompFunction) { + this.ecompFunction = ecompFunction; + } + public String getAppName() { + return appName; + } + public void setAppName(String appName) { + this.appName = appName; + } + public Integer getAppMotsId() { + return appMotsId; + } + public void setAppMotsId(Integer appMotsId) { + this.appMotsId = appMotsId; + } + public String getRoleName() { + return roleName; + } + public void setRoleName(String roleName) { + this.roleName = roleName; + } + public String getRoleActive() { + return roleActive; + } + public void setRoleActive(String roleActive) { + this.roleActive = roleActive; + } + public String getReqType() { + return reqType; + } + public void setReqType(String reqType) { + this.reqType = reqType; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/GetAccessResultId.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/GetAccessResultId.java new file mode 100644 index 00000000..a9cd69a2 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/GetAccessResultId.java @@ -0,0 +1,82 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Id; + +public class GetAccessResultId implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @Column(name="ecomp_function") + private String ecompFunction; + + @Id + @Column(name="app_name") + private String appName; + + @Id + @Column(name="role_name") + private String roleName; + + public String getEcompFunction() { + return ecompFunction; + } + public void setEcompFunction(String ecompFunction) { + this.ecompFunction = ecompFunction; + } + public String getAppName() { + return appName; + } + public void setAppName(String appName) { + this.appName = appName; + } + public String getRoleName() { + return roleName; + } + public void setRoleName(String roleName) { + this.roleName = roleName; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/MicroserviceData.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/MicroserviceData.java new file mode 100644 index 00000000..a7129d58 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/MicroserviceData.java @@ -0,0 +1,164 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class MicroserviceData extends DomainVo { + + private static final long serialVersionUID = 1L; + + public MicroserviceData() { + + } + + private Long id; + + private String name; + + private String active; + + private String desc; + + private long appId; + + private String url; + + private String securityType; + + private String username; + + private String password; + + private List parameterList; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getActive() { + return active; + } + + public void setActive(String active) { + this.active = active; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public long getAppId() { + return appId; + } + + public void setAppId(long appId) { + this.appId = appId; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getSecurityType() { + return securityType; + } + + public void setSecurityType(String securityType) { + this.securityType = securityType; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public List getParameterList() { + return parameterList; + } + + public void setParameterList(List parameterList) { + this.parameterList = parameterList; + } + + @Override + public String toString() { + return "MicroserviceData [id=" + id + ", name=" + name + ", desc=" + desc + ", appId=" + appId + ", url=" + url + + ", securityType=" + securityType + ", username=" + username + ", password=" + password + + ", parameterList=" + parameterList + "]"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/MicroserviceParameter.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/MicroserviceParameter.java new file mode 100644 index 00000000..a761f754 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/MicroserviceParameter.java @@ -0,0 +1,96 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class MicroserviceParameter extends DomainVo { + + private static final long serialVersionUID = 1L; + + public MicroserviceParameter() { + + } + + private Long id; + + private long serviceId; + + private String para_key; + + private String para_value; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public long getServiceId() { + return serviceId; + } + + public void setServiceId(long serviceId) { + this.serviceId = serviceId; + } + + public String getPara_key() { + return para_key; + } + + public void setPara_key(String para_key) { + this.para_key = para_key; + } + + public String getPara_value() { + return para_value; + } + + public void setPara_value(String para_value) { + this.para_value = para_value; + } + + @Override + public String toString() { + return "MicroserviceParameter [id=" + id + ", serviceId=" + serviceId + ", para_key=" + para_key + + ", para_value=" + para_value + "]"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/PersUserAppSelection.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/PersUserAppSelection.java new file mode 100644 index 00000000..13e58dc0 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/PersUserAppSelection.java @@ -0,0 +1,133 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +/** + * Models a row in the table with personalization of user app selections. + */ +public class PersUserAppSelection extends DomainVo { + + private static final long serialVersionUID = 1545308654500121206L; + + private Long userId; + + private Long appId; + + private String statusCode; + + public PersUserAppSelection() {} + + /** + * Convenience constructor + * + * @param id + * @param userId + * @param appId + * @param statusCode + */ + public PersUserAppSelection(final Long id, final Long userId, final Long appId, final String statusCode) { + super.id = id; + this.userId = userId; + this.appId = appId; + this.statusCode = statusCode; + } + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getStatusCode() { + return statusCode; + } + + public void setStatusCode(String statusCode) { + this.statusCode = statusCode; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((appId == null) ? 0 : appId.hashCode()); + result = prime * result + ((statusCode == null) ? 0 : statusCode.hashCode()); + result = prime * result + ((userId == null) ? 0 : userId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + PersUserAppSelection other = (PersUserAppSelection) obj; + if (appId == null) { + if (other.appId != null) + return false; + } else if (!appId.equals(other.appId)) + return false; + if (statusCode == null) { + if (other.statusCode != null) + return false; + } else if (!statusCode.equals(other.statusCode)) + return false; + if (userId == null) { + if (other.userId != null) + return false; + } else if (!userId.equals(other.userId)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/PersUserWidgetSelection.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/PersUserWidgetSelection.java new file mode 100644 index 00000000..833934db --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/PersUserWidgetSelection.java @@ -0,0 +1,136 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +/** + * Models a row in the table with personalization of user widget selections. + */ +public class PersUserWidgetSelection extends DomainVo { + + /** + * + */ + private static final long serialVersionUID = -6547880514779039200L; + + private Long userId; + + private Long widgetId; + + private String statusCode; + + public PersUserWidgetSelection() {} + + /** + * Convenience constructor + * + * @param id + * @param userId + * @param widgetId + * @param statusCode + */ + public PersUserWidgetSelection(final Long id, final Long userId, final Long widgetId, final String statusCode) { + super.id = id; + this.userId = userId; + this.widgetId = widgetId; + this.statusCode = statusCode; + } + + public Long getWidgetId() { + return widgetId; + } + + public void setWidgetId(Long widgetId) { + this.widgetId = widgetId; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getStatusCode() { + return statusCode; + } + + public void setStatusCode(String statusCode) { + this.statusCode = statusCode; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((statusCode == null) ? 0 : statusCode.hashCode()); + result = prime * result + ((userId == null) ? 0 : userId.hashCode()); + result = prime * result + ((widgetId == null) ? 0 : widgetId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + PersUserWidgetSelection other = (PersUserWidgetSelection) obj; + if (statusCode == null) { + if (other.statusCode != null) + return false; + } else if (!statusCode.equals(other.statusCode)) + return false; + if (userId == null) { + if (other.userId != null) + return false; + } else if (!userId.equals(other.userId)) + return false; + if (widgetId == null) { + if (other.widgetId != null) + return false; + } else if (!widgetId.equals(other.widgetId)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/RoleApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/RoleApp.java new file mode 100644 index 00000000..1b52b8b1 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/RoleApp.java @@ -0,0 +1,132 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToMany; +import javax.persistence.ManyToOne; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +//@Entity +//@Table(name = "FN_ROLE") +public class RoleApp implements Serializable{ + private static final long serialVersionUID = 1L; + + //@Id + //@Column(name = "ROLE_ID") + //@GeneratedValue(strategy=GenerationType.AUTO) + private Long roleId; + + + //@Column(name = "ROLE_Name") + private String roleName; + + //@ManyToOne(fetch = FetchType.EAGER) + //@JoinColumn(name="APP_ID") + private App app; + + //@JsonIgnore + //@ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}, mappedBy="widgetRoles") + private Set widgets; + + /*@PreRemove + private void removeGroupsFromUsers() { + for (WidgetCatalog w : widgets) { + w.getWidgetRoles().remove(this); + } + }*/ + + /*@ManyToOne + @JoinColumn(name = "WIDGET_ID", nullable = false) + WidgetCatalog widgetCatalog;*/ + + //@JsonIgnore + //@ManyToMany(mappedBy = "widgetRoles") + //@ManyToMany(fetch = FetchType.EAGER, mappedBy = "widgetRoles") + //private Set widgets = new HashSet(); + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + public App getApp() { + return app; + } + + public void setApp(App app) { + this.app = app; + } + + + + public Set getWidgets() { + return widgets; + } + + public void setWidgets(Set widgets) { + this.widgets = widgets; + } + + @Override + public String toString() { + return "Role [roleId=" + roleId + ", roleName=" + roleName + ", app=" + app + "]"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/SharedContext.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/SharedContext.java new file mode 100644 index 00000000..ebfb2855 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/SharedContext.java @@ -0,0 +1,191 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.Date; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +/** + * A shared context is a key-value pair in a session. All shared-context objects + * should be dropped when a session is destroyed. Because there's always a + * chance of missing that event, this object notes its creation time so that it + * can be expired after a suitable time interval. + */ +@Entity +@Table(name = "fn_shared_context") +public class SharedContext extends DomainVo { + + // generated + private static final long serialVersionUID = 7287469622586677888L; + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + private Date create_time; + private String context_id; + private String ckey; + private String cvalue; + + /** + * Mandatory no-argument constructor + */ + public SharedContext() { + } + + /** + * Convenience constructor. The database ID and creation timestamp are + * populated when the object is added to the database. + * + * @param contextId + * context ID + * @param key + * context key + * @param value + * context value + */ + public SharedContext(final String contextId, final String key, final String value) { + this.context_id = contextId; + this.ckey = key; + this.cvalue = value; + } + + /** + * Gets the database row ID. + * + * @return Database row ID + */ + public Long getId() { + return id; + } + + /** + * Sets the database row ID. + * + * @param id + * database row ID + */ + public void setId(final Long id) { + this.id = id; + } + + /** + * Gets the creation time + * + * @return Creation time as a Date + */ + public Date getCreate_time() { + return create_time; + } + + /** + * Sets the creation time + * + * @param create_time + * Date + */ + public void setCreate_time(final Date create_time) { + this.create_time = create_time; + } + + /** + * Gets the context ID + * + * @return Context ID + */ + public String getContext_id() { + return context_id; + } + + /** + * Sets the context ID + * + * @param context_id + * String + */ + public void setContext_id(final String context_id) { + this.context_id = context_id; + } + + /** + * Gets the key of the key-value pair. Called ckey because "key" is a + * reserved word in Mysql. + * + * @return The key + */ + public String getCkey() { + return ckey; + } + + /** + * Sets the key of the key-value pair. + * + * @param ckey + * String + */ + public void setCkey(final String ckey) { + this.ckey = ckey; + } + + /** + * Gets the value of the key-value pair. Called cvalue because "value" is a + * reserved word in Mysql. + * + * @return value + */ + public String getCvalue() { + return cvalue; + } + + /** + * Sets the value of the key-value pair. + * + * @param cvalue + * value + */ + public void setCvalue(final String cvalue) { + this.cvalue = cvalue; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserIdRoleId.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserIdRoleId.java new file mode 100644 index 00000000..e267e925 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserIdRoleId.java @@ -0,0 +1,95 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class UserIdRoleId implements Serializable{ + + private static final long serialVersionUID = 1L; + + @Id + @Column(name="USER_ID") + private String user_Id; + + @Column(name="ROLE_ID") + private String roleId; + + @Column(name="ORG_USER_ID") + private String orgUserId; + + @Column(name="APP_ID") + private String appId; + + public String getUser_Id() { + return user_Id; + } + + public void setUser_Id(String id) { + this.user_Id = id; + } + + public String getRoleId() { + return roleId; + } + + public void setRoleId(String roleId) { + this.roleId = roleId; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getOrgUserId() { + return orgUserId; + } + + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserRole.java new file mode 100644 index 00000000..eda4eeef --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserRole.java @@ -0,0 +1,109 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class UserRole implements Serializable{ + private static final long serialVersionUID = 1L; + + + @Id + @Column(name="USER_ID") + private Long user_Id; + + @Id + @Column(name="ROLE_ID") + private Long roleId; + + @Column(name="ORG_USER_ID") + private String orgUserId; + + + @Column(name="FIRST_NAME") + private String firstName; + + @Column(name="LAST_NAME") + private String lastName; + + + @Column(name="ROLE_NAME") + private String roleName; + + public String getFirstName() { + return firstName; + } + public void setFirstName(String firstName) { + this.firstName = firstName; + } + public String getLastName() { + return lastName; + } + public void setLastName(String lastName) { + this.lastName = lastName; + } + public String getOrgUserId() { + return orgUserId; + } + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + public String getRoleName() { + return roleName; + } + public void setRoleName(String roleName) { + this.roleName = roleName; + } + public Long getUser_Id() { + return user_Id; + } + public void setUser_Id(Long user_Id) { + this.user_Id = user_Id; + } + public Long getRoleId() { + return roleId; + } + public void setRoleId(Long roleId) { + this.roleId = roleId; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserRoles.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserRoles.java new file mode 100644 index 00000000..0efaaea2 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/UserRoles.java @@ -0,0 +1,131 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalsdk.core.util.SystemProperties; + +public class UserRoles implements Serializable { + private static final long serialVersionUID = 1L; + + /* + private static final HashMap rolesDictionary; + // remove hard coded roles + static { + rolesDictionary = new HashMap(); + rolesDictionary.put(Long.valueOf(SystemProperties.getProperty(SystemProperties.SYS_ADMIN_ROLE_ID)).longValue(), "superAdmin"); + rolesDictionary.put(Long.valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ACCOUNT_ADMIN_ROLE_ID)).longValue(), "admin"); + } + */ + + public UserRoles(UserRole user) { + setOrgUserId(user.getOrgUserId()); + setFirstName(user.getFirstName()); + setLastName(user.getLastName()); + setGuestSession(user.getUser_Id()==-1 ? true : false); + + addRole(user.getRoleName()); + } + + public void addRole(String roleName) { + //String normalizedRole = normalizeRole(roleId); + if (!getRoles().contains(roleName)) { + this.roles.add(roleName); + } + } + + /* + public static String normalizeRole(Long role) { + String roleTranslated = rolesDictionary.get(role); + return roleTranslated == null ? "user" : roleTranslated; + } + */ + + private String orgUserId; + private String firstName; + private String lastName; + private boolean guestSession; + + // TODO: Make into set + private List roles = new ArrayList(); + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getOrgUserId() { + return orgUserId; + } + + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } + + public void setGuestSession(boolean guestSession) { + this.guestSession = guestSession; + } + + public boolean getGuestSession() { + return this.guestSession; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/Widget.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/Widget.java new file mode 100644 index 00000000..98cfd155 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/Widget.java @@ -0,0 +1,123 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.apache.commons.lang.StringUtils; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class Widget extends DomainVo { + + private static final long serialVersionUID = 1L; + + private String name; + + private Integer width; + + private Integer height; + + private String url; + + private Long appId; + + public Widget() { + // Attention!!! + // We set here all default values. We also place protection + // into setters for fields with default values. + // If we don't use such protection we are able to place null + // to these fields and save such fields into DB even if DB has + // default values for these fields. + this.name = ""; + this.width = new Integer(0); + this.height = new Integer(0); + this.url = ""; + } + + public String getName() { + return name; + } + + public void setName(String name) { + if (StringUtils.isEmpty(name)) { + name = ""; + } + this.name = name; + } + + public Integer getWidth() { + return width; + } + + public void setWidth(Integer width) { + if (width == null) { + width = new Integer(0); + } + this.width = width; + } + + public Integer getHeight() { + return height; + } + + public void setHeight(Integer height) { + if (height == null) { + height = new Integer(0); + } + this.height = height; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + if (StringUtils.isEmpty(url)) { + url = ""; + } + this.url = url; + } + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetCatalog.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetCatalog.java new file mode 100644 index 00000000..7ddb5a4a --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetCatalog.java @@ -0,0 +1,127 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.io.Serializable; +import java.util.Set; + +public class WidgetCatalog implements Serializable{ + + private static final long serialVersionUID = 1L; + + private long id; + + private String name; + + private String desc; + + private String fileLocation; + + private String allowAllUser; + + private Long serviceId; + + private String sortOrder; + + private String statusCode; + + private Set widgetRoles; + + public long getId() { + return id; + } + public void setId(long id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + public Long getServiceId() { + return serviceId; + } + public void setServiceId(Long serviceId) { + this.serviceId = serviceId; + } + public String getDesc() { + return desc; + } + public void setDesc(String desc) { + this.desc = desc; + } + public String getFileLocation() { + return fileLocation; + } + public void setFileLocation(String fileLocation) { + this.fileLocation = fileLocation; + } + + public String getAllowAllUser() { + return allowAllUser; + } + public void setAllowAllUser(String allowAllUser) { + this.allowAllUser = allowAllUser; + } + public Set getWidgetRoles() { + return widgetRoles; + } + public void setWidgetRoles(Set widgetRoles) { + this.widgetRoles = widgetRoles; + } + + public String getSortOrder() { + return sortOrder; + } + public void setSortOrder(String sortOrder) { + this.sortOrder = sortOrder; + } + public String getStatusCode() { + return statusCode; + } + public void setStatusCode(String statusCode) { + this.statusCode = statusCode; + } + @Override + public String toString() { + return "WidgetCatalog [id=" + id + ", name=" + name + ", desc=" + desc + ", fileLocation=" + fileLocation + + ", allowAllUser=" + allowAllUser + "]"; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetCatalogParameter.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetCatalogParameter.java new file mode 100644 index 00000000..2e5940ff --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetCatalogParameter.java @@ -0,0 +1,108 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +public class WidgetCatalogParameter extends DomainVo{ + + private static final long serialVersionUID = 1L; + + public WidgetCatalogParameter() { + + } + private Long id; + + private Long widgetId; + + private Long userId; + + private Long paramId; + + private String user_value; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getWidgetId() { + return widgetId; + } + + public void setWidgetId(Long widgetId) { + this.widgetId = widgetId; + } + + public String getUser_value() { + return user_value; + } + + public void setUser_value(String user_value) { + this.user_value = user_value; + } + + public Long getParamId() { + return paramId; + } + + public void setParamId(Long paramId) { + this.paramId = paramId; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + @Override + public String toString() { + return "WidgetCatalogParameter [id=" + id + ", widgetId=" + widgetId + ", userId=" + userId + ", paramId=" + + paramId + ", user_value=" + user_value + "]"; + } + + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetParameterResult.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetParameterResult.java new file mode 100644 index 00000000..0251c326 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetParameterResult.java @@ -0,0 +1,88 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +public class WidgetParameterResult { + + private Long param_id; + + private String param_key; + + private String user_value; + + private String default_value; + + public Long getParam_id() { + return param_id; + } + + public void setParam_id(Long param_id) { + this.param_id = param_id; + } + + public String getParam_key() { + return param_key; + } + + public void setParam_key(String param_key) { + this.param_key = param_key; + } + + public String getUser_value() { + return user_value; + } + + public void setUser_value(String user_value) { + this.user_value = user_value; + } + + public String getDefault_value() { + return default_value; + } + + public void setDefault_value(String default_value) { + this.default_value = default_value; + } + + @Override + public String toString() { + return "WidgetParameterResult [param_id=" + param_id + ", param_key=" + param_key + ", user_value=" + user_value + + ", default_value=" + default_value + "]"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetServiceHeaders.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetServiceHeaders.java new file mode 100644 index 00000000..e6360e5b --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/WidgetServiceHeaders.java @@ -0,0 +1,71 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.nio.charset.Charset; + +import org.apache.commons.codec.binary.Base64; +import org.springframework.http.HttpHeaders; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; + +public class WidgetServiceHeaders { + + private static HttpHeaders widgetHeaders; + + private WidgetServiceHeaders(){} + + public static HttpHeaders getInstance() throws Exception{ + if(null == widgetHeaders){ + return new HttpHeaders(){{ + + String username = EcompPortalUtils.getPropertyOrDefault("microservices.widget.username", "widget_user"); + String password = CipherUtil.decryptPKC(EcompPortalUtils.getPropertyOrDefault("microservices.widget.password", "widget_password")); + String auth = username + ":" + password; + byte[] encodedAuth = Base64.encodeBase64( + auth.getBytes(Charset.forName("US-ASCII")) ); + String authHeader = "Basic " + new String( encodedAuth ); + set( "Authorization", authHeader ); + } + }; + } + else + return widgetHeaders; + + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppCatalogItem.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppCatalogItem.java new file mode 100644 index 00000000..9701dd5d --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppCatalogItem.java @@ -0,0 +1,276 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.ecomp.model; + +import javax.persistence.Entity; +import javax.persistence.Id; + +import org.onap.portalsdk.core.domain.support.DomainVo; +import com.fasterxml.jackson.annotation.JsonInclude; + +/** + * This model of an application catalog entry has some EPApp fields plus + * additional fields to indicate access(ible) and select(ed) statuses. + */ +@Entity +@JsonInclude(JsonInclude.Include.NON_NULL) +public class AppCatalogItem extends DomainVo { + + private static final long serialVersionUID = 6619663784935017846L; + + @Id + private Long id; + private String name; + private String mlAppName; + private String imageUrl; + private String description; + private String notes; + private String url; + private String alternateUrl; + private Boolean restricted; + private Boolean open; + private Boolean access; + private Boolean select; + private Boolean pending; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getMlAppName() { + return mlAppName; + } + + public void setMlAppName(String mlAppName) { + this.mlAppName = mlAppName; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getAlternateUrl() { + return alternateUrl; + } + + public void setAlternateUrl(String alternateUrl) { + this.alternateUrl = alternateUrl; + } + + public Boolean getRestricted() { + return restricted; + } + + public void setRestricted(Boolean restricted) { + this.restricted = restricted; + } + + public Boolean getOpen() { + return open; + } + + public void setOpen(Boolean open) { + this.open = open; + } + + public Boolean getAccess() { + return access; + } + + public void setAccess(Boolean access) { + this.access = access; + } + + public Boolean getSelect() { + return select; + } + + public void setSelect(Boolean select) { + this.select = select; + } + + public Boolean getPending() { + return pending; + } + + public void setPending(Boolean pending) { + this.pending = pending; + } + + public static long getSerialversionuid() { + return serialVersionUID; + } + + @Override + public String toString() { + return "AppCatalogItem [id=" + id + ", name=" + name + ", access=" + access + ", select=" + select + + ", pending=" + pending + "]"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((access == null) ? 0 : access.hashCode()); + result = prime * result + ((alternateUrl == null) ? 0 : alternateUrl.hashCode()); + result = prime * result + ((description == null) ? 0 : description.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((imageUrl == null) ? 0 : imageUrl.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((notes == null) ? 0 : notes.hashCode()); + result = prime * result + ((open == null) ? 0 : open.hashCode()); + result = prime * result + ((pending == null) ? 0 : pending.hashCode()); + result = prime * result + ((restricted == null) ? 0 : restricted.hashCode()); + result = prime * result + ((select == null) ? 0 : select.hashCode()); + result = prime * result + ((url == null) ? 0 : url.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + AppCatalogItem other = (AppCatalogItem) obj; + if (access == null) { + if (other.access != null) + return false; + } else if (!access.equals(other.access)) + return false; + if (alternateUrl == null) { + if (other.alternateUrl != null) + return false; + } else if (!alternateUrl.equals(other.alternateUrl)) + return false; + if (description == null) { + if (other.description != null) + return false; + } else if (!description.equals(other.description)) + return false; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + if (imageUrl == null) { + if (other.imageUrl != null) + return false; + } else if (!imageUrl.equals(other.imageUrl)) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (notes == null) { + if (other.notes != null) + return false; + } else if (!notes.equals(other.notes)) + return false; + if (open == null) { + if (other.open != null) + return false; + } else if (!open.equals(other.open)) + return false; + if (pending == null) { + if (other.pending != null) + return false; + } else if (!pending.equals(other.pending)) + return false; + if (restricted == null) { + if (other.restricted != null) + return false; + } else if (!restricted.equals(other.restricted)) + return false; + if (select == null) { + if (other.select != null) + return false; + } else if (!select.equals(other.select)) + return false; + if (url == null) { + if (other.url != null) + return false; + } else if (!url.equals(other.url)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppCategoryFunctionsItem.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppCategoryFunctionsItem.java new file mode 100644 index 00000000..d22c26d7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppCategoryFunctionsItem.java @@ -0,0 +1,158 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.ecomp.model; + +import javax.persistence.Entity; +import javax.persistence.Id; + +import org.onap.portalsdk.core.domain.support.DomainVo; +import com.fasterxml.jackson.annotation.JsonInclude; + +/** + * Carries row information for the functional table on the Contact Us page. + */ +@Entity +@JsonInclude(JsonInclude.Include.NON_NULL) +public class AppCategoryFunctionsItem extends DomainVo { + + private static final long serialVersionUID = -1573834082471206458L; + + @Id + private String rowId; + private String appId; + private String application; + private String category; + private String functions; + + public String getRowId() { + return rowId; + } + + public void setRowId(String rowId) { + this.rowId = rowId; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getApplication() { + return application; + } + + public void setApplication(String appName) { + this.application = appName; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getFunctions() { + return functions; + } + + public void setFunctions(String functions) { + this.functions = functions; + } + + @Override + public String toString() { + return "AppCategoryFunctionsItem [rowId=" + rowId + ", appId=" + appId + ", application=" + application + + ", category=" + category + ", functions=" + functions + "]"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((appId == null) ? 0 : appId.hashCode()); + result = prime * result + ((application == null) ? 0 : application.hashCode()); + result = prime * result + ((category == null) ? 0 : category.hashCode()); + result = prime * result + ((functions == null) ? 0 : functions.hashCode()); + result = prime * result + ((rowId == null) ? 0 : rowId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + AppCategoryFunctionsItem other = (AppCategoryFunctionsItem) obj; + if (appId == null) { + if (other.appId != null) + return false; + } else if (!appId.equals(other.appId)) + return false; + if (application == null) { + if (other.application != null) + return false; + } else if (!application.equals(other.application)) + return false; + if (category == null) { + if (other.category != null) + return false; + } else if (!category.equals(other.category)) + return false; + if (functions == null) { + if (other.functions != null) + return false; + } else if (!functions.equals(other.functions)) + return false; + if (rowId == null) { + if (other.rowId != null) + return false; + } else if (!rowId.equals(other.rowId)) + return false; + return true; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppContactUsItem.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppContactUsItem.java new file mode 100644 index 00000000..9afde2b9 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/AppContactUsItem.java @@ -0,0 +1,189 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.ecomp.model; + +import javax.persistence.Entity; +import javax.persistence.Id; + +import org.onap.portalsdk.core.domain.support.DomainVo; +import com.fasterxml.jackson.annotation.JsonInclude; + +/** + * An easily serializable version of row information from the fn_app_contact_us + * table; specifically this has an app ID instead of an EPApp object. + */ +@Entity +@JsonInclude(JsonInclude.Include.NON_NULL) +public class AppContactUsItem extends DomainVo { + + private static final long serialVersionUID = 6964210807573346262L; + + @Id + private Long appId; + private String appName; + private String description; + private String contactName; + private String contactEmail; + private String url; + private String activeYN; + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getContactName() { + return contactName; + } + + public void setContactName(String contactName) { + this.contactName = contactName; + } + + public String getContactEmail() { + return contactEmail; + } + + public void setContactEmail(String contactEmail) { + this.contactEmail = contactEmail; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getActiveYN() { + return activeYN; + } + + public void setActiveYN(String activeYN) { + this.activeYN = activeYN; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((activeYN == null) ? 0 : activeYN.hashCode()); + result = prime * result + ((appId == null) ? 0 : appId.hashCode()); + result = prime * result + ((appName == null) ? 0 : appName.hashCode()); + result = prime * result + ((contactEmail == null) ? 0 : contactEmail.hashCode()); + result = prime * result + ((contactName == null) ? 0 : contactName.hashCode()); + result = prime * result + ((description == null) ? 0 : description.hashCode()); + result = prime * result + ((url == null) ? 0 : url.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + AppContactUsItem other = (AppContactUsItem) obj; + if (activeYN == null) { + if (other.activeYN != null) + return false; + } else if (!activeYN.equals(other.activeYN)) + return false; + if (appId == null) { + if (other.appId != null) + return false; + } else if (!appId.equals(other.appId)) + return false; + if (appName == null) { + if (other.appName != null) + return false; + } else if (!appName.equals(other.appName)) + return false; + if (contactEmail == null) { + if (other.contactEmail != null) + return false; + } else if (!contactEmail.equals(other.contactEmail)) + return false; + if (contactName == null) { + if (other.contactName != null) + return false; + } else if (!contactName.equals(other.contactName)) + return false; + if (description == null) { + if (other.description != null) + return false; + } else if (!description.equals(other.description)) + return false; + if (url == null) { + if (other.url != null) + return false; + } else if (!url.equals(other.url)) + return false; + return true; + } + + @Override + public String toString() { + return "AppContactUsItem [appId=" + appId + ", appName=" + appName + ", description=" + description + + ", contactName=" + contactName + ", contactEmail=" + contactEmail + ", url=" + url + ", activeYN=" + + activeYN + "]"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/CommonWidgetsEnum.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/CommonWidgetsEnum.java new file mode 100644 index 00000000..43079a77 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/CommonWidgetsEnum.java @@ -0,0 +1,54 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.ecomp.model; + +public enum CommonWidgetsEnum{ + NEWS("news"), + EVENTS("events"), + RESOURCES("resources"); + + private String value; + private CommonWidgetsEnum(String value){ + this.value = value; + } + + @Override + public String toString() { + return value; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/PortalRestResponse.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/PortalRestResponse.java new file mode 100644 index 00000000..7d1f432e --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/PortalRestResponse.java @@ -0,0 +1,119 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.ecomp.model; + +public class PortalRestResponse { + + private PortalRestStatusEnum status; + private String message; + + private T response; + + public PortalRestResponse(){}; + + public PortalRestResponse(PortalRestStatusEnum status, String message, T response){ + this.status = status; + this.message = message; + this.response = response; + } + + public PortalRestStatusEnum getStatus() { + return status; + } + + public void setStatus(PortalRestStatusEnum status) { + this.status = status; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public T getResponse() { + return response; + } + + public void setResponse(T response) { + this.response = response; + } + + @Override + public String toString() { + return "PortalRestResponse [status=" + status + ", message=" + message + ", response=" + response + "]"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((message == null) ? 0 : message.hashCode()); + result = prime * result + ((response == null) ? 0 : response.hashCode()); + result = prime * result + ((status == null) ? 0 : status.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + PortalRestResponse other = (PortalRestResponse) obj; + if (message == null) { + if (other.message != null) + return false; + } else if (!message.equals(other.message)) + return false; + if (response == null) { + if (other.response != null) + return false; + } else if (!response.equals(other.response)) + return false; + if (status != other.status) + return false; + return true; + }; + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/PortalRestStatusEnum.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/PortalRestStatusEnum.java new file mode 100644 index 00000000..5989ff8c --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/PortalRestStatusEnum.java @@ -0,0 +1,54 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.ecomp.model; + +public enum PortalRestStatusEnum{ + OK("ok"), + WARN("WARNING"), + ERROR("error"); + + private String value; + private PortalRestStatusEnum(String value){ + this.value = value; + } + + @Override + public String toString() { + return value; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/SearchResultItem.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/SearchResultItem.java new file mode 100644 index 00000000..6a62543e --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ecomp/model/SearchResultItem.java @@ -0,0 +1,104 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.ecomp.model; + +import javax.persistence.Entity; +import javax.persistence.Id; + +import org.onap.portalsdk.core.domain.support.DomainVo; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@Entity +@JsonInclude(JsonInclude.Include.NON_NULL) +public class SearchResultItem extends DomainVo{ + + @Id + private String rowId; + + @JsonProperty("category") + private String category; + + @JsonProperty("name") + private String name; + + @JsonProperty("target") + private String target; + + @JsonProperty("uuid") + private String uuid; + + public String getUuid() { + return uuid; + } + public void setUuid(String uuid) { + this.uuid = uuid; + } + public String getRowId() { + return rowId; + } + public void setRowId(String rowId) { + this.rowId = rowId; + } + public String getCategory() { + return category; + } + public void setCategory(String category) { + this.category = category; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + public String getTarget() { + return target; + } + public void setTarget(String target) { + this.target = target; + } + @Override + public String toString() { + return "SearchResultItem [rowId=" + rowId + ", category=" + category + ", name=" + name + ", target=" + target + + ", uuid=" + uuid + "]"; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/DeleteDomainObjectFailedException.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/DeleteDomainObjectFailedException.java new file mode 100644 index 00000000..420184f0 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/DeleteDomainObjectFailedException.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.exceptions; + +public class DeleteDomainObjectFailedException extends Exception{ + + private static final long serialVersionUID = -4591508985449251121L; + + public DeleteDomainObjectFailedException(String msg) { + super(msg); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/DuplicateRecordException.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/DuplicateRecordException.java new file mode 100644 index 00000000..1f279f40 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/DuplicateRecordException.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.exceptions; + +public class DuplicateRecordException extends Exception{ + + private static final long serialVersionUID = 2759542750310357001L; + + public DuplicateRecordException(String msg) { + super(msg); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/ExternalAuthSystemException.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/ExternalAuthSystemException.java new file mode 100644 index 00000000..1c17c2c0 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/ExternalAuthSystemException.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.exceptions; + +public class ExternalAuthSystemException extends Exception { + + private static final long serialVersionUID = -4576754924998287267L; + + public ExternalAuthSystemException(String msg) { + super(msg); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InactiveApplicationException.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InactiveApplicationException.java new file mode 100644 index 00000000..8a7d70c5 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InactiveApplicationException.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.exceptions; + +public class InactiveApplicationException extends Exception{ + + private static final long serialVersionUID = -4641226040102977745L; + + public InactiveApplicationException(String msg) { + super(msg); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidApplicationException.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidApplicationException.java new file mode 100644 index 00000000..d48e60f6 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidApplicationException.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.exceptions; + +public class InvalidApplicationException extends Exception{ + + private static final long serialVersionUID = -5454293609563606255L; + + public InvalidApplicationException(String msg) { + super(msg); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidRoleException.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidRoleException.java new file mode 100644 index 00000000..bf19f4a5 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidRoleException.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.exceptions; + +public class InvalidRoleException extends Exception{ + + private static final long serialVersionUID = -7453145846850741282L; + + public InvalidRoleException(String message){ + super(message); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidUserException.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidUserException.java new file mode 100644 index 00000000..00650108 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/InvalidUserException.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.exceptions; + +public class InvalidUserException extends Exception{ + + private static final long serialVersionUID = 273572212076653743L; + + public InvalidUserException(String msg) { + super(msg); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/NoHealthyServiceException.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/NoHealthyServiceException.java new file mode 100644 index 00000000..d210b415 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/NoHealthyServiceException.java @@ -0,0 +1,54 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.exceptions; + +import com.ecwid.consul.ConsulException; + +public class NoHealthyServiceException extends ConsulException{ + + private static final long serialVersionUID = -7089437673127729813L; + + public NoHealthyServiceException(String message){ + super(message); + } + + @Override + public String toString() { + return "NoHealthyServiceException [] " + this.getMessage(); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/NonCentralizedAppException.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/NonCentralizedAppException.java new file mode 100644 index 00000000..4bfde355 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/NonCentralizedAppException.java @@ -0,0 +1,56 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.exceptions; + +public class NonCentralizedAppException extends Exception { + + String appName; + + private static final long serialVersionUID = 1L; + + public NonCentralizedAppException(String name) { + this.appName= name; + } + + @Override + public String toString() { + return appName + " is not Centralized Application"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/RoleFunctionException.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/RoleFunctionException.java new file mode 100644 index 00000000..b189ca47 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/RoleFunctionException.java @@ -0,0 +1,53 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.exceptions; + +import org.apache.commons.codec.DecoderException; + +public class RoleFunctionException extends Exception{ + + /** + * + */ + private static final long serialVersionUID = -3280548136475923423L; + + public RoleFunctionException(String msg, DecoderException e) { + super(msg,e); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/SecurityVulnerabilitiesException.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/SecurityVulnerabilitiesException.java new file mode 100644 index 00000000..8fffbc39 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/exceptions/SecurityVulnerabilitiesException.java @@ -0,0 +1,45 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.exceptions; + +@SuppressWarnings("serial") +public class SecurityVulnerabilitiesException extends Exception { + SecurityVulnerabilitiesException(String msg) { + super(msg); + } + } \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/interceptor/PortalResourceInterceptor.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/interceptor/PortalResourceInterceptor.java new file mode 100644 index 00000000..5d2f399b --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/interceptor/PortalResourceInterceptor.java @@ -0,0 +1,369 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.interceptor; + +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Base64; +import java.util.List; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.codec.binary.Hex; +import org.onap.portalapp.controller.sessionmgt.SessionCommunicationController; +import org.onap.portalapp.portal.controller.BasicAuthenticationController; +import org.onap.portalapp.portal.controller.ExternalAppsRestfulController; +import org.onap.portalapp.portal.controller.SharedContextRestController; +import org.onap.portalapp.portal.controller.WebAnalyticsExtAppController; +import org.onap.portalapp.portal.domain.BasicAuthCredentials; +import org.onap.portalapp.portal.domain.EPEndpoint; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.aop.EPEELFLoggerAdvice; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.service.BasicAuthenticationCredentialService; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.service.RemoteWebServiceCallService; +import org.onap.portalapp.service.sessionmgt.ManageService; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.controller.FusionBaseController; +import org.onap.portalsdk.core.exception.UrlAccessRestrictedException; +import org.onap.portalsdk.core.interceptor.ResourceInterceptor; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.listener.PortalTimeoutHandler; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.util.SystemProperties.SecurityEventTypeEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.method.HandlerMethod; + +public class PortalResourceInterceptor extends ResourceInterceptor { + private static final String APP_KEY = "uebkey"; + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PortalResourceInterceptor.class); + + @Autowired + private RemoteWebServiceCallService remoteWebServiceCallService; + + @Autowired + private ManageService manageService; + + @Autowired + private EPEELFLoggerAdvice epAdvice; + + @Autowired + private BasicAuthenticationCredentialService basicAuthService; + + @SuppressWarnings("unchecked") + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) + throws Exception { + + if (handler instanceof HandlerMethod) { + HandlerMethod method = (HandlerMethod) handler; + + /** + * These classes provide REST endpoints used by other application + * servers, NOT by an end user's browser. + */ + if (method.getBean() instanceof FusionBaseController) { + FusionBaseController controller = (FusionBaseController) method.getBean(); + if (!controller.isAccessible()) { + + // authorize portalApi requests by user role + String requestURI = request.getRequestURI(); + if (requestURI != null) { + String[] uriArray = requestURI.split("/portalApi/"); + if (uriArray.length > 1) { + String portalApiPath = uriArray[1]; + + Set roleFunctions = (Set) request.getSession() + .getAttribute(SystemProperties + .getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME)); + Set allRoleFunctions = (Set) request.getSession() + .getAttribute(EPUserUtils.ALL_ROLE_FUNCTIONS); + // Defend against code error to avoid throwing NPE + if (roleFunctions == null || allRoleFunctions == null) { + logger.error(EELFLoggerDelegate.errorLogger, + "preHandle: failed to get role functions attribute(s) from session!!"); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInitializationError); + return false; + } + // check to see if roleFunctions of the user is in + // the + // list of all role functions + // if not, ignore to prevent restricting every + // trivial + // call; otherwise, if it is, then check for the + // access + if (matchRoleFunctions(portalApiPath, allRoleFunctions) + && !matchRoleFunctions(portalApiPath, roleFunctions)) { + EPUser user = (EPUser) request.getSession().getAttribute( + SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME)); + logger.error(EELFLoggerDelegate.errorLogger, + "preHandle: User {} not authorized for path {} ", user.getOrgUserId(), + portalApiPath); + EcompPortalUtils.setBadPermissions(user, response, portalApiPath); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError); + return false; + } // failed to match + + } // is portalApi + + } // requestURI + } // instance check + } // not accessible + else if (method.getBean() instanceof BasicAuthenticationController) { + return checkBasicAuth(request, response); + } + Object controllerObj = method.getBean(); + if (controllerObj instanceof SessionCommunicationController + || controllerObj instanceof SharedContextRestController + || controllerObj instanceof ExternalAppsRestfulController) { + // check user authentication for RESTful calls + String secretKey = null; + try { + epAdvice.loadServletRequestBasedDefaults(request, SecurityEventTypeEnum.INCOMING_REST_MESSAGE); + if (!remoteWebServiceCallService.verifyRESTCredential(secretKey, request.getHeader(APP_KEY), + request.getHeader("username"), request.getHeader("password"))) { + throw new UrlAccessRestrictedException(); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "preHandle: failed to authenticate RESTful service", + e); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError, e); + throw new UrlAccessRestrictedException(); + } + } + + if (controllerObj instanceof WebAnalyticsExtAppController) { + if (!remoteWebServiceCallService.verifyAppKeyCredential(request.getHeader(APP_KEY))) { + logger.error(EELFLoggerDelegate.errorLogger, + "preHandle: failed to verify app key for web analytics call"); + throw new UrlAccessRestrictedException(); + } + } + } + + handleSessionUpdates(request); + return true; + } + + /** + * Sets the status code and sends a response. Factors code out of many + * methods. + * + * @param response + * HttpServletResponse + * @param statusCode + * HTTP status code like 404 + * @param message + * Message to send in a JSON error object + */ + private void sendErrorResponse(HttpServletResponse response, final int statusCode, final String message) + throws Exception { + response.setStatus(statusCode); + response.setContentType("application/json"); + response.getWriter().write("{\"error\":\"" + message + "\"}"); + response.getWriter().flush(); + } + + /** + * Gets HTTP basic authentication information from the request and checks + * whether those credentials are authorized for the request path. + * + * @param request + * HttpServletRequest + * @param response + * HttpServletResponse + * @return True if the request is authorized, else false + * @throws Exception + */ + private boolean checkBasicAuth(HttpServletRequest request, HttpServletResponse response) throws Exception { + String uri = request.getRequestURI().toString(); + uri = uri.substring(uri.indexOf("/", 1)); + + final String authHeader = request.getHeader("Authorization"); + + // Unauthorized access due to missing HTTP Authorization request header + if (authHeader == null) { + final String msg = "no authorization found"; + logger.debug(EELFLoggerDelegate.debugLogger, "checkBasicAuth: {}", msg); + sendErrorResponse(response, HttpServletResponse.SC_UNAUTHORIZED, msg); + return false; + } + + String[] accountNamePassword = getUserNamePassword(authHeader); + if (accountNamePassword == null || accountNamePassword.length != 2) { + final String msg = "failed to get username and password from Atuhorization header"; + logger.debug(EELFLoggerDelegate.debugLogger, "checkBasicAuth: {}", msg); + sendErrorResponse(response, HttpServletResponse.SC_UNAUTHORIZED, msg); + return false; + } + + BasicAuthCredentials creds; + try { + creds = basicAuthService.getBasicAuthCredentialByUsernameAndPassword(accountNamePassword[0], + encrypted(accountNamePassword[1])); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "checkBasicAuth failed to get credentials", e); + final String msg = "Failed while getting basic authentication credential: "; + sendErrorResponse(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, msg); + throw e; + } + + // Unauthorized access due to invalid credentials (username and + // password) + if (creds == null || !creds.getUsername().equals(accountNamePassword[0])) { + final String msg = "Unauthorized: Access denied"; + logger.debug(EELFLoggerDelegate.debugLogger, "checkBasicAuth: {}", msg); + sendErrorResponse(response, HttpServletResponse.SC_UNAUTHORIZED, msg); + return false; + } + + // Unauthorized access due to inactive account + if (creds.getIsActive().equals("N")) { + final String msg = "Unauthorized: The account is inactive"; + logger.debug(EELFLoggerDelegate.debugLogger, "checkBasicAuth: {}", msg); + sendErrorResponse(response, HttpServletResponse.SC_UNAUTHORIZED, msg); + return false; + } + boolean isAllowedEp = false; + for (EPEndpoint ep : creds.getEndpoints()) { + if (ep.getName().equals(uri)) { + isAllowedEp = true; + break; + } + } + + // If user doesn't specify any endpoint, allow all endpoints for that + // account + if (creds.getEndpoints().size() == 0) + isAllowedEp = true; + + // Unauthorized access due to the invalid endpoints + if (!isAllowedEp) { + final String msg = "Unauthorized: Endpoint access denied"; + logger.debug(EELFLoggerDelegate.debugLogger, "checkBasicAuth: {}", msg); + sendErrorResponse(response, HttpServletResponse.SC_UNAUTHORIZED, msg); + return false; + } + + // Made it to the end! + return true; + } + + private String[] getUserNamePassword(String authValue) { + String base64Credentials = authValue.substring("Basic".length()).trim(); + String credentials = new String(Base64.getDecoder().decode(base64Credentials), Charset.forName("UTF-8")); + final String[] values = credentials.split(":", 2); + return values; + } + + @SuppressWarnings("unused") + private String decrypted(String encrypted) throws Exception { + String result = ""; + if (encrypted != null & encrypted.length() > 0) { + try { + result = CipherUtil.decryptPKC(encrypted, SystemProperties.getProperty(SystemProperties.Decryption_Key)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword failed", e); + throw e; + } + } + return result; + } + + private String encrypted(String decryptedPwd) throws Exception { + String result = ""; + if (decryptedPwd != null & decryptedPwd.length() > 0) { + try { + result = CipherUtil.encryptPKC(decryptedPwd, + SystemProperties.getProperty(SystemProperties.Decryption_Key)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "encryptedPassword() failed", e); + throw e; + } + } + return result; + } + + private Boolean matchRoleFunctions(String portalApiPath, Set roleFunctions) { + String[] path = portalApiPath.split("/"); + List roleFunList = new ArrayList<>(); + if (path.length > 1) { + roleFunList = roleFunctions.stream().filter(item -> item.startsWith(path[0])).collect(Collectors.toList()); + if (roleFunList.size() >= 1) { + for (String roleFunction : roleFunList) { + String[] roleFunctionArray = roleFunction.split("/"); + boolean b = true; + if (roleFunctionArray.length == path.length) { + for (int i = 0; i < roleFunctionArray.length; i++) { + if (b) { + if (!roleFunctionArray[i].equals("*")) { + Pattern p = Pattern.compile(Pattern.quote(path[i]), Pattern.CASE_INSENSITIVE); + Matcher m = p.matcher(roleFunctionArray[i]); + b = m.matches(); + + } + } + } + if (b) + return b; + } + } + } + } else { + for (String roleFunction : roleFunctions) { + if (portalApiPath.matches(roleFunction)) + return true; + } + } + return false; + } + + protected void handleSessionUpdates(HttpServletRequest request) { + PortalTimeoutHandler.handleSessionUpdatesNative(request, null, null, null, null, manageService); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/HealthMonitor.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/HealthMonitor.java new file mode 100644 index 00000000..0bc5c4c8 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/HealthMonitor.java @@ -0,0 +1,364 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.listener; + +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; + +import org.hibernate.Query; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.ueb.EPUebHelper; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.transaction.annotation.Transactional; + +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class HealthMonitor { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(HealthMonitor.class); + + @Autowired + private SessionFactory sessionFactory; + + @Autowired + private EPUebHelper epUebHelper; + + private static boolean databaseUp; + private static boolean uebUp; + private static boolean frontEndUp; + private static boolean backEndUp; + private static boolean dbClusterStatusOk; + private static boolean dbPermissionsOk; + + /** + * Read directly by external classes. + */ + public static boolean isSuspended = false; + + private Thread healthMonitorThread; + + public HealthMonitor() { + } + + public static boolean isDatabaseUp() { + return databaseUp; + } + + public static boolean isClusterStatusOk() { + return dbClusterStatusOk; + } + + public static boolean isDatabasePermissionsOk() { + return dbPermissionsOk; + } + + public static boolean isUebUp() { + return uebUp; + } + + public static boolean isFrontEndUp() { + return frontEndUp; + } + + public static boolean isBackEndUp() { + return backEndUp; + } + + private void monitorEPHealth() throws InterruptedException { + + int numIntervalsDatabaseHasBeenDown = 0; + int numIntervalsClusterNotHealthy = 0; + int numIntervalsDatabasePermissionsIncorrect = 0; + int numIntervalsUebHasBeenDown = 0; + + logger.debug(EELFLoggerDelegate.debugLogger, "monitorEPHealth thread started"); + + long sleepInterval = (Long + .valueOf(SystemProperties.getProperty(EPCommonSystemProperties.HEALTH_POLL_INTERVAL_SECONDS)) * 1000); + long numIntervalsBetweenAlerts = Long + .valueOf(SystemProperties.getProperty(EPCommonSystemProperties.HEALTHFAIL_ALERT_EVERY_X_INTERVALS)); + logger.debug(EELFLoggerDelegate.debugLogger, + "monitorEPHealth: Polling health every " + sleepInterval + " milliseconds. Alerting every " + + (sleepInterval * numIntervalsBetweenAlerts) / 1000 + " seconds when component remains down."); + + while (true) { + // + // Get DB status. If down, signal alert once every X intervals. + // + databaseUp = this.checkIfDatabaseUp(); + if (databaseUp == false) { + if ((numIntervalsDatabaseHasBeenDown % numIntervalsBetweenAlerts) == 0) { + logger.debug(EELFLoggerDelegate.debugLogger, + "monitorEPHealth: database down, logging to error log to trigger alert."); + // Write a Log entry that will generate an alert + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckMySqlError); + numIntervalsDatabaseHasBeenDown++; + } else { + numIntervalsDatabaseHasBeenDown = 0; + } + } + + dbClusterStatusOk = this.checkClusterStatus(); + if (dbClusterStatusOk == false) { + if ((numIntervalsClusterNotHealthy % numIntervalsBetweenAlerts) == 0) { + logger.debug(EELFLoggerDelegate.debugLogger, + "monitorEPHealth: cluster nodes down, logging to error log to trigger alert."); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckMySqlError); + numIntervalsClusterNotHealthy++; + } else { + numIntervalsClusterNotHealthy = 0; + } + } + + dbPermissionsOk = this.checkDatabasePermissions(); + if (dbPermissionsOk == false) { + if ((numIntervalsDatabasePermissionsIncorrect % numIntervalsBetweenAlerts) == 0) { + logger.debug(EELFLoggerDelegate.debugLogger, + "monitorEPHealth: database permissions incorrect, logging to error log to trigger alert."); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckMySqlError); + numIntervalsDatabasePermissionsIncorrect++; + } else { + numIntervalsDatabasePermissionsIncorrect = 0; + } + } + + // + // Get UEB status. Publish a bogus message to EP inbox, if 200 OK + // returned, status is Up. + // If down, signal alert once every X intervals. + // EP will ignore this bogus message. + // + uebUp = this.checkIfUebUp(); + if (uebUp == false) { + + if ((numIntervalsUebHasBeenDown % numIntervalsBetweenAlerts) == 0) { + logger.debug(EELFLoggerDelegate.debugLogger, + "monitorEPHealth: UEB down, logging to error log to trigger alert"); + // Write a Log entry that will generate an alert + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckUebClusterError); + numIntervalsUebHasBeenDown++; + } else { + numIntervalsUebHasBeenDown = 0; + } + } + + // The front end should be up because the API is called through + // proxy front end server. + frontEndUp = true; + + // If the rest API called, the backend is always up + backEndUp = true; + + // + // future nice to have...get Partner status + // + // For all apps exposing a rest url, query one of the rest + // urls(/roles?) and manage a list + // of app name/status. We might not return back a non 200 OK in + // health check, but we + // could return information in the json content of a health check. + // + + // + // Get DB status. If down, signal alert once every X intervals. + // + if (Thread.interrupted()) { + logger.info(EELFLoggerDelegate.errorLogger, "monitorEPHealth: thread interrupted"); + break; + } + + try { + Thread.sleep(sleepInterval); + } catch (InterruptedException e) { + logger.error(EELFLoggerDelegate.errorLogger, "monitorEPHealth: sleep interrupted", e); + Thread.currentThread().interrupt(); + } + } + } + + @PostConstruct + public void initHealthMonitor() { + healthMonitorThread = new Thread("EP HealthMonitor thread") { + public void run() { + try { + monitorEPHealth(); + } catch (InterruptedException e) { + logger.debug(EELFLoggerDelegate.debugLogger, "healthMonitorThread interrupted", e); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "healthMonitorThread failed", e); + } + } + }; + healthMonitorThread.start(); + + } + + @PreDestroy + public void closeHealthMonitor() { + this.healthMonitorThread.interrupt(); + } + + /** + * This routine checks whether the database can be read. In June 2017 we + * experimented with checking if the database can be WRITTEN. Writes failed + * with some regularity in a MariaDB Galera cluster, and in that + * environment, the resulting alerts in the log triggered a health monitor + * cron job to shut down the Tomcat instance. The root cause of the cluster + * write failures was not determined. + * + * @return true if the database can be read. + */ + private boolean checkIfDatabaseUp() { + boolean isUp = false; + Session localSession = null; + try { + localSession = sessionFactory.openSession(); + if (localSession != null) { + String sql = "select app_name from fn_app where app_id=1"; + Query query = localSession.createSQLQuery(sql); + @SuppressWarnings("unchecked") + List queryList = query.list(); + if (queryList != null) { + isUp = true; + } + } + } catch (Exception e) { + logger.debug(EELFLoggerDelegate.debugLogger, "checkIfDatabaseUp failed", e); + isUp = false; + } finally { + if (localSession != null) + localSession.close(); + } + return isUp; + } + + private boolean checkClusterStatus() { + boolean isUp = false; + Session localSession = null; + try { + localSession = sessionFactory.openSession(); + if (localSession != null) { + // If all nodes are unhealthy in a cluster, this will throw an + // exception + String sql = "select * from mysql.user"; + Query query = localSession.createSQLQuery(sql); + @SuppressWarnings("unchecked") + List queryList = query.list(); + if (queryList != null) { + isUp = true; + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "checkClusterStatus failed", e); + if ((e.getCause() != null) && (e.getCause().getMessage() != null)) { + logger.error(EELFLoggerDelegate.errorLogger, "checkClusterStatus failure cause", e.getCause()); + } + isUp = false; + } finally { + if (localSession != null) { + localSession.close(); + } + } + return isUp; + } + + private boolean checkDatabasePermissions() { + boolean isUp = false; + Session localSession = null; + try { + localSession = sessionFactory.openSession(); + if (localSession != null) { + String sql = "SHOW GRANTS FOR CURRENT_USER"; + Query query = localSession.createSQLQuery(sql); + @SuppressWarnings("unchecked") + List grantsList = query.list(); + for (String str : grantsList) { + if ((str.toUpperCase().contains("ALL")) + || (str.toUpperCase().contains("DELETE") && str.toUpperCase().contains("SELECT") + && str.toUpperCase().contains("UPDATE") && str.toUpperCase().contains("INSERT"))) { + isUp = true; + break; + } + } + if (isUp == false) { + logger.error(EELFLoggerDelegate.errorLogger, + "checkDatabasePermissions returning false. SHOW GRANTS FOR CURRENT_USER being dumped:"); + for (String str : grantsList) { + logger.error(EELFLoggerDelegate.errorLogger, "grants output item = [" + str + "]"); + } + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "checkDatabasePermissions failed", e); + if ((e.getCause() != null) && (e.getCause().getMessage() != null)) { + logger.error(EELFLoggerDelegate.errorLogger, "checkDatabasePermissions failure cause", e.getCause()); + } + isUp = false; + } finally { + if (localSession != null) { + localSession.close(); + } + } + return isUp; + } + + private boolean checkIfUebUp() { + boolean uebUp = false; + try { + boolean isAvailable = epUebHelper.checkAvailability(); + boolean messageCanBeSent = epUebHelper.MessageCanBeSentToTopic(); + uebUp = (isAvailable && messageCanBeSent); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "checkIfUebUp failed", e); + } + return uebUp; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/UserContextListener.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/UserContextListener.java new file mode 100644 index 00000000..2d0570f8 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/UserContextListener.java @@ -0,0 +1,69 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.listener; + +import java.util.HashMap; + +import javax.servlet.ServletContext; +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; +import javax.servlet.annotation.WebListener; + +@WebListener +public class UserContextListener implements ServletContextListener{ + @SuppressWarnings("rawtypes") + public void contextInitialized(ServletContextEvent event){ + ServletContext context = event.getServletContext(); + // + // instanciate a map to store references to all the active + // sessions and bind it to context scope. + // + HashMap activeUsers = new HashMap(); + context.setAttribute("activeUsers", activeUsers); + } + + /** + * Needed for the ServletContextListener interface. + */ + public void contextDestroyed(ServletContextEvent event){ + // To overcome the problem with losing the session references + // during server restarts, put code here to serialize the + // activeUsers HashMap. Then put code in the contextInitialized + // method that reads and reloads it if it exists... + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/UserSessionListener.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/UserSessionListener.java new file mode 100644 index 00000000..8633a415 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/listener/UserSessionListener.java @@ -0,0 +1,140 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.listener; + +import java.util.HashMap; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletContext; +import javax.servlet.annotation.WebListener; +import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpSessionEvent; +import javax.servlet.http.HttpSessionListener; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.service.SharedContextService; +import org.onap.portalsdk.core.domain.support.CollaborateList; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.util.StringUtils; + +/** + * Listens for session-create and session-destroy events. + */ +@WebListener +@SuppressWarnings({ "unchecked", "rawtypes" }) +public class UserSessionListener implements HttpSessionListener { + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserSessionListener.class); + + /** + * Access to the database + */ + @Autowired + SharedContextService sharedContextService; + + public void init(ServletConfig config) { + } + + /** + * Adds sessions to the context scoped HashMap when they begin. + */ + public void sessionCreated(HttpSessionEvent event) { + HttpSession session = event.getSession(); + ServletContext context = session.getServletContext(); + HashMap activeUsers = (HashMap) context.getAttribute("activeUsers"); + + activeUsers.put(session.getId(), session); + context.setAttribute("activeUsers", activeUsers); + logger.info(EELFLoggerDelegate.debugLogger, "Session Created : " + session.getId()); + } + + /** + * Removes sessions from the context scoped HashMap when they expire or are + * invalidated. + */ + public void sessionDestroyed(HttpSessionEvent event) { + try { + HttpSession session = event.getSession(); + ServletContext context = session.getServletContext(); + HashMap activeUsers = (HashMap) context.getAttribute("activeUsers"); + activeUsers.remove(session.getId()); + + EPUser user = (EPUser) session + .getAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME)); + if (user != null && !StringUtils.isEmpty(user.getOrgUserId())) { + CollaborateList.delUserName(user.getOrgUserId()); + } + + // Remove any shared context entries for this session. + if (getSharedContextService() != null) { + getSharedContextService().deleteSharedContexts(session.getId()); + + // Clean the shared context each time a session is destroyed. + // TODO: move the threshold to configuration file. + getSharedContextService().expireSharedContexts(60 * 60 * 8); + } + + logger.info(EELFLoggerDelegate.debugLogger, "Session Destroyed : " + session.getId()); + + } catch (Exception e) { + logger.warn(EELFLoggerDelegate.errorLogger, "sessionDestroyed failed", e); + } + } + + private static ApplicationContext applicationContext; + + public static void setApplicationContext(ApplicationContext _applicationContext) { + applicationContext = _applicationContext; + } + + public SharedContextService getSharedContextService() { + if (sharedContextService == null) { + if (applicationContext != null) + sharedContextService = (SharedContextService) applicationContext.getBean("sharedContextService"); + } + + return sharedContextService; + } + + public void setSharedContextService(SharedContextService sharedContextService) { + this.sharedContextService = sharedContextService; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPAuditLog.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPAuditLog.java new file mode 100644 index 00000000..8c72ed73 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPAuditLog.java @@ -0,0 +1,49 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.logging.aop; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface EPAuditLog { + String value() default ""; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPEELFLoggerAdvice.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPEELFLoggerAdvice.java new file mode 100644 index 00000000..11fb2fb5 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPEELFLoggerAdvice.java @@ -0,0 +1,400 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.logging.aop; + +import java.net.InetAddress; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.exception.SessionExpiredException; +import org.onap.portalsdk.core.logging.format.AlarmSeverityEnum; +import org.onap.portalsdk.core.logging.format.AuditLogFormatter; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.util.SystemProperties.SecurityEventTypeEnum; +import org.onap.portalsdk.core.web.support.UserUtils; +import org.slf4j.MDC; + +import com.att.eelf.configuration.Configuration; + +@org.springframework.context.annotation.Configuration +public class EPEELFLoggerAdvice { + + private EELFLoggerDelegate adviceLogger = EELFLoggerDelegate.getLogger(EPEELFLoggerAdvice.class); + + /** + * DateTime Format according to the ECOMP Application Logging Guidelines. + */ + + /** + * @return Current date and time in the format specified by the ECOMP + * Application Logging Guidelines. + */ + public static String getCurrentDateTimeUTC() { + SimpleDateFormat ecompLogDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); + String currentDateTime = ecompLogDateFormat.format(new Date()); + return currentDateTime; + } + + /** + * Sets logging context with values from HttpServletRequest object. + * + * @param req + * HttpServletRequest + * @param securityEventType + * SecurityEventTypeEnum + */ + public void loadServletRequestBasedDefaults(HttpServletRequest req, SecurityEventTypeEnum securityEventType) { + try { + setHttpRequestBasedDefaultsIntoGlobalLoggingContext(req, securityEventType, req.getServletPath()); + } catch (Exception e) { + adviceLogger.error(EELFLoggerDelegate.errorLogger, "loadServletRequestBasedDefaults failed", e); + } + } + + /** + * + * @param securityEventType + * @param args + * @param passOnArgs + * @return Object array + */ + public Object[] before(SecurityEventTypeEnum securityEventType, Object[] args, Object[] passOnArgs) { + String className = ""; + if (passOnArgs.length > 0 && passOnArgs[0] != null) + className = passOnArgs[0].toString(); + String methodName = ""; + if (passOnArgs.length > 1 && passOnArgs[1] != null) + methodName = passOnArgs[1].toString(); + + // Initialize Request defaults only for controller methods. + MDC.put(className + methodName + EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP, getCurrentDateTimeUTC()); + MDC.put(EPCommonSystemProperties.TARGET_ENTITY, EPCommonSystemProperties.ECOMP_PORTAL_BE); + MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, methodName); + if (MDC.get(Configuration.MDC_KEY_REQUEST_ID) == null){ + String requestId = UUID.randomUUID().toString(); + MDC.put(Configuration.MDC_KEY_REQUEST_ID, requestId); + } + MDC.put(EPCommonSystemProperties.PARTNER_NAME, "Unknown"); + MDC.put(Configuration.MDC_SERVICE_NAME, EPCommonSystemProperties.ECOMP_PORTAL_BE); + + if (securityEventType != null) { + MDC.put(className + methodName + EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, + getCurrentDateTimeUTC()); + HttpServletRequest req = null; + if (args.length > 0 && args[0] != null && args[0] instanceof HttpServletRequest) { + req = (HttpServletRequest) args[0]; + this.setHttpRequestBasedDefaultsIntoGlobalLoggingContext(req, securityEventType, methodName); + } + } + + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(className); + logger.debug(EELFLoggerDelegate.debugLogger, "EPEELFLoggerAdvice#before: entering {}", methodName); + return new Object[] { "" }; + } + + /** + * + * @param securityEventType + * @param statusCode + * @param responseCode + * @param args + * @param returnArgs + * @param passOnArgs + */ + public void after(SecurityEventTypeEnum securityEventType, String statusCode, String responseCode, Object[] args, + Object[] returnArgs, Object[] passOnArgs) { + String className = ""; + if (passOnArgs.length > 0 && passOnArgs[0] != null) + className = passOnArgs[0].toString(); + // Method Name + String methodName = ""; + if (passOnArgs.length > 1 && passOnArgs[1] != null) + methodName = passOnArgs[1].toString(); + + if (MDC.get(EPCommonSystemProperties.TARGET_SERVICE_NAME) == null + || MDC.get(EPCommonSystemProperties.TARGET_SERVICE_NAME) == "") + MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, methodName); + + if (MDC.get(EPCommonSystemProperties.TARGET_ENTITY) == null + || MDC.get(EPCommonSystemProperties.TARGET_ENTITY) == "") + MDC.put(EPCommonSystemProperties.TARGET_ENTITY, EPCommonSystemProperties.ECOMP_PORTAL_BE); + + MDC.put(EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP, + MDC.get(className + methodName + EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP)); + MDC.put(EPCommonSystemProperties.METRICSLOG_END_TIMESTAMP, getCurrentDateTimeUTC()); + this.calculateDateTimeDifference(MDC.get(EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.METRICSLOG_END_TIMESTAMP)); + + // Making sure to reload the INCOMING request MDC defaults if they have + // been wiped out by either Outgoing or LDAP Phone book search + // operations. + if (securityEventType != null && args.length > 0 && args[0] != null && args[0] instanceof HttpServletRequest + && securityEventType == SecurityEventTypeEnum.INCOMING_REST_MESSAGE + && (MDC.get(EPCommonSystemProperties.FULL_URL) == null + || MDC.get(EPCommonSystemProperties.FULL_URL) == "")) { + HttpServletRequest req = (HttpServletRequest) args[0]; + this.setHttpRequestBasedDefaultsIntoGlobalLoggingContext(req, securityEventType, methodName); + } + + // Use external API response code in case if it resulted in an error. + String externalAPIResponseCode = MDC.get(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE); + if (externalAPIResponseCode == null || externalAPIResponseCode == "" + || externalAPIResponseCode.trim().equalsIgnoreCase("200")) { + MDC.put(EPCommonSystemProperties.RESPONSE_CODE, responseCode); + MDC.put(EPCommonSystemProperties.STATUS_CODE, statusCode); + } else { + MDC.put(EPCommonSystemProperties.RESPONSE_CODE, externalAPIResponseCode); + MDC.put(EPCommonSystemProperties.STATUS_CODE, "ERROR"); + } + + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(className); + logger.debug(EELFLoggerDelegate.debugLogger, "EPEELFLoggerAdvice#after: finished {}", methodName); + // add the metrics log + logger.info(EELFLoggerDelegate.metricsLogger, methodName + " operation is completed."); + + // Log security message, if necessary + if (securityEventType != null) { + MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, + MDC.get(className + methodName + EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)); + MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, getCurrentDateTimeUTC()); + this.calculateDateTimeDifference(MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), + MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); + + this.logSecurityMessage(logger, securityEventType, methodName); + + // Outgoing & LDAP messages are part of Incoming requests so, + // keep "RequestId", "PartnerName", "ServiceName", "LoginId" & + // "ResponseCode" etc. in memory and remove it only when + // finished processing the parent incoming message. + if (securityEventType != SecurityEventTypeEnum.OUTGOING_REST_MESSAGE + && securityEventType != SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH) { + MDC.remove(Configuration.MDC_KEY_REQUEST_ID); + MDC.remove(EPCommonSystemProperties.PARTNER_NAME); + MDC.remove(Configuration.MDC_SERVICE_NAME); + MDC.remove(EPCommonSystemProperties.MDC_LOGIN_ID); + MDC.remove(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE); + }else{ + MDC.remove(Configuration.MDC_KEY_REQUEST_ID); + MDC.remove(EPCommonSystemProperties.PARTNER_NAME); + MDC.remove(Configuration.MDC_SERVICE_NAME); + } + + // clear when finishes audit logging + MDC.remove(EPCommonSystemProperties.FULL_URL); + MDC.remove(EPCommonSystemProperties.PROTOCOL); + MDC.remove(EPCommonSystemProperties.STATUS_CODE); + MDC.remove(className + methodName + EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.RESPONSE_CODE); + } + MDC.remove(className + methodName + EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.METRICSLOG_END_TIMESTAMP); + MDC.remove(EPCommonSystemProperties.MDC_TIMER); + MDC.remove(EPCommonSystemProperties.TARGET_ENTITY); + MDC.remove(EPCommonSystemProperties.TARGET_SERVICE_NAME); + + } + + /** + * + * @param logger + * @param securityEventType + * @param restMethod + */ + private void logSecurityMessage(EELFLoggerDelegate logger, SecurityEventTypeEnum securityEventType, + String restMethod) { + StringBuilder additionalInfoAppender = new StringBuilder(); + String auditMessage = ""; + + if (securityEventType == SecurityEventTypeEnum.OUTGOING_REST_MESSAGE) { + additionalInfoAppender.append(String.format("%s '%s' request was initiated.", restMethod, + MDC.get(EPCommonSystemProperties.TARGET_SERVICE_NAME))); + } else if (securityEventType == SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH) { + additionalInfoAppender.append("LDAP Phonebook search operation is performed."); + } else { + additionalInfoAppender.append(String.format("%s request was received.", restMethod)); + + if (securityEventType == SecurityEventTypeEnum.FE_LOGIN_ATTEMPT) { + String loginId = ""; + String additionalMessage = " Successfully authenticated."; + loginId = MDC.get(EPCommonSystemProperties.MDC_LOGIN_ID); + if (loginId == null || loginId == "" || loginId == EPCommonSystemProperties.UNKNOWN) { + additionalMessage = " No cookies are found."; + } + additionalInfoAppender.append(additionalMessage); + } else if (securityEventType == SecurityEventTypeEnum.FE_LOGOUT) { + additionalInfoAppender.append(" User has been successfully logged out."); + } + } + + String fullURL = MDC.get(EPCommonSystemProperties.FULL_URL); + if (fullURL != null && fullURL != "") { + additionalInfoAppender.append(" Request-URL:" + MDC.get(EPCommonSystemProperties.FULL_URL)); + } + + auditMessage = AuditLogFormatter.getInstance().createMessage(MDC.get(EPCommonSystemProperties.PROTOCOL), + securityEventType.name(), MDC.get(EPCommonSystemProperties.MDC_LOGIN_ID), + additionalInfoAppender.toString()); + + logger.info(EELFLoggerDelegate.auditLogger, auditMessage); + } + + /** + * + * @param req + * @param securityEventType + * @param restMethod + */ + private void setHttpRequestBasedDefaultsIntoGlobalLoggingContext(HttpServletRequest req, + SecurityEventTypeEnum securityEventType, String restMethod) { + /** + * No need to load the request based defaults for the following security + * messages since either they are initiated by the Portal BE or not Http + * request based. + */ + if (req != null) { + if (securityEventType != SecurityEventTypeEnum.OUTGOING_REST_MESSAGE + && securityEventType != SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH + && securityEventType != SecurityEventTypeEnum.INCOMING_UEB_MESSAGE) { + // Load the RequestID (aka TrasactionId) into MDC context. + String requestId = UserUtils.getRequestId(req); + if (requestId == null||requestId.trim().length()==0) { + requestId = UUID.randomUUID().toString(); + } + MDC.put(Configuration.MDC_KEY_REQUEST_ID, requestId); + + // Load user agent into MDC context, if available. + String accessingClient = "Unknown"; + accessingClient = req.getHeader(SystemProperties.USERAGENT_NAME); + if (accessingClient != null && accessingClient.trim().length()==0 && (accessingClient.contains("Mozilla") + || accessingClient.contains("Chrome") || accessingClient.contains("Safari"))) { + accessingClient = EPCommonSystemProperties.ECOMP_PORTAL_FE; + } + MDC.put(EPCommonSystemProperties.PARTNER_NAME, accessingClient); + + // Load loginId into MDC context. + EPUser user = null; + try { + user = EPUserUtils.getUserSession(req); + } catch (SessionExpiredException se) { + adviceLogger.debug(EELFLoggerDelegate.debugLogger, + "setHttpRequestBasedDefaultsIntoGlobalLoggingContext: No user found in session"); + } + + MDC.put(EPCommonSystemProperties.MDC_LOGIN_ID, (user != null ? user.getOrgUserId() : "NoUser")); + + // Rest URL & Protocol + String restURL = ""; + MDC.put(EPCommonSystemProperties.FULL_URL, EPCommonSystemProperties.UNKNOWN); + MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTP); + restURL = UserUtils.getFullURL(req); + if (restURL != null && restURL != "") { + MDC.put(EPCommonSystemProperties.FULL_URL, restURL); + if (restURL.toLowerCase().contains("https")) { + MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTPS); + } + } + + // Rest Path + MDC.put(Configuration.MDC_SERVICE_NAME, restMethod); + String restPath = req.getServletPath(); + if (restPath != null && restPath != "") { + MDC.put(Configuration.MDC_SERVICE_NAME, restPath); + } + + // Client IPAddress i.e. IPAddress of the remote host who is + // making this request. + String clientIPAddress = ""; + clientIPAddress = req.getHeader("X-FORWARDED-FOR"); + if (clientIPAddress == null) { + clientIPAddress = req.getRemoteAddr(); + } + MDC.put(EPCommonSystemProperties.CLIENT_IP_ADDRESS, clientIPAddress); + } else if (securityEventType == SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH) { + MDC.put(EPCommonSystemProperties.TARGET_ENTITY, "Phonebook"); + MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, "search"); + } + } else { + MDC.put(Configuration.MDC_SERVICE_NAME, restMethod); + MDC.put(EPCommonSystemProperties.PARTNER_NAME, EPCommonSystemProperties.ECOMP_PORTAL_FE); + } + + MDC.put(Configuration.MDC_SERVICE_INSTANCE_ID, ""); + MDC.put(Configuration.MDC_ALERT_SEVERITY, AlarmSeverityEnum.INFORMATIONAL.severity()); + try { + MDC.put(Configuration.MDC_SERVER_FQDN, InetAddress.getLocalHost().getCanonicalHostName()); + MDC.put(Configuration.MDC_SERVER_IP_ADDRESS, InetAddress.getLocalHost().getHostAddress()); + MDC.put(Configuration.MDC_INSTANCE_UUID, SystemProperties.getProperty(SystemProperties.INSTANCE_UUID)); + } catch (Exception e) { + adviceLogger.error(EELFLoggerDelegate.errorLogger, + "setHttpRequestBasedDefaultsIntoGlobalLoggingContext failed", e); + } + } + + /** + * + * @param beginDateTime + * @param endDateTime + */ + private void calculateDateTimeDifference(String beginDateTime, String endDateTime) { + if (beginDateTime != null && endDateTime != null && !beginDateTime.isEmpty()&&!endDateTime.isEmpty()) { + try { + SimpleDateFormat ecompLogDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); + Date beginDate = ecompLogDateFormat.parse(beginDateTime); + Date endDate = ecompLogDateFormat.parse(endDateTime); + String timeDifference = String.format("%d", endDate.getTime() - beginDate.getTime()); + MDC.put(SystemProperties.MDC_TIMER, timeDifference); + } catch (Exception e) { + adviceLogger.error(EELFLoggerDelegate.errorLogger, "calculateDateTimeDifference failed", e); + } + } + } + + public String getInternalResponseCode() { + return MDC.get(EPCommonSystemProperties.RESPONSE_CODE); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPMetricsLog.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPMetricsLog.java new file mode 100644 index 00000000..ee52dd81 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/aop/EPMetricsLog.java @@ -0,0 +1,49 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.logging.aop; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface EPMetricsLog { + String value() default ""; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/ApplicationCodes.properties b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/ApplicationCodes.properties new file mode 100644 index 00000000..cd686ce2 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/ApplicationCodes.properties @@ -0,0 +1,141 @@ +### +# ================================================================================ +# ECOMP Portal +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property +# ================================================================================ +# 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. +# ================================================================================ +### +######################################################################## +#Resource key=Error Code|Message text|Resolution text |Description text +####### +#Newlines can be utilized to add some clarity ensuring continuing line +#has atleast one leading space +#ResourceKey=\ +# ERR0000E\ +# Sample error msg txt\ +# Sample resolution msg\ +# Sample description txt +# +###### +#Error code classification category +#100 Permission errors +#200 Availability errors/Timeouts +#300 Data errors +#400 Schema Interface type/validation errors +#500 Business process errors +#900 Unknown errors +# +######################################################################## + +# Define Alarm Codes Specific to ECOMP Portal +BEUEBAUTHENTICATIONERROR_ONE_ARGUMENT= ||Reason: {0}.|\ + An Authentication failure occurred during access to UEB server. Please check that UEB keys are configured correctly under fusion.properties file. + +BERESTAPIAUTHENTICATIONERROR = |||Please check application credentials defined in Database or portal.properties file. + +INTERNALAUTHENTICATIONINFO_ONE_ARGUMENT=||Description: {0}.|Please check the logs for more information. + +INTERNALAUTHENTICATIONWARNING_ONE_ARGUMENT=||Description: {0}.|Please check the logs for more information. + +INTERNALAUTHENTICATIONERROR_ONE_ARGUMENT=||Description: {0}.|Please check the logs for more information. + +INTERNALAUTHENTICATIONFATAL_ONE_ARGUMENT=||Description: {0}.|Please check the logs for more information. + +BEHEALTHCHECKERROR= |||Please check the logs for more information. + +BEHEALTHCHECKMYSQLERROR= ||Please check the logs for more information.|\ + Check connectivity to MYSQL is configured correctly under system.properties file. + +BEHEALTHCHECKUEBCLUSTERERROR= ||Please check the logs for more information.|\ + Check connectivity to UEB cluster which is configured under portal.properties file. + +FEHEALTHCHECKERROR= |||Please check connectivity from this FE instance towards BE or BE Load Balancer. + +BEHEALTHCHECKRECOVERY= |||Please check logs for more specific information about the problem. + +BEHEALTHCHECKMYSQLRECOVERY= |||Please check logs for more specific information about the problem. + +BEHEALTHCHECKUEBCLUSTERRECOVERY= |||Please check logs for more specific information about the problem. + +FEHEALTHCHECKRECOVERY= |||Please check logs for more specific information about the problem. + +#UEB communication +BEUEBCONNECTIONERROR_ONE_ARGUMENT= ||Reason: {0}.|\ + Please check UEB server list and keys configured under Portal.Properties file. + +BEUEBUNKOWNHOSTERROR_ONE_ARGUMENT= ||Cannot reach host {0}.|\ + Please check UEB server list and keys configured under Portal.Properties file. + +#Onboarding apps +BEUEBREGISTERONBOARDINGAPPERROR= ||Reason: {0}.|\ + Please check UEB server list and keys configured under Portal.Properties file. + +#HTTP communication +BEHTTPCONNECTIONERROR_ONE_ARGUMENT= ||Reason: {0}.|Please check the logs for more information. + +INTERNALCONNECTIONINFO_ONE_ARGUMENT= ||Description: {0}.|Please check the logs for more information. + +INTERNALCONNECTIONWARNING_ONE_ARGUMENT= ||Description: {0}.|Please check the logs for more information. + +INTERNALCONNECTIONERROR_ONE_ARGUMENT= ||Description: {0}.|Please check the logs for more information. + +INTERNALCONNECTIONFATAL_ONE_ARGUMENT= ||Description: {0}.|Please check the logs for more information. + +BEUEBOBJECTNOTFOUNDERROR_ONE_ARGUMENT= ||Data not found: {0}.|\ + An error occurred during access to UEB Server, {1} failed to either register or unregister to/from UEB topic. + +#Login error codes +BEUSERMISSINGERROR_ONE_ARGUMENT= |||\ + User {0} must be added to the corresponding application with proper user roles. + +BEUSERINACTIVEWARNING_ONE_ARGUMENT= |||\ + User {0} must be added to the corresponding application with proper user roles. + +BEUSERADMINPRIVILEGESINFO_ONE_ARGUMENT= |||\ + User {0} should be given proper administrator role for the corresponding application to perform the necessary actions. + +BEINVALIDJSONINPUT= |||Please check error logs for more information. + +BEINCORRECTHTTPSTATUSERROR= |||Please check logs for more information. + +BEINITIALIZATIONERROR= |||Please check logs for more information. + +BEUEBSYSTEMERROR= ||\ + Operation: {0}.|\ + An error occurred in {1} distribution mechanism. Please check the logs for more information. + +BEDAOSYSTEMERROR= |||Please check MySQL DB health or look at the logs for more details. + +BESYSTEMERROR= |||Please check logs for more information. + +BEEXECUTEROLLBACKERROR= |||Please check MYSQL DB health or look at the logs for more details. + +FEHTTPLOGGINGERROR= |||Please check MYSQL DB health or look at the logs for more details. + +FEPORTALSERVLETERROR= |||Please check logs for more specific information about the problem. + +BEDAOCLOSESESSIONERROR= |||Please check MYSQL DB health or look at the logs form more details. + +BERESTAPIGENERALERROR= |||Please check error log for more information. + +FEHEALTHCHECKGENERALERROR= |||Please check error log for more information. + +INTERNALUNEXPECTEDINFO_ONE_ARGUMENT= |||Description: {0}. + +INTERNALUNEXPECTEDWARNING_ONE_ARGUMENT= |||Description: {0}. + +INTERNALUNEXPECTEDERROR_ONE_ARGUMENT= |||Description: {0}. + +INTERNALUNEXPECTEDFATAL_ONE_ARGUMENT= |||Description: {0}. diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/EPAppMessagesEnum.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/EPAppMessagesEnum.java new file mode 100644 index 00000000..d7536bf7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/EPAppMessagesEnum.java @@ -0,0 +1,298 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.logging.format; + +import org.onap.portalsdk.core.logging.format.AlarmSeverityEnum; +import org.onap.portalsdk.core.logging.format.ErrorSeverityEnum; +import org.onap.portalsdk.core.logging.format.ErrorTypeEnum; + +/** + * + * Add ECOMP Portal Specific Error Code Enums here, for generic + * ones (ones you think are useful not only Portal but also SDK), add it + * to the enum class AppMessagesEnum defined in SDK. + */ +public enum EPAppMessagesEnum { + /* + 100-199 Security/Permission Related + - Authentication problems (from external client, to external server) + - Certification errors + - + + 200-299 Availability/Timeout Related + - connectivity error + - connection timeout + + 300-399 Data Access/Integrity Related + - Data in graph in invalid(E.g. no creator is found for service) + - Artifact is missing in ES, but exists in graph. + + 400-499 Schema Interface Type/Validation + - received Pay-load checksum is invalid + - received JSON is not valid + + 500-599 Business/Flow Processing Related + - check out to service is not allowed + - Roll-back is done + - failed to generate heat file + + + 600-899 Reserved - do not use + + 900-999 Unknown Errors + - Unexpected exception + */ + + BeUebAuthenticationError(EPErrorCodesEnum.BEUEBAUTHENTICATIONERROR_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR100E", "An Authentication failure occurred during access to UEB server", "Details: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."), + + BeRestApiAuthenticationError(EPErrorCodesEnum.BERESTAPIAUTHENTICATIONERROR, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR101E", "Rejected an incoming REST API request due to invalid credentials", "", "Please check application credentials defined in Database or properties files."), + + InternalAuthenticationInfo(EPErrorCodesEnum.INTERNALAUTHENTICATIONINFO_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, + "ERR199I", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."), + + InternalAuthenticationWarning(EPErrorCodesEnum.INTERNALAUTHENTICATIONWARNING_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN, + "ERR199W", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."), + + InternalAuthenticationError(EPErrorCodesEnum.INTERNALAUTHENTICATIONERROR_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR199E", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."), + + InternalAuthenticationFatal(EPErrorCodesEnum.INTERNALAUTHENTICATIONFATAL_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL, + "ERR199F", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."), + + BeHealthCheckError(EPErrorCodesEnum.BeHEALTHCHECKERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, + "ERR200E", "ECOMP-PORTAL Back-end probably lost connectivity to either one of the following components: MySQL DB, UEB Cluster", "", "Please check the logs for more information."), + + BeHealthCheckMySqlError(EPErrorCodesEnum.BEHEALTHCHECKMYSQLERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, + "ERR201E", "ECOMP-PORTAL Back-end probably lost connectivity to MySQL DB", "", "Check connectivity to MYSQL is configured correctly under system.properties file."), + + BeHealthCheckUebClusterError(EPErrorCodesEnum.BEHEALTHCHECKUEBCLUSTERERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, + "ERR203E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "", "Check connectivity to UEB cluster which is configured under portal.properties file."), + + FeHealthCheckError(EPErrorCodesEnum.FEHEALTHCHECKERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, + "ERR204E", "Unable to connect to a valid ECOMP-PORTAL Back-end Server.", "", "Please check connectivity from this FE instance towards BE or BE Load Balancer."), + + BeHealthCheckRecovery(EPErrorCodesEnum.BEHEALTHCHECKRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, + "ERR205I", "ECOMP-PORTAL Back-end Recovery to either one of the following components: MySQL DB, UEB Cluster", "", "Please check logs for more specific information about the problem."), + + BeHealthCheckMySqlRecovery(EPErrorCodesEnum.BEHEALTHCHECKMYSQLRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, + "ERR206I", "ECOMP-PORTAL Back-end connection recovery to MySQL DB", "", "Please check logs for more specific information about the problem."), + + BeHealthCheckUebClusterRecovery(EPErrorCodesEnum.BEHEALTHCHECKUEBCLUSTERRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, + "ERR208I", "ECOMP-PORTAL Back-end connection recovery to UEB Cluster", "", "Please check logs for more specific information about the problem."), + + FeHealthCheckRecovery(EPErrorCodesEnum.FEHEALTHCHECKRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, + "ERR209I", "Connectivity to ECOMP-PORTAL Front-end Server is recovered", "", "Please check logs for more specific information about the problem."), + + BeUebConnectionError(EPErrorCodesEnum.BEUEBCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR210E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "Details: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."), + + BeUebUnkownHostError(EPErrorCodesEnum.BEUEBUNKOWNHOSTERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR211E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "Cannot reach host: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."), + + BeUebRegisterOnboardingAppError(EPErrorCodesEnum.BEUEBREGISTERONBOARDINGAPPERROR, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR212E", "Failed to register the On-boarding application with UEB Communication server", "Details: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."), + + BeHttpConnectionError(EPErrorCodesEnum.BEHTTPCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR213E", "It could be that communication to an external application might resulted an exception or failed to reach the external application", + "Details: {0}.", "Please check logs for more information."), + + InternalConnectionInfo(EPErrorCodesEnum.INTERNALCONNECTIONINFO_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, + "ERR299I", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."), + + InternalConnectionWarning(EPErrorCodesEnum.INTERNALCONNECTIONWARNING_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN, + "ERR299W", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."), + + InternalConnectionError(EPErrorCodesEnum.INTERNALCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR299E", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."), + + InternalConnectionFatal(EPErrorCodesEnum.INTERNALCONNECTIONFATAL_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL, + "ERR299F", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."), + + BeUebObjectNotFoundError(EPErrorCodesEnum.BEUEBOBJECTNOTFOUNDERROR_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR303E", "Error occurred during access to U-EB Server.", "Data not found: {0}.", "An error occurred during access to UEB Server, {1} failed to either register or unregister to/from UEB topic."), + + BeUserMissingError(EPErrorCodesEnum.BEUSERMISSINGERROR_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR310E", "User is not found", "", "User {0} must be added to the corresponding application with proper user roles."), + + BeUserInactiveWarning(EPErrorCodesEnum.BEUSERINACTIVEWARNING_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN, + "ERR313W", "User is found but in-active", "", "User {0} must be added to the corresponding application with proper user roles."), + + BeUserAdminPrivilegesInfo(EPErrorCodesEnum.BEUSERADMINPRIVILEGESINFO_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN, + "ERR314W", "User is found but don't have administrative privileges", "", "User {0} should be given administrator role for the corresponding application to perform the necessary actions."), + + BeInvalidJsonInput(EPErrorCodesEnum.BEINVALIDJSONINPUT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR405E", "Failed to convert JSON input to object", "", "Please check logs for more information."), + + BeIncorrectHttpStatusError(EPErrorCodesEnum.BEINCORRECTHTTPSTATUSERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR407E", "Communication to an external application is resulted in with Incorrect Http response code", "", "Please check logs for more information."), + + BeInitializationError(EPErrorCodesEnum.BEINITIALIZATIONERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, + "ERR500E", "ECOMP-PORTAL Back-end was not initialized properly", "", "Please check logs for more information."), + + BeUebSystemError(EPErrorCodesEnum.BEUEBSYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR502E", "Error occurred during access to U-EB Server", "Details: {0}.", "An error occurred in {1} distribution mechanism. Please check the logs for more information."), + + BeDaoSystemError(EPErrorCodesEnum.BEDAOSYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, + "ERR505E", "Performing DDL or DML operations on database might have failed", "", "Please check MySQL DB health or look at the logs for more details."), + + BeSystemError(EPErrorCodesEnum.BESYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, + "ERR506E", "Unexpected error during operation", "", "Please check logs for more information."), + + BeExecuteRollbackError(EPErrorCodesEnum.BEEXECUTEROLLBACKERROR, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR507E", "Roll-back operation towards database has failed", "", "Please check MYSQL DB health or look at the logs for more details."), + + FeHttpLoggingError(EPErrorCodesEnum.FEHTTPLOGGINGERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.ERROR, + "ERR517E", "Error when logging FE HTTP request/response", "", "Please check MYSQL DB health or look at the logs for more details."), + + FePortalServletError(EPErrorCodesEnum.FEPORTALSERVLETERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR518E", "Error when trying to access FE Portal page.", "", "Please check logs for more information."), + + BeDaoCloseSessionError(EPErrorCodesEnum.BEDAOCLOSESESSIONERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR519E", "Close local session operation with database failed", "", "Please check MYSQL DB health or look at the logs form more details."), + + BeRestApiGeneralError(EPErrorCodesEnum.BERESTAPIGENERALERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, + "ERR900E", "Unexpected error during ECOMP-PORTAL Back-end REST API execution", "", "Please check error log for more information."), + + FeHealthCheckGeneralError(EPErrorCodesEnum.FEHEALTHCHECKGENERALERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, + "ERR901E", "General error during FE Health Check", "", "Please check error log for more information."), + + InternalUnexpectedInfo(EPErrorCodesEnum.INTERNALUNEXPECTEDINFO_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, + "ERR999I", "Unexpected error", "Details: {0}.", "Please check logs for more information."), + + InternalUnexpectedWarning(EPErrorCodesEnum.INTERNALUNEXPECTEDWARNING_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN, + "ERR999W", "Unexpected error", "Details: {0}.", "Please check logs for more information."), + + InternalUnexpectedError(EPErrorCodesEnum.INTERNALUNEXPECTEDERROR_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR999E", "Unexpected error", "Details: {0}.", "Please check logs for more information."), + + InternalUnexpectedFatal(EPErrorCodesEnum.INTERNALUNEXPECTEDFATAL_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL, + "ERR999F", "Unexpected error", "Details: {0}.", "Please check logs for more information."), + + ExternalAuthAccessConnectionError(EPErrorCodesEnum.EXTERNALAUTHACCESS_CONNECTIONERROR, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR220E", "AAF Connection problem", "Details: {0}.", "Please check logs for more information."), + + ExternalAuthAccessAuthenticationError(EPErrorCodesEnum.EXTERNALAUTHACCESS_AUTHENTICATIONERROR, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR120E", "AAF authentication problem", "Details: {0}.", "Please check logs for more information."), + + ExternalAuthAccessGeneralError(EPErrorCodesEnum.EXTERNALAUTHACCESS_GENERALERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR520E", "Unexpected error", "Details: {0}.", "Please check logs for more information."), + + SchedulerAccessConnectionError(EPErrorCodesEnum.SCHEDULER_ACCESS_CONNECTIONERROR, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR240E", "Scheduler Connection problem", "Details: {0}.", "Please check logs for more information."), + + SchedulerAuxAccessAuthenticationError(EPErrorCodesEnum.SCHEDULERAUX_ACCESS_AUTHENTICATIONERROR, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR140E", "SchedulerAux authentication problem", "Details: {0}.", "Please check logs for more information."), + + SchedulerAccessGeneralError(EPErrorCodesEnum.SCHEDULER_ACCESS_GENERALERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR540E", "Unexpected Scheduler error", "Details: {0}.", "Please check logs for more information."), + + SchedulerInvalidAttributeError(EPErrorCodesEnum.SCHEDULER_INVALID_ATTRIBUTEERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, + "ERR505E", "Unable to create Scheduler", "Details: {0}.", "Please check logs for more information."), + + ; + + ErrorTypeEnum eType; + AlarmSeverityEnum alarmSeverity; + EPErrorCodesEnum messageCode; + ErrorSeverityEnum errorSeverity; + String errorCode; + String errorDescription; + String details; + String resolution; + + EPAppMessagesEnum(EPErrorCodesEnum messageCode, ErrorTypeEnum eType, AlarmSeverityEnum alarmSeverity, ErrorSeverityEnum errorSeverity, String errorCode, String errorDescription, + String details, String resolution) { + this.messageCode = messageCode; + this.eType = eType; + this.alarmSeverity = alarmSeverity; + this.errorSeverity = errorSeverity; + this.errorCode = errorCode; + this.errorDescription = errorDescription; + this.details = details; + this.resolution = resolution; + } + + public String getDetails() { + return this.details; + } + + public String getResolution() { + return this.resolution; + } + public String getErrorCode() { + return this.errorCode; + } + + public String getErrorDescription() { + return this.errorDescription; + } + + public ErrorSeverityEnum getErrorSeverity() { + return this.errorSeverity; + } + + public void setErrorSeverity(ErrorSeverityEnum errorSeverity) { + this.errorSeverity = errorSeverity; + } + + public EPErrorCodesEnum getMessageCode() { + return messageCode; + } + + public void setMessageCode(EPErrorCodesEnum messageCode) { + this.messageCode = messageCode; + } + + public AlarmSeverityEnum getAlarmSeverity() { + return alarmSeverity; + } + + public void setAlarmSeverity(AlarmSeverityEnum alarmSeverity) { + this.alarmSeverity = alarmSeverity; + } + + public ErrorTypeEnum getErrorType() { + return eType; + } + + public void setErrorType(ErrorTypeEnum eType) { + this.eType = eType; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/EPErrorCodesEnum.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/EPErrorCodesEnum.java new file mode 100644 index 00000000..e4cd38e7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/format/EPErrorCodesEnum.java @@ -0,0 +1,121 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.logging.format; + +import com.att.eelf.i18n.EELFResolvableErrorEnum; +import com.att.eelf.i18n.EELFResourceManager; + +/** + * + * Add ECOMP Portal Specific Error Code Enums here, for generic + * ones (ones you think are useful not only Portal but also SDK), add it + * to the enum class AppMessagesEnum defined in SDK. + */ +public enum EPErrorCodesEnum implements EELFResolvableErrorEnum { + BERESTAPIAUTHENTICATIONERROR, + BEHTTPCONNECTIONERROR_ONE_ARGUMENT, + BEUEBAUTHENTICATIONERROR_ONE_ARGUMENT, + + INTERNALAUTHENTICATIONINFO_ONE_ARGUMENT, + INTERNALAUTHENTICATIONWARNING_ONE_ARGUMENT, + INTERNALAUTHENTICATIONERROR_ONE_ARGUMENT, + INTERNALAUTHENTICATIONFATAL_ONE_ARGUMENT, + + BEHEALTHCHECKRECOVERY, + BEHEALTHCHECKMYSQLRECOVERY, + BEHEALTHCHECKUEBCLUSTERRECOVERY, + FEHEALTHCHECKRECOVERY, + BeHEALTHCHECKERROR, + + BEHEALTHCHECKMYSQLERROR, + BEHEALTHCHECKUEBCLUSTERERROR, + FEHEALTHCHECKERROR, + BEUEBCONNECTIONERROR_ONE_ARGUMENT, + BEUEBUNKOWNHOSTERROR_ONE_ARGUMENT, + BEUEBREGISTERONBOARDINGAPPERROR, + + INTERNALCONNECTIONINFO_ONE_ARGUMENT, + INTERNALCONNECTIONWARNING_ONE_ARGUMENT, + INTERNALCONNECTIONERROR_ONE_ARGUMENT, + INTERNALCONNECTIONFATAL_ONE_ARGUMENT, + + BEUEBOBJECTNOTFOUNDERROR_ONE_ARGUMENT, + BEUSERMISSINGERROR_ONE_ARGUMENT, + + BEUSERINACTIVEWARNING_ONE_ARGUMENT, + BEUSERADMINPRIVILEGESINFO_ONE_ARGUMENT, + + BEINVALIDJSONINPUT, + BEINCORRECTHTTPSTATUSERROR, + + BEINITIALIZATIONERROR, + BEUEBSYSTEMERROR, + BEDAOSYSTEMERROR, + BESYSTEMERROR, + BEEXECUTEROLLBACKERROR, + + FEHTTPLOGGINGERROR, + FEPORTALSERVLETERROR, + BEDAOCLOSESESSIONERROR, + + BERESTAPIGENERALERROR, + FEHEALTHCHECKGENERALERROR, + + INTERNALUNEXPECTEDINFO_ONE_ARGUMENT, + INTERNALUNEXPECTEDWARNING_ONE_ARGUMENT, + INTERNALUNEXPECTEDERROR_ONE_ARGUMENT, + INTERNALUNEXPECTEDFATAL_ONE_ARGUMENT, + + EXTERNALAUTHACCESS_CONNECTIONERROR, + EXTERNALAUTHACCESS_AUTHENTICATIONERROR, + EXTERNALAUTHACCESS_GENERALERROR, + + SCHEDULER_ACCESS_CONNECTIONERROR, + SCHEDULERAUX_ACCESS_AUTHENTICATIONERROR, + SCHEDULER_ACCESS_GENERALERROR, + SCHEDULER_INVALID_ATTRIBUTEERROR, + ; + + /** + * Static initializer to ensure the resource bundles for this class are loaded... + * Here this application loads messages from three bundles + */ + static { + EELFResourceManager.loadMessageBundle("org/openecomp/portalapp/portal/logging/format/ApplicationCodes"); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/logic/EPLogUtil.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/logic/EPLogUtil.java new file mode 100644 index 00000000..c47fb9da --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/logging/logic/EPLogUtil.java @@ -0,0 +1,328 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.logging.logic; + +import static com.att.eelf.configuration.Configuration.MDC_ALERT_SEVERITY; + +import java.text.MessageFormat; + +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalsdk.core.logging.format.AlarmSeverityEnum; +import org.onap.portalsdk.core.logging.format.ErrorSeverityEnum; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.slf4j.MDC; +import org.springframework.http.HttpStatus; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +public class EPLogUtil { + + // This class has no logger of its own; it uses loggers passed to it. + private static EELFLogger errorLogger = EELFManager.getInstance().getErrorLogger(); + + /** + * Formats and writes a message to the error log with the class name and the + * specified parameters, using log level info, warn or error appropriate for + * the specified severity + * + * @param classLogger + * Logger for the class where the error occurred; the logger + * carries the class name. + * @param epMessageEnum + * Enum carrying alarm and error severity + * @param param + * Values used to build the message. + */ + public static void logEcompError(EELFLoggerDelegate classLogger, EPAppMessagesEnum epMessageEnum, String... param) { + logEcompError(classLogger, epMessageEnum, null, param); + } + + /** + * Formats and writes a message to the error log with the class name and the + * specified parameters, using log level info, warn or error appropriate for + * the specified severity + * + * @param epMessageEnum + * Enum carrying alarm and error severity + * @param param + * Values used to build the message. + */ + public static void logEcompError(EPAppMessagesEnum epMessageEnum, String... param) { + try { + AlarmSeverityEnum alarmSeverityEnum = epMessageEnum.getAlarmSeverity(); + ErrorSeverityEnum errorSeverityEnum = epMessageEnum.getErrorSeverity(); + + MDC.put(MDC_ALERT_SEVERITY, alarmSeverityEnum.severity()); + MDC.put("ErrorCode", epMessageEnum.getErrorCode()); + MDC.put("ErrorDescription", epMessageEnum.getErrorDescription()); + MDC.put("ClassName", EPLogUtil.class.getName()); + + String resolution = EPLogUtil + .formatMessage(epMessageEnum.getDetails() + " " + epMessageEnum.getResolution(), (Object[]) param); + if (errorSeverityEnum == ErrorSeverityEnum.WARN) { + errorLogger.warn(resolution); + } else if (errorSeverityEnum == ErrorSeverityEnum.INFO) { + errorLogger.info(resolution); + } else { + errorLogger.error(resolution); + } + } catch (Exception e) { + errorLogger.error("logEcompError failed", e); + } finally { + MDC.remove("ErrorCode"); + MDC.remove("ErrorDescription"); + MDC.remove("ClassName"); + MDC.remove(MDC_ALERT_SEVERITY); + } + } + + /** + * Formats and writes a message to the error log with the class name, + * throwable and the specified parameters, using log level info, warn or + * error appropriate for the specified severity + * + * @param classLogger + * Logger for the class where the error occurred; the logger + * carries the class name. + * @param epMessageEnum + * Enum carrying alarm and error severity + * @param th + * Throwable; ignored if null + * @param param + * Array of Strings used to build the message. + */ + @SuppressWarnings("static-access") + public static void logEcompError(EELFLoggerDelegate classLogger, EPAppMessagesEnum epMessageEnum, Throwable th, + String... param) { + + AlarmSeverityEnum alarmSeverityEnum = epMessageEnum.getAlarmSeverity(); + ErrorSeverityEnum errorSeverityEnum = epMessageEnum.getErrorSeverity(); + + MDC.put(MDC_ALERT_SEVERITY, alarmSeverityEnum.severity()); + MDC.put("ErrorCode", epMessageEnum.getErrorCode()); + MDC.put("ErrorDescription", epMessageEnum.getErrorDescription()); + + final String message = EPLogUtil.formatMessage(epMessageEnum.getDetails() + " " + epMessageEnum.getResolution(), + (Object[]) param); + if (errorSeverityEnum == ErrorSeverityEnum.INFO) { + if (th == null) + classLogger.info(classLogger.errorLogger, message); + else + classLogger.info(classLogger.errorLogger, message, th); + } else if (errorSeverityEnum == ErrorSeverityEnum.WARN) { + if (th == null) + classLogger.warn(classLogger.errorLogger, message); + else + classLogger.warn(classLogger.errorLogger, message, th); + } else { + if (th == null) + classLogger.error(classLogger.errorLogger, message); + else + classLogger.error(classLogger.errorLogger, message, th); + } + + // Clean up + MDC.remove(MDC_ALERT_SEVERITY); + MDC.remove("ErrorCode"); + MDC.remove("ErrorDescription"); + } + + /** + * Builds a string using the format and parameters. + * + * @param message + * @param args + * @return + */ + private static String formatMessage(String message, Object... args) { + StringBuilder sbFormattedMessage = new StringBuilder(); + if (args != null && args.length > 0 && message != null && message != "") { + MessageFormat mf = new MessageFormat(message); + sbFormattedMessage.append(mf.format(args)); + } else { + sbFormattedMessage.append(message); + } + return sbFormattedMessage.toString(); + } + + /** + * Builds a comma-separated string of values to document a user action. + * + * @param action + * String + * @param activity + * String + * @param userId + * String + * @param affectedId + * String + * @param comment + * String + * @return Value suitable for writing to the audit log file. + */ + public static String formatAuditLogMessage(String action, String activity, String userId, String affectedId, + String comment) { + StringBuilder auditLogMsg = new StringBuilder(); + auditLogMsg.append("Click_A:["); + if (action != null && !action.equals("")) { + auditLogMsg.append(" Action: "); + auditLogMsg.append(action); + } + + if (activity != null && !activity.equals("")) { + auditLogMsg.append(",Activity CD: "); + auditLogMsg.append(activity); + } + + if (userId != null && !userId.equals("")) { + auditLogMsg.append(",User ID: "); + auditLogMsg.append(userId); + } + + if (affectedId != null && !affectedId.equals("")) { + auditLogMsg.append(",Affected ID: "); + auditLogMsg.append(affectedId); + } + + if (comment != null && !comment.equals("")) { + auditLogMsg.append(",Comment: "); + auditLogMsg.append(comment); + } + auditLogMsg.append("]"); + return auditLogMsg.toString(); + } + + /** + * Builds a comma-separated string of values to document a user browser + * action. + * + * @param orgUserId + * String + * @param appName + * String + * @param action + * String + * @param activity + * String + * @param actionLink + * String + * @param page + * String + * @param function + * String + * @param type + * String + * @return String value suitable for writing to the audit log file. + */ + public static String formatStoreAnalyticsAuditLogMessage(String orgUserId, String appName, String action, + String activity, String actionLink, String page, String function, String type) { + StringBuilder auditLogStoreAnalyticsMsg = new StringBuilder(); + auditLogStoreAnalyticsMsg.append("Click_Analytics:["); + if (orgUserId != null && !orgUserId.equals("")) { + auditLogStoreAnalyticsMsg.append(" Organization User ID: "); + auditLogStoreAnalyticsMsg.append(orgUserId); + } + + if (appName != null && !appName.equals("")) { + auditLogStoreAnalyticsMsg.append(",AppName: "); + auditLogStoreAnalyticsMsg.append(appName); + } + + if (action != null && !action.equals("")) { + auditLogStoreAnalyticsMsg.append(",Action: "); + auditLogStoreAnalyticsMsg.append(action); + } + + if (activity != null && !activity.equals("")) { + auditLogStoreAnalyticsMsg.append(",Activity: "); + auditLogStoreAnalyticsMsg.append(activity); + } + + if (actionLink != null && !actionLink.equals("")) { + auditLogStoreAnalyticsMsg.append(",ActionLink: "); + auditLogStoreAnalyticsMsg.append(actionLink); + } + + if (page != null && !page.equals("")) { + auditLogStoreAnalyticsMsg.append(",Page: "); + auditLogStoreAnalyticsMsg.append(page); + } + + if (function != null && !function.equals("")) { + auditLogStoreAnalyticsMsg.append(",Function: "); + auditLogStoreAnalyticsMsg.append(function); + } + + if (type != null && !type.equals("")) { + auditLogStoreAnalyticsMsg.append(",Type: "); + auditLogStoreAnalyticsMsg.append(type); + } + auditLogStoreAnalyticsMsg.append("]"); + return auditLogStoreAnalyticsMsg.toString(); + } + + public static void logExternalAuthAccessAlarm(EELFLoggerDelegate logger, HttpStatus res) { + if (res.equals(HttpStatus.UNAUTHORIZED) || res.equals(HttpStatus.FORBIDDEN)) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.ExternalAuthAccessAuthenticationError); + } else if (res.equals(HttpStatus.NOT_FOUND) || res.equals(HttpStatus.NOT_ACCEPTABLE) + || res.equals(HttpStatus.CONFLICT) || res.equals(HttpStatus.BAD_REQUEST)) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.ExternalAuthAccessConnectionError); + } else if (!res.equals(HttpStatus.ACCEPTED) && !res.equals(HttpStatus.OK)) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.ExternalAuthAccessGeneralError); + } + } + + public static void schedulerAccessAlarm(EELFLoggerDelegate logger, int res) { + if (res == HttpStatus.UNAUTHORIZED.value() || res == HttpStatus.FORBIDDEN.value()) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.SchedulerAuxAccessAuthenticationError); + } else if (res == HttpStatus.NOT_FOUND.value() || res == HttpStatus.NOT_ACCEPTABLE.value() + || res == HttpStatus.CONFLICT.value() || res == HttpStatus.BAD_REQUEST.value() + || res == HttpStatus.REQUEST_TIMEOUT.value()||res==HttpStatus.INTERNAL_SERVER_ERROR.value()) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.SchedulerAccessConnectionError); + } else if (res == HttpStatus.PRECONDITION_FAILED.value() || res == HttpStatus.EXPECTATION_FAILED.value()) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.SchedulerInvalidAttributeError); + } else if (res != HttpStatus.ACCEPTED.value() && res != HttpStatus.OK.value() + && res != HttpStatus.NO_CONTENT.value()) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.SchedulerAccessGeneralError); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "Other SchedulerErrors failed", res); + } + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/RestObject.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/RestObject.java new file mode 100644 index 00000000..327354c6 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/RestObject.java @@ -0,0 +1,62 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.scheduler; + + +public class RestObject { + + private T t; + + private int statusCode= 0; + + public String uuid; + + public void set(T t) { this.t = t; } + + public T get() { return t; } + + public void setStatusCode(int v) { this.statusCode = v; } + + public int getStatusCode() { return this.statusCode; } + + public void setUUID(String uuid) { this.uuid = uuid; } + + public String getUUID() { return this.uuid; } +} + diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerProperties.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerProperties.java new file mode 100644 index 00000000..4fcdc4d7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerProperties.java @@ -0,0 +1,164 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler; + +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; + +@Configuration +@PropertySource(value = { "${container.classpath:}/WEB-INF/conf/scheduler.properties" }) + +public class SchedulerProperties { + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerProperties.class); + + private static Environment environment; + + + public SchedulerProperties() { + } + + protected Environment getEnvironment() { + return environment; + } + + @Autowired + public void setEnvironment(Environment environment) { + SchedulerProperties.environment = environment; + } + + /** + * Tests whether a property value is available for the specified key. + * + * @param key + * Property key + * @return True if the key is known, otherwise false. + */ + public static boolean containsProperty(String key) { + return environment.containsProperty(key); + } + + /** + * Returns the property value associated with the given key (never + * {@code null}), after trimming any trailing space. + * + * @param key + * Property key + * @return Property value; the empty string if the environment was not + * autowired, which should never happen. + * @throws IllegalStateException + * if the key cannot be resolved + */ + public static String getProperty(String key) { + String value = ""; + if (environment == null) { + logger.error(EELFLoggerDelegate.errorLogger, "getProperty: environment is null, should never happen!"); + } else { + value = environment.getRequiredProperty(key); + // java.util.Properties preserves trailing space + if (value != null) + value = value.trim(); + } + return value; + } + + public static final String SCHEDULER_USER_NAME_VAL = "scheduler.user.name"; + + public static final String SCHEDULER_PASSWORD_VAL = "scheduler.password"; + + public static final String SCHEDULER_SERVER_URL_VAL = "scheduler.server.url"; + + public static final String SCHEDULER_CREATE_NEW_VNF_CHANGE_INSTANCE_VAL = "scheduler.create.new.vnf.change.instance"; + + public static final String SCHEDULER_GET_TIME_SLOTS = "scheduler.get.time.slots"; + + public static final String SCHEDULER_SUBMIT_NEW_VNF_CHANGE = "scheduler.submit.new.vnf.change"; + + public static final String SCHEDULERAUX_CLIENTAUTH_VAL = "scheduleraux.ClientAuth"; + + public static final String SCHEDULERAUX_CLIENT_MECHID_VAL = "scheduleraux.client.mechId"; + + public static final String SCHEDULERAUX_CLIENT_PASSWORD_VAL = "scheduleraux.client.password"; + + public static final String SCHEDULERAUX_USERNAME_VAL = "scheduleraux.username"; + + public static final String SCHEDULERAUX_PASSWORD_VAL = "scheduleraux.password"; + + public static final String SCHEDULERAUX_AUTHORIZATION_VAL = "scheduleraux.Authorization"; + + public static final String SCHEDULERAUX_SERVER_URL_VAL = "scheduleraux.server.url"; + + public static final String SCHEDULERAUX_ENVIRONMENT_VAL = "scheduleraux.environment"; + + public static final String SCHEDULERAUX_GET_CONFIG_VAL = "scheduleraux.get.config"; + + + /** The Constant VID_TRUSTSTORE_FILENAME. */ + public static final String VID_TRUSTSTORE_FILENAME = "vid.truststore.filename"; + + /** The Constant VID_TRUSTSTORE_PASSWD_X. */ + public static final String VID_TRUSTSTORE_PASSWD_X = "vid.truststore.passwd.x"; + + /** The Constant FILESEPARATOR. */ + public static final String FILESEPARATOR = (System.getProperty("file.separator") == null) ? "/" : System.getProperty("file.separator"); + + /** Scheduler UI constant **/ + public static final String SCHEDULER_DOMAIN_NAME = "scheduler.domain.name"; + + public static final String SCHEDULER_SCHEDULE_NAME = "scheduler.schedule.name"; + + public static final String SCHEDULER_WORKFLOW_NAME = "scheduler.workflow.name"; + + public static final String SCHEDULER_CALLBACK_URL = "scheduler.callback.url"; + + public static final String SCHEDULER_APPROVAL_TYPE = "scheduler.approval.type"; + + public static final String SCHEDULER_APPROVAL_SUBMIT_STATUS = "scheduler.approval.submit.status"; + + public static final String SCHEDULER_APPROVAL_REJECT_STATUS = "scheduler.approval.reject.status"; + + public static final String SCHEDULER_INTERVAL_GET_TIMESLOT_RATE = "scheduler.interval.get.timeslot.rate"; + + public static final String SCHEDULER_POLICY_NAME = "scheduler.policy.name"; + + public static final String SCHEDULER_GROUP_ID = "scheduler.group.id"; + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerResponseWrapper.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerResponseWrapper.java new file mode 100644 index 00000000..510c7cd9 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerResponseWrapper.java @@ -0,0 +1,118 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.Map; + +import org.apache.commons.lang.builder.ToStringBuilder; + +/** + * This wrapper encapsulates the Scheduler response + */ +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "status", + "entity", + "uuid" +}) + +public class SchedulerResponseWrapper { + + @JsonProperty("status") + private int status; + + @JsonProperty("entity") + private String entity; + + @JsonProperty("uuid") + private String uuid; + + @JsonProperty("entity") + public String getEntity() { + return entity; + } + + @JsonProperty("status") + public int getStatus() { + return status; + } + + @JsonProperty("uuid") + public String getUuid() { + return uuid; + } + + @JsonProperty("status") + public void setStatus(int v) { + this.status = v; + } + + @JsonProperty("entity") + public void setEntity(String v) { + this.entity = v; + } + + @JsonProperty("uuid") + public void setUuid(String v) { + this.uuid = v; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + + public String getResponse () throws JsonProcessingException,IOException { + Map map = new LinkedHashMap<>(); + map.put("status", getStatus()); + map.put("entity", getEntity()); + map.put("uuid", getUuid()); + ObjectMapper objectMapper = new ObjectMapper(); + String jsonResponse = objectMapper.writeValueAsString(map); + return jsonResponse; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInt.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInt.java new file mode 100644 index 00000000..7ada83bf --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInt.java @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.scheduler; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; + +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +public class SchedulerRestInt { + + /** The logger. */ + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerRestInterface.class); + + /** The Constant dateFormat. */ + final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); + + /** The request date format. */ + public DateFormat requestDateFormat = new SimpleDateFormat("EEE, dd MMM YYYY HH:mm:ss z"); + + public SchedulerRestInt() { + requestDateFormat.setTimeZone(java.util.TimeZone.getTimeZone("GMT")); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterface.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterface.java new file mode 100644 index 00000000..26e40c9a --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterface.java @@ -0,0 +1,270 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler; + +import java.util.Collections; + +import javax.security.auth.login.CredentialException; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedHashMap; +import javax.ws.rs.core.Response; + +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang.StringUtils; +import org.drools.compiler.lang.DRL5Expressions.neg_operator_key_return; +import org.eclipse.jetty.util.security.Password; +import org.json.simple.JSONObject; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.scheduler.client.HttpBasicClient; +import org.onap.portalapp.portal.scheduler.client.HttpsBasicClient; +import org.onap.portalapp.portal.scheduler.restobjects.RestObject; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; +import org.springframework.web.client.HttpClientErrorException; + +@Service +public class SchedulerRestInterface implements SchedulerRestInterfaceIfc { + + private static final String PASSWORD_IS_EMPTY = "Password is Empty"; + + private static Client client = null; + + private MultivaluedHashMap commonHeaders; + + /** The logger. */ + static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerRestInterface.class); + + public SchedulerRestInterface() { + super(); + } + + public void initRestClient() { + logger.debug(EELFLoggerDelegate.debugLogger, "Starting to initialize rest client"); + + final String username; + final String password; + + String methodName = "initRestClient"; + /* Setting user name based on properties */ + String retrievedUsername = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULER_USER_NAME_VAL); + if (retrievedUsername.isEmpty()) { + username = ""; + } else { + username = retrievedUsername; + } + + /* Setting password based on properties */ + String retrievedPassword = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULER_PASSWORD_VAL); + if (retrievedPassword.isEmpty()) { + password = StringUtils.EMPTY; + } else { + if (retrievedPassword.contains("OBF:")) { + password = Password.deobfuscate(retrievedPassword); + } else { + password = retrievedPassword; + } + } + try { + if (StringUtils.isBlank(password)) { + throw new CredentialException(PASSWORD_IS_EMPTY); + } + } catch (Exception ex) { + logger.error(EELFLoggerDelegate.errorLogger, "Unable to initialize rest client", ex); + } + String authString = username + ":" + password; + byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); + String authStringEnc = new String(authEncBytes); + + commonHeaders = new MultivaluedHashMap(); + commonHeaders.put("Authorization", Collections.singletonList((Object) ("Basic " + authStringEnc))); + + try { + if (!username.isEmpty()) { + + client = HttpBasicClient.getClient(); + } else { + + client = HttpsBasicClient.getClient(); + } + } catch (Exception e) { + logger.debug(EELFLoggerDelegate.debugLogger, "Unable to initialize rest client"); + + } + logger.debug(EELFLoggerDelegate.debugLogger, "Client Initialized"); + + } + + @SuppressWarnings("unchecked") + public void Get(T t, String sourceId, String path, + org.onap.portalapp.portal.scheduler.restobjects.RestObject restObject) throws Exception { + + String methodName = "Get"; + String url = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULER_SERVER_URL_VAL) + path; + + logger.debug(EELFLoggerDelegate.debugLogger, "URL FOR GET : ", url); + try { + initRestClient(); + + final Response cres = client.target(url).request().accept("application/json").headers(commonHeaders).get(); + + int status = cres.getStatus(); + restObject.setStatusCode(status); + + t = (T) cres.readEntity(t.getClass()); + if (t.equals("")) { + restObject.set(null); + } else { + restObject.set(t); + } + } catch (HttpClientErrorException e) { + String message = String.format( + " HttpClientErrorException: Exception For the POST . MethodName: %s, Url: %s", methodName,url); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + EPLogUtil.schedulerAccessAlarm(logger, e.getStatusCode().value()); + } catch (Exception e) { + String message = String.format( + "Exception For the POST . MethodName: %s, Url: %s", methodName,url); + + logger.error(EELFLoggerDelegate.errorLogger, message, e); + EPLogUtil.schedulerAccessAlarm(logger, HttpStatus.INTERNAL_SERVER_ERROR.value()); + + throw e; + + } + + } + + @SuppressWarnings("unchecked") + public void Post(T t, JSONObject requestDetails, String path, RestObject restObject) throws Exception { + + String methodName = "Post"; + String url = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULER_SERVER_URL_VAL) + path; + logger.debug(EELFLoggerDelegate.debugLogger, "URL FOR POST : "+ url); + + try { + + initRestClient(); + + // Change the content length + final Response cres = client.target(url).request().accept("application/json").headers(commonHeaders) + .post(Entity.entity(requestDetails, MediaType.APPLICATION_JSON)); + + if (cres.getEntity() != null) { + t = (T) cres.readEntity(t.getClass()); + restObject.set(t); + } else { + t = null; + restObject.set(t); + } + + int status = cres.getStatus(); + restObject.setStatusCode(status); + + if (status >= 200 && status <= 299) { + String message = String.format( + " REST api POST was successful!", methodName); + logger.debug(EELFLoggerDelegate.debugLogger, message); + + } else { + String message = String.format( + " FAILED with http status . MethodName: %s, Status: %s, Url: %s", methodName,status,url); + logger.debug(EELFLoggerDelegate.debugLogger, message); + } + + } catch (HttpClientErrorException e) { + String message = String.format( + " HttpClientErrorException: Exception For the POST . MethodName: %s, Url: %s", methodName,url); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + EPLogUtil.schedulerAccessAlarm(logger, e.getStatusCode().value()); + } catch (Exception e) { + String message = String.format( + " HttpClientErrorException: Exception For the POST . MethodName: %s, Url: %s", methodName,url); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + EPLogUtil.schedulerAccessAlarm(logger, HttpStatus.INTERNAL_SERVER_ERROR.value()); + throw e; + } + } + + @Override + public void logRequest(JSONObject requestDetails) { + } + + @SuppressWarnings("unchecked") + public void Delete(T t, JSONObject requestDetails, String sourceID, String path, RestObject restObject) { + + String methodName = "Delete"; + String url = ""; + Response cres = null; + + try { + initRestClient(); + + url = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULER_SERVER_URL_VAL) + path; + + cres = client.target(url).request().accept("application/json").headers(commonHeaders) + // .entity(r) + .build("DELETE", Entity.entity(requestDetails, MediaType.APPLICATION_JSON)).invoke(); + // .method("DELETE", Entity.entity(r, MediaType.APPLICATION_JSON)); + // .delete(Entity.entity(r, MediaType.APPLICATION_JSON)); + + int status = cres.getStatus(); + restObject.setStatusCode(status); + if (cres.getEntity() != null) { + t = (T) cres.readEntity(t.getClass()); + restObject.set(t); + } + + } catch (HttpClientErrorException e) { + logger.error(EELFLoggerDelegate.errorLogger, " HttpClientErrorException:Exception For the Delete", + methodName, url, e); + EPLogUtil.schedulerAccessAlarm(logger, e.getStatusCode().value()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "Exception For the Delete", methodName, url, e); + EPLogUtil.schedulerAccessAlarm(logger, HttpStatus.INTERNAL_SERVER_ERROR.value()); + throw e; + } + } + + public T getInstance(Class clazz) throws IllegalAccessException, InstantiationException { + return clazz.newInstance(); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterfaceFactory.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterfaceFactory.java new file mode 100644 index 00000000..75ae6d3a --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterfaceFactory.java @@ -0,0 +1,51 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler; + +public class SchedulerRestInterfaceFactory { + + + public static SchedulerRestInterfaceIfc getInstance () { + SchedulerRestInterfaceIfc obj = null; + + obj = new SchedulerRestInterface(); + + return ( obj ); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterfaceIfc.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterfaceIfc.java new file mode 100644 index 00000000..5d1da5e3 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterfaceIfc.java @@ -0,0 +1,58 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler; + +import org.json.simple.JSONObject; +import org.onap.portalapp.portal.scheduler.restobjects.RestObject; +import org.springframework.stereotype.Service; + + +@Service +public interface SchedulerRestInterfaceIfc { + + public void initRestClient(); + + public void Get(T t, String sourceId, String path, org.onap.portalapp.portal.scheduler.restobjects.RestObject restObject ) throws Exception; + + public void Delete(T t, JSONObject requestDetails, String sourceID, String path, RestObject restObject) + throws Exception; + + public void Post(T t, JSONObject r, String path, RestObject restObject) throws Exception; + + public void logRequest(JSONObject requestDetails); +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerUtil.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerUtil.java new file mode 100644 index 00000000..2da5f696 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerUtil.java @@ -0,0 +1,136 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; + +import org.onap.portalapp.portal.scheduler.restobjects.GetTimeSlotsRestObject; +import org.onap.portalapp.portal.scheduler.restobjects.PostCreateNewVnfRestObject; +import org.onap.portalapp.portal.scheduler.restobjects.PostSubmitVnfChangeRestObject; +import org.onap.portalapp.portal.scheduler.wrapper.GetTimeSlotsWrapper; +import org.onap.portalapp.portal.scheduler.wrapper.PostCreateNewVnfWrapper; +import org.onap.portalapp.portal.scheduler.wrapper.PostSubmitVnfChangeTimeSlotsWrapper; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +import com.fasterxml.jackson.databind.ObjectMapper; + +public class SchedulerUtil { + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerUtil.class); + + final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); + + public static GetTimeSlotsWrapper getTimeSlotsWrapResponse (GetTimeSlotsRestObject rs) { + + String resp_str = ""; + int status = 0; + + if ( rs != null ) { + resp_str = rs.get(); + status = rs.getStatusCode(); + } + + GetTimeSlotsWrapper w = new GetTimeSlotsWrapper(); + + w.setEntity(resp_str); + w.setStatus (status); + + return (w); + } + + public static PostSubmitVnfChangeTimeSlotsWrapper postSubmitNewVnfWrapResponse (PostSubmitVnfChangeRestObject rs) { + + String resp_str = ""; + int status = 0; + String uuid = ""; + + if ( rs != null ) { + resp_str = rs.get(); + status = rs.getStatusCode(); + uuid = rs.getUUID(); + } + + PostSubmitVnfChangeTimeSlotsWrapper w = new PostSubmitVnfChangeTimeSlotsWrapper(); + + w.setEntity(resp_str); + w.setStatus (status); + w.setUuid(uuid); + + return (w); + } + + public static PostCreateNewVnfWrapper postCreateNewVnfWrapResponse (PostCreateNewVnfRestObject rs) { + + String resp_str = ""; + int status = 0; + String uuid = ""; + + if ( rs != null ) { + resp_str = rs.get(); + status = rs.getStatusCode(); + uuid = rs.getUUID(); + } + + PostCreateNewVnfWrapper w = new PostCreateNewVnfWrapper(); + + w.setEntity(resp_str); + w.setStatus (status); + w.setUuid(uuid); + + return (w); + } + + public static String convertPojoToString ( T t ) throws com.fasterxml.jackson.core.JsonProcessingException { + + String methodName = "convertPojoToString"; + ObjectMapper mapper = new ObjectMapper(); + String r_json_str = ""; + if ( t != null ) { + try { + r_json_str = mapper.writeValueAsString(t); + } + catch ( com.fasterxml.jackson.core.JsonProcessingException j ) { + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " Unable to parse object as json"); + } + } + return (r_json_str); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/client/HttpBasicClient.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/client/HttpBasicClient.java new file mode 100644 index 00000000..8d64b2e4 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/client/HttpBasicClient.java @@ -0,0 +1,85 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.scheduler.client; + + +import java.text.DateFormat; +import java.text.SimpleDateFormat; + +import javax.servlet.ServletContext; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; + +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.client.ClientProperties; +import org.onap.portalapp.portal.scheduler.util.CustomJacksonJaxBJsonProvider; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * General HTTP client. + */ + +public class HttpBasicClient{ + + /** The servlet context. */ + @Autowired + private ServletContext servletContext; + + /** The logger. */ + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(HttpBasicClient.class); + + /** The Constant dateFormat. */ + final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); + + /** + * Obtain a basic HTTP client . + * + * @return Client client object + * @throws Exception the exception + */ + public static Client getClient() throws Exception { + + ClientConfig config = new ClientConfig(); + config.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true); + + return ClientBuilder.newClient(config) + .register(CustomJacksonJaxBJsonProvider.class); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/client/HttpsBasicClient.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/client/HttpsBasicClient.java new file mode 100644 index 00000000..53848e02 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/client/HttpsBasicClient.java @@ -0,0 +1,162 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.scheduler.client; + +import java.io.File; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; + +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSession; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; + +import org.eclipse.jetty.util.security.Password; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.client.ClientProperties; +import org.onap.portalapp.portal.scheduler.SchedulerProperties; +import org.onap.portalapp.portal.scheduler.util.CustomJacksonJaxBJsonProvider; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; + + /** + * General SSL client using the VID tomcat keystore. It doesn't use client certificates. + */ + +public class HttpsBasicClient{ + + /** The logger. */ + static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(HttpsBasicClient.class); + + /** The Constant dateFormat. */ + final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); + + /** + * Retrieve an SSL client. + * + * @return Client The SSL client + * @throws Exception the exception + */ + public static Client getClient() throws Exception { + String methodName = "getClient"; + ClientConfig config = new ClientConfig(); + //config.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE); + //config.getClasses().add(org.openecomp.aai.util.CustomJacksonJaxBJsonProvider.class); + + SSLContext ctx = null; + + try { + + config.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true); + + String truststore_path = SchedulerProperties.getProperty(SchedulerProperties.VID_TRUSTSTORE_FILENAME); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + " " + methodName + " truststore_path=" + truststore_path); + String truststore_password = SchedulerProperties.getProperty(SchedulerProperties.VID_TRUSTSTORE_PASSWD_X); + + + String decrypted_truststore_password = Password.deobfuscate(truststore_password); + //logger.debug(dateFormat.format(new Date()) + " " + methodName + " decrypted_truststore_password=" + decrypted_truststore_password); + + File tr = new File (truststore_path); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + " " + methodName + " absolute truststore path=" + tr.getAbsolutePath()); + + //String keystore_path = certFilePath + AAIProperties.FILESEPARTOR + SystemProperties.getProperty(AAIProperties.AAI_KEYSTORE_FILENAME); + //String keystore_password = SystemProperties.getProperty(AAIProperties.AAI_KEYSTORE_PASSWD_X); + //String decrypted_keystore_password = EncryptedPropValue.decryptTriple(keystore_password); + + System.setProperty("javax.net.ssl.trustStore", truststore_path); + System.setProperty("javax.net.ssl.trustStorePassword", decrypted_truststore_password); + HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier(){ + public boolean verify(String string,SSLSession ssls) { + return true; + } + }); + + //May need to make the algorithm a parameter. MSO requires TLSv1.1 or TLSv1.2 + ctx = SSLContext.getInstance("TLSv1.2"); + + /* + KeyManagerFactory kmf = null; + try { + kmf = KeyManagerFactory.getInstance("SunX509"); + FileInputStream fin = new FileInputStream(keystore_path); + KeyStore ks = KeyStore.getInstance("PKCS12"); + char[] pwd = decrypted_keystore_password.toCharArray(); + ks.load(fin, pwd); + kmf.init(ks, pwd); + } catch (Exception e) { + System.out.println("Error setting up kmf: exiting"); + e.printStackTrace(); + System.exit(1); + } + + ctx.init(kmf.getKeyManagers(), null, null); + */ + ctx.init(null, null, null); + //config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, + // new HTTPSProperties( , ctx)); + + return ClientBuilder.newBuilder() + .sslContext(ctx) + .hostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify( String s, SSLSession sslSession ) { + return true; + } + }).withConfig(config) + .build() + .register(CustomJacksonJaxBJsonProvider.class); + + } catch (Exception e) { + logger.debug(EELFLoggerDelegate.debugLogger, "Error setting up config: exiting"); + //System.out.println("Error setting up config: exiting"); + e.printStackTrace(); + return null; + } + + //Client client = ClientBuilder.newClient(config); + // uncomment this line to get more logging for the request/response + // client.addFilter(new LoggingFilter(System.out)); + + //return client; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/policy/rest/RequestDetails.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/policy/rest/RequestDetails.java new file mode 100644 index 00000000..66b77faf --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/policy/rest/RequestDetails.java @@ -0,0 +1,125 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.scheduler.policy.rest; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +/* + [ + { + "policyConfigMessage": "Config Retrieved! ", + "policyConfigStatus": "CONFIG_RETRIEVED", + "type": "JSON", + "config": "{\"service\":\"TimeLimitAndVerticalTopology\",\"policyName\":\"SNIRO_CM_1707.Demo_TimeLimitAndVerticalTopology_zone_localTime\",\"description\":\"dev instance\",\"templateVersion\":\"1702.03\",\"version\":\"1707\",\"priority\":\"4\",\"riskType\":\"test\",\"riskLevel\":\"3\",\"guard\":\"False\",\"content\":{\"serviceType\":\"networkOnDemand\",\"identity\":\"vnf_upgrade_policy\",\"policyScope\":{\"serviceType\":[\"networkOnDemand\"],\"aicZone\":[\" \"],\"entityType\":[\"vnf\"]},\"timeSchedule\":{\"allowedPeriodicTime\":[{\"day\":\"weekday\",\"timeRange\":[{\"start_time\":\"04:00:00\",\"end_time\":\"13:00:00\"}]}]},\"nodeType\":[\"vnf\"],\"type\":\"timeLimitAndVerticalTopology\",\"conflictScope\":\"vnf_zone\"}}", + "policyName": "SNIRO_CM_1707.Config_MS_Demo_TimeLimitAndVerticalTopology_zone_localTime.1.xml", + "policyVersion": "1", + "matchingConditions": { + "ECOMPName": "SNIRO-Placement", + "ConfigName": "", + "service": "TimeLimitAndVerticalTopology", + "uuid": "", + "Location": "" + }, + "responseAttributes": {}, + "property": null + }, + { + "policyConfigMessage": "Config Retrieved! ", + "policyConfigStatus": "CONFIG_RETRIEVED", + "type": "JSON", + "config": "{\"service\":\"TimeLimitAndVerticalTopology\",\"policyName\":\"SNIRO_CM_1707.Demo_TimeLimitAndVerticalTopology_pserver_localTime\",\"description\":\"dev instance\",\"templateVersion\":\"1702.03\",\"version\":\"1707\",\"priority\":\"4\",\"riskType\":\"test\",\"riskLevel\":\"3\",\"guard\":\"False\",\"content\":{\"serviceType\":\"networkOnDemand\",\"identity\":\"vnf_upgrade_policy\",\"policyScope\":{\"serviceType\":[\"networkOnDemand\"],\"aicZone\":[\" \"],\"entityType\":[\"vnf\"]},\"timeSchedule\":{\"allowedPeriodicTime\":[{\"day\":\"weekday\",\"timeRange\":[{\"start_time\":\"04:00:00\",\"end_time\":\"13:00:00\"}]}]},\"nodeType\":[\"vnf\"],\"type\":\"timeLimitAndVerticalTopology\",\"conflictScope\":\"vnf_pserver\"}}", + "policyName": "SNIRO_CM_1707.Config_MS_Demo_TimeLimitAndVerticalTopology_pserver_localTime.1.xml", + "policyVersion": "1", + "matchingConditions": { + "ECOMPName": "SNIRO-Placement", + "ConfigName": "", + "service": "TimeLimitAndVerticalTopology", + "uuid": "", + "Location": "" + }, + "responseAttributes": {}, + "property": null + }, + { + "policyConfigMessage": "Config Retrieved! ", + "policyConfigStatus": "CONFIG_RETRIEVED", + "type": "JSON", + "config": "{\"service\":\"TimeLimitAndVerticalTopology\",\"policyName\":\"SNIRO_CM_1707.Demo_TimeLimitAndVerticalTopology_vnf_localTime\",\"description\":\"dev instance\",\"templateVersion\":\"1702.03\",\"version\":\"1707\",\"priority\":\"4\",\"riskType\":\"test\",\"riskLevel\":\"3\",\"guard\":\"False\",\"content\":{\"serviceType\":\"networkOnDemand\",\"identity\":\"vnf_upgrade_policy\",\"policyScope\":{\"serviceType\":[\"networkOnDemand\"],\"aicZone\":[\" \"],\"entityType\":[\"vnf\"]},\"timeSchedule\":{\"allowedPeriodicTime\":[{\"day\":\"weekday\",\"timeRange\":[{\"start_time\":\"04:00:00\",\"end_time\":\"13:00:00\"}]}]},\"nodeType\":[\"vnf\"],\"type\":\"timeLimitAndVerticalTopology\",\"conflictScope\":\"vnf\"}}", + "policyName": "SNIRO_CM_1707.Config_MS_Demo_TimeLimitAndVerticalTopology_vnf_localTime.1.xml", + "policyVersion": "1", + "matchingConditions": { + "ECOMPName": "SNIRO-Placement", + "ConfigName": "", + "service": "TimeLimitAndVerticalTopology", + "uuid": "", + "Location": "" + }, + "responseAttributes": {}, + "property": null + } + ] +*/ +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "policyConfigMessage", + "policyConfigStatus", + "type", + "config", + "policyName", + "policyVersion", + "matchingConditions" +}) +public class RequestDetails { + + @JsonProperty("policyName") + private String policyName; + + @JsonProperty("policyName") + public String getPolicyName() { + return policyName; + } + + @JsonProperty("policyName") + public void setPolicyName(String policyName) { + this.policyName = policyName; + } + +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/GetTimeSlotsRestObject.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/GetTimeSlotsRestObject.java new file mode 100644 index 00000000..6adf59c7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/GetTimeSlotsRestObject.java @@ -0,0 +1,48 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler.restobjects; + +public class GetTimeSlotsRestObject extends RestObject { + + public String uuid; + + public void setUUID(String uuid) { this.uuid = uuid; } + + public String getUUID() { return this.uuid; } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/PostCreateNewVnfRestObject.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/PostCreateNewVnfRestObject.java new file mode 100644 index 00000000..757b8188 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/PostCreateNewVnfRestObject.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler.restobjects; + +public class PostCreateNewVnfRestObject extends RestObject { + + public String uuid; + + public void setUUID(String uuid) { this.uuid = uuid; } + + public String getUUID() { return this.uuid; } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/PostSubmitVnfChangeRestObject.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/PostSubmitVnfChangeRestObject.java new file mode 100644 index 00000000..3f75315e --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/PostSubmitVnfChangeRestObject.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler.restobjects; + +public class PostSubmitVnfChangeRestObject extends RestObject { + + public String uuid; + + public void setUUID(String uuid) { this.uuid = uuid; } + + public String getUUID() { return this.uuid; } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/RestObject.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/RestObject.java new file mode 100644 index 00000000..b2f4d5c0 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/restobjects/RestObject.java @@ -0,0 +1,57 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.scheduler.restobjects; + + +public class RestObject { + + private T t; + + private int statusCode= 0; + + public void set(T t) { this.t = t; } + + public T get() { return t; } + + public void setStatusCode(int v) { this.statusCode = v; } + + public int getStatusCode() { return this.statusCode; } + +} + diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/util/CustomJacksonJaxBJsonProvider.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/util/CustomJacksonJaxBJsonProvider.java new file mode 100644 index 00000000..9f7b092c --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/util/CustomJacksonJaxBJsonProvider.java @@ -0,0 +1,91 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.scheduler.util; + + +import javax.ws.rs.ext.Provider; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; +import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule; + +/** + * The Class CustomJacksonJaxBJsonProvider. + */ +@Provider +public class CustomJacksonJaxBJsonProvider extends JacksonJaxbJsonProvider { + + /** The common mapper. */ + private static ObjectMapper commonMapper = null; + + /** + * Instantiates a new custom jackson jax B json provider. + */ + public CustomJacksonJaxBJsonProvider() { + if (commonMapper == null) { + ObjectMapper mapper = new ObjectMapper(); + + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + + mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + mapper.configure(SerializationFeature.INDENT_OUTPUT, false); + mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false); + + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, false); + + mapper.registerModule(new JaxbAnnotationModule()); + + commonMapper = mapper; + } + super.setMapper(commonMapper); + } + + /** + * Gets the mapper. + * + * @return the mapper + */ + public ObjectMapper getMapper() { + return commonMapper; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/GetTimeSlotsWrapper.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/GetTimeSlotsWrapper.java new file mode 100644 index 00000000..43f4e36a --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/GetTimeSlotsWrapper.java @@ -0,0 +1,42 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler.wrapper; + +public class GetTimeSlotsWrapper extends SchedulerResponseWrapper { + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/PostCreateNewVnfWrapper.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/PostCreateNewVnfWrapper.java new file mode 100644 index 00000000..fce04d84 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/PostCreateNewVnfWrapper.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler.wrapper; + +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.Map; + +import org.apache.commons.lang.builder.ToStringBuilder; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ "uuid" }) +public class PostCreateNewVnfWrapper extends SchedulerResponseWrapper { + + @JsonProperty("uuid") + private String uuid; + + @JsonProperty("uuid") + public String getUuid() { + return uuid; + } + + @JsonProperty("uuid") + public void setUuid(String v) { + this.uuid = v; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + + public String getResponse() throws JsonProcessingException, IOException { + + Map map = new LinkedHashMap<>(); + map.put("status", getStatus()); + map.put("entity", getEntity()); + map.put("uuid", getUuid()); + ObjectMapper objectMapper = new ObjectMapper(); + String jsonResponse = objectMapper.writeValueAsString(map); + return jsonResponse; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/PostSubmitVnfChangeTimeSlotsWrapper.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/PostSubmitVnfChangeTimeSlotsWrapper.java new file mode 100644 index 00000000..bd588e0d --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/PostSubmitVnfChangeTimeSlotsWrapper.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler.wrapper; + +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.Map; + +import org.apache.commons.lang.builder.ToStringBuilder; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ "uuid" }) +public class PostSubmitVnfChangeTimeSlotsWrapper extends SchedulerResponseWrapper { + @JsonProperty("uuid") + private String uuid; + + @JsonProperty("uuid") + public String getUuid() { + return uuid; + } + + @JsonProperty("uuid") + public void setUuid(String v) { + this.uuid = v; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + + public String getResponse() throws JsonProcessingException, IOException { + + Map map = new LinkedHashMap<>(); + map.put("status", getStatus()); + map.put("entity", getEntity()); + map.put("uuid", getUuid()); + ObjectMapper objectMapper = new ObjectMapper(); + String jsonResponse = objectMapper.writeValueAsString(map); + return jsonResponse; + + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/SchedulerResponseWrapper.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/SchedulerResponseWrapper.java new file mode 100644 index 00000000..67ded99d --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/wrapper/SchedulerResponseWrapper.java @@ -0,0 +1,107 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduler.wrapper; + +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.Map; + +import org.apache.commons.lang.builder.ToStringBuilder; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +/** + * This wrapper encapsulates the Scheduler response + */ +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ "status", "entity" }) + +public class SchedulerResponseWrapper { + + @JsonProperty("status") + private int status; + + @JsonProperty("entity") + private String entity; + + @JsonProperty("entity") + public String getEntity() { + return entity; + } + + @JsonProperty("status") + public int getStatus() { + return status; + } + + @JsonProperty("status") + public void setStatus(int v) { + this.status = v; + } + + @JsonProperty("entity") + public void setEntity(String v) { + this.entity = v; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + + public String getResponse() throws JsonProcessingException, IOException { + /* + * StringBuilder b = new StringBuilder ("{ \"status\": "); + * + * b.append(getStatus()).append(", \"entity\": " + * ).append(this.getEntity()).append("}"); return (b.toString()); + */ + + Map map = new LinkedHashMap<>(); + map.put("status", getStatus()); + map.put("entity", getEntity()); + ObjectMapper objectMapper = new ObjectMapper(); + String jsonResponse = objectMapper.writeValueAsString(map); + return jsonResponse; + + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/RestObject.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/RestObject.java new file mode 100644 index 00000000..f9755a0f --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/RestObject.java @@ -0,0 +1,86 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.scheduleraux; + +/** + * The Class RestObject. + * + * @param the generic type + */ +public class RestObject { + + /** + * Generic version of the RestObject class. + * + */ + // T stands for "Type" + private T t; + + /** The status code. */ + private int statusCode= 0; + + /** + * Sets the. + * + * @param t the t + */ + public void set(T t) { this.t = t; } + + /** + * Gets the. + * + * @return the t + */ + public T get() { return t; } + + /** + * Sets the status code. + * + * @param v the new status code + */ + public void setStatusCode(int v) { this.statusCode = v; } + + /** + * Gets the status code. + * + * @return the status code + */ + public int getStatusCode() { return this.statusCode; } + +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxResponseWrapper.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxResponseWrapper.java new file mode 100644 index 00000000..35becb6b --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxResponseWrapper.java @@ -0,0 +1,93 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduleraux; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.apache.commons.lang.builder.ToStringBuilder; + +/** + * This wrapper encapsulates the Policy response + */ +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "status", + "entity" +}) + +public class SchedulerAuxResponseWrapper { + + @JsonProperty("status") + private int status; + + @JsonProperty("entity") + private String entity; + + @JsonProperty("entity") + public String getEntity() { + return entity; + } + + @JsonProperty("status") + public int getStatus() { + return status; + } + + @JsonProperty("status") + public void setStatus(int v) { + this.status = v; + } + + @JsonProperty("entity") + public void setEntity(String v) { + this.entity = v; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + + public String getResponse () { + + StringBuilder b = new StringBuilder ("{ \"status\": "); + b.append(getStatus()).append(", \"entity\": " ).append(this.getEntity()).append("}"); + return (b.toString()); + } +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInt.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInt.java new file mode 100644 index 00000000..18f4ce88 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInt.java @@ -0,0 +1,85 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.scheduleraux; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; + +import org.onap.portalapp.portal.scheduler.policy.rest.RequestDetails; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +import com.fasterxml.jackson.databind.ObjectMapper; + +public class SchedulerAuxRestInt { + + /** The logger. */ + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerAuxRestInterface.class); + + /** The Constant dateFormat. */ + final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); + + /** The request date format. */ + public DateFormat requestDateFormat = new SimpleDateFormat("EEE, dd MMM YYYY HH:mm:ss z"); + + public SchedulerAuxRestInt() { + requestDateFormat.setTimeZone(java.util.TimeZone.getTimeZone("GMT")); + } + + /** + * Log request. + * + * @param r the r + */ + public void logRequest ( RequestDetails r ) { + String methodName = "logRequest"; + ObjectMapper mapper = new ObjectMapper(); + String r_json_str = ""; + if ( r != null ) { + r_json_str = r.toString(); + try { + r_json_str = mapper.writeValueAsString(r); + } + catch ( com.fasterxml.jackson.core.JsonProcessingException j ) { + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " Unable to parse request as json"); + } + } + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " Request=(" + r_json_str + ")"); + } +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterface.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterface.java new file mode 100644 index 00000000..bf0fa515 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterface.java @@ -0,0 +1,278 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduleraux; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Collections; +import java.util.Date; + +import javax.ws.rs.client.Client; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedHashMap; +import javax.ws.rs.core.Response; + +import org.apache.commons.codec.binary.Base64; +import org.eclipse.jetty.util.security.Password; +import org.json.simple.JSONObject; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.scheduler.SchedulerProperties; +import org.onap.portalapp.portal.scheduler.client.HttpBasicClient; +import org.onap.portalapp.portal.scheduler.policy.rest.RequestDetails; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.http.HttpStatus; +import org.springframework.web.client.HttpClientErrorException; + +public class SchedulerAuxRestInterface extends SchedulerAuxRestInt implements SchedulerAuxRestInterfaceIfc { + + /** The logger. */ + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerAuxRestInterface.class); + + /** The Constant dateFormat. */ + final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); + + /** The client. */ + private static Client client = null; + + /** The common headers. */ + private MultivaluedHashMap commonHeaders; + + public SchedulerAuxRestInterface() { + super(); + } + + public void initRestClient() { + final String methodname = "initRestClient()"; + final String mechId = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_CLIENT_MECHID_VAL); + final String clientPassword = SchedulerProperties + .getProperty(SchedulerProperties.SCHEDULERAUX_CLIENT_PASSWORD_VAL); + final String username = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_USERNAME_VAL); + final String password = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_PASSWORD_VAL); + final String environment = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_ENVIRONMENT_VAL); + final String clientAuth = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_CLIENTAUTH_VAL); + final String decrypted_client_password = Password.deobfuscate(clientPassword); + String mechAuthString = mechId + ":" + decrypted_client_password; + byte[] mechAuthEncBytes = Base64.encodeBase64(mechAuthString.getBytes()); + final String decrypted_password = Password.deobfuscate(password); + String authString = username + ":" + decrypted_password; + byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); + String authorization = new String(authEncBytes); + + commonHeaders = new MultivaluedHashMap(); + commonHeaders.put("ClientAuth", Collections.singletonList((Object) ("Basic " + clientAuth))); + commonHeaders.put("Authorization", Collections.singletonList((Object) ("Basic " + authorization))); + commonHeaders.put("Environment", Collections.singletonList((Object) (environment))); + + if (client == null) { + + try { + client = HttpBasicClient.getClient(); + } catch (Exception e) { + logger.debug(EELFLoggerDelegate.debugLogger, " Unable to get the SSL client", methodname); + + } + } + } + + @SuppressWarnings("unchecked") + public void Get(T t, String sourceId, String path, RestObject restObject) throws Exception { + String methodName = "Get"; + + logger.debug(EELFLoggerDelegate.debugLogger, " start", methodName); + + String url = ""; + restObject.set(t); + + url = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_SERVER_URL_VAL) + path; + logger.debug(EELFLoggerDelegate.debugLogger, " sending request to url: ", dateFormat.format(new Date()), + methodName, url); + + initRestClient(); + + final Response cres = client.target(url).request().accept("application/json").headers(commonHeaders).get(); + + int status = cres.getStatus(); + restObject.setStatusCode(status); + + if (status == 200) { + t = (T) cres.readEntity(t.getClass()); + restObject.set(t); + logger.debug(EELFLoggerDelegate.debugLogger, " REST api was successfull!", dateFormat.format(new Date()), + methodName); + + } else { + throw new Exception(methodName + " with status=" + status + ", url= " + url); + } + + logger.debug(EELFLoggerDelegate.debugLogger, " received status", methodName, status); + + return; + } + + @SuppressWarnings("unchecked") + public void Delete(T t, RequestDetails r, String sourceID, String path, RestObject restObject) { + + String methodName = "Delete"; + String url = ""; + Response cres = null; + + logRequest(r); + + try { + initRestClient(); + + url = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_SERVER_URL_VAL) + path; + logger.debug(EELFLoggerDelegate.debugLogger, " methodName sending request to: ", + dateFormat.format(new Date()), url, methodName); + + cres = client.target(url).request().accept("application/json").headers(commonHeaders) + // .entity(r) + .build("DELETE", Entity.entity(r, MediaType.APPLICATION_JSON)).invoke(); + // .method("DELETE", Entity.entity(r, MediaType.APPLICATION_JSON)); + // .delete(Entity.entity(r, MediaType.APPLICATION_JSON)); + + int status = cres.getStatus(); + restObject.setStatusCode(status); + + if (status == 404) { // resource not found + String msg = "Resource does not exist...: " + cres.getStatus(); + logger.debug(EELFLoggerDelegate.debugLogger, "msg", dateFormat.format(new Date()), msg); + } else if (status == 200 || status == 204) { + logger.debug(EELFLoggerDelegate.debugLogger, "Resource--deleted:url", dateFormat.format(new Date()), + url); + } else if (status == 202) { + String msg = "Delete in progress: " + status; + logger.debug(EELFLoggerDelegate.debugLogger, "msg ", dateFormat.format(new Date()), msg); + } else { + String msg = "Deleting Resource failed: " + status; + logger.debug(EELFLoggerDelegate.debugLogger, "msg", dateFormat.format(new Date()), msg); + } + + try { + t = (T) cres.readEntity(t.getClass()); + restObject.set(t); + } catch (HttpClientErrorException e) { + logger.error(EELFLoggerDelegate.errorLogger, + " HttpClientErrorException:No response entity, this is probably ok, e=", methodName, e); + EPLogUtil.schedulerAccessAlarm(logger, e.getStatusCode().value()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "No response entity, this is probably ok, e=", methodName, + e); + EPLogUtil.schedulerAccessAlarm(logger, HttpStatus.INTERNAL_SERVER_ERROR.value()); + + } + + } catch (HttpClientErrorException e) { + logger.error(EELFLoggerDelegate.errorLogger, " HttpClientErrorException:Exception with the URL", methodName, + url, e); + EPLogUtil.schedulerAccessAlarm(logger, e.getStatusCode().value()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "Exception with the URL ", dateFormat.format(new Date()), + methodName, url, e); + EPLogUtil.schedulerAccessAlarm(logger, HttpStatus.INTERNAL_SERVER_ERROR.value()); + + throw e; + + } + } + + @SuppressWarnings("unchecked") + public void Post(T t, JSONObject requestDetails, String uuid, String path, RestObject restObject) + throws HttpClientErrorException, Exception { + + String methodName = "Post"; + String url = ""; + Response cres = null; + logger.debug(EELFLoggerDelegate.debugLogger, "POST policy rest interface"); + // logRequest (requestDetails); + try { + + initRestClient(); + + url = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_SERVER_URL_VAL) + path; + logger.debug(EELFLoggerDelegate.debugLogger, " sending request to url= ", methodName, url); + // Change the content length + + cres = client.target(url).request().accept("application/json").headers(commonHeaders) + // .header("content-length", 201) + // .header("X-FromAppId", sourceID) + .post(Entity.entity(requestDetails, MediaType.APPLICATION_JSON)); + + t = (T) cres.readEntity(t.getClass()); + if (t.equals("")) { + restObject.set(null); + } else { + restObject.set(t); + } + + int status = cres.getStatus(); + + restObject.setStatusCode(status); + + if (status >= 200 && status <= 299) { + logger.debug(EELFLoggerDelegate.debugLogger, " REST api POST was successful!", methodName); + + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "methodname with Status and URL", methodName, status, url); + } + + } catch (HttpClientErrorException e) { + String message = String.format( + " HttpClientErrorException:Exception with the URL . MethodName: %s, Url: %s", methodName,url); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + EPLogUtil.schedulerAccessAlarm(logger, e.getStatusCode().value()); + } catch (Exception e) { + String message = String.format( + " Exception with the URL . MethodName: %s, Url: %s", methodName,url); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + EPLogUtil.schedulerAccessAlarm(logger, HttpStatus.BAD_REQUEST.value()); + throw e; + + } + } + + public T getInstance(Class clazz) throws IllegalAccessException, InstantiationException { + return clazz.newInstance(); + } + + @Override + public void logRequest(RequestDetails r) { + // TODO Auto-generated method stub + } +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterfaceFactory.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterfaceFactory.java new file mode 100644 index 00000000..55ab036c --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterfaceFactory.java @@ -0,0 +1,50 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduleraux; + +public class SchedulerAuxRestInterfaceFactory { + + + public static SchedulerAuxRestInterfaceIfc getInstance () { + SchedulerAuxRestInterfaceIfc obj = null; + + obj = new SchedulerAuxRestInterface(); + + return ( obj ); + } +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterfaceIfc.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterfaceIfc.java new file mode 100644 index 00000000..4c0d64ef --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxRestInterfaceIfc.java @@ -0,0 +1,94 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduleraux; + +import org.json.simple.JSONObject; +import org.onap.portalapp.portal.scheduler.policy.rest.RequestDetails; + +public interface SchedulerAuxRestInterfaceIfc { + /** + * Inits the rest client. + */ + public void initRestClient(); + + /** + * Gets the. + * + * @param the generic type + * @param t the t + * @param sourceId the source id + * @param path the path + * @param restObject the rest object + * @throws Exception the exception + */ + public void Get (T t, String sourceId, String path, RestObject restObject ) throws Exception; + + /** + * Delete. + * + * @param the generic type + * @param t the t + * @param r the r + * @param sourceID the source ID + * @param path the path + * @param restObject the rest object + * @throws Exception the exception + */ + public void Delete(T t, RequestDetails r, String sourceID, String path, RestObject restObject) throws Exception; + + /** + * Post. + * + * @param the generic type + * @param t the t + * @param r the r + * @param sourceID the source ID + * @param path the path + * @param restObject the rest object + * @throws Exception the exception + */ + public void Post(T t, JSONObject r, String sourceID, String path, RestObject restObject) throws Exception; + + /*** + * Log request. + * + * @param r the r + */ + public void logRequest ( RequestDetails r ); + +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxUtil.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxUtil.java new file mode 100644 index 00000000..678073c8 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduleraux/SchedulerAuxUtil.java @@ -0,0 +1,108 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.scheduleraux; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; + +import org.glassfish.jersey.client.ClientResponse; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +/*import org.openecomp.vid.policy.PolicyResponseWrapper; +import org.openecomp.vid.policy.PolicyUtil; +import org.openecomp.vid.policy.RestObject;*/ + +import com.fasterxml.jackson.databind.ObjectMapper; + +public class SchedulerAuxUtil { + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerAuxUtil.class); + + final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); + + public static SchedulerAuxResponseWrapper wrapResponse ( String body, int statusCode ) { + + SchedulerAuxResponseWrapper w = new SchedulerAuxResponseWrapper(); + w.setStatus (statusCode); + w.setEntity(body); + + return w; + } + + public static SchedulerAuxResponseWrapper wrapResponse (ClientResponse cres) { + String resp_str = ""; + if ( cres != null ) { + resp_str = cres.readEntity(String.class); + } + int statuscode = cres.getStatus(); + SchedulerAuxResponseWrapper w = SchedulerAuxUtil.wrapResponse ( resp_str, statuscode ); + return (w); + } + + public static SchedulerAuxResponseWrapper wrapResponse (RestObject rs) { + String resp_str = ""; + int status = 0; + if ( rs != null ) { + resp_str = rs.get(); + status = rs.getStatusCode(); + } + SchedulerAuxResponseWrapper w = SchedulerAuxUtil.wrapResponse ( resp_str, status ); + return (w); + } + + public static String convertPojoToString ( T t ) throws com.fasterxml.jackson.core.JsonProcessingException { + + String methodName = "convertPojoToString"; + ObjectMapper mapper = new ObjectMapper(); + String r_json_str = ""; + if ( t != null ) { + try { + r_json_str = mapper.writeValueAsString(t); + } + catch ( com.fasterxml.jackson.core.JsonProcessingException j ) { + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " Unable to parse object as json"); + } + } + return (r_json_str); + } + + + public static void main(String[] args) { + // TODO Auto-generated method stub + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AdminRolesService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AdminRolesService.java new file mode 100644 index 00000000..49ab1a06 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AdminRolesService.java @@ -0,0 +1,77 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.transport.AppsListWithAdminRole; + +public interface AdminRolesService { + + public AppsListWithAdminRole getAppsWithAdminRoleStateForUser(String orgUserId); + + public boolean setAppsWithAdminRoleStateForUser(AppsListWithAdminRole newAppsListWithAdminRoles); + + /** + * Attention! User roles in ECOMP PORTAL cannot be managed by this function. + * @param user + * @return 'true' if user has Super Administrator role SYS_ADMIN_ROLE_ID (1 for now) in ECOMP PORTAL, 'false' otherwise + */ + public boolean isSuperAdmin(EPUser user); + + /** + * Attention! User roles in ECOMP PORTAL cannot be managed by this function. + * @param user + * @return 'true' if user has Account Administrator role ACCOUNT_ADMIN_ROLE_ID (999 for now) for any application except ECOMP Portal, 'false' otherwise + */ + public boolean isAccountAdmin(EPUser user); + + /** + * Attention! User roles in ECOMP PORTAL cannot be managed by this function. + * @param user + * @return 'true' if user has any remote(!) role within any application (ECOMP Portal roles are not included), 'false' otherwise + */ + public boolean isUser(EPUser user); + + List getRolesByApp(EPUser user, Long appId); + + public boolean isAccountAdminOfApplication(EPUser user, EPApp app); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AdminRolesServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AdminRolesServiceImpl.java new file mode 100644 index 00000000..653e974b --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AdminRolesServiceImpl.java @@ -0,0 +1,529 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; + +import javax.annotation.PostConstruct; + +import org.apache.cxf.common.util.StringUtils; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.json.JSONArray; +import org.json.JSONObject; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserApp; +import org.onap.portalapp.portal.domain.UserIdRoleId; +import org.onap.portalapp.portal.domain.UserRole; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.transport.AppNameIdIsAdmin; +import org.onap.portalapp.portal.transport.AppsListWithAdminRole; +import org.onap.portalapp.portal.transport.ExternalAccessUser; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.client.RestTemplate; + +import com.fasterxml.jackson.databind.ObjectMapper; + +@Service("adminRolesService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy + +public class AdminRolesServiceImpl implements AdminRolesService { + + private Long SYS_ADMIN_ROLE_ID = 1L; + private Long ACCOUNT_ADMIN_ROLE_ID = 999L; + private Long ECOMP_APP_ID = 1L; + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AdminRolesServiceImpl.class); + + @Autowired + private SessionFactory sessionFactory; + @Autowired + private DataAccessService dataAccessService; + @Autowired + private SearchService searchService; + @Autowired + private EPAppService appsService; + + private RestTemplate template = new RestTemplate(); + + @PostConstruct + private void init() { + try { + SYS_ADMIN_ROLE_ID = Long.valueOf(SystemProperties.getProperty(EPCommonSystemProperties.SYS_ADMIN_ROLE_ID)); + ACCOUNT_ADMIN_ROLE_ID = Long + .valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ACCOUNT_ADMIN_ROLE_ID)); + ECOMP_APP_ID = Long.valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "init failed", e); + } + } + + @Override + @EPMetricsLog + @SuppressWarnings("unchecked") + public AppsListWithAdminRole getAppsWithAdminRoleStateForUser(String orgUserId) { + AppsListWithAdminRole appsListWithAdminRole = null; + + try { + List userList = null; + Map userParams = new HashMap<>(); + userParams.put("org_user_id", orgUserId); + try { + userList = dataAccessService.executeNamedQuery("getEPUserByOrgUserId", userParams, null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getEPUserByOrgUserId failed", e); + } + + HashMap appsUserAdmin = new HashMap(); + if (userList!= null && userList.size() > 0) { + EPUser user = userList.get(0); + List userAppList = null; + try { + userAppList = dataAccessService.getList(EPUserApp.class, + " where userId = " + user.getId() + " and role.id = " + ACCOUNT_ADMIN_ROLE_ID, null, null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppsWithAdminRoleStateForUser 1 failed", e); + EPLogUtil.logEcompError(EPAppMessagesEnum.BeDaoSystemError); + } + for (EPUserApp userApp : userAppList) { + appsUserAdmin.put(userApp.getAppId(), userApp.getUserId()); + } + } + + appsListWithAdminRole = new AppsListWithAdminRole(); + appsListWithAdminRole.orgUserId = orgUserId; + List appsList = null; + try { + appsList = dataAccessService.getList(EPApp.class, + " where ( enabled = 'Y' or id = " + ECOMP_APP_ID + ")", null, null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppsWithAdminRoleStateForUser 2 failed", e); + EPLogUtil.logEcompError(EPAppMessagesEnum.BeDaoSystemError); + } + for (EPApp app : appsList) { + AppNameIdIsAdmin appNameIdIsAdmin = new AppNameIdIsAdmin(); + appNameIdIsAdmin.id = app.getId(); + appNameIdIsAdmin.appName = app.getName(); + appNameIdIsAdmin.isAdmin = new Boolean(appsUserAdmin.containsKey(app.getId())); + appNameIdIsAdmin.restrictedApp = app.isRestrictedApp(); + appsListWithAdminRole.appsRoles.add(appNameIdIsAdmin); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppsWithAdminRoleStateForUser 3 failed", e); + } + + return appsListWithAdminRole; + } + + private static final Object syncRests = new Object(); + + @Override + @EPMetricsLog + @SuppressWarnings("unchecked") + public boolean setAppsWithAdminRoleStateForUser(AppsListWithAdminRole newAppsListWithAdminRoles) { + boolean result = false; + // No changes if no new roles list or no userId. + if (!StringUtils.isEmpty(newAppsListWithAdminRoles.orgUserId) && newAppsListWithAdminRoles.appsRoles != null) { + synchronized (syncRests) { + List apps = appsService.getAppsFullList(); + HashMap enabledApps = new HashMap(); + for (EPApp app : apps) { + if (app.getEnabled().booleanValue() || app.getId() == ECOMP_APP_ID) { + enabledApps.put(app.getId(), app); + } + } + List newAppsWhereUserIsAdmin = new ArrayList(); + for (AppNameIdIsAdmin adminRole : newAppsListWithAdminRoles.appsRoles) { + // user Admin role may be added only for enabled apps + if (adminRole.isAdmin.booleanValue() && enabledApps.containsKey(adminRole.id)) { + newAppsWhereUserIsAdmin.add(adminRole); + } + } + EPUser user = null; + boolean createNewUser = false; + String orgUserId = newAppsListWithAdminRoles.orgUserId.trim(); + List localUserList = dataAccessService.getList(EPUser.class, + " where org_user_id='" + orgUserId + "'", null, null); + List oldAppsWhereUserIsAdmin = new ArrayList(); + if (localUserList.size() > 0) { + EPUser tmpUser = localUserList.get(0); + oldAppsWhereUserIsAdmin = dataAccessService.getList(EPUserApp.class, + " where userId = " + tmpUser.getId() + " and role.id = " + ACCOUNT_ADMIN_ROLE_ID, null, + null); + if (oldAppsWhereUserIsAdmin.size() > 0 || newAppsWhereUserIsAdmin.size() > 0) { + user = tmpUser; + } + } else if (newAppsWhereUserIsAdmin.size() > 0) { + // we create new user only if he has Admin Role for any App + createNewUser = true; + } + if (user != null || createNewUser) { + Session localSession = null; + Transaction transaction = null; + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + if (createNewUser) { + user = this.searchService.searchUserByUserId(orgUserId); + if (user != null) { + // insert the user with active true in order to + // pass login phase. + user.setActive(true); + localSession.save(EPUser.class.getName(), user); + } + } + for (EPUserApp oldUserApp : oldAppsWhereUserIsAdmin) { + // user Admin role may be deleted only for enabled + // apps + if (enabledApps.containsKey(oldUserApp.getAppId())) { + localSession.delete(oldUserApp); + } + } + for (AppNameIdIsAdmin appNameIdIsAdmin : newAppsWhereUserIsAdmin) { + EPApp app = (EPApp) localSession.get(EPApp.class, appNameIdIsAdmin.id); + EPRole role = (EPRole) localSession.get(EPRole.class, new Long(ACCOUNT_ADMIN_ROLE_ID)); + EPUserApp newUserApp = new EPUserApp(); + newUserApp.setUserId(user.getId()); + newUserApp.setApp(app); + newUserApp.setRole(role); + localSession.save(EPUserApp.class.getName(), newUserApp); + } + transaction.commit(); + if (EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + // Add user admin role for list of centralized applications in external system + addAdminRoleInExternalSystem(user, localSession, newAppsWhereUserIsAdmin); + } + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + logger.error(EELFLoggerDelegate.errorLogger, + "setAppsWithAdminRoleStateForUser: exception in point 2", e); + try { + if(transaction!=null) + transaction.rollback(); + else + logger.error(EELFLoggerDelegate.errorLogger, "setAppsWithAdminRoleStateForUser: transaction is null cannot rollback"); + } catch (Exception ex) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeExecuteRollbackError, e); + logger.error(EELFLoggerDelegate.errorLogger, + "setAppsWithAdminRoleStateForUser: exception in point 3", ex); + } + } finally { + try { + localSession.close(); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoCloseSessionError, e); + logger.error(EELFLoggerDelegate.errorLogger, + "setAppsWithAdminRoleStateForUser: exception in point 4", e); + } + } + } + } + } + + return result; + } + + @SuppressWarnings("unchecked") + private boolean addAdminRoleInExternalSystem(EPUser user, Session localSession, + List newAppsWhereUserIsAdmin) { + boolean result = false; + try { + // Reset All admin role for centralized applications + List appList = dataAccessService.executeNamedQuery("getCentralizedApps", null, null); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + for (EPApp app : appList) { + String name = ""; + if (EPCommonSystemProperties + .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { + name = user.getOrgUserId() + SystemProperties + .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); + } + String extRole = app.getNameSpace() + "." + PortalConstants.ADMIN_ROLE.replaceAll(" ", "_"); + HttpEntity entity = new HttpEntity<>(headers); + logger.debug(EELFLoggerDelegate.debugLogger, "Connecting to External Access system"); + try { + ResponseEntity getResponse = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "roles/" + extRole, HttpMethod.GET, entity, String.class); + + if (getResponse.getBody().equals("{}")) { + String addDesc = "{\"name\":\"" + extRole + "\"}"; + HttpEntity roleEntity = new HttpEntity<>(addDesc, headers); + template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "role", + HttpMethod.POST, roleEntity, String.class); + } else { + try { + HttpEntity deleteUserRole = new HttpEntity<>(headers); + template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "userRole/" + name + "/" + extRole, + HttpMethod.DELETE, deleteUserRole, String.class); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + " Role not found for this user may be it gets deleted before", e); + } + } + } catch (Exception e) { + if (e.getMessage().equalsIgnoreCase("404 Not Found")) { + logger.debug(EELFLoggerDelegate.debugLogger, "Application Not found for app {}", + app.getNameSpace(), e.getMessage()); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "Application Not found for app {}", + app.getNameSpace(), e); + } + } + } + // Add admin role in external application + // application + for (AppNameIdIsAdmin appNameIdIsAdmin : newAppsWhereUserIsAdmin) { + EPApp app = (EPApp) localSession.get(EPApp.class, appNameIdIsAdmin.id); + try { + if (app.getCentralAuth()) { + String extRole = app.getNameSpace() + "." + PortalConstants.ADMIN_ROLE.replaceAll(" ", "_"); + HttpEntity entity = new HttpEntity<>(headers); + String name = ""; + if (EPCommonSystemProperties + .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { + name = user.getOrgUserId() + SystemProperties + .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); + } + logger.debug(EELFLoggerDelegate.debugLogger, "Connecting to External Access system"); + ResponseEntity getUserRolesResponse = template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "userRoles/user/" + name, + HttpMethod.GET, entity, String.class); + logger.debug(EELFLoggerDelegate.debugLogger, "Connected to External Access system"); + if (!getUserRolesResponse.getBody().equals("{}")) { + JSONObject jsonObj = new JSONObject(getUserRolesResponse.getBody()); + JSONArray extRoles = jsonObj.getJSONArray("userRole"); + final Map extUserRoles = new HashMap<>(); + for (int i = 0; i < extRoles.length(); i++) { + String userRole = extRoles.getJSONObject(i).getString("role"); + if (userRole.startsWith(app.getNameSpace() + ".") + && !userRole.equals(app.getNameSpace() + ".admin") + && !userRole.equals(app.getNameSpace() + ".owner")) { + + extUserRoles.put(userRole, extRoles.getJSONObject(i)); + } + } + if (!extUserRoles.containsKey(extRole)) { + // Assign with new apps user admin + try { + ExternalAccessUser extUser = new ExternalAccessUser(name, extRole); + // Assign user role for an application in external access system + ObjectMapper addUserRoleMapper = new ObjectMapper(); + String userRole = addUserRoleMapper.writeValueAsString(extUser); + HttpEntity addUserRole = new HttpEntity<>(userRole, headers); + template.exchange( + SystemProperties.getProperty( + EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "userRole", + HttpMethod.POST, addUserRole, String.class); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "Failed to add user admin role", e); + } + + } + } + } + result = true; + } catch (Exception e) { + if (e.getMessage().equalsIgnoreCase("404 Not Found")) { + logger.debug(EELFLoggerDelegate.errorLogger, + "Application name space not found in External system for app {} due to bad rquest name space ", + app.getNameSpace(), e.getMessage()); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "Failed to assign admin role for application {}", + app.getNameSpace(), e); + result = false; + } + } + } + } catch (Exception e) { + result = false; + logger.error(EELFLoggerDelegate.errorLogger, "Failed to assign admin roles operation", e); + } + return result; + } + + @SuppressWarnings("unchecked") + @Override + public boolean isSuperAdmin(EPUser user) { + if ((user != null) /* && (user.getId() == null) */ && (user.getOrgUserId() != null)) { + String sql = "SELECT user.USER_ID, user.org_user_id, userrole.ROLE_ID, userrole.APP_ID FROM fn_user_role userrole " + + "INNER JOIN fn_user user ON user.USER_ID = userrole.USER_ID " + "WHERE user.org_user_id = '" + + user.getOrgUserId() + "' " + "AND userrole.ROLE_ID = '" + SYS_ADMIN_ROLE_ID + "' " + + "AND userrole.APP_ID = '" + ECOMP_APP_ID + "';"; + try { + List userRoleList = dataAccessService.executeSQLQuery(sql, UserIdRoleId.class, null); + if (userRoleList != null && userRoleList.size() > 0) { + return true; + } + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + logger.error(EELFLoggerDelegate.errorLogger, + "Exception occurred while executing isSuperAdmin operation", e); + } + } + // else + // { + // User currentUser = user != null ? (User) + // dataAccessService.getDomainObject(User.class, user.getId(), null) : + // null; + // if (currentUser != null && currentUser.getId() != null) { + // for (UserApp userApp : currentUser.getUserApps()) { + // if (userApp.getApp().getId().equals(ECOMP_APP_ID) && + // userApp.getRole().getId().equals(SYS_ADMIN_ROLE_ID)) { + // // Super Administrator role is global, no need to keep iterating + // return true; + // } + // } + // } + // } + return false; + } + + public boolean isAccountAdmin(EPUser user) { + try { + EPUser currentUser = user != null + ? (EPUser) dataAccessService.getDomainObject(EPUser.class, user.getId(), null) + : null; + if (currentUser != null && currentUser.getId() != null) { + for (EPUserApp userApp : currentUser.getEPUserApps()) { + if (// !userApp.getApp().getId().equals(ECOMP_APP_ID) + // && + userApp.getRole().getId().equals(ACCOUNT_ADMIN_ROLE_ID)) { + // Account Administrator sees only the applications + // he/she is Administrator + return true; + } + } + } + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while executing isAccountAdmin operation", + e); + } + return false; + } + + public boolean isUser(EPUser user) { + try { + EPUser currentUser = user != null + ? (EPUser) dataAccessService.getDomainObject(EPUser.class, user.getId(), null) + : null; + if (currentUser != null && currentUser.getId() != null) { + for (EPUserApp userApp : currentUser.getEPUserApps()) { + if (!userApp.getApp().getId().equals(ECOMP_APP_ID)) { + EPRole role = userApp.getRole(); + if (!role.getId().equals(SYS_ADMIN_ROLE_ID) && !role.getId().equals(ACCOUNT_ADMIN_ROLE_ID)) { + if (role.getActive()) { + return true; + } + } + } + } + } + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while executing isUser operation", e); + } + return false; + } + + @Override + @EPMetricsLog + public List getRolesByApp(EPUser user, Long appId) { + List list = new ArrayList<>(); + String sql = "SELECT * FROM FN_ROLE WHERE UPPER(ACTIVE_YN) = 'Y' AND APP_ID = " + appId; + @SuppressWarnings("unchecked") + List roles = dataAccessService.executeSQLQuery(sql, EPRole.class, null); + for (EPRole role : roles) { + list.add(role); + } + return list; + } + + @Override + public boolean isAccountAdminOfApplication(EPUser user, EPApp app) { + try { + EPUser currentUser = user != null + ? (EPUser) dataAccessService.getDomainObject(EPUser.class, user.getId(), null) : null; + if (currentUser != null && currentUser.getId() != null) { + SortedSet userApps = currentUser.getEPUserApps(); + EPUserApp userApp = userApps.stream() + .filter(x -> x.getRole().getId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID) + && x.getApp().getId().equals(app.getId())) + .findAny().orElse(null); + if (userApp != null) { + return true; + } + } + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + logger.error(EELFLoggerDelegate.errorLogger, + "Exception occurred while executing isAccountAdminOfApplication operation", e); + } + return false; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppContactUsService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppContactUsService.java new file mode 100644 index 00000000..874f7d04 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppContactUsService.java @@ -0,0 +1,73 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; +import org.onap.portalapp.portal.ecomp.model.AppContactUsItem; + +public interface AppContactUsService { + + /** + * Gets a list of contact-us information for all entries in + * the fn_app_contact_us table, sorted by app name. If an application is active but has no fn_app_contact_us entry, it will have no entry in this result. + * + * @return List of AppContactUsItem, one for each item in fn_app_contact_us table. + * @throws Exception + */ + public List getAppContactUs() throws Exception; + + /** + * Gets a list of contact-us information for all applications + * in the fn_app table, extended with any information in the fn_app_contact_us table. + * + * @return List of AppContactUsItem, one for each item in fn_app table. + * @throws Exception + */ + public List getAppsAndContacts() throws Exception; + + public List getAppCategoryFunctions() throws Exception; + + public String saveAppContactUs(List contactUs) throws Exception; + + public String saveAppContactUs(AppContactUsItem contactUs) throws Exception; + + public String deleteContactUs(Long id) throws Exception; + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppContactUsServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppContactUsServiceImpl.java new file mode 100644 index 00000000..edffafc3 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppContactUsServiceImpl.java @@ -0,0 +1,206 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.onap.portalapp.portal.domain.AppContactUs; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; +import org.onap.portalapp.portal.ecomp.model.AppContactUsItem; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; + +/** + * Provides database access for the contact-us page controllers. + */ +@Transactional +@org.springframework.context.annotation.Configuration +public class AppContactUsServiceImpl implements AppContactUsService { + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppContactUsServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.AppContactUsService# + * getAppContactUs() + */ + @SuppressWarnings("unchecked") + @Override + public List getAppContactUs() throws Exception { + List contactUsItemList = (List) getDataAccessService() + .executeNamedQuery("getAppContactUsItems", null, null); + Collections.sort(contactUsItemList, new AppContactUsItemCompare()); + return contactUsItemList; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.AppContactUsService# + * getAllAppsAndContacts() + */ + @SuppressWarnings("unchecked") + @Override + public List getAppsAndContacts() throws Exception { + List contactUsItemList = (List) getDataAccessService() + .executeNamedQuery("getAppsAndContacts", null, null); + Collections.sort(contactUsItemList, new AppContactUsItemCompare()); + return contactUsItemList; + } + + /** + * Assists in sorting app-contact-us items by application name. + */ + class AppContactUsItemCompare implements Comparator { + @Override + public int compare(AppContactUsItem o1, AppContactUsItem o2) { + return o1.getAppName().compareTo(o2.getAppName()); + } + } + + /** + * Gets a table of category and function details for apps that participate + * in the functional menu. + */ + @Override + public List getAppCategoryFunctions() throws Exception { + @SuppressWarnings("unchecked") + // This named query requires no parameters. + List list = (List) dataAccessService + .executeNamedQuery("getAppCategoryFunctions", null, null); + logger.debug(EELFLoggerDelegate.debugLogger, "getAppCategoryFunctions: result list size is " + list.size()); + return list; + } + + /** + * Saves the list of contact-us objects to the database. + */ + @Override + @Transactional(rollbackFor = Exception.class) + public String saveAppContactUs(List contactUsModelList) throws Exception { + try { + for (AppContactUsItem contactUs : contactUsModelList) { + String status = saveAppContactUs(contactUs); + if (!status.equals("success")) + throw new Exception("saveAppContaatUsFailed: service returned " + status); + } + return "success"; + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "", e); + throw new Exception(e); + } + + } + + /** + * Saves a single contact-us object to the database, either creating a new + * row or updating if the argument has the ID of an existing row. + */ + @Override + @Transactional(rollbackFor = Exception.class) + public String saveAppContactUs(AppContactUsItem contactUsModel) throws Exception { + try { + HashMap map = new HashMap(); + AppContactUs contactUs = null; + try { + contactUs = (AppContactUs) getDataAccessService().getDomainObject(AppContactUs.class, + contactUsModel.getAppId(), map); + } catch (Exception e) { + logger.debug(EELFLoggerDelegate.debugLogger, "saveAppContactUs: not found for App {}, adding new entry", + contactUsModel.getAppName()); + contactUs = new AppContactUs(); + } + + // Populate the AppContactUs model for the database. + EPApp app = (EPApp) getDataAccessService().getDomainObject(EPApp.class, contactUsModel.getAppId(), map); + if (app == null || app.getId() == null) + throw new Exception("saveAppContactus: App not found for Id " + contactUsModel.getAppId()); + contactUs.setApp(app); + contactUs.setDescription(contactUsModel.getDescription()); + contactUs.setContactName(contactUsModel.getContactName()); + contactUs.setContactEmail(contactUsModel.getContactEmail()); + contactUs.setActiveYN(contactUsModel.getActiveYN()); + contactUs.setUrl(contactUsModel.getUrl()); + getDataAccessService().saveDomainObject(contactUs, map); + return "success"; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveAppContactUs failed", e); + throw e; + // return "failure"; + } + } + + /** + * Deletes the row from the app contact us table with the specified ID. + */ + @Override + public String deleteContactUs(Long id) throws Exception { + try { + HashMap map = new HashMap(); + AppContactUs contactUs = (AppContactUs) getDataAccessService().getDomainObject(AppContactUs.class, id, map); + if (contactUs.getApp() == null) + throw new Exception("Delete unsuccessful for Id " + id); + getDataAccessService().deleteDomainObject(contactUs, map); + return "success"; + } catch (Exception e) { + + logger.info(EELFLoggerDelegate.errorLogger, "", e); + throw e; + } + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ApplicationsRestClientService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ApplicationsRestClientService.java new file mode 100644 index 00000000..b3f376a7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ApplicationsRestClientService.java @@ -0,0 +1,71 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import org.apache.cxf.transport.http.HTTPException; +import org.onap.portalapp.util.SystemType; + +public interface ApplicationsRestClientService { + public T get(Class clazz, long app, String restPath) throws HTTPException; + public String getIncomingJsonString(long appId, String restPath) throws HTTPException; + + public T post(Class clazz, long appId, Object payload, String restPath) throws HTTPException; + public T post(Class clazz, long appId, Object payload, String restPath, SystemType type) throws HTTPException; + + public T put(Class clazz, long appId, Object payload, String restPath) throws HTTPException; + + /** + * Sends a GET request to the specified application at the specified path. + * This is a workaround for a problem triggered by a superclass/subclass + * with identical field names. + * + * @param clazz + * Expected response type + * @param appId + * Application ID + * @param restPath + * Path at the remote application + * @param useJacksonMapper + * If true, uses a com.fasterxml.jackson.databind.ObjectMapper to + * translate the remote application response from JSON to an + * object. Otherwise, uses a com.google.gson.Gson. + * @return Instance of the specified class + * @throws HTTPException + */ + public T get(Class clazz, long appId, String restPath, boolean useJacksonMapper) throws HTTPException; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ApplicationsRestClientServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ApplicationsRestClientServiceImpl.java new file mode 100644 index 00000000..18717204 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ApplicationsRestClientServiceImpl.java @@ -0,0 +1,428 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static com.att.eelf.configuration.Configuration.MDC_KEY_REQUEST_ID; + +import java.lang.reflect.Type; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Base64; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.apache.commons.lang.StringUtils; +import org.apache.cxf.jaxrs.client.WebClient; +import org.apache.cxf.transport.http.HTTPException; +import org.onap.portalapp.portal.service.AppsCacheService; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.SystemType; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.util.SystemProperties; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; + +@Service("applicationsRestClientService") +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPAuditLog +public class ApplicationsRestClientServiceImpl implements ApplicationsRestClientService { + + private static final String PASSWORD_HEADER = "password"; + + private static final String APP_USERNAME_HEADER = "username"; + + private static final String BASIC_AUTHENTICATION_HEADER = "Authorization"; + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ApplicationsRestClientServiceImpl.class); + + @Autowired + private AppsCacheService appsCacheService; + + Gson gson = null; + + private final ObjectMapper mapper = new ObjectMapper(); + + @PostConstruct + private void init() { + logger.debug(EELFLoggerDelegate.debugLogger, "initializing"); + GsonBuilder builder = new GsonBuilder(); + + // Register an adapter to manage the date types as long values + builder.registerTypeAdapter(Date.class, new JsonDeserializer() { + public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) + throws JsonParseException { + return new Date(json.getAsJsonPrimitive().getAsLong()); + } + }); + + gson = builder.create(); + } + + // TODO: do we need to do additional logging for remote API calls? + private static WebClient createClientForPath(String baseUri, String path) { + logger.info(EELFLoggerDelegate.debugLogger, "Creating web client for " + baseUri + " + " + path); + WebClient client = WebClient.create(baseUri); + client.type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON); + client.path(path); + return client; + } + + @EPMetricsLog + private void verifyResponse(Response response) throws HTTPException { + int status = response.getStatus(); + logger.debug(EELFLoggerDelegate.debugLogger, "http response status=" + status); + MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, Integer.toString(status)); + if (!isHttpSuccess(status)) { + String errMsg = "Failed. Status=" + status + "; [" + response.getStatusInfo().getReasonPhrase().toString() + + "]"; + URL url = null; + try { + // must not be null to avoid NPE in HTTPException constructor + url = new URL("http://null"); + if (response.getLocation() != null) + url = response.getLocation().toURL(); + } catch (MalformedURLException e) { + // never mind. it is only for the debug message. + logger.warn(EELFLoggerDelegate.errorLogger, "Failed to build URL", e); + } + logger.error(EELFLoggerDelegate.errorLogger, "http response failed. " + errMsg + "; url=" + url); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeIncorrectHttpStatusError); + throw new HTTPException(status, errMsg, url); + } + } + + private static boolean isHttpSuccess(int status) { + return status / 100 == 2; + } + + + private WebClient createClientForApp(long appId, String restPath) { + return createClientFor(appId, restPath, SystemType.APPLICATION); + } + + //TODO Need to implement the mylogins once the endpoint is confirmed + @EPMetricsLog + private WebClient createClientFor(long appSystemId, String restPath, SystemType type) { + logger.debug(EELFLoggerDelegate.debugLogger, "creating client for appId=" + appSystemId + "; restPath=" + restPath); + EPApp externalApp = null; + + if(type == SystemType.APPLICATION){ + externalApp = appsCacheService.getApp(appSystemId); + }else{ + // TO DO + } + + if (externalApp != null) { + String appBaseUri = (type == SystemType.APPLICATION) ? externalApp.getAppRestEndpoint() : ""; + String username = (type == SystemType.APPLICATION) ? externalApp.getUsername(): ""; + String encriptedPwd = (type == SystemType.APPLICATION) ? externalApp.getAppPassword(): ""; + String appName = (type == SystemType.APPLICATION) ? externalApp.getName(): ""; + String decreptedAppPwd = StringUtils.EMPTY; + + // Set local context + MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTP); + if (appBaseUri != null && appBaseUri.contains("https")) { + MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTPS); + } + MDC.put(EPCommonSystemProperties.FULL_URL, appBaseUri + restPath); + MDC.put(EPCommonSystemProperties.TARGET_ENTITY, appName); + MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, restPath); + + try { + decreptedAppPwd = CipherUtil.decryptPKC(encriptedPwd, + SystemProperties.getProperty(SystemProperties.Decryption_Key)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "createClientFor failed to decrypt", e); + } + + WebClient client = createClientForPath(appBaseUri, restPath); + + // support basic authentication for some partners + String encoding = Base64.getEncoder().encodeToString((username + ":" + decreptedAppPwd).getBytes()); + String encodingStr = "Basic " + encoding; + client.header(BASIC_AUTHENTICATION_HEADER, encodingStr); + + // But still keep code downward compatible for non compliant apps + client.header(APP_USERNAME_HEADER, username); + client.header(PASSWORD_HEADER, decreptedAppPwd); + + client.header(SystemProperties.ECOMP_REQUEST_ID, MDC.get(MDC_KEY_REQUEST_ID)); + client.header(SystemProperties.USERAGENT_NAME, EPCommonSystemProperties.ECOMP_PORTAL_BE); + + logger.debug(EELFLoggerDelegate.debugLogger, + String.format("App %d found, baseUri=[%s], Headers: [%s=%s, %s=%s, %s=%s]", appSystemId, appBaseUri, + APP_USERNAME_HEADER, username, PASSWORD_HEADER, encriptedPwd, BASIC_AUTHENTICATION_HEADER, encodingStr)); + + return client; + } + return null; + } + + @Override + public T get(Class clazz, long appId, String restPath) throws HTTPException { + T t = null; + Response response = getResponse(appId, restPath); + + if (response != null) { + verifyResponse(response); + String str = response.readEntity(String.class); + EcompPortalUtils.logAndSerializeObject(logger, restPath, "GET result =", str); + try { + t = gson.fromJson(str, clazz); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); + } + } + + return t; + } + + @Override + public String getIncomingJsonString(long appId, String restPath) throws HTTPException { + Response response = getResponse(appId, restPath); + + if (response != null) { + verifyResponse(response); + String incomingJson = response.readEntity(String.class); + return incomingJson; + } + + return ""; + } + + + /* + * (non-Javadoc) + * + * @see + * org.openecomp.portalapp.portal.service.ApplicationsRestClientService#get( + * java.lang.Class, long, java.lang.String, boolean) + */ + @Override + public T get(Class clazz, long appId, String restPath, boolean useJacksonMapper) throws HTTPException { + + if (!useJacksonMapper) + return get(clazz, appId, restPath); + + T t = null; + Response response = getResponse(appId, restPath); + + if (response != null) { + verifyResponse(response); + String str = response.readEntity(String.class); + EcompPortalUtils.logAndSerializeObject(logger, restPath, "GET result =", str); + + try { + t = mapper.readValue(str, clazz); + } catch (Exception e) { + e.printStackTrace(); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); + } + } + + return t; + } + + protected Response getResponse(long appId, String restPath) { + WebClient webClient = null; + Response response = null; + + webClient = createClientForApp(appId, restPath); + EcompPortalUtils.logAndSerializeObject(logger, restPath, "GET request =", "no-payload"); + + try { + if (webClient != null) { + response = webClient.get(); + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "Unable to create the Webclient to make the '" + restPath + "' API call."); + } + } catch (Exception e) { + MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, + Integer.toString(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiGeneralError, e); + logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while making the GET REST API call", e); + } + return response; + } + + + @Override + public T post(Class clazz, long appId, Object payload, String restPath, SystemType type) throws HTTPException { + WebClient client = null; + Response response = null; + T t = null; + + client = createClientFor(appId, restPath, type); + EcompPortalUtils.logAndSerializeObject(logger, restPath, "POST request =", payload); + + try { + if (client != null) { + response = client.post(payload); + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "Unable to create the Webclient to make the '" + restPath + "' API call."); + } + } catch (Exception e) { + MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, + Integer.toString(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiGeneralError, e); + logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while making the POST REST API call", e); + } + + if (response != null) { + verifyResponse(response); + + // String contentType = response.getHeaderString("Content-Type"); + if (clazz != null) { + String str = response.readEntity(String.class); + EcompPortalUtils.logAndSerializeObject(logger, restPath, "POST result =", str); + try { + t = gson.fromJson(str, clazz); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); + } + } + } + return t; + } + + @Override + public T post(Class clazz, long appId, Object payload, String restPath) throws HTTPException { + return post( clazz, appId, payload, restPath, SystemType.APPLICATION); + } + + //@Override + public T postForClass(Class clazz, long appId, Object payload, String restPath, Class forClass) throws HTTPException { + WebClient client = null; + Response response = null; + T t = null; + + client = createClientForApp(appId, restPath); + EcompPortalUtils.logAndSerializeObject(logger, restPath, "POST request =", payload); + + try { + if (client != null) { + response = client.post(payload); + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "Unable to create the Webclient to make the '" + restPath + "' API call."); + } + } catch (Exception e) { + MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, + Integer.toString(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiGeneralError, e); + logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while making the POST REST API call", e); + } + + if (response != null) { + verifyResponse(response); + + // String contentType = response.getHeaderString("Content-Type"); + if (clazz != null) { + String str = response.readEntity(String.class); + EcompPortalUtils.logAndSerializeObject(logger, restPath, "POST result =", str); + try { + t = gson.fromJson(str, clazz); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); + } + } + } + return t; + } + + + @Override + public T put(Class clazz, long appId, Object payload, String restPath) throws HTTPException { + WebClient client = null; + Response response = null; + T t = null; + + client = createClientForApp(appId, restPath); + EcompPortalUtils.logAndSerializeObject(logger, restPath, "PUT request =", payload); + + try { + if (client != null) { + response = client.put(payload); + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "Unable to create the Webclient to make the '" + restPath + "' API call."); + } + } catch (Exception e) { + MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, + Integer.toString(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiGeneralError, e); + logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while making the PUT REST API call", e); + } + + if (response != null) { + verifyResponse(response); + String str = response.readEntity(String.class); + EcompPortalUtils.logAndSerializeObject(logger, restPath, "PUT result =", str); + try { + t = gson.fromJson(str, clazz); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); + } + } + return t; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppsCacheService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppsCacheService.java new file mode 100644 index 00000000..edaf1137 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppsCacheService.java @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.service; + +import org.onap.portalapp.portal.domain.EPApp; + +public interface AppsCacheService { + + /** + * returns an app by id from the cache + * @param appId + * @return corresponding App + */ + EPApp getApp(Long appId); + + /** + * returns the corresponding application endpoint + * @param appId + * @return if appId exists in cache, then return corresponding application endpoint, null otherwise. + */ + String getAppEndpoint(Long appId); + + EPApp getAppForAnalytics(String appKey); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppsCacheServiceImple.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppsCacheServiceImple.java new file mode 100644 index 00000000..c318f196 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/AppsCacheServiceImple.java @@ -0,0 +1,155 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalapp.portal.service.AppsCacheService; +import org.onap.portalapp.portal.service.AppsCacheServiceImple; + +@Service("appsCacheService") +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class AppsCacheServiceImple implements AppsCacheService { + @Autowired + EPAppService appsService; + + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsCacheServiceImple.class); + + final class CacheConfiguration { + + private long updateTime = 0; + private int updateInterval = 10; + + public CacheConfiguration (long _updateTime, int _updateInterval) { + updateTime = _updateTime; + updateInterval = _updateInterval; + } + } + + CacheConfiguration appConf = null; + CacheConfiguration analyticsAppConf = null; + + + private static volatile Map appsMap; + private static volatile Map anlyticsAppsMap; + + @PostConstruct + public void init() { + appConf = new CacheConfiguration(0, 10); + analyticsAppConf = new CacheConfiguration(0, 3600); + + this.refreshAppsMap(appConf); + } + + private Map refreshAppsMap(CacheConfiguration conf) { + long now = System.currentTimeMillis(); + + if(noNeedToUpdate(now, conf)) + return null; + + synchronized (this) { + if(noNeedToUpdate(now, conf)) + return null; + List allApps = appsService.getAppsFullList(); + Map newAppsMap = new HashMap(); + for (EPApp app : allApps) { + newAppsMap.put(app.getId(), app); + } + + Map newAnalyticsAppsMap = new HashMap(); + for (EPApp app : allApps) { + newAnalyticsAppsMap.put(app.getUebKey(), app); + } + // Switch cache with the new one. + appsMap = newAppsMap; + anlyticsAppsMap = newAnalyticsAppsMap; + conf.updateTime = now; + } + + return appsMap; + } + + private boolean noNeedToUpdate(long now, CacheConfiguration conf) { + long secondsPassed = (now - conf.updateTime)/1000; + if(secondsPassed < conf.updateInterval){ + logger.debug(EELFLoggerDelegate.debugLogger, "no need to refresh yet, seconds since last refresh: " + secondsPassed + ", refresh interval (sec) = " + conf.updateInterval); + return true; // no need to update cache + } + return false; // its time to update + } + + @Override + public String getAppEndpoint(Long appId) { + refreshAppsMap(appConf); + EPApp app = appsMap.get(appId); + if(app != null) + return app.getAppRestEndpoint(); + return null; + } + + @Override + public EPApp getApp(Long appId) { + refreshAppsMap(appConf); + EPApp app = appsMap.get(appId); + if(app != null) + return app; + return null; + } + + @Override + public EPApp getAppForAnalytics(String appKey) { + refreshAppsMap(analyticsAppConf); + EPApp app = anlyticsAppsMap.get(appKey); + if(app != null) + return app; + return null; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthAccountService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthAccountService.java new file mode 100644 index 00000000..2b3c3f38 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthAccountService.java @@ -0,0 +1,101 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.BasicAuthCredentials; +import org.onap.portalapp.portal.domain.EPEndpoint; + +public interface BasicAuthAccountService { + + /** + * Saves Basic Authentication account for external systems + * + * @param newCredential + * BasicAuthCredentials + * @return Id of the newly created account + * @throws Exception + */ + Long saveBasicAuthAccount(BasicAuthCredentials newCredential) throws Exception; + + /** + * Saves Endpoint associated with a Basic Auth account + * + * @param endpoint + * EPEndpoint + * @return Id of the newly created endpoint + * @throws Exception + */ + Long saveEndpoints(EPEndpoint endpoint) throws Exception; + + /** + * Saves Endpoint associated with a Basic Auth account + * + * @param accountId + * @param endpointId + * @throws Exception + */ + void saveEndpointAccount(Long accountId, Long endpointId) throws Exception; + + /** + * Returns list of all BasicAuthCredentials in the sytem + * + * @return List + * @throws Exception + */ + List getAccountData() throws Exception; + + /** + * Deletes BasicAuthenticationAccount + * + * @param accountId + * @throws Exception + */ + void deleteEndpointAccout(Long accountId) throws Exception; + + /** + * Updates BasicAuthenticationAccount + * + * @param accountId + * @param newCredential + * BasicAuthCredentials + * @throws Exception + */ + void updateBasicAuthAccount(Long accountId, BasicAuthCredentials newCredential) throws Exception; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthAccountServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthAccountServiceImpl.java new file mode 100644 index 00000000..e6b7c6ea --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthAccountServiceImpl.java @@ -0,0 +1,247 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.onap.portalapp.portal.domain.BasicAuthCredentials; +import org.onap.portalapp.portal.domain.EPEndpoint; +import org.onap.portalapp.portal.domain.EPEndpointAccount; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; + +@Service("basicAuthAccountService") +@EnableAspectJAutoProxy +@EPMetricsLog +public class BasicAuthAccountServiceImpl implements BasicAuthAccountService{ + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MicroserviceServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + @Override + public Long saveBasicAuthAccount(BasicAuthCredentials newCredential) throws Exception { + if (newCredential.getPassword() != null) + newCredential.setPassword(encryptedPassword(newCredential.getPassword())); + try{ + getDataAccessService().saveDomainObject(newCredential, null); + }catch(Exception e){ + logger.error(EELFLoggerDelegate.errorLogger, "saveBasicAuthAccount() failed", e); + throw e; + } + return newCredential.getId(); + } + + + @Override + @SuppressWarnings("unchecked") + public Long saveEndpoints(EPEndpoint endpoint) throws Exception { + + List restrictionsList = new ArrayList(); + Criterion NameCrit = Restrictions.eq("name", endpoint.getName()); + restrictionsList.add(NameCrit); + + List tempList = (List) dataAccessService.getList(EPEndpoint.class, null, + restrictionsList, null); + if (tempList.size() != 0) { + return tempList.get(0).getId(); + } else { + getDataAccessService().saveDomainObject(endpoint, null); + return endpoint.getId(); + } + + } + + @Override + public void saveEndpointAccount(Long accountId, Long endpointId) throws Exception { + EPEndpointAccount record = new EPEndpointAccount(); + record.setAccount_id(accountId); + record.setEp_id(endpointId); + try { + getDataAccessService().saveDomainObject(record, null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveEndpointAccount() failed", e); + throw e; + } + + } + + @Override + @SuppressWarnings("unchecked") + public void updateBasicAuthAccount(Long accountId, BasicAuthCredentials newCredential) throws Exception { + try { + newCredential.setId(accountId); + if (newCredential.getPassword() != null) + newCredential.setPassword(encryptedPassword(newCredential.getPassword())); + getDataAccessService().saveDomainObject(newCredential, null); + + List endpoints = newCredential.getEndpoints(); + List orig_points = getEPEndpoints(accountId); + + for(EPEndpoint temp_ep: orig_points){ + boolean flag = false; + for(EPEndpoint temp_ep2: endpoints){ + if(temp_ep2.getId() == temp_ep.getId()) + flag = true; + } + if(!flag){ + Map params = new HashMap(); + params.put("accountId", Long.toString(accountId)); + params.put("epId", Long.toString(temp_ep.getId())); + dataAccessService.executeNamedQuery("deleteAccountEndpointRecord", params, null); + } + } + + + for(int i = 0; i < endpoints.size(); i++){ + + List restrictionsList = new ArrayList(); + Criterion IdCrit = Restrictions.eq("id", endpoints.get(i).getId()); + restrictionsList.add(IdCrit); + Criterion NameCrit = Restrictions.eq("name", endpoints.get(i).getName()); + restrictionsList.add(NameCrit); + List tempList = (List) dataAccessService + .getList(EPEndpoint.class, null, restrictionsList, null); + if(tempList.size() == 0){ + if(endpoints.get(i).getId() != null){ + //delete the record endpoints.get(i).getId(), accountId + Map params = new HashMap(); + params.put("accountId", Long.toString(accountId)); + params.put("epId", Long.toString(endpoints.get(i).getId())); + dataAccessService.executeNamedQuery("deleteAccountEndpointRecord", params, null); + endpoints.get(i).setId(null); + } + //create a new endpoint + Long ep_id = saveEndpoints(endpoints.get(i)); + saveEndpointAccount(accountId, ep_id); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "updateBasicAuthAccount() failed", e); + throw e; + } + } + + @Override + public List getAccountData() throws Exception { + @SuppressWarnings("unchecked") + List list = (List) dataAccessService.getList(BasicAuthCredentials.class, null); + for (int i = 0; i < list.size(); i++) { + if (list.get(i).getPassword() != null) + list.get(i).setPassword(decryptedPassword(list.get(i).getPassword())); + list.get(i).setEndpoints(getEPEndpoints(list.get(i).getId())); + } + return list; + } + + @SuppressWarnings("unchecked") + private List getEPEndpoints(long accountId) { + List result = new ArrayList<>(); + List list = null; + Map params = new HashMap<>(); + params.put("account_id", accountId); + try { + list = this.getDataAccessService().executeNamedQuery("getEPEndpointAccountByAccountId", params, null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getEPEndpointAccountByAccountId failed", e); + } + + for(int i = 0; list != null && i < list.size(); i++){ + result.add((EPEndpoint) dataAccessService.getDomainObject(EPEndpoint.class, list.get(i).getEp_id(), null)); + } + return result; + } + + @Override + public void deleteEndpointAccout(Long accountId) throws Exception { + try{ + Map params = new HashMap(); + params.put("accountId", Long.toString(accountId)); + + dataAccessService.executeNamedQuery("deleteAccountEndpoint", params, null); + dataAccessService.executeNamedQuery("deleteBasicAuthAccount", params, null); + + }catch(Exception e){ + logger.error(EELFLoggerDelegate.errorLogger, "deleteEndpointAccout() failed", e); + throw e; + } + } + + private String decryptedPassword(String encryptedPwd) throws Exception { + String result = ""; + if (encryptedPwd != null & encryptedPwd.length() > 0) { + try { + result = CipherUtil.decryptPKC(encryptedPwd, + SystemProperties.getProperty(SystemProperties.Decryption_Key)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword() failed", e); + throw e; + } + } + return result; + } + + private String encryptedPassword(String decryptedPwd) throws Exception { + String result = ""; + if (decryptedPwd != null & decryptedPwd.length() > 0) { + try { + result = CipherUtil.encryptPKC(decryptedPwd, + SystemProperties.getProperty(SystemProperties.Decryption_Key)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "encryptedPassword() failed", e); + throw e; + } + } + return result; + } + + public DataAccessService getDataAccessService() { + return dataAccessService; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthenticationCredentialService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthenticationCredentialService.java new file mode 100644 index 00000000..b95b7254 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthenticationCredentialService.java @@ -0,0 +1,53 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import org.onap.portalapp.portal.domain.BasicAuthCredentials; + +public interface BasicAuthenticationCredentialService { + /** + * Gets the basic authentication credential for the specified appName from + * table ep_basic_auth_account + * + * @param username + * External user name + * @return BasicAuthCredentials for the specified app; null if the username + * is not known. + */ + public BasicAuthCredentials getBasicAuthCredentialByUsernameAndPassword(String username, String password); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthenticationCredentialServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthenticationCredentialServiceImpl.java new file mode 100644 index 00000000..b50eb391 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/BasicAuthenticationCredentialServiceImpl.java @@ -0,0 +1,103 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.List; + +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.onap.portalapp.portal.domain.BasicAuthCredentials; +import org.onap.portalapp.portal.domain.EPEndpoint; +import org.onap.portalapp.portal.domain.EPEndpointAccount; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; + +@Service("basicAuthenticationCredentialService") +@EnableAspectJAutoProxy +@EPMetricsLog +public class BasicAuthenticationCredentialServiceImpl implements BasicAuthenticationCredentialService { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(BasicAuthenticationCredentialServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + @Override + public BasicAuthCredentials getBasicAuthCredentialByUsernameAndPassword(String username, String password) { + + List restrictionsList = new ArrayList(); + Criterion contextUserNameCrit = Restrictions.eq("username", username); + restrictionsList.add(contextUserNameCrit); + Criterion contextPasswordCrit = Restrictions.eq("password", password); + restrictionsList.add(contextPasswordCrit); + + @SuppressWarnings("unchecked") + List credList = (List) dataAccessService + .getList(BasicAuthCredentials.class, null, restrictionsList, null); + if (credList == null || credList.size() == 0) { + logger.error(EELFLoggerDelegate.errorLogger, + "getBasicAuthCredentialByAppName: no credential(s) for " + username); + return null; + } + logger.debug(EELFLoggerDelegate.debugLogger, + "getBasicAuthCredentialByAppName: cred list size: " + credList.size()); + BasicAuthCredentials cred = (BasicAuthCredentials) credList.get(0); + cred.setEndpoints(getEndpointsByAccountId(cred.getId())); + return cred; + } + + private List getEndpointsByAccountId(long id) { + List list = new ArrayList<>(); + List restrictionsList = new ArrayList(); + Criterion contextIdCrit = Restrictions.eq("account_id", id); + restrictionsList.add(contextIdCrit); + @SuppressWarnings("unchecked") + List epList = (List) dataAccessService.getList(EPEndpointAccount.class, + null, restrictionsList, null); + for (EPEndpointAccount ep : epList) { + list.add((EPEndpoint) dataAccessService.getDomainObject(EPEndpoint.class, ep.getEp_id(), null)); + } + return list; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ConsulHealthService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ConsulHealthService.java new file mode 100644 index 00000000..87d20712 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ConsulHealthService.java @@ -0,0 +1,62 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.exceptions.NoHealthyServiceException; + +import com.ecwid.consul.ConsulException; +import com.orbitz.consul.model.health.ServiceHealth; + +public interface ConsulHealthService { + /** + * This method returns the location of one healthy node if found in Consul - + * If not found in / by Consul, it falls back to 'localhost' + * + * @param service + * @param fallbackPortOnLocalhost + * value provided by the calling service + * @return Service location + */ + public String getServiceLocation(String service, String fallbackPortOnLocalhost) throws NoHealthyServiceException; + + public List getAllHealthyNodes(String service) throws ConsulException; + + public List getAllNodes(String service) throws ConsulException; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ConsulHealthServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ConsulHealthServiceImpl.java new file mode 100644 index 00000000..ebb43767 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ConsulHealthServiceImpl.java @@ -0,0 +1,114 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.stereotype.Component; + +import com.ecwid.consul.ConsulException; +import com.orbitz.consul.Consul; +import com.orbitz.consul.HealthClient; +import com.orbitz.consul.model.health.ServiceHealth; + +@Component +public class ConsulHealthServiceImpl implements ConsulHealthService { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ConsulHealthServiceImpl.class); + + @Override + public String getServiceLocation(String service, String fallbackPortOnLocalHost) { + + List nodes = null; + + try { + Consul consul = Consul.builder().build(); + HealthClient healthClient = consul.healthClient(); + nodes = healthClient.getHealthyServiceInstances(service).getResponse(); + } catch (Exception e) { + String localFallbackServiceLocation = EcompPortalUtils.localOrDockerHost() + ":" + fallbackPortOnLocalHost; + logger.debug(EELFLoggerDelegate.debugLogger, + " problem getting nodes for service {1}. Defaulting to {2}. Exception: {3}", service, + localFallbackServiceLocation, e.getMessage()); + logger.error(EELFLoggerDelegate.errorLogger, + " problem getting nodes for service {1}. Defaulting to {2}. Exception: {3}", service, + localFallbackServiceLocation, e); + return localFallbackServiceLocation; + } + + if (nodes == null || nodes.size() == 0) { + logger.debug(EELFLoggerDelegate.debugLogger, "No healthy node found in the consul cluster running service " + service + + ". Defaulting to localhost"); + return EcompPortalUtils.localOrDockerHost() + ":" + fallbackPortOnLocalHost; + } else { + String locationFromConsul; + ServiceHealth node = nodes.get(0); + locationFromConsul = node.getNode().getNode() + ":" + node.getService().getPort(); + logger.debug(EELFLoggerDelegate.debugLogger, + "Found healthy service location using consul - returning location " + locationFromConsul); + + // if locationFromConsul is null for some reason (very unlikely at + // this point), default to localhost + if (null == locationFromConsul || "".equals(locationFromConsul)) { + logger.debug(EELFLoggerDelegate.debugLogger, + "Couldn't get location from consul for service " + service + ". Defaulting to localhost"); + return "localhost:" + fallbackPortOnLocalHost; + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "Found service location from consul for service " + service + + ". Location is " + locationFromConsul); + return locationFromConsul; + } + } + } + + @Override + public List getAllHealthyNodes(String service) throws ConsulException { + Consul consul = Consul.builder().build(); + HealthClient healthClient = consul.healthClient(); + return healthClient.getHealthyServiceInstances(service).getResponse(); + } + + @Override + public List getAllNodes(String service) { + Consul consul = Consul.builder().build(); + HealthClient healthClient = consul.healthClient(); + return healthClient.getAllServiceInstances(service).getResponse(); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/DashboardSearchService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/DashboardSearchService.java new file mode 100644 index 00000000..82a40b7d --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/DashboardSearchService.java @@ -0,0 +1,55 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; +import java.util.Map; + +import org.onap.portalapp.portal.ecomp.model.SearchResultItem; +import org.onap.portalapp.portal.transport.CommonWidget; +import org.onap.portalapp.portal.transport.CommonWidgetMeta; + +public interface DashboardSearchService { + public Map> searchResults(String userId, String searchString); + public List getRelatedUsers(String userId); + + public CommonWidgetMeta getWidgetData(String resourceType); + public String saveWidgetDataBulk(CommonWidgetMeta commonWidgetMetaData); + public String saveWidgetData(CommonWidget commonWidgetData); + public String deleteWidgetData(CommonWidget eventWidget); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/DashboardSearchServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/DashboardSearchServiceImpl.java new file mode 100644 index 00000000..776bd619 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/DashboardSearchServiceImpl.java @@ -0,0 +1,117 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.onap.portalapp.portal.ecomp.model.SearchResultItem; +import org.onap.portalapp.portal.transport.CommonWidget; +import org.onap.portalapp.portal.transport.CommonWidgetMeta; +import org.onap.portalsdk.core.service.DataAccessService; + +@Component +public class DashboardSearchServiceImpl implements DashboardSearchService { + + @Autowired + private DataAccessService dataAccessService; + + public Map> searchResults(String userId, String searchString) { + Map params = new HashMap<>(); + params.put("userId", userId); + params.put("searchQuery", searchString); + // Named query is stored in a *.hbm.xml file, mapped to SearchResultItem + @SuppressWarnings("unchecked") + List list = dataAccessService.executeNamedQuery("searchPortal", params, null); + Map> finalJson = null; + if (list.size() > 0) { + finalJson = new HashMap>(); + for (SearchResultItem thisResult : list) { + List thisList = finalJson.get(thisResult.getCategory().toLowerCase()); + if (thisList == null) + thisList = new ArrayList(); + thisList.add(thisResult); + finalJson.put(thisResult.getCategory().toLowerCase(), thisList); + } + } + return finalJson; + } + + @Override + public List getRelatedUsers(String userId) { + Map params = new HashMap<>(); + params.put("userId", userId); + @SuppressWarnings("unchecked") + List activeUsers = dataAccessService.executeNamedQuery("relatedUsers", params, null); + return activeUsers; + } + + @Override + public CommonWidgetMeta getWidgetData(String resourceType) { + Map params = new HashMap<>(); + params.put("cat", resourceType); + @SuppressWarnings("unchecked") + List widgetItems = (List) dataAccessService.executeNamedQuery("getCommonWidgetItem", params, null); + return new CommonWidgetMeta(resourceType, widgetItems); + } + + @Override + public String saveWidgetDataBulk(CommonWidgetMeta commonMetaWidgetData) { + for (CommonWidget widgetData : commonMetaWidgetData.getItems()) { + widgetData.setCategory(commonMetaWidgetData.getCategory()); + dataAccessService.saveDomainObject(widgetData, null); + } + return "success"; + } + + @Override + public String saveWidgetData(CommonWidget commonWidgetData) { + dataAccessService.saveDomainObject(commonWidgetData, null); + return "success"; + } + + @Override + public String deleteWidgetData(CommonWidget eventWidget) { + dataAccessService.deleteDomainObject(eventWidget, null); + return "success"; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppCommonServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppCommonServiceImpl.java new file mode 100644 index 00000000..8c055b2d --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppCommonServiceImpl.java @@ -0,0 +1,1666 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.io.IOException; +import java.security.GeneralSecurityException; +import java.util.ArrayList; +import java.util.Base64; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.onap.portalapp.portal.domain.AdminUserApp; +import org.onap.portalapp.portal.domain.AdminUserApplications; +import org.onap.portalapp.portal.domain.AppIdAndNameTransportModel; +import org.onap.portalapp.portal.domain.AppsResponse; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserAppRolesRequest; +import org.onap.portalapp.portal.domain.EPUserAppRolesRequestDetail; +import org.onap.portalapp.portal.domain.EPUserAppsManualSortPreference; +import org.onap.portalapp.portal.domain.EPUserAppsSortPreference; +import org.onap.portalapp.portal.domain.EPWidgetsManualSortPreference; +import org.onap.portalapp.portal.domain.EcompApp; +import org.onap.portalapp.portal.domain.UserRole; +import org.onap.portalapp.portal.domain.UserRoles; +import org.onap.portalapp.portal.ecomp.model.AppCatalogItem; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.transport.EPAppsManualPreference; +import org.onap.portalapp.portal.transport.EPAppsSortPreference; +import org.onap.portalapp.portal.transport.EPDeleteAppsManualSortPref; +import org.onap.portalapp.portal.transport.EPWidgetsSortPreference; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; +import org.onap.portalapp.portal.transport.LocalRole; +import org.onap.portalapp.portal.transport.OnboardingApp; +import org.onap.portalapp.portal.ueb.EPUebHelper; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.ueb.Helper; +import org.onap.portalsdk.core.onboarding.ueb.TopicManager; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.onboarding.util.PortalApiConstants; +import org.onap.portalsdk.core.onboarding.util.PortalApiProperties; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; + +import com.att.nsa.apiClient.http.HttpException; +import com.att.nsa.cambria.client.CambriaClient.CambriaApiException; +import com.att.nsa.cambria.client.CambriaClientBuilders; +import com.att.nsa.cambria.client.CambriaIdentityManager; +import com.att.nsa.cambria.client.CambriaTopicManager; +import com.google.common.primitives.Ints; + +public class EPAppCommonServiceImpl implements EPAppService { + + protected String ECOMP_APP_ID = "1"; + protected String SUPER_ADMIN_ROLE_ID = "1"; + protected String ACCOUNT_ADMIN_ROLE_ID = "999"; + protected String RESTRICTED_APP_ROLE_ID = "900"; + + private static final String urlField = "url"; + private static final String nameField = "name"; + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPAppCommonServiceImpl.class); + + @Autowired + private AdminRolesService adminRolesService; + @Autowired + protected SessionFactory sessionFactory; + @Autowired + private DataAccessService dataAccessService; + @Autowired + private EPUebHelper epUebHelper; + + @PostConstruct + private void init() { + SUPER_ADMIN_ROLE_ID = SystemProperties.getProperty(EPCommonSystemProperties.SYS_ADMIN_ROLE_ID); + ACCOUNT_ADMIN_ROLE_ID = SystemProperties.getProperty(EPCommonSystemProperties.ACCOUNT_ADMIN_ROLE_ID); + ECOMP_APP_ID = SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID); + RESTRICTED_APP_ROLE_ID = SystemProperties.getProperty(EPCommonSystemProperties.RESTRICTED_APP_ROLE_ID); + } + + @Override + public List getUserAsAdminApps(EPUser user) { + if (adminRolesService.isAccountAdmin(user)) { + String sql = "SELECT * FROM FN_APP join FN_USER_ROLE ON FN_USER_ROLE.APP_ID=FN_APP.APP_ID where " + + "FN_USER_ROLE.USER_ID=" + user.getId() + " AND FN_USER_ROLE.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID + + " AND FN_APP.ENABLED = 'Y'"; + logQuery(sql); + try { + @SuppressWarnings("unchecked") + List adminApps = dataAccessService.executeSQLQuery(sql, EPApp.class, null); + return adminApps; + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + return null; + } + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "getUserAsAdminApps: only Account Admin may invoke this function!"); + return new ArrayList(); + } + } + + @Override + public List getUserByOrgUserIdAsAdminApps(String orgUserId) { + String format = "SELECT * FROM FN_APP app INNER JOIN FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID " + + "INNER JOIN FN_USER user on user.USER_ID = userrole.USER_ID " + + "WHERE user.org_user_id = '%s' AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID + + " AND FN_APP.ENABLED = 'Y'"; + + String sql = String.format(format, orgUserId); + logQuery(sql); + + try { + @SuppressWarnings("unchecked") + List adminApps = dataAccessService.executeSQLQuery(sql, EPApp.class, null); + return adminApps; + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + return null; + } + } + + @Override + public List getAppsFullList() { + @SuppressWarnings("unchecked") + List apps = dataAccessService.getList(EPApp.class, null); + return apps; + } + + @Override + public List getEcompAppAppsFullList() { + return transformAppsToEcompApps(getAppsFullList()); + } + + @Override + public List transformAppsToEcompApps(List appsList) { + List ecompAppList = new ArrayList(); + for (EPApp app : appsList) { + EcompApp ecompApp = new EcompApp(); + ecompApp.setId(app.getId()); + ecompApp.setName(app.getName()); + ecompApp.setImageUrl(app.getImageUrl()); + ecompApp.setDescription(app.getDescription()); + ecompApp.setNotes(app.getNotes()); + ecompApp.setUrl(app.getUrl()); + ecompApp.setAlternateUrl(app.getAlternateUrl()); + ecompApp.setUebTopicName(app.getUebTopicName()); + ecompApp.setUebKey(app.getUebKey()); + ecompApp.setUebSecret(app.getUebSecret()); + ecompApp.setEnabled(app.getEnabled()); + ecompApp.setCentralAuth(app.getCentralAuth()); + ecompApp.setNameSpace(app.getNameSpace()); + ecompApp.setRestrictedApp(app.isRestrictedApp()); + ecompAppList.add(ecompApp); + } + return ecompAppList; + } + + @Override + public EPApp getApp(Long appId) { + try { + return (EPApp) dataAccessService.getDomainObject(EPApp.class, appId, null); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + return null; + } + } + + @SuppressWarnings("unchecked") + @Override + public List getAdminApps(EPUser user) { + if (adminRolesService.isAccountAdmin(user)) { + String format = "SELECT app.APP_ID, app.APP_NAME, app.APP_TYPE FROM FN_APP app inner join FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID " + + "where userrole.USER_ID = %d AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID + + " AND (app.ENABLED = 'Y' OR app.APP_ID=1)"; + String sql = String.format(format, user.getId()); + // sql += " AND app.APP_REST_ENDPOINT IS NOT NULL AND + // app.APP_REST_ENDPOINT <> ''"; + logQuery(sql); + try { + return dataAccessService.executeSQLQuery(sql, AppIdAndNameTransportModel.class, null); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + logger.error(EELFLoggerDelegate.errorLogger, + "Exception occurred while fetching the adminApps for user " + user.getLoginId(), e); + } + } + return new ArrayList(); + } + + @Override + public EPApp getAppDetail(String appName) { + final Map params = new HashMap(); + try { + params.put("appName", appName); + @SuppressWarnings("unchecked") + List apps = (List) dataAccessService.executeNamedQuery("getMyloginAppDetails", params, null); + return (apps.size() > 0) ? apps.get(0) : null; + } catch(Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + return null; + } + } + + @Override + public EPApp getAppDetailByAppName(String appName) { + final Map params = new HashMap(); + try { + params.put("appName", appName); + @SuppressWarnings("unchecked") + List apps = (List) dataAccessService.executeNamedQuery("getAppDetailsByAppName", params, null); + if (apps.size() > 0) { + EPApp app = apps.get(0); + if (!EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + app.setCentralAuth(false); + } + return app; + } else{ + return null; + } + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + return null; + } + } + + @SuppressWarnings("unchecked") + @Override + public List getAppsForSuperAdminAndAccountAdmin(EPUser user) { + if (adminRolesService.isSuperAdmin(user) || adminRolesService.isAccountAdmin(user)) { + String format = ""; + String sql = ""; + if (adminRolesService.isSuperAdmin(user)) { + format = "SELECT app.APP_ID, app.APP_NAME, app.APP_TYPE FROM FN_APP app " + + "where app.ENABLED = 'Y' AND app.app_type = 1"; + } else { + format = "SELECT app.APP_ID, app.APP_NAME, APP_TYPE FROM FN_APP app inner join FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID " + + "where userrole.USER_ID = %d AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID + + " AND app.ENABLED = 'Y' AND app.app_type = 1"; + } + sql = String.format(format, user.getId()); + // sql += " AND app.APP_REST_ENDPOINT IS NOT NULL AND + // app.APP_REST_ENDPOINT <> ''"; + logQuery(sql); + try { + return dataAccessService.executeSQLQuery(sql, AppIdAndNameTransportModel.class, null); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + logger.error(EELFLoggerDelegate.errorLogger, + "Exception occurred while fetching the adminApps for user " + user.getLoginId(), e); + } + } + return new ArrayList(); + } + + protected void logQuery(String sql) { + logger.debug(EELFLoggerDelegate.debugLogger, "logQuery: " + sql); + } + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } + + @SuppressWarnings("unchecked") + @Override + public List getAppsAdmins() { + try { + Map params = new HashMap<>(); + params.put("accountAdminRoleId", ACCOUNT_ADMIN_ROLE_ID); + List adminApps = (List) dataAccessService.executeNamedQuery("getAppsAdmins", + params, null); + return aggregateRowsResultsByUserId(adminApps); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + return null; + } + } + + private List aggregateRowsResultsByUserId(List adminApps) { + HashMap adminUserApplications = new HashMap(); + for (AdminUserApp app : adminApps) { + Long userId = app.getUser_Id(); + if (adminUserApplications.get(userId) == null) + adminUserApplications.put(userId, new AdminUserApplications(app)); + else + adminUserApplications.get(userId).addApp(app.getAppId(), app.getAppName()); + } + return new ArrayList(adminUserApplications.values()); + } + + @Override + public List getAllApps(Boolean all) { + // If all is true, return both active and inactive apps. Otherwise, just + // active apps. + @SuppressWarnings("unchecked") + // Sort the list by application name so the drop-down looks pretty. + List apps = all + ? (List) dataAccessService.getList(EPApp.class, " where id != " + ECOMP_APP_ID, "name", null) + : (List) dataAccessService.getList(EPApp.class, + " where ( enabled = 'Y' or id = " + ECOMP_APP_ID + ")", "name", null); + + List appsModified = new ArrayList(); + for (EPApp app : apps) { + appsModified.add(new AppsResponse(app.getId(), app.getName(), app.isRestrictedApp(), app.getEnabled())); + } + return appsModified; + } + + @Override + public UserRoles getUserProfile(String loginId) { + final Map params = new HashMap<>(); + params.put("org_user_id", loginId); + @SuppressWarnings("unchecked") + List userRoleList = dataAccessService.executeNamedQuery( "getUserRoles", params, null); + ArrayList usersRolesList = aggregateUserProfileRowsResultsByRole(userRoleList); + if (usersRolesList == null || usersRolesList.size() < 1) + return null; + + return usersRolesList.get(0); + } + + @Override + public UserRoles getUserProfileNormalized(EPUser user) { + // Check database. + UserRoles userAndRoles = getUserProfile(user.getLoginId()); + // If no roles are defined, treat this user as a guest. + if (user.isGuest() || userAndRoles == null) { + logger.debug(EELFLoggerDelegate.debugLogger, "getUserProfile: treating user {} as guest", + user.getLoginId()); + UserRole userRole = new UserRole(); + userRole.setUser_Id(user.getId()); + userRole.setOrgUserId(user.getLoginId()); + userRole.setFirstName(user.getFirstName()); + userRole.setLastName(user.getLastName()); + userRole.setRoleId(-1L); + userRole.setRoleName("Guest"); + userRole.setUser_Id(-1L); + userAndRoles = new UserRoles(userRole); + } + + return userAndRoles; + } + + protected ArrayList aggregateUserProfileRowsResultsByRole(List userRoleList) { + HashMap userRoles = new HashMap(); + for (UserRole user : userRoleList) { + String orgUserId = user.getOrgUserId(); + if (userRoles.get(orgUserId) == null) + userRoles.put(orgUserId, new UserRoles(user)); + else + userRoles.get(orgUserId).addRole(user.getRoleName()); + } + return new ArrayList(userRoles.values()); + } + + private boolean isRestrictedApp(Long appId) { + EPApp app = getApp(appId); + return app.isRestrictedApp(); + } + + // For the functional menu edit + @Override + public List getAppRoles(Long appId) { + String sql = ""; + if (isRestrictedApp(appId)) { + sql = "SELECT ROLE_ID, ROLE_NAME from FN_ROLE where UPPER(ACTIVE_YN) = 'Y' AND ROLE_ID = '" + RESTRICTED_APP_ROLE_ID + "'"; + }else if(appId == 1){ + sql = "SELECT ROLE_ID, ROLE_NAME from FN_ROLE where UPPER(ACTIVE_YN) = 'Y' AND APP_ID IS NULL"; + }else{ + sql = "SELECT ROLE_ID, ROLE_NAME from FN_ROLE where UPPER(ACTIVE_YN) = 'Y' AND APP_ID = '" + appId + "'"; + } + logQuery(sql); + @SuppressWarnings("unchecked") + List appRoles = dataAccessService.executeSQLQuery(sql, LocalRole.class, null); + return appRoles; + } + + protected String userAppsQuery(EPUser user) { + StringBuilder query = new StringBuilder(); + if (adminRolesService.isSuperAdmin(user)) { + query.append("SELECT * FROM FN_APP where FN_APP.ENABLED = 'Y' ORDER BY APP_NAME"); + } else { + query.append("SELECT * FROM FN_APP join FN_USER_ROLE ON FN_USER_ROLE.APP_ID = FN_APP.APP_ID where "); + query.append( + "FN_USER_ROLE.USER_ID = " + user.getId() + " AND FN_USER_ROLE.ROLE_ID != " + SUPER_ADMIN_ROLE_ID); + query.append(" AND FN_APP.ENABLED = 'Y'"); + } + return query.toString(); + } + + protected FieldsValidator onboardingAppFieldsChecker(OnboardingApp onboardingApp) { + FieldsValidator fieldsValidator = new FieldsValidator(); + if (onboardingApp.name == null || onboardingApp.name.length() == 0 || onboardingApp.url == null + || onboardingApp.url.length() == 0 || onboardingApp.restrictedApp == null + || onboardingApp.isOpen == null || onboardingApp.isEnabled == null + || (onboardingApp.id != null && onboardingApp.id.equals(ECOMP_APP_ID)) + // For a normal app (appType==1), these fields must be filled + // in. + // For a restricted app (appType==2), they will be empty. + || ((!onboardingApp.restrictedApp) + && (onboardingApp.username == null || onboardingApp.username.length() == 0 + || onboardingApp.appPassword == null || onboardingApp.appPassword.length() == 0))) { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); + } + return fieldsValidator; + } + + @Override + public List getUserApps(EPUser user) { + List openApps = getOpenApps(); + + if (user.isGuest()) { + return openApps; + } else { + String sql = userAppsQuery(user); + logQuery(sql); + + // TreeSet distinctApps = new TreeSet(); + List appsList = new ArrayList<>(); + @SuppressWarnings("unchecked") + List adminApps = dataAccessService.executeSQLQuery(sql, EPApp.class, null); + HashSet appSet = new HashSet<>(); + for (EPApp app : adminApps) { + appSet.add(app); + appsList.add(app); + } + + for (EPApp app : openApps) { + if (!appSet.contains(app)) + appsList.add(app); + } + + return appsList; + } + } + + @Override + public List getPersAdminApps(EPUser user) { + final Map params = new HashMap<>(); + params.put("userId", user.getId()); + // Named query is stored in EP.hbm.xml, mapped to EPApp + @SuppressWarnings("unchecked") + List list = dataAccessService.executeNamedQuery("getPersAdminApps", params, null); + return list; + } + + @Override + public List getPersUserApps(EPUser user) { + final Map params = new HashMap<>(); + params.put("userId", user.getId()); + // Named query is stored in EP.hbm.xml, mapped to EPApp + @SuppressWarnings("unchecked") + List list = dataAccessService.executeNamedQuery("getPersUserApps", params, null); + return list; + } + + /* + * (non-Javadoc) + * + * @see + * org.openecomp.portalapp.portal.service.EPAppService#getAppCatalog( + * org.openecomp.portalapp.portal.domain.EPUser) + */ + @Override + public List getUserAppCatalog(EPUser user) { + final Map params = new HashMap<>(); + params.put("userId", user.getId()); + // Named query is stored in EP.hbm.xml, mapped to AppCatalogItem + @SuppressWarnings("unchecked") + List list = dataAccessService.executeNamedQuery("getUserAppCatalog", params, null); + return list; + } + + /* + * (non-Javadoc) + * + * @see + * org.openecomp.portalapp.portal.service.EPAppService#getAdminAppCatalog( + * org.openecomp.portalapp.portal.domain.EPUser) + */ + @Override + public List getAdminAppCatalog(EPUser user) { + final Map params = new HashMap<>(); + params.put("userId", user.getId()); + // Named query is stored in EP.hbm.xml, mapped to AppCatalogItem + @SuppressWarnings("unchecked") + List list = dataAccessService.executeNamedQuery("getAdminAppCatalog", params, null); + return list; + } + + private List getOpenApps() { + @SuppressWarnings("unchecked") + List openApps = dataAccessService.getList(EPApp.class, " where open='Y' and enabled='Y'", null, null); + return openApps; + } + + @SuppressWarnings("unchecked") + @Override + public List getAppsOrderByName(EPUser user) { + final Map params = new HashMap<>(); + List sortedAppsByName = null; + try { + if (adminRolesService.isSuperAdmin(user)) { + params.put("userId", user.getId()); + sortedAppsByName = dataAccessService.executeNamedQuery("getPersAdminAppsOrderByName", params, null); + } else { + params.put("userId", user.getId()); + sortedAppsByName = dataAccessService.executeNamedQuery("getPersUserAppsOrderByName", params, null); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppsOrderByName failed", e); + } + return sortedAppsByName; + } + + @SuppressWarnings("unchecked") + @Override + public List getAppsOrderByLastUsed(EPUser user) { + + final Map params = new HashMap<>(); + List sortedAppsByLastUsed = new ArrayList(); + List finalsortedAppsByLastUsed = new ArrayList(); + try { + if (adminRolesService.isSuperAdmin(user)) { + params.put("userId", user.getId()); + sortedAppsByLastUsed = dataAccessService.executeNamedQuery("getAdminAppsOrderByLastUsed", params, null); + } else { + params.put("userId", user.getId()); + sortedAppsByLastUsed = dataAccessService.executeNamedQuery("getUserAppsOrderByLastUsed", params, null); + } + Set epAppSet = new HashSet(); + for (EPApp eapp : sortedAppsByLastUsed) + if (!epAppSet.contains(eapp.getName())) { + finalsortedAppsByLastUsed.add(eapp); + epAppSet.add(eapp.getName()); + } + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppsOrderByLastUsed failed", e); + } + return finalsortedAppsByLastUsed; + } + + @SuppressWarnings("unchecked") + @Override + public List getAppsOrderByMostUsed(EPUser user) { + final Map params = new HashMap<>(); + List sortedAppsByMostUsed = new ArrayList(); + List finalsortedAppsByMostUsed = new ArrayList(); + try { + if (adminRolesService.isSuperAdmin(user)) { + params.put("userId", user.getId()); + sortedAppsByMostUsed = dataAccessService.executeNamedQuery("getAdminAppsOrderByMostUsed", params, null); + } else { + params.put("userId", user.getId()); + sortedAppsByMostUsed = dataAccessService.executeNamedQuery("getUserAppsOrderByMostUsed", params, null); + } + Set epAppSet = new HashSet(); + + for (EPApp eapp : sortedAppsByMostUsed) { + if (!epAppSet.contains(eapp.getName())) { + finalsortedAppsByMostUsed.add(eapp); + epAppSet.add(eapp.getName()); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppsOrderByMostUsed failed", e); + } + + return finalsortedAppsByMostUsed; + } + + /* + * This Method retrieves the User Apps by Sort Manual Preference + * + * @param: user--contains LoggedIn User Data + */ + @SuppressWarnings("unchecked") + @Override + public List getAppsOrderByManual(EPUser user) { + final Map params = new HashMap<>(); + List sortedAppsByManual = new ArrayList(); + List finalsortedAppsByManual = new ArrayList(); + try { + if (adminRolesService.isSuperAdmin(user)) { + params.put("userId", user.getId()); + sortedAppsByManual = dataAccessService.executeNamedQuery("getAdminAppsOrderByManual", params, null); + } else { + params.put("userId", user.getId()); + sortedAppsByManual = dataAccessService.executeNamedQuery("getUserAppsOrderByManual", params, null); + } + Set epAppSet = new HashSet(); + + for (EPApp eapp : sortedAppsByManual) { + if (!epAppSet.contains(eapp.getName())) { + finalsortedAppsByManual.add(eapp); + epAppSet.add(eapp.getName()); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppsOrderByManual failed", e); + } + return finalsortedAppsByManual; + } + + @Override + public List getOnboardingApps() { + @SuppressWarnings("unchecked") + List apps = dataAccessService.getList(EPApp.class, " where id!=" + ECOMP_APP_ID, null, null); + List onboardingAppsList = new ArrayList(); + for (EPApp app : apps) { + OnboardingApp onboardingApp = new OnboardingApp(); + createOnboardingFromApp(app, onboardingApp); + onboardingAppsList.add(onboardingApp); + } + return onboardingAppsList; + } + + @Override + public List getEnabledNonOpenOnboardingApps() { + @SuppressWarnings("unchecked") + List apps = dataAccessService.getList(EPApp.class, + " where enabled = true and open = false and id!=" + ECOMP_APP_ID, null, null); + List onboardingAppsList = new ArrayList(); + for (EPApp app : apps) { + OnboardingApp onboardingApp = new OnboardingApp(); + createOnboardingFromApp(app, onboardingApp); + onboardingAppsList.add(onboardingApp); + } + return onboardingAppsList; + } + + @SuppressWarnings("unchecked") + private void validateOnboardingApp(OnboardingApp onboardingApp, FieldsValidator fieldsValidator) { + boolean duplicatedUrl = false; + boolean duplicatedName = false; + List apps; + if (onboardingApp.id == null) { + List restrictionsList = new ArrayList(); + Criterion urlCrit =Restrictions.eq("url", onboardingApp.url); + Criterion nameCrit = Restrictions.eq("name",onboardingApp.name); + Criterion orCrit = Restrictions.or(urlCrit, nameCrit); + + restrictionsList.add(orCrit); + apps = (List) dataAccessService.getList(EPApp.class, null, restrictionsList, null); + + + } else { + List restrictionsList = new ArrayList(); + Criterion idCrit =Restrictions.eq("id", onboardingApp.id); + Criterion urlCrit =Restrictions.eq("url", onboardingApp.url); + Criterion nameCrit = Restrictions.eq("name",onboardingApp.name); + Criterion orCrit = Restrictions.or(idCrit, urlCrit, nameCrit); + + restrictionsList.add(orCrit); + apps = (List) dataAccessService.getList(EPApp.class, null, restrictionsList, null); + + } + for (EPApp app : apps) { + if (onboardingApp.id != null && onboardingApp.id.equals(app.getId())) { + continue; + } + if (!duplicatedUrl && app.getUrl().equalsIgnoreCase(onboardingApp.url)) { + duplicatedUrl = true; + if (duplicatedName) { + break; + } + } + if (!duplicatedName && app.getName().equalsIgnoreCase(onboardingApp.name)) { + duplicatedName = true; + if (duplicatedUrl) { + break; + } + } + } + if (duplicatedUrl || duplicatedName) { + if (duplicatedUrl) { + fieldsValidator.addProblematicFieldName(urlField); + } + if (duplicatedName) { + fieldsValidator.addProblematicFieldName(nameField); + } + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); + fieldsValidator.errorCode = new Long(EPCommonSystemProperties.DUBLICATED_FIELD_VALUE_ECOMP_ERROR); + } + } + + @Override + public FieldsValidator modifyOnboardingApp(OnboardingApp modifiedOnboardingApp, EPUser user) { + logger.debug(EELFLoggerDelegate.debugLogger, "LR: entering modifyOnboardingApp"); + FieldsValidator fieldsValidator = onboardingAppFieldsChecker(modifiedOnboardingApp); + if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { + validateOnboardingApp(modifiedOnboardingApp, fieldsValidator); + } + if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { + if (modifiedOnboardingApp.id != null) { + updateApp(modifiedOnboardingApp.id, modifiedOnboardingApp, fieldsValidator, user); + } else { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); + } + } + return fieldsValidator; + } + + @Override + public FieldsValidator addOnboardingApp(OnboardingApp newOnboardingApp, EPUser user) { + FieldsValidator fieldsValidator = onboardingAppFieldsChecker(newOnboardingApp); + if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { + validateOnboardingApp(newOnboardingApp, fieldsValidator); + } + if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { + if (newOnboardingApp.id == null) { + updateApp(null, newOnboardingApp, fieldsValidator, user); + } else { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); + } + } + return fieldsValidator; + } + + @SuppressWarnings("unchecked") + @Override + public FieldsValidator deleteOnboardingApp(EPUser user, Long appid) { + FieldsValidator fieldsValidator = new FieldsValidator(); + if (!adminRolesService.isSuperAdmin(user)) { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_FORBIDDEN); + return fieldsValidator; + } + final Map params = new HashMap<>(); + params.put("app_id", appid); + List EPUserAppRolesRequestList= new ArrayList<>(); + EPUserAppRolesRequestList = dataAccessService.executeNamedQuery( "getRequestIdsForApp", params, null); + for(int i=0;i menuItems = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); + for (FunctionalMenuItem menuItem : menuItems) { + FunctionalMenuItem myMenuItem = (FunctionalMenuItem) localSession.get(FunctionalMenuItem.class, + menuItem.menuId); + myMenuItem.active_yn = active_yn; + localSession.save(myMenuItem); + } + } + + // Attention! If (appId == null) we use this function to create application + // otherwise we use it to modify existing application + protected void updateApp(Long appId, OnboardingApp onboardingApp, FieldsValidator fieldsValidator, EPUser user) { + logger.debug(EELFLoggerDelegate.debugLogger, "LR: entering updateApp"); + // Separate out the code for a restricted app, since it doesn't need any + // of the UEB code. + if (onboardingApp.restrictedApp) { + boolean result = false; + Session localSession = null; + Transaction transaction = null; + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + EPApp app; + if (appId == null) { + app = new EPApp(); + } else { + app = (EPApp) localSession.get(EPApp.class, appId); + if (app == null || app.getId() == null) { // App is already + // deleted! + transaction.commit(); + localSession.close(); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_NOT_FOUND); + return; + } + } + createAppFromOnboarding(app, onboardingApp, localSession); + localSession.saveOrUpdate(app); + // Enable or disable all menu items associated with this app + setFunctionalMenuItemsEnabled(localSession, onboardingApp.isEnabled, appId); + transaction.commit(); + result = true; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "updateApp failed", e); + EcompPortalUtils.rollbackTransaction(transaction, + "updateApp rollback, exception = " + e.toString()); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "updateApp"); + } + if (!result) { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + + } else { + updateRestrictedApp(appId, onboardingApp, fieldsValidator, user); + + } + } + + protected void updateRestrictedApp(Long appId, OnboardingApp onboardingApp, FieldsValidator fieldsValidator, + EPUser user) { + synchronized (syncRests) { + boolean result = false; + Session localSession = null; + Transaction transaction = null; + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + EPApp app; + if (appId == null) { + app = new EPApp(); + // ------------------------------------------------------------------------------------------- + // Register this App with the UEB communication server. + // Save + // the App's unique mailbox/topic + // name and keys to the FN_APP table. The App's mailbox + // and + // keys will be visible to the + // admin on the ECOMP portal. + // ------------------------------------------------------------------------------------------- + TopicManager topicManager = new TopicManager() { + + EPAppCommonServiceImpl service; + + public void init(EPAppCommonServiceImpl _service) { + service = _service; + } + + public void createTopic(String key, String secret, String topicName, + String topicDescription) throws HttpException, CambriaApiException, IOException { + + init(EPAppCommonServiceImpl.this); + final LinkedList urlList = (LinkedList) Helper.uebUrlList(); + if (logger.isInfoEnabled()) { + logger.info("==> createTopic"); + logger.info("topicName: " + topicName); + logger.info("topicDescription: " + topicDescription); + } + CambriaTopicManager tm = null; + try { + tm = service.getTopicManager(urlList, key, secret); + } catch (Exception e) { + logger.error("pub.build Exception ", e); + throw new CambriaApiException(topicName); + } + tm.createTopic(topicName, topicDescription, 1, 1); + } + + public void addPublisher(String topicOwnerKey, String topicOwnerSecret, String publisherKey, + String topicName) throws HttpException, CambriaApiException, IOException { + logger.info("==> addPublisher to topic " + topicName); + final LinkedList urlList = (LinkedList) Helper.uebUrlList(); + CambriaTopicManager tm = null; + try { + tm = service.getTopicManager(urlList, topicOwnerKey, topicOwnerSecret); + } catch (Exception e) { + logger.error("pub.build Exception ", e); + throw new CambriaApiException(topicName); + } + tm.allowProducer(topicName, publisherKey); + } + + }; + final CambriaIdentityManager im = new CambriaClientBuilders.IdentityManagerBuilder() + .usingHosts(Helper.uebUrlList()).build(); + com.att.nsa.apiClient.credentials.ApiCredential credential = im.createApiKey(user.getEmail(), + "ECOMP Portal Owner"); + String appKey = credential.getApiKey(); + String appSecret = credential.getApiSecret(); + String appMailboxName = null; + + int maxNumAttemptsToCreateATopic = 3; + boolean successfullyCreatedMailbox = false; + for (int i = 0; i < maxNumAttemptsToCreateATopic; i++) { + appMailboxName = "ECOMP-PORTAL-OUTBOX-" + (int) (Math.random() * 100000.0); + + try { + topicManager.createTopic( + PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), + PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET), + appMailboxName, "ECOMP outbox for app" + onboardingApp.name); + successfullyCreatedMailbox = true; + logger.debug(EELFLoggerDelegate.debugLogger, + "Successfully created " + appMailboxName + " for App " + onboardingApp.name); + logger.debug(EELFLoggerDelegate.debugLogger, " Key = " + appKey + " Secret = " + + appSecret + " generated using = " + user.getEmail()); + break; + } catch (HttpException e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebConnectionError, e); + if (e.getStatusCode() == 409) { + logger.error(EELFLoggerDelegate.errorLogger, "Topic/mailbox " + appMailboxName + + " already exists. Will try using a different name", e); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "HttpException when onboarding App: ", + e); + } + } + } + + if (successfullyCreatedMailbox) { + onboardingApp.setUebTopicName(appMailboxName); + onboardingApp.setUebKey(appKey); + onboardingApp.setUebSecret(appSecret); + + try { + /* + * EP is a publisher to this App's new mailbox + */ + topicManager.addPublisher( + PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), + PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET), + PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), + appMailboxName); + + /* + * This App is a subscriber of its own mailbox + */ + topicManager.addSubscriber( + PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), + PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET), appKey, + appMailboxName); + + /* + * This App is a publisher to EP + */ + topicManager.addPublisher( + PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), + PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET), appKey, + PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME)); + } catch (HttpException | CambriaApiException | IOException e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebRegisterOnboardingAppError, e); + logger.error(EELFLoggerDelegate.errorLogger, + "Error when configuring Publisher/Subscriber for App's new mailbox", e); + transaction.commit(); + localSession.close(); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); + return; + } + } else { + transaction.commit(); + localSession.close(); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); + return; + } + } else { + app = (EPApp) localSession.get(EPApp.class, appId); + if (app == null || app.getId() == null) { + // App is already deleted! + transaction.commit(); + localSession.close(); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_NOT_FOUND); + return; + } + } + logger.debug(EELFLoggerDelegate.debugLogger, "LR: about to call createAppFromOnboarding"); + createAppFromOnboarding(app, onboardingApp, localSession); + logger.debug(EELFLoggerDelegate.debugLogger, + "LR: updateApp: finished calling createAppFromOnboarding"); + localSession.saveOrUpdate(app); + logger.debug(EELFLoggerDelegate.debugLogger, + "LR: updateApp: finished calling localSession.saveOrUpdate"); + // Enable or disable all menu items associated with this app + setFunctionalMenuItemsEnabled(localSession, onboardingApp.isEnabled, appId); + logger.debug(EELFLoggerDelegate.debugLogger, + "LR: updateApp: finished calling setFunctionalMenuItemsEnabled"); + transaction.commit(); + logger.debug(EELFLoggerDelegate.debugLogger, "LR: updateApp: finished calling transaction.commit"); + epUebHelper.addPublisher(app); + logger.debug(EELFLoggerDelegate.debugLogger, + "LR: updateApp: finished calling epUebHelper.addPublisher"); + result = true; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "updateApp failed", e); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebRegisterOnboardingAppError, e); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + EcompPortalUtils.rollbackTransaction(transaction, + "updateApp rollback, exception = " + e.toString()); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "updateApp"); + } + if (!result) { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + } + + } + + public CambriaTopicManager getTopicManager(List urlList, String key, String secret) + throws GeneralSecurityException, Exception { + throw new Exception("This method can only be invoked from child class"); + } + + /** + * Populates a transport model of the application from a database row model. + * Leaves out the thumbnail because the FE fetches images via a different + * API. + * + * @param app + * Model of database row + * @param onboardingApp + * Model for transport as JSON + */ + @Override + public void createOnboardingFromApp(EPApp app, OnboardingApp onboardingApp) { + onboardingApp.id = app.getId(); + onboardingApp.name = app.getName(); + onboardingApp.imageUrl = app.getImageUrl(); + onboardingApp.description = app.getDescription(); + onboardingApp.notes = app.getNotes(); + onboardingApp.url = app.getUrl(); + onboardingApp.alternateUrl = app.getAlternateUrl(); + onboardingApp.restUrl = app.getAppRestEndpoint(); + onboardingApp.isOpen = app.getOpen(); + onboardingApp.isEnabled = app.getEnabled(); + onboardingApp.username = app.getUsername(); + onboardingApp.appPassword = decryptedPassword(app.getAppPassword(), app); + onboardingApp.uebTopicName = app.getUebTopicName(); + onboardingApp.uebKey = app.getUebKey(); + onboardingApp.uebSecret = app.getUebSecret(); + onboardingApp.isCentralAuth = app.getCentralAuth(); + onboardingApp.nameSpace = app.getNameSpace(); + onboardingApp.setRestrictedApp(app.isRestrictedApp()); + // if (app.getThumbnail() != null) + // onboardingApp.thumbnail = new + // String(Base64.getEncoder().encode(app.getThumbnail())); + } + + /** + * Creates a database object for an application from an uploaded transport + * model. Must decode the thumbnail, if any. + * + * @param app + * @param onboardingApp + * @param localSession + * @return The first argument. + */ + protected EPApp createAppFromOnboarding(EPApp app, OnboardingApp onboardingApp, Session localSession) { + app.setName(onboardingApp.name); + app.setDescription(onboardingApp.description); + app.setNotes(onboardingApp.notes); + app.setUrl(onboardingApp.url); + app.setAlternateUrl(onboardingApp.alternateUrl); + app.setAppRestEndpoint(onboardingApp.restUrl); + app.setOpen(onboardingApp.isOpen); + app.setEnabled(onboardingApp.isEnabled); + app.setUsername(onboardingApp.username); + app.setAppPassword(this.encryptedPassword(onboardingApp.appPassword, app)); + app.setUebTopicName(onboardingApp.uebTopicName); + app.setUebKey(onboardingApp.uebKey); + app.setUebSecret(onboardingApp.uebSecret); + app.setCentralAuth(onboardingApp.isCentralAuth); + app.setNameSpace(onboardingApp.nameSpace); + app.setRestrictedApp(onboardingApp.restrictedApp); + if (!StringUtils.isEmpty(onboardingApp.thumbnail)) { + logger.debug(EELFLoggerDelegate.debugLogger, "createAppFromOnboarding: onboarding thumbnail is NOT empty"); + String[] splitBase64Thumbnail = onboardingApp.thumbnail.split("base64,"); + logger.debug(EELFLoggerDelegate.debugLogger, + "createAppFromOnboarding: length of splitBase64Thumbnail: " + splitBase64Thumbnail.length); + if (splitBase64Thumbnail.length > 1) { + // This occurs when we have a new image, not an existing image + byte[] decodedImage = Base64.getDecoder().decode(splitBase64Thumbnail[1].getBytes()); + logger.debug(EELFLoggerDelegate.debugLogger, "createAppFromOnboarding: finished calling decode"); + // This is basically a boolean indicator that an image is + // present. + app.setImageUrl(constructImageName(onboardingApp)); + app.setThumbnail(decodedImage); + } + } else if (app.getThumbnail() != null && onboardingApp.imageLink == null) { + // The thumbnail that came in from the json is empty; the previous + // thumbnail is NOT empty. Must delete it. + logger.debug(EELFLoggerDelegate.debugLogger, + "createAppFromOnboarding: onboarding thumbnail is empty; db thumbnail is NOT null"); + app.setImageUrl(null); + app.setThumbnail(null); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, + "createAppFromOnboarding: making no changes to thumbnail as imageLink is not null"); + } + return app; + } + + protected String constructImageName(OnboardingApp onboardingApp) { + return "portal_" + String.valueOf(onboardingApp.url.hashCode() + "_" + (int) (Math.random() * 100000.0)) + + ".png"; + } + + // Don't encrypt or decrypt the password if it is null or the empty string + private String decryptedPassword(String encryptedAppPwd, EPApp app) { + String result = ""; + if (encryptedAppPwd != null & encryptedAppPwd.length() > 0) { + try { + result = CipherUtil.decryptPKC(encryptedAppPwd, + SystemProperties.getProperty(SystemProperties.Decryption_Key)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword failed for app " + app.getName(), e); + } + } + return result; + } + + protected String encryptedPassword(String decryptedAppPwd, EPApp app) { + String result = ""; + if (decryptedAppPwd != null & decryptedAppPwd.length() > 0) { + try { + result = CipherUtil.encryptPKC(decryptedAppPwd, + SystemProperties.getProperty(SystemProperties.Decryption_Key)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "encryptedPassword failed for app " + app.getName(), e); + } + } + return result; + } + + @SuppressWarnings("unchecked") + @Override + public FieldsValidator saveWidgetsSortManual(List widgetsSortManual, EPUser user) { + FieldsValidator fieldsValidator = new FieldsValidator(); + final Map params = new HashMap<>(); + List epManualWidgets = new ArrayList(); + + try { + params.put("userId", user.getId()); + epManualWidgets = dataAccessService.executeNamedQuery("userWidgetManualSortPrfQuery", params, null); + Map existingWidgetsIds = new HashMap(); + for (EPWidgetsManualSortPreference userWidgetManualPref : epManualWidgets) { + existingWidgetsIds.put(userWidgetManualPref.getWidgetId(), userWidgetManualPref); + } + for (EPWidgetsSortPreference epWidgetsManPref : widgetsSortManual) { + if (epWidgetsManPref.getWidgetid() != null) { + Long widgetid = epWidgetsManPref.getWidgetid(); + if (existingWidgetsIds.containsKey(widgetid)) { + EPWidgetsManualSortPreference epWidgetsManualSort = existingWidgetsIds.get(widgetid); + epWidgetsManualSort.setWidgetRow(epWidgetsManPref.getRow()); + epWidgetsManualSort.setWidgetCol(epWidgetsManPref.getCol()); + epWidgetsManualSort.setWidgetWidth(epWidgetsManPref.getSizeX()); + epWidgetsManualSort.setWidgetHeight(epWidgetsManPref.getSizeY()); + HashMap additionalUpdateParam = new HashMap(); + additionalUpdateParam.put("userId", epWidgetsManualSort.getUserId()); + dataAccessService.saveDomainObject(epWidgetsManualSort, additionalUpdateParam); + } else { + EPWidgetsManualSortPreference epWidgetsManualSort = new EPWidgetsManualSortPreference(); + epWidgetsManualSort.setWidgetId(epWidgetsManPref.getWidgetid()); + epWidgetsManualSort.setWidgetRow(epWidgetsManPref.getRow()); + epWidgetsManualSort.setWidgetCol(epWidgetsManPref.getCol()); + epWidgetsManualSort.setWidgetWidth(epWidgetsManPref.getSizeX()); + epWidgetsManualSort.setWidgetHeight(epWidgetsManPref.getSizeY()); + epWidgetsManualSort.setUserId(Ints.checkedCast(user.getId())); + dataAccessService.saveDomainObject(epWidgetsManualSort, null); + } + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveWidgetsSortManual failed", e); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + return fieldsValidator; + } + + @SuppressWarnings("unchecked") + @Override + public FieldsValidator deleteUserWidgetSortPref(List delWidgetSortPref, EPUser user) { + FieldsValidator fieldsValidator = new FieldsValidator(); + final Map params = new HashMap<>(); + List epWidgets = new ArrayList(); + try { + params.put("userId", user.getId()); + epWidgets = dataAccessService.executeNamedQuery("userWidgetManualSortPrfQuery", params, null); + Map existingWidgetIds = new HashMap(); + for (EPWidgetsManualSortPreference userWidgetSortPref : epWidgets) { + existingWidgetIds.put(userWidgetSortPref.getWidgetId(), userWidgetSortPref); + } + for (EPWidgetsSortPreference delEpWidgetsManPref : delWidgetSortPref) { + if (delEpWidgetsManPref.getWidgetid() != null) { + Long widgetId = delEpWidgetsManPref.getWidgetid(); + if (existingWidgetIds.containsKey(widgetId)) { + params.put("widgetId",widgetId); + dataAccessService.executeNamedQuery("deleteUserWidgetPlacement", params, null); + } + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteUserWidgetSortPref failed", e); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + return fieldsValidator; + } + + /* + * This Method Stores the Sort Order of User Apps by Sort Manual Preference + * + * @param: appsSortManual--contains User Apps Data + * + * @param: user--contains LoggedIn User Data + */ + @SuppressWarnings("unchecked") + @Override + public FieldsValidator saveAppsSortManual(List appsSortManual, EPUser user) { + FieldsValidator fieldsValidator = new FieldsValidator(); + final Map params = new HashMap<>(); + List epManualApps = new ArrayList(); + + try { + params.put("userId", user.getId()); + epManualApps = dataAccessService.executeNamedQuery("userAppsManualSortPrfQuery", params, null); + Map existingAppIds = new HashMap(); + for (EPUserAppsManualSortPreference userAppManualPref : epManualApps) { + existingAppIds.put(userAppManualPref.getAppId(), userAppManualPref); + } + for (EPAppsManualPreference epAppsManPref : appsSortManual) { + if (epAppsManPref.getAppid() != null) { + Long appid = epAppsManPref.getAppid(); + if (existingAppIds.containsKey(appid)) { + EPUserAppsManualSortPreference epAppsManualSort = existingAppIds.get(appid); + epAppsManualSort + .setAppManualSortOrder((epAppsManPref.getCol() + (6 * epAppsManPref.getRow())) + 1); + HashMap additionalUpdateParam = new HashMap(); + additionalUpdateParam.put("userId", epAppsManualSort.getUserId()); + dataAccessService.saveDomainObject(epAppsManualSort, additionalUpdateParam); + } else { + EPUserAppsManualSortPreference epAppsManualSort = new EPUserAppsManualSortPreference(); + epAppsManualSort.setAppId(epAppsManPref.getAppid()); + epAppsManualSort + .setAppManualSortOrder((epAppsManPref.getCol() + (6 * epAppsManPref.getRow())) + 1); + epAppsManualSort.setUserId(Ints.checkedCast(user.getId())); + dataAccessService.saveDomainObject(epAppsManualSort, null); + } + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveAppsSortManual failed", e); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + return fieldsValidator; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.EPAppService# + * deleteUserAppSortManual(java.lang.String, + * org.openecomp.portalapp.portal.domain.EPUser) + */ + @SuppressWarnings("unchecked") + @Override + public FieldsValidator deleteUserAppSortManual(EPDeleteAppsManualSortPref delAppSortManual, EPUser user) { + FieldsValidator fieldsValidator = new FieldsValidator(); + final Map params = new HashMap<>(); + List epManualApps = new ArrayList(); + try { + params.put("userId", user.getId()); + epManualApps = dataAccessService.executeNamedQuery("userAppsManualSortPrfQuery", params, null); + Map existingAppIds = new HashMap(); + for (EPUserAppsManualSortPreference userAppPref : epManualApps) { + existingAppIds.put(userAppPref.getAppId(), userAppPref); + } + if (existingAppIds.containsKey(delAppSortManual.getAppId()) && !delAppSortManual.isSelect()) { + dataAccessService.deleteDomainObjects(EPUserAppsManualSortPreference.class, + "app_id=" + delAppSortManual.getAppId() + " AND user_id=" + user.getId(), null); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteUserAppSortManual failed", e); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + return fieldsValidator; + } + + @SuppressWarnings("unchecked") + @Override + public FieldsValidator saveAppsSortPreference(EPAppsSortPreference appsSortPreference, EPUser user) { + FieldsValidator fieldsValidator = new FieldsValidator(); + final Map params = new HashMap<>(); + List epSortTypes = new ArrayList(); + EPUserAppsSortPreference usrSortPr = null; + try { + params.put("userId", user.getId()); + epSortTypes = dataAccessService.executeNamedQuery("userAppsSortPreferenceQuery", params, null); + if (epSortTypes.size() == 0) { + usrSortPr = new EPUserAppsSortPreference(); + usrSortPr.setUserId(Ints.checkedCast(user.getId())); + usrSortPr.setSortPref(appsSortPreference.getValue()); + dataAccessService.saveDomainObject(usrSortPr, null); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); + } else { + usrSortPr = epSortTypes.get(0); + usrSortPr.setSortPref(appsSortPreference.getValue()); + HashMap additionalUpdateParam = new HashMap(); + additionalUpdateParam.put("userId", usrSortPr.getUserId()); + dataAccessService.saveDomainObject(usrSortPr, additionalUpdateParam); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveAppsSortPreference failed", e); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + return fieldsValidator; + } + + @SuppressWarnings("unchecked") + @Override + public String getUserAppsSortTypePreference(EPUser user) { + final Map params = new HashMap<>(); + List userSortPrefs = new ArrayList(); + try { + params.put("userId", user.getId()); + userSortPrefs = dataAccessService.executeNamedQuery("userAppsSortPreferenceQuery", params, null); + if (userSortPrefs.size() > 0) + return userSortPrefs.get(0).getSortPref(); + else + return null; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUserAppsSortTypePreference failed", e); + } + return null; + + } + + @Override + public List getUserRemoteApps(String id) { + throw new RuntimeException(" Cannot be called from parent class"); + } + + @Override + public UserRoles getUserProfileForLeftMenu(String loginId) { + final Map params = new HashMap<>(); + params.put("org_user_id", loginId); + @SuppressWarnings("unchecked") + List userRoleList = dataAccessService.executeNamedQuery( "getUserRolesForLeftMenu", params, null); + ArrayList usersRolesList = aggregateUserProfileRowsResultsByRole(userRoleList); + if (usersRolesList == null || usersRolesList.size() < 1) + return null; + + return usersRolesList.get(0); + } + + + @Override + public UserRoles getUserProfileForRolesLeftMenu(String loginId) { + final Map params = new HashMap<>(); + params.put("org_user_id", loginId); + @SuppressWarnings("unchecked") + List userRoleList = dataAccessService.executeNamedQuery( "getRolesForLeftMenu", params, null); + ArrayList usersRolesList = aggregateUserProfileRowsResultsByRole(userRoleList); + if (usersRolesList == null || usersRolesList.size() < 1) + return null; + + return usersRolesList.get(0); + } + + @Override + public UserRoles getUserProfileNormalizedForLeftMenu(EPUser user) { + // Check database. + UserRoles userAndRoles = getUserProfileForLeftMenu(user.getLoginId()); + // If no roles are defined, treat this user as a guest. + if (user.isGuest() || userAndRoles == null) { + logger.debug(EELFLoggerDelegate.debugLogger, "getUserProfileForLeftMenu: treating user {} as guest", + user.getLoginId()); + userAndRoles = createUserRoles(user); + } + + return userAndRoles; + } + + @Override + public UserRoles getUserProfileNormalizedForRolesLeftMenu(EPUser user) { + // Check database. + UserRoles userAndRoles = getUserProfileForRolesLeftMenu(user.getLoginId()); + // If no roles are defined, treat this user as a guest. + if (user.isGuest() || userAndRoles == null) { + logger.debug(EELFLoggerDelegate.debugLogger, "getUserProfileForLeftMenu: treating user {} as guest", + user.getLoginId()); + userAndRoles = createUserRoles(user); + } + + return userAndRoles; + } + + + public UserRoles createUserRoles(EPUser user) + { + UserRole userRole = new UserRole(); + userRole.setUser_Id(user.getId()); + userRole.setOrgUserId(user.getLoginId()); + userRole.setFirstName(user.getFirstName()); + userRole.setLastName(user.getLastName()); + userRole.setRoleId(-1L); + userRole.setRoleName("Guest"); + userRole.setUser_Id(-1L); + UserRoles userAndRoles = new UserRoles(userRole); + return userAndRoles; + + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppService.java new file mode 100644 index 00000000..3dd18a6f --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppService.java @@ -0,0 +1,248 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.AdminUserApplications; +import org.onap.portalapp.portal.domain.AppIdAndNameTransportModel; +import org.onap.portalapp.portal.domain.AppsResponse; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EcompApp; +import org.onap.portalapp.portal.domain.UserRoles; +import org.onap.portalapp.portal.ecomp.model.AppCatalogItem; +import org.onap.portalapp.portal.transport.EPAppsManualPreference; +import org.onap.portalapp.portal.transport.EPAppsSortPreference; +import org.onap.portalapp.portal.transport.EPDeleteAppsManualSortPref; +import org.onap.portalapp.portal.transport.EPWidgetsSortPreference; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.LocalRole; +import org.onap.portalapp.portal.transport.OnboardingApp; + +public interface EPAppService { + + /** + * Get all applications adminId is an admin + * + * @param user + * the admin user + * @return the admin's applications + */ + List getUserAsAdminApps(EPUser user); + + List getUserByOrgUserIdAsAdminApps(String orgUserId); + + /** + * Gets all rows and all fields from the fn_app table. + * + * @return list of EPApp objects + */ + List getAppsFullList(); + + /** + * Gets all rows and most fields from the fn_app table. + * + * @return list of EcompApp objects. + */ + List getEcompAppAppsFullList(); + + /** + * Get apps with app app admins + * + * @return List of AdminUserApplications + */ + List getAppsAdmins(); + + /** + * Get all apps from fn_app table (index, name, title only). + * + * @param all + * If all is true, returns active and inactive apps; otherwise, + * just active apps. + * @return List of AppsResponse objects. + */ + List getAllApps(Boolean all); + + UserRoles getUserProfile(String loginId); + + UserRoles getUserProfileNormalized(EPUser user); + + List getAppRoles(Long appId); + + List getAdminApps(EPUser user); + + List getAppsForSuperAdminAndAccountAdmin(EPUser user); + + /** + * Gets the applications accessible to the specified user, which includes + * all enabled open applications, plus all enabled applications for which + * the user has a defined role for that app. + * + * @param user + * EPUser object with the user's Org User ID + * @return the user's list of applications, which may be empty. + */ + List getUserApps(EPUser user); + + /** + * Gets the user-personalized list of applications for the Portal (super) + * admin, which includes enabled open applications, enabled applications for + * which the user has a defined role for that app, and/or enabled + * applications which the user has chosen to show. + * + * @param user + * EPUser object with the user's Org User ID + * @return the user's personalized list of applications, which may be empty. + */ + List getPersAdminApps(EPUser user); + + /** + * Gets the user-personalized list of accessible applications, which + * includes enabled open applications and/or enabled applications for which + * the user has a defined role for that app. Personalization means the user + * can indicate an accessible application should be excluded from this + * result. + * + * @param user + * EPUser object with the user's Org User ID + * @return the user's personalized list of applications, which may be empty. + */ + List getPersUserApps(EPUser user); + + /** + * Gets the application catalog for the specified user who is a super admin. + * This includes all enabled applications. Each item indicates whether the + * user has access (open or via a role), and whether the application is + * selected for showing in the user's home (applications) page. Admin sees + * slightly different behavior - can force an app onto the home page using + * the personalization feature (user-app-selection table). + * + * @param user + * @return list of all enabled applications, which may be empty + */ + List getAdminAppCatalog(EPUser user); + + /** + * Gets the application catalog for the specified user, who is a regular + * user. This includes all enabled applications. Each item indicates whether + * the user has access (open or via a role), and whether the application is + * selected for showing in the user's home (applications) page. + * + * @param user + * @return list of all enabled applications, which may be empty + */ + List getUserAppCatalog(EPUser user); + + List getOnboardingApps(); + + List getEnabledNonOpenOnboardingApps(); + + FieldsValidator modifyOnboardingApp(OnboardingApp modifiedOnboardingApp, EPUser user); + + FieldsValidator addOnboardingApp(OnboardingApp newOnboardingApp, EPUser user); + + /** + * Deletes the specified application from all tables where the app_id is + * used, and ultimately from the fn_app table. + * + * @param user + * Must be Portal (super) administrator + * @param onboardingAppId + * ID of application to be deleted + * @return Status code + */ + FieldsValidator deleteOnboardingApp(EPUser user, Long onboardingAppId); + + List transformAppsToEcompApps(List appsList); + + EPApp getApp(Long appId); + + EPApp getAppDetail(String appName); + + /** + * + * It return app information + * + * @param appName it contains application name + * @return EPApp + */ + EPApp getAppDetailByAppName(String appName); + + List getAppsOrderByName(EPUser user); + + FieldsValidator saveAppsSortPreference(EPAppsSortPreference appsSortPreference, EPUser user); + + FieldsValidator saveAppsSortManual(List appsSortManual, EPUser user); + + FieldsValidator saveWidgetsSortManual(List widgetsSortManual, EPUser user); + + /** + * Deletes the sort order of user apps by sort manual preference + * + * @param delAppSortManual + * User Apps Data + * @param user + * LoggedIn User Data + * @return FieldsValidator + */ + FieldsValidator deleteUserAppSortManual(EPDeleteAppsManualSortPref delAppSortManual, EPUser user); + + FieldsValidator deleteUserWidgetSortPref(List delWidgetSortPref, EPUser user); + + String getUserAppsSortTypePreference(EPUser user); + + List getAppsOrderByLastUsed(EPUser user); + + List getAppsOrderByMostUsed(EPUser user); + + List getAppsOrderByManual(EPUser user); + + List getUserRemoteApps(String id); + + void createOnboardingFromApp(EPApp app, OnboardingApp onboardingApp); + + UserRoles getUserProfileNormalizedForLeftMenu(EPUser user); + + UserRoles getUserProfileForLeftMenu(String loginId); + + UserRoles getUserProfileForRolesLeftMenu(String loginId); + + UserRoles getUserProfileNormalizedForRolesLeftMenu(EPUser user); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAuditService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAuditService.java new file mode 100644 index 00000000..d1479176 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAuditService.java @@ -0,0 +1,45 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.Date; + +public interface EPAuditService { + public Date getGuestLastLogin(String userId); + public void delAuditLogFromDay(); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAuditServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAuditServiceImpl.java new file mode 100644 index 00000000..1b3dfade --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAuditServiceImpl.java @@ -0,0 +1,129 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.time.LocalDate; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalsdk.core.domain.AuditLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; + +@Service("epAuditService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class EPAuditServiceImpl implements EPAuditService { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPAuditServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + @Override + /* + * get the guest last login time with orgUserId as param. If record not + * found in table, return null. + * + * (non-Javadoc) + * + * @see + * org.openecomp.portalapp.portal.service.EPUserService#getGuestLastLogin( + * java.lang.String) + */ + public Date getGuestLastLogin(String userId) { + Map params = new HashMap<>(); + params.put("userId", userId); + @SuppressWarnings("unchecked") + List list = getDataAccessService().executeNamedQuery("getGuestLastLogin", params, null); + Date date = null; + if (list != null) { + /* + * if list only contains one item, meaning this is the first time + * user logs in or record not found in db + */ + if (list.size() == 1) + date = list.get(0); /* the guest's current log in time */ + else if (list.size() == 2) + date = list.get(1); /* most recent login date from db */ + } + return date; + } + + /* + * Cleans all the records in fn_audit_log table that are less than defined + * date in system.property + * + * (non-Javadoc) + * + * @see + * org.openecomp.portalapp.portal.service.EPAuditService#delAuditLogFromDay( + * ) + */ + @Override + public void delAuditLogFromDay() { + if (EPCommonSystemProperties.containsProperty(EPCommonSystemProperties.AUDITLOG_DEL_DAY_FROM)) { + String day = EPCommonSystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_DEL_DAY_FROM); + LocalDate removeDateFrom = LocalDate.now().minusDays(Integer.valueOf(day)); + getDataAccessService().deleteDomainObjects(AuditLog.class, "audit_date <'" + removeDateFrom + "'", null); + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "delAuditLogFromDay Exception = system.propertiy value is empty on" + + EPCommonSystemProperties.AUDITLOG_DEL_DAY_FROM); + } + } + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLdapService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLdapService.java new file mode 100644 index 00000000..7721cbc9 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLdapService.java @@ -0,0 +1,49 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import org.onap.portalsdk.core.command.support.SearchResult; +import org.onap.portalsdk.core.domain.support.DomainVo; + + +public interface EPLdapService { + + // search POST for users based on the criteria selected in the Request + SearchResult searchPost(DomainVo searchCriteria, String sortBy1, String sortBy2, String sortBy3, int pageNo, int dataSize, int userId) throws Exception; + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLdapServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLdapServiceImpl.java new file mode 100644 index 00000000..941acaf6 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLdapServiceImpl.java @@ -0,0 +1,269 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; +import javax.naming.directory.Attribute; +import javax.naming.directory.Attributes; +import javax.naming.directory.DirContext; +import javax.naming.directory.SearchControls; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalsdk.core.command.support.SearchResult; +import org.onap.portalsdk.core.domain.support.DomainVo; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.support.FusionService; +import org.onap.portalsdk.core.service.support.ServiceLocator; +import org.onap.portalsdk.core.util.SystemProperties; +import org.owasp.esapi.ESAPI; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service("epLdapService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +public class EPLdapServiceImpl extends FusionService implements EPLdapService { + @Autowired + private ServiceLocator serviceLocator; + + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPLdapServiceImpl.class); + + @EPAuditLog + @SuppressWarnings({ "rawtypes", "unchecked" }) + public SearchResult searchPost(DomainVo searchCriteria, String sortBy1, String sortBy2, String sortBy3, int pageNo, + int dataSize, int userId) throws Exception { + + String remoteHost = ""; + + // initialize the directory context to access POST + DirContext dirContext = serviceLocator.getDirContext( + SystemProperties.getProperty(SystemProperties.POST_INITIAL_CONTEXT_FACTORY), + SystemProperties.getProperty(SystemProperties.POST_PROVIDER_URL), + SystemProperties.getProperty(SystemProperties.POST_SECURITY_PRINCIPAL)); + + SearchResult searchResult = new SearchResult(); + + try { + + remoteHost = String.format("%s/%s", SystemProperties.getProperty(SystemProperties.POST_PROVIDER_URL), + SystemProperties.getProperty(SystemProperties.POST_SECURITY_PRINCIPAL)); + MDC.put(EPCommonSystemProperties.FULL_URL, remoteHost); + + String[] postAttributes = { "nickname", "givenName", "initials", "sn", "employeeNumber", "mail", + "telephoneNumber", "departmentNumber", "a1", "street", "roomNumber", "l", "st", "postalCode", + "zip4", "physicalDeliveryOfficeName", "bc", "friendlyCountryName", "bd", "bdname", "bu", "buname", + "jtname", "mgrid", "a2", "compcode", "compdesc", "costcenter", "silo", "b2" }; + + SearchControls searchControls = new SearchControls(); + searchControls.setTimeLimit(5000); + searchControls.setReturningAttributes(postAttributes); + + StringBuffer filterClause = new StringBuffer("(&(objectClass=*)"); + + EPUser user = (EPUser) searchCriteria; + + if (Utilities.nvl(user.getFirstName()).length() > 0) { + filterClause.append("(givenName=").append(user.getFirstName()).append("*)"); + } + if (Utilities.nvl(user.getLastName()).length() > 0) { + filterClause.append("(sn=").append(user.getLastName()).append("*)"); + } + if (Utilities.nvl(user.getHrid()).length() > 0) { + filterClause.append("(employeeNumber=").append(user.getHrid()).append("*)"); + } + if (Utilities.nvl(user.getOrgManagerUserId()).length() > 0) { + filterClause.append("(mgrid=").append(user.getOrgManagerUserId()).append("*)"); + } + if (Utilities.nvl(user.getOrgCode()).length() > 0) { + filterClause.append("(departmentNumber=").append(user.getOrgCode()).append("*)"); + } + if (Utilities.nvl(user.getEmail()).length() > 0) { + filterClause.append("(mail=").append(user.getEmail()).append("*)"); + } + if (Utilities.nvl(user.getOrgUserId()).length() > 0) { + filterClause.append("(a1=").append(user.getOrgUserId()).append("*)"); + } + filterClause.append("(c3=N)"); // this has been added to filter CP09 entries on the LDAP server that are + // duplicates of existing individuals + filterClause.append(")"); + + List list = new ArrayList(); + if (!filterClause.toString().equals("(&(objectClass=*))")) { + NamingEnumeration e = dirContext.search( + SystemProperties.getProperty(SystemProperties.POST_PROVIDER_URL) + "/" + + SystemProperties.getProperty(SystemProperties.POST_SECURITY_PRINCIPAL), + ESAPI.encoder().encodeForDN(filterClause.toString()), searchControls); + list = processResults(e); + } + + Collections.sort(list); + + searchResult = new SearchResult(list); + searchResult.setPageNo(pageNo); + if (dataSize >= 0) { + searchResult.setDataSize(dataSize); + } else { + searchResult.setDataSize(list.size()); + } + } catch (NamingException ne) { + logger.error(EELFLoggerDelegate.errorLogger, "searchPost failed with naming exception", ne); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "searchPost failed", e); + } finally { + dirContext.close(); + } + + return searchResult; + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @EPMetricsLog + private ArrayList processResults(NamingEnumeration e) throws NamingException { + ArrayList results = new ArrayList(); + int count = 0; + + while (e.hasMore()) { + javax.naming.directory.SearchResult searchResult = (javax.naming.directory.SearchResult) e.next(); + results.add(processAttributes(searchResult.getAttributes())); + count++; + + if (count > Integer.parseInt(SystemProperties.getProperty(SystemProperties.POST_MAX_RESULT_SIZE))) { + break; + } + } + return results; + } + + @SuppressWarnings("rawtypes") + @EPMetricsLog + private DomainVo processAttributes(Attributes resultAttributes) throws NamingException { + EPUser user = new EPUser(); + + try { + if (resultAttributes == null) { + logger.debug(EELFLoggerDelegate.debugLogger, "This result has no attributes"); + } else { + for (NamingEnumeration e = resultAttributes.getAll(); e.hasMore();) { // why the nested loop? + Attribute attribute = (Attribute) e.next(); + for (NamingEnumeration ie = attribute.getAll(); ie.hasMore();) { + if (attribute.getID().equalsIgnoreCase("nickname")) { + user.setFirstName((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("initials")) { + user.setMiddleInitial((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("sn")) { + user.setLastName((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("employeeNumber")) { + user.setHrid((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("mail")) { + user.setEmail((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("telephoneNumber")) { + user.setPhone((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("departmentNumber")) { + user.setOrgCode((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("a1")) { + user.setOrgUserId((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("street")) { + user.setAddress1((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("roomNumber")) { + user.setAddress2((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("l")) { + user.setCity((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("st")) { + user.setState((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("postalCode")) { + user.setZipCode((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("zip4")) { + user.setZipCodeSuffix((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("physicalDeliveryOfficeName")) { + user.setLocationClli((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("bc")) { + user.setBusinessCountryCode((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("friendlyCountryName")) { + user.setBusinessCountryName((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("bd")) { + user.setDepartment((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("bdname")) { + user.setDepartmentName((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("jtname")) { + user.setJobTitle((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("mgrid")) { + user.setOrgManagerUserId((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("a2")) { + user.setCommandChain((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("compcode")) { + user.setCompanyCode((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("compdesc")) { + user.setCompany((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("bu")) { + user.setBusinessUnit((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("buname")) { + user.setBusinessUnitName((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("silo")) { + user.setSiloStatus((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("costcenter")) { + user.setCostCenter((String) ie.next()); + } else if (attribute.getID().equalsIgnoreCase("b2")) { + user.setFinancialLocCode((String) ie.next()); + } else { // we don't care about returned attribute, let's move on + ie.next(); + } + + } + } + } + } catch (NamingException e) { + logger.error(EELFLoggerDelegate.errorLogger, "processAttributes failed with naming exception", e); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "processAttributes failed", e); + } + + return user; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuService.java new file mode 100644 index 00000000..822776fd --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuService.java @@ -0,0 +1,62 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.Set; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalsdk.core.domain.MenuData; + +public interface EPLeftMenuService { + + /** + * Builds a JSON suitable for populating the front-end left menu from the supplied set of menu items. + * @param user + * + * @param fullMenuSet + * @param roleFunctionSet + * @return JSON String of this form: + *
+	 * {"navItems":[
+	 * 		{"name":"Home","imageSrc":"icon-location-pin","state":"root.applicationsHome"},
+	 * 	...
+	 * ] }
+	 * 
+ */ + String getLeftMenuItems(EPUser user, Set fullMenuSet, Set roleFunctionSet); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java new file mode 100644 index 00000000..98d31b16 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java @@ -0,0 +1,179 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.Collection; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.onap.portalapp.portal.domain.CentralizedApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.domain.MenuData; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service("leftMenuService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog + +public class EPLeftMenuServiceImpl implements EPLeftMenuService { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPLeftMenuServiceImpl.class); + + + @Autowired + private ExternalAccessRolesService externalAccessRolesService; + /* + * (non-Javadoc) + * + * @see + * org.openecomp.portalapp.portal.service.EPLeftMenuService#getLeftMenuItems + * (java.util.Set) + */ + @Override + public String getLeftMenuItems(EPUser user, Set fullMenuSet, Set roleFunctionSet) { + final Map defaultNavMap = new LinkedHashMap(); + resetNavMap(defaultNavMap); + loadDefaultNavMap(defaultNavMap); + loadNavMapByRole(defaultNavMap, fullMenuSet , user); + return convertToSideBarModel(defaultNavMap); + } + + /** + * Clears the map + * + * @param defaultNavMap + */ + private void resetNavMap(Map defaultNavMap) { + defaultNavMap.clear(); + } + + /** + * + * @param defaultNavMap + * @param fullMenuSet + */ + private void loadNavMapByRole(Map defaultNavMap, Set fullMenuSet , EPUser user) { + + class SortOrderComparator implements Comparator { + @Override + public int compare(MenuData e1, MenuData e2) { + return e1.getSortOrder().compareTo(e2.getSortOrder()); + } + } + + SortedSet sortMenuSet = new TreeSet(new SortOrderComparator()); + for (MenuData mn : fullMenuSet) { + sortMenuSet.add(mn); + } + + // Remove Roles from left menu if user doesnt have admin access on + // centralized application + List applicationsList = null; + applicationsList = externalAccessRolesService.getCentralizedAppsOfUser(user.getOrgUserId()); + if (applicationsList.size() == 0) + sortMenuSet.removeIf(x -> x.getLabel().contains("Roles")); + + for (MenuData mn : sortMenuSet) { + JSONObject navItemsDetails = new JSONObject(); + navItemsDetails.put("name", mn.getLabel()); + navItemsDetails.put("state", mn.getAction()); + navItemsDetails.put("imageSrc", mn.getImageSrc()); + defaultNavMap.put(mn.getAction(), navItemsDetails); + } + } + + /** + * + * @param defaultNavMap + * @return + */ + private String convertToSideBarModel(Map defaultNavMap) { + JSONObject sidebarModel = new JSONObject(); + JSONArray navItems = new JSONArray(); + Collection jsonObjs = defaultNavMap.values(); + + for (JSONObject navItemsDetail : jsonObjs) + navItems.put(navItemsDetail); + + sidebarModel.put("label", "ECOMP portal"); + sidebarModel.put("navItems", navItems); + return sidebarModel.toString(); + } + + /** + * Loads default entries for regular user. + * + * @param defaultNavMap + */ + private void loadDefaultNavMap(Map defaultNavMap) { + + JSONObject navItemsDetails1 = new JSONObject(); + navItemsDetails1.put("name", "Home"); + navItemsDetails1.put("state", "root.applicationsHome"); + navItemsDetails1.put("imageSrc", "icon-building-home"); + defaultNavMap.put("root.applicationsHome", navItemsDetails1); + + JSONObject navItemsDetails2 = new JSONObject(); + navItemsDetails2.put("name", "Application Catalog"); + navItemsDetails2.put("state", "root.appCatalog"); + navItemsDetails2.put("imageSrc", "icon-apps-marketplace"); + defaultNavMap.put("root.appCatalog", navItemsDetails2); + + JSONObject navItemsDetails3 = new JSONObject(); + navItemsDetails3.put("name", "Widget Catalog"); + navItemsDetails3.put("state", "root.widgetCatalog"); + navItemsDetails3.put("imageSrc", "icon-apps-marketplace"); + defaultNavMap.put("root.widgetCatalog", navItemsDetails3); + + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLoginService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLoginService.java new file mode 100644 index 00000000..4fd9baa4 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLoginService.java @@ -0,0 +1,90 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.HashMap; + +import org.onap.portalapp.command.EPLoginBean; +import org.onap.portalapp.portal.domain.EPUser; + +public interface EPLoginService { + + /** + * Calls {@link #findUser(EPLoginBean, String, HashMap, boolean)} with the + * last parameter set to true. + * + * @param bean + * @param menuPropertiesFilename + * @param additionalParams + * @return EPUser object; null on error or if no match. + * @throws Exception + */ + @SuppressWarnings("rawtypes") + EPLoginBean findUser(EPLoginBean bean, String menuPropertiesFilename, HashMap additionalParams) throws Exception; + + /** + * Searches the fn_user table for a row that matches information in the + * bean. Uses the bean's Organization User ID property if present; if not, + * uses the bean's LoginId property and (optionally, depending on + * matchPassword parameter) loginPwd property. + * + * @param bean + * EPLoginBean + * @param menuPropertiesFileName + * Always ignored + * @param additionalParams + * Used by DataAccessService when updating a matched user object + * @param matchPassword + * If true, the search must match the password + * @return EPUser object; null on error or if no match. + * @throws Exception + */ + @SuppressWarnings("rawtypes") + EPLoginBean findUser(EPLoginBean bean, String menuPropertiesFileName, HashMap additionalParams, + boolean matchPassword) throws Exception; + + /** + * Searches the fn_user table for a row with a value in column login_id that + * matches the specified value. + * + * @param loginId + * Login name + * @return EPUser object; null on error or if no match. + */ + public EPUser findUserWithoutPwd(String loginId); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLoginServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLoginServiceImpl.java new file mode 100644 index 00000000..eff297f5 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLoginServiceImpl.java @@ -0,0 +1,240 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.onap.portalapp.command.EPLoginBean; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.menu.MenuBuilder; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.support.FusionService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.AppUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service("eploginService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class EPLoginServiceImpl extends FusionService implements EPLoginService { + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPLoginServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + /* + * (non-Javadoc) + * @see org.openecomp.portalapp.portal.service.EPLoginService#findUser(org.openecomp.portalapp.command.EPLoginBean, java.lang.String, java.util.HashMap) + */ + @SuppressWarnings("rawtypes") + public EPLoginBean findUser(EPLoginBean bean, String menuPropertiesFilename, HashMap additionalParams) + throws Exception { + return findUser(bean, menuPropertiesFilename, additionalParams, true); + } + + /* + * (non-Javadoc) + * @see org.openecomp.portalapp.portal.service.EPLoginService#findUser(org.openecomp.portalapp.command.EPLoginBean, java.lang.String, java.util.HashMap, boolean) + */ + @SuppressWarnings("rawtypes") + public EPLoginBean findUser(EPLoginBean bean, String menuPropertiesFilename_ignored, HashMap additionalParams, + boolean matchPassword) throws Exception { + EPUser user = null; + EPUser userCopy = null; + + if (bean.getOrgUserId() != null) { + user = (EPUser) findUser(bean); + } else { + if (matchPassword) + user = (EPUser) findUser(bean.getLoginId(), bean.getLoginPwd()); + else + user = (EPUser) findUserWithoutPwd(bean.getLoginId()); + } + + // run this command to fetch more information from the lazily loaded + // object + + // This is funny - commenting out the following method call + // 1. What are we doing with the returned values of the following two + // methods? Nothing. + // 2. Use a guest user scenario - user object will be null - clealry, + // NPE. + // 3. A check of if(user !=null) is made AFTER these bogus calls :) - If + // these calls WERE doing anything significat (which they are not), + // shouln't they have been moved inside that if check? + + // user.getEPUserApps(); + + // Comments + // 1. This method is clearly doing more than 'getting roles' - Not a + // good name - + // 2. Also, there is no null check - guest user scenarios will break the + // code with NPE - added the check - Do not want to remove the call + // altogether - not sure how it will effect things. + + if (user != null) { + user.getEPRoles(); + + // raise an error if the portal application is locked and the user + // does not + // have system administrator privileges + if (AppUtils.isApplicationLocked() + && !EPUserUtils.hasRole(user, SystemProperties.getProperty(SystemProperties.SYS_ADMIN_ROLE_ID))) { + bean.setLoginErrorMessage(SystemProperties.MESSAGE_KEY_LOGIN_ERROR_APPLICATION_LOCKED); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUserAdminPrivilegesInfo, user.getLoginId()); + } + + // raise an error if the user is inactive + if (!user.getActive()) { + bean.setLoginErrorMessage(SystemProperties.MESSAGE_KEY_LOGIN_ERROR_USER_INACTIVE); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUserInactiveWarning, user.getLoginId()); + } + + // only login the user if no errors have occurred + if (bean.getLoginErrorMessage() == null) { + + // this will be a snapshot of the user's information as + // retrieved from the database + userCopy = (EPUser) user.clone(); + + // update the last logged in date for the user + user.setLastLoginDate(new Date()); + getDataAccessService().saveDomainObject(user, additionalParams); + + // create the application menu based on the user's privileges + MenuBuilder menuBuilder = new MenuBuilder(); + Set appMenu = menuBuilder.getMenu( + SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_SET_NAME), dataAccessService); + bean.setMenu(appMenu != null ? appMenu : new HashSet()); + Set businessDirectMenu = menuBuilder.getMenu( + SystemProperties.getProperty(SystemProperties.BUSINESS_DIRECT_MENU_SET_NAME), + dataAccessService); + bean.setBusinessDirectMenu(businessDirectMenu != null ? businessDirectMenu : new HashSet()); + + bean.setUser(userCopy); + } + + } else { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUserMissingError, bean.getOrgUserId()); + } + + return bean; + } + + /** + * Searches the fn_user table for a row that matches the specified login_id + * and login_pwd values. + * + * @param loginId + * @param password + * @return EPUser object; null on error or if no match. + */ + @SuppressWarnings("rawtypes") + private EPUser findUser(String loginId, String password) { + Map params = new HashMap<>(); + params.put("login_id", loginId); + params.put("login_pwd", password); + List list = null; + try { + list = dataAccessService.executeNamedQuery("getEPUserByLoginIdLoginPwd", params, new HashMap()); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + logger.error(EELFLoggerDelegate.errorLogger, "findUser failed on " + loginId, e); + } + return (list == null || list.isEmpty()) ? null : (EPUser) list.get(0); + } + + @SuppressWarnings("rawtypes") + public EPUser findUserWithoutPwd(String loginId) { + Map params = new HashMap<>(); + params.put("login_id", loginId); + List list = null; + try { + list = dataAccessService.executeNamedQuery("getEPUserByLoginId", params, new HashMap()); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + logger.error(EELFLoggerDelegate.errorLogger, "findUserWithoutPwd failed on " + loginId, e); + } + return (list == null || list.isEmpty()) ? null : (EPUser) list.get(0); + } + + /** + * Searches the fn_user table for a row that matches the value of the bean's + * Organization User ID property. + * + * @param bean + * @return EPUser object; null on error or if no match. + */ + @SuppressWarnings("rawtypes") + private EPUser findUser(EPLoginBean bean) { + Map params = new HashMap<>(); + params.put("org_user_id", bean.getOrgUserId()); + List list = null; + try { + list = dataAccessService.executeNamedQuery("getEPUserByOrgUserId", params, new HashMap()); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + logger.error(EELFLoggerDelegate.errorLogger, "findUser(EPLoginBean) failed", e); + } + return (list == null || list.isEmpty()) ? null : (EPUser) list.get(0); + } + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionService.java new file mode 100644 index 00000000..044225a3 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionService.java @@ -0,0 +1,71 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.codec.DecoderException; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.exceptions.RoleFunctionException; +import org.onap.portalsdk.core.domain.RoleFunction; + +public interface EPRoleFunctionService { + + /** + * Builds a set of role functions and sets a session attribute with it. + * + * @return Set of role functions that was built. + */ + public List getRoleFunctions(); + + /** + * Builds a set of role functions of user + * + * @param request + * HttpServletRequest + * @param user + * EPUser + * @return Set of role functions that was built. + * @throws RoleFunctionException + */ + public Set getRoleFunctions(HttpServletRequest request, EPUser user) throws RoleFunctionException; + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceCentralizedImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceCentralizedImpl.java new file mode 100644 index 00000000..c2028056 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceCentralizedImpl.java @@ -0,0 +1,132 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.binary.Hex; +import org.hibernate.SessionFactory; +import org.onap.portalapp.portal.controller.RoleManageController; +import org.onap.portalapp.portal.domain.CentralV2RoleFunction; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.exceptions.RoleFunctionException; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.RoleFunction; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + + +@Transactional +public class EPRoleFunctionServiceCentralizedImpl implements EPRoleFunctionService{ + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPRoleFunctionServiceCentralizedImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + @Autowired + private SessionFactory sessionFactory; + + @Autowired + private ExternalAccessRolesService externalAccessRolesService; + + @SuppressWarnings("unchecked") + @Override + public List getRoleFunctions() { + List getRoleFuncList = null; + List getRoleFuncListOfPortal = new ArrayList<>(); + final Map params = new HashMap<>(); + params.put("appId", (long) 1); + //Sync all functions from external system into Ecomp portal DB + getRoleFuncList = dataAccessService.executeNamedQuery("getAllRoleFunctions", params, null); + for(CentralV2RoleFunction roleFunction : getRoleFuncList) + { + RoleFunction roleFun = new RoleFunction(); + String code = EcompPortalUtils.getFunctionCode(roleFunction.getCode()); + roleFun.setCode(code); + roleFun.setName(roleFunction.getName()); + getRoleFuncListOfPortal.add(roleFun); + } + return getRoleFuncListOfPortal; + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + @Override + public Set getRoleFunctions(HttpServletRequest request, EPUser user) throws RoleFunctionException { + HttpSession session = request.getSession(); + String userId = user.getId().toString(); + final Map params = new HashMap<>(); + params.put("userId", userId); + List getRoleFuncListOfPortal = dataAccessService.executeNamedQuery("getRoleFunctionsOfUser", params, null); + Set getRoleFuncListOfPortalSet = new HashSet<>(getRoleFuncListOfPortal); + Set roleFunSet = new HashSet<>(); + roleFunSet = getRoleFuncListOfPortalSet.stream().filter(x -> x.contains("|")).collect(Collectors.toSet()); + if (roleFunSet.size() > 0) + for (String roleFunction : roleFunSet) { + String roleFun = EcompPortalUtils.getFunctionCode(roleFunction); + getRoleFuncListOfPortalSet.remove(roleFunction); + getRoleFuncListOfPortalSet.add(roleFun); + } + + Set finalRoleFunctionSet = new HashSet<>(); + for (String roleFn : getRoleFuncListOfPortalSet) { + finalRoleFunctionSet.add(EPUserUtils.decodeFunctionCode(roleFn)); + } + session.setAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME), + finalRoleFunctionSet); + logger.debug(EELFLoggerDelegate.debugLogger, + "getRoleFunctions: RoleFunctions Of User" + finalRoleFunctionSet); + return finalRoleFunctionSet; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceImpl.java new file mode 100644 index 00000000..130d9caa --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceImpl.java @@ -0,0 +1,116 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.RoleFunction; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +@Transactional +public class EPRoleFunctionServiceImpl implements EPRoleFunctionService { + @Autowired + private DataAccessService dataAccessService; + + + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } + + @SuppressWarnings("unchecked") + @Override + public List getRoleFunctions() { + return getDataAccessService().getList(RoleFunction.class, null); + } + + @SuppressWarnings("unchecked") + @Override + public Set getRoleFunctions(HttpServletRequest request, EPUser user) { + HashSet roleFunctions = null; + + HttpSession session = request.getSession(); + roleFunctions = (HashSet) session + .getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME)); + + if (roleFunctions == null) { + HashMap roles = EPUserUtils.getRoles(request); + roleFunctions = new HashSet(); + + Iterator i = roles.keySet().iterator(); + + while (i.hasNext()) { + Long roleKey = (Long) i.next(); + EPRole role = (EPRole) roles.get(roleKey); + + Iterator j = role.getRoleFunctions().iterator(); + + while (j.hasNext()) { + RoleFunction function = (RoleFunction) j.next(); + roleFunctions.add(function.getCode()); + } + } + + session.setAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME), + roleFunctions); + } + + return roleFunctions; + } + + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleService.java new file mode 100644 index 00000000..d29e6494 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleService.java @@ -0,0 +1,55 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalsdk.core.domain.RoleFunction; + + +public interface EPRoleService { + + // Used by ECOMP. Get cached role by two columns used by ECOMP only. app id, and external app role id. + EPRole getRole(Long appId, Long appRoleid); + public void saveRole(EPRole domainRole); + EPRole getAppRole(String roleName, Long appId); + public List getRoleFunctions(); + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleServiceImpl.java new file mode 100644 index 00000000..3e73d8d2 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPRoleServiceImpl.java @@ -0,0 +1,196 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.domain.RoleFunction; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; + +@Service("epRoleService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class EPRoleServiceImpl implements EPRoleService { + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPRoleServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + @SuppressWarnings("unchecked") + public List getRoleFunctions() { + // List msgDB = getDataAccessService().getList(Profile.class, null); + return getDataAccessService().getList(RoleFunction.class, null); + } + + @SuppressWarnings("unchecked") + public List getAvailableChildRoles(Long roleId) { + List availableChildRoles = (List) getDataAccessService().getList(EPRole.class, null); + if (roleId == null || roleId == 0) { + return availableChildRoles; + } + + EPRole currentRole = (EPRole) getDataAccessService().getDomainObject(EPRole.class, roleId, null); + Set allParentRoles = new TreeSet(); + allParentRoles = getAllParentRolesAsList(currentRole, allParentRoles); + + Iterator availableChildRolesIterator = availableChildRoles.iterator(); + while (availableChildRolesIterator.hasNext()) { + EPRole role = availableChildRolesIterator.next(); + if (!role.getActive() || allParentRoles.contains(role) || role.getId().equals(roleId)) { + availableChildRolesIterator.remove(); + } + } + return availableChildRoles; + } + + private Set getAllParentRolesAsList(EPRole role, Set allParentRoles) { + Set parentRoles = role.getParentRoles(); + allParentRoles.addAll(parentRoles); + Iterator parentRolesIterator = parentRoles.iterator(); + while (parentRolesIterator.hasNext()) { + getAllParentRolesAsList(parentRolesIterator.next(), allParentRoles); + } + return allParentRoles; + } + + public RoleFunction getRoleFunction(String code) { + return (RoleFunction) getDataAccessService().getDomainObject(RoleFunction.class, code, null); + } + + public void saveRoleFunction(RoleFunction domainRoleFunction) { + getDataAccessService().saveDomainObject(domainRoleFunction, null); + } + + public void deleteRoleFunction(RoleFunction domainRoleFunction) { + getDataAccessService().deleteDomainObject(domainRoleFunction, null); + } + + public EPRole getRole(Long id) { + return (EPRole) getDataAccessService().getDomainObject(EPRole.class, id, null); + } + + // TODO: refactor + private static final String getAppRoleSqlFormat = "SELECT * FROM fn_role where APP_ID = %s AND APP_ROLE_ID = %s"; + + @SuppressWarnings("unchecked") + public EPRole getRole(Long appId, Long appRoleid) { + if (appId == null || appRoleid == null) { + logger.error(EELFLoggerDelegate.errorLogger, String.format( + "getRole does not support null appId or roleId. appRoleid=%s, appRoleid=%s", appId, appRoleid)); + return null; + } + + String sql = String.format(getAppRoleSqlFormat, appId, appRoleid); + + List roles = (List) dataAccessService.executeSQLQuery(sql, EPRole.class, null); + int resultsCount = roles.size(); + if (resultsCount > 1) { + logger.error(EELFLoggerDelegate.errorLogger, + String.format( + "search by appId=%s, appRoleid=%s should have returned 0 or 1 results. Got %d. This is an internal server error.", + appId, appRoleid, resultsCount)); + logger.error(EELFLoggerDelegate.errorLogger, + "Trying to recover from duplicates by returning the first search result. This issue should be treated, it is probably not critical because duplicate roles should be similar."); + return roles.get(0); + } else if (resultsCount == 1) { + return roles.get(0); + } + return null; + } + + @SuppressWarnings("unchecked") + public EPRole getAppRole(String roleName, Long appId) { + + final Map params = new HashMap(); + final Map portalParams = new HashMap(); + List roles = null; + params.put("appId", appId.toString()); + params.put("roleName", roleName); + portalParams.put("appRoleName", roleName); + if (appId == 1 || roleName.equals(PortalConstants.ADMIN_ROLE)) { + roles = (List) dataAccessService.executeNamedQuery("getPortalAppRoles", portalParams, null); + } else if (appId != 1 && !roleName.equals(PortalConstants.ADMIN_ROLE)) { + roles = (List) dataAccessService.executeNamedQuery("getAppRoles", params, null); + } + int resultsCount = (roles == null ? 0 : roles.size()); + if (resultsCount > 1) { + logger.error(EELFLoggerDelegate.errorLogger, + "Trying to recover from duplicates by returning the first search result. This issue should be treated, it is probably not critical because duplicate roles should be similar."); + return roles.get(0); + } else if (resultsCount == 1) { + return roles.get(0); + } + return null; + } + + public void saveRole(EPRole domainRole) { + getDataAccessService().saveDomainObject(domainRole, null); + } + + public void deleteRole(EPRole domainRole) { + getDataAccessService().deleteDomainObject(domainRole, null); + } + + @SuppressWarnings("unchecked") + public List getAvailableRoles() { + return getDataAccessService().getList(EPRole.class, null); + } + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ExternalAccessRolesService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ExternalAccessRolesService.java new file mode 100644 index 00000000..d65f1152 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ExternalAccessRolesService.java @@ -0,0 +1,436 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import org.hibernate.Session; +import org.json.JSONArray; +import org.onap.portalapp.portal.domain.CentralV2RoleFunction; +import org.onap.portalapp.portal.domain.CentralizedApp; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.ExternalRoleDetails; +import org.onap.portalapp.portal.transport.CentralRole; +import org.onap.portalapp.portal.transport.CentralUser; +import org.onap.portalapp.portal.transport.CentralV2Role; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; +import org.onap.portalsdk.core.domain.Role; +import org.onap.portalsdk.core.domain.RoleFunction; +import org.onap.portalsdk.core.restful.domain.EcompUser; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.HttpClientErrorException; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public interface ExternalAccessRolesService { + + /** + * It gets list of application roles + * + * @param appId + * @return List + * @throws Exception + */ + public List getAppRoles(Long appId) throws Exception; + + /** + * It returns single app record + * + * @param uebkey + * @return List + * @throws Exception + */ + public List getApp(String uebkey) throws Exception; + + /** + * Adds role in the external access system if fails throws exception + * + * @param addRoles + * @param uebkey + * @return boolean + * @throws Exception + */ + public boolean addRole(Role addRoles, String uebkey) throws Exception; + + /** + * It returns complete user information + * + * @param loginId + * @return EPUser object + * @throws Exception + */ + List getUser(String loginId) throws Exception; + + /** + * It returns complete user information including application roles permissions + * + * @param loginId + * @param uebkey + * @return String + * @throws Exception + */ + String getV2UserWithRoles(String loginId, String uebkey) throws Exception; + + /** + * It returns list of all role functions + * @param string + * @return List + * @throws Exception + */ + List getRoleFuncList(String string) throws Exception; + + /** + * It return list of role provided by the app uebkey and roleId + * + * @param roleId + * @param uebkey + * @return CentralRole + * @throws Exception + */ + CentralV2Role getRoleInfo(Long roleId, String uebkey) throws Exception; + + /** + * It returns the CentralRoleFunction object + * + * @param functionCode + * @param uebkey + * @return CentralRoleFunction + * @throws Exception + */ + public CentralV2RoleFunction getRoleFunction(String functionCode, String uebkey) throws Exception; + + /** + * It saves role function in the DB + * + * @param domainCentralRoleFunction + * @param requestedApp + * @return true else false + * @throws Exception + */ + public boolean saveCentralRoleFunction(CentralV2RoleFunction domainCentralRoleFunction, EPApp requestedApp) throws Exception; + + /** + * It deletes role function in the DB + * + * @param code + * @param app + */ + public boolean deleteCentralRoleFunction(String code, EPApp app); + + /** + * It gets all roles the applications + * + * @param uebkey + * @return List + * @throws Exception + */ + public List getRolesForApp(String uebkey) throws Exception; + + /** + * + * It saves role function in the DB + * + * @param saveRole + * @param uebkey + * @return message and true or false + * @throws Exception + */ + ExternalRequestFieldsValidator saveRoleForApplication(Role saveRole, String uebkey) throws Exception; + + /** + * It deletes role in the DB + * + * @param code + * @param uebkey + * @return true else false + * @throws Exception + */ + boolean deleteRoleForApplication(String code, String uebkey) throws Exception; + + /** + * It gets all active roles for single application + * + * @param uebkey + * @return List + * @throws Exception + */ + List getActiveRoles(String uebkey) throws Exception; + + /** + * It deletes user related roles for an application in the table + * @param roleId + * @param uebkey + * @param LoginId + * @return true else false + * @throws Exception + */ + public ExternalRequestFieldsValidator deleteDependencyRoleRecord(Long roleId, String uebkey, String LoginId) throws Exception; + + /** + * It sync new functions codes and names from and updates role functions from external access system + * + * @param app + * @throws Exception + */ + public void syncRoleFunctionFromExternalAccessSystem(EPApp app) throws Exception; + + /** + * It uploads portal functions into external auth system + * @param uebkey + * @return + * @throws Exception + */ + public Integer bulkUploadFunctions(String uebkey) throws Exception; + + /** + * It uploads portal roles into external auth system + * @param uebkey + * @return + * @throws Exception + */ + public Integer bulkUploadRoles(String uebkey) throws Exception; + + /** + * It uploads partner application role functions into external auth system + * + * @param uebkey + * @param upload + * @throws Exception + */ + public void bulkUploadPartnerFunctions(String uebkey, List upload) throws Exception; + + /** + * It uploads partner application role functions into external auth system + * + * @param uebkey + * @param upload + * @throws Exception + */ + public void bulkUploadPartnerRoles(String uebkey, List upload) throws Exception; + + /** + * It returns total no. of portal application role functions records added in external auth system + * @param uebkey + * @return + * @throws Exception + */ + Integer bulkUploadRolesFunctions(String uebkey) throws Exception; + + /** + * It syncs the roles and rolefunctions to the ecomp DB from AAF + * @param app + * @throws Exception + */ + void syncApplicationRolesWithEcompDB(EPApp app) throws Exception; + + /** + * It uploads list of user roles of the application into external auth system + * + * @param uebkey + * @return + * @throws Exception + */ + public Integer bulkUploadUserRoles(String uebkey) throws Exception; + + /** + * It Uploads partner application role functions into external auth system + * + * @param uebkey + * @param roleList + * @throws Exception + */ + void bulkUploadPartnerRoleFunctions(String uebkey, List roleList) throws Exception; + + /** + * it deletes all dependency role records + * + * @param localSession + * @param roleId + * @param appId + * @param isPortalRequest + * @throws Exception + */ + public void deleteRoleDependencyRecords(Session localSession, Long roleId, Long appId, boolean isPortalRequest) throws Exception; + + /** + * It returns list of applications functions along with functions associated with global role + * + * @param uebkey + * @return + * @throws Exception + */ + List getMenuFunctionsList(String uebkey) throws Exception; + + /** + * + * @param uebkey applications UebKey + * @return + * @throws Exception + * Method getAllUsers returns all the active users of application + */ + List getAllAppUsers(String uebkey) throws Exception; + + /** + * + * @param result + * @return returns Role Object + * Method ConvertCentralRoleToRole converts the CentralRole String to Role Object + */ + public Role ConvertCentralRoleToRole(String result); + + /** + * It returns the list of centralized applications + * + * @param userId + * @return List + */ + public List getCentralizedAppsOfUser(String userId); + + /** + * It returns the list of globalRoles of Portal + * @return + */ + public List getGlobalRolesOfPortal(); + + /** + * It converts list of CentralRoleFunction objects to RoleFunction objects + * @param answer contains list of CentralRoleFunction objects + * @return List of RoleFunction objects + */ + public List convertCentralRoleFunctionToRoleFunctionObject(List answer); + + /** + * + * It returns user roles for older version + * + * @param loginId + * @param uebkey + * @return EPUser + * @throws Exception + */ + public CentralUser getUserRoles(String loginId, String uebkey) throws Exception; + + /** + * It converts list of V2 CentralRole objects to old version CentralRole objects + * + * @param v2CenRole + * @return List of CentralRole objects + */ + public List convertV2CentralRoleListToOldVerisonCentralRoleList(List v2CenRole); + + /** + * + * It finds namespace in external auth system if found returns namespace information + * + * @param epApp + * @return Http response + */ + public ResponseEntity getNameSpaceIfExists(EPApp epApp) throws Exception, HttpClientErrorException; + + /** + * + * It converts V2 CentralRole objects to old version CentralRole objects + * + * @param answer + * @return + */ + public CentralRole convertV2CentralRoleToOldVerisonCentralRole(CentralV2Role answer); + + /** + * + * Returns list of EPRole Objects if exists + * + * @param app + * @return List of EPRole objects + */ + Map getCurrentRolesInDB(EPApp app); + + + /** + * + * It uploads list of users for single role when role name is re-named + * + * @param header + * @param roleId + * @param roleName + * @return number of user roles added in External Auth System + * @throws Exception + */ + public Integer bulkUploadUsersSingleRole(String uebkey, Long roleId, String roleName) throws Exception; + + /** + * + * It returns JSON array of external auth roles and its corresponding functions + * + * @param app + * @return JSON Array + * @throws Exception + */ + public JSONArray getAppRolesJSONFromExtAuthSystem(EPApp app) throws Exception; + + /** + * It encodes the function code based on Hex encoding + * @param funCode + * + */ + public String encodeFunctionCode(String funCode); + + /** + * + * It returns list of ExternalRoleDetails which is converted from JSON array of roles + * + * @param app + * @param mapper + * @param extRole contains external auth application roles JSON array + * @return List of ExternalRoleDetails objects + * @throws IOException + * @throws JsonParseException + * @throws JsonMappingException + */ + public List getExternalRoleDetailsList(EPApp app, + ObjectMapper mapper, JSONArray extRole) throws IOException, JsonParseException, JsonMappingException; + + public JSONArray getAllUsersByRole(String roleName) throws Exception; + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImpl.java new file mode 100644 index 00000000..e867c3d6 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImpl.java @@ -0,0 +1,3497 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.binary.Hex; +import org.apache.commons.lang.StringUtils; +import org.hibernate.Query; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.json.JSONArray; +import org.json.JSONObject; +import org.onap.portalapp.portal.domain.CentralV2RoleFunction; +import org.onap.portalapp.portal.domain.CentralizedApp; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPAppRoleFunction; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserApp; +import org.onap.portalapp.portal.domain.ExternalRoleDetails; +import org.onap.portalapp.portal.exceptions.DeleteDomainObjectFailedException; +import org.onap.portalapp.portal.exceptions.ExternalAuthSystemException; +import org.onap.portalapp.portal.exceptions.InactiveApplicationException; +import org.onap.portalapp.portal.exceptions.InvalidApplicationException; +import org.onap.portalapp.portal.exceptions.InvalidUserException; +import org.onap.portalapp.portal.exceptions.RoleFunctionException; +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.transport.BulkUploadRoleFunction; +import org.onap.portalapp.portal.transport.BulkUploadUserRoles; +import org.onap.portalapp.portal.transport.CentralApp; +import org.onap.portalapp.portal.transport.CentralRole; +import org.onap.portalapp.portal.transport.CentralRoleFunction; +import org.onap.portalapp.portal.transport.CentralUser; +import org.onap.portalapp.portal.transport.CentralUserApp; +import org.onap.portalapp.portal.transport.CentralV2Role; +import org.onap.portalapp.portal.transport.CentralV2User; +import org.onap.portalapp.portal.transport.CentralV2UserApp; +import org.onap.portalapp.portal.transport.EcompUserRoles; +import org.onap.portalapp.portal.transport.ExternalAccessPerms; +import org.onap.portalapp.portal.transport.ExternalAccessPermsDetail; +import org.onap.portalapp.portal.transport.ExternalAccessRole; +import org.onap.portalapp.portal.transport.ExternalAccessRolePerms; +import org.onap.portalapp.portal.transport.ExternalAccessUser; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; +import org.onap.portalapp.portal.transport.ExternalRoleDescription; +import org.onap.portalapp.portal.transport.GlobalRoleWithApplicationRoleFunction; +import org.onap.portalapp.portal.transport.LocalRole; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.Role; +import org.onap.portalsdk.core.domain.RoleFunction; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.restful.domain.EcompRole; +import org.onap.portalsdk.core.restful.domain.EcompUser; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.RestTemplate; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.type.TypeFactory; + +@Service("externalAccessRolesService") +@EnableAspectJAutoProxy +@EPMetricsLog +@EPAuditLog +public class ExternalAccessRolesServiceImpl implements ExternalAccessRolesService { + + private static final String APP_ROLE_NAME_PARAM = "appRoleName"; + + private static final String GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM = "getRoletoUpdateInExternalAuthSystem"; + + private static final String GET_PORTAL_APP_ROLES_QUERY = "getPortalAppRoles"; + + private static final String GET_ROLE_FUNCTION_QUERY = "getRoleFunction"; + + private static final String FUNCTION_CODE_PARAMS = "functionCode"; + + private static final String AND_FUNCTION_CD_EQUALS = " and function_cd = '"; + + private static final String OWNER = ".owner"; + + private static final String ADMIN = ".admin"; + + private static final String ACCOUNT_ADMINISTRATOR = ".Account_Administrator"; + + private static final String FUNCTION_PIPE = "|"; + + private static final String IS_NULL_STRING = "null"; + + private static final String EXTERNAL_AUTH_PERMS = "perms"; + + private static final String EXTERNAL_AUTH_ROLE_DESCRIPTION = "description"; + + private static final String IS_EMPTY_JSON_STRING = "{}"; + + private static final String CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE = "Connecting to External Auth system"; + + private static final String APP_ROLE_ID = "appRoleId"; + + private static final String APP_ID = "appId"; + + private static final String PRIORITY = "priority"; + + private static final String ACTIVE = "active"; + + private static final String ROLE_NAME = "name"; + + private static final String ID = "id"; + + private static final String APP_ID_EQUALS = " app_id = "; + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ExternalAccessRolesServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + @Autowired + private EPAppService epAppService; + + @Autowired + private SessionFactory sessionFactory; + + @Autowired + EPRoleService ePRoleService; + + RestTemplate template = new RestTemplate(); + + + // These decode values are based on HexDecoder + static final String decodeValueOfForwardSlash = "2f"; + static final String decodeValueOfHiphen = "2d"; + static final String decodeValueOfStar = "2a"; + + @SuppressWarnings("unchecked") + public List getAppRoles(Long appId) throws Exception { + List applicationRoles = null; + final Map appParams = new HashMap<>(); + try { + if (appId == 1) { + applicationRoles = dataAccessService.executeNamedQuery("getPortalAppRolesList", null, null); + } else { + appParams.put("appId", appId); + applicationRoles = dataAccessService.executeNamedQuery("getPartnerAppRolesList", appParams, null); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppRoles: failed", e); + throw e; + } + return applicationRoles; + } + + @SuppressWarnings("unchecked") + @Override + public List getApp(String uebkey) throws Exception { + List app = null; + try { + final Map appUebkeyParams = new HashMap<>(); + appUebkeyParams.put("appKey", uebkey); + app = dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null); + if(!app.isEmpty() && !app.get(0).getEnabled() && !app.get(0).getId().equals(PortalConstants.PORTAL_APP_ID)){ + throw new InactiveApplicationException("Application:"+app.get(0).getName()+" is Unavailable"); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getApp: failed", e); + throw e; + } + return app; + } + + /** + * It returns single application role from external auth system + * @param addRole + * @param app + * @return JSON string which contains application role details + * @throws Exception + */ + private String getSingleAppRole(String addRole, EPApp app) throws Exception { + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + HttpEntity entity = new HttpEntity<>(headers); + ResponseEntity response = null; + logger.debug(EELFLoggerDelegate.debugLogger, "getSingleAppRole: Connecting to External Auth system"); + response = template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "roles/" + + app.getNameSpace() + + "." + addRole + .replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_"), + HttpMethod.GET, entity, String.class); + logger.debug(EELFLoggerDelegate.debugLogger, + "getSingleAppRole: Finished GET app role from External Auth system and status code: {} ", + response.getStatusCode().value()); + return response.getBody(); + } + + @Override + public boolean addRole(Role addRole, String uebkey) throws Exception { + boolean response = false; + ResponseEntity addResponse = null; + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + EPApp app = getApp(uebkey).get(0); + String newRole = updateExistingRoleInExternalSystem(addRole, app); + HttpEntity entity = new HttpEntity<>(newRole, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "addRole: Connecting to External Auth system"); + addResponse = template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role", + HttpMethod.POST, entity, String.class); + if (addResponse.getStatusCode().value() == 201) { + response = true; + logger.debug(EELFLoggerDelegate.debugLogger, "addRole: Finished adding role in the External Auth system and response code: {} ", addResponse.getStatusCode().value()); + } + if (addResponse.getStatusCode().value() == 406) { + logger.error(EELFLoggerDelegate.errorLogger, + "addRole: Failed to add in the External Auth system due to {} and status code: {}", addResponse.getBody(), addResponse.getStatusCode().value()); + } + return response; + } + + /** + * + * It deletes record in external auth system + * + * @param delRole + * @return JSON String which has status code and response body + * @throws Exception + */ + private ResponseEntity deleteRoleInExternalSystem(String delRole) throws Exception { + ResponseEntity delResponse = null; + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + HttpEntity entity = new HttpEntity<>(delRole, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "deleteRoleInExternalSystem: {} for DELETE: {}" , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE, delRole); + delResponse = template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role?force=true", + HttpMethod.DELETE, entity, String.class); + logger.debug(EELFLoggerDelegate.debugLogger, "deleteRoleInExternalSystem: Finished DELETE operation in the External Auth system {} and status code: {} ", delRole, delResponse.getStatusCode().value()); + return delResponse; + } + + /** + * It updates role in external auth system + * + * @param updateExtRole + * @param app + * @return true if success else false + * @throws Exception + * If updateRoleInExternalSystem fails we catch it in logger for detail message + */ + @SuppressWarnings("unchecked") + private boolean updateRoleInExternalSystem(Role updateExtRole, EPApp app, boolean isGlobalRole) throws Exception { + boolean response = false; + ObjectMapper mapper = new ObjectMapper(); + ResponseEntity deleteResponse = null; + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + List epRoleList = null; + if (app.getId().equals(PortalConstants.PORTAL_APP_ID) + || (isGlobalRole && !app.getId().equals(PortalConstants.PORTAL_APP_ID))) { + epRoleList = getPortalAppRoleInfo(updateExtRole.getId()); + } else { + epRoleList = getPartnerAppRoleInfo(updateExtRole.getId(), app); + } + + // Assigning functions to global role + if ((isGlobalRole && !app.getId().equals(PortalConstants.PORTAL_APP_ID))) { + List globalRoleFunctionListNew = convertSetToListOfRoleFunctions(updateExtRole); + EPApp portalAppInfo = epAppService.getApp(PortalConstants.PORTAL_APP_ID); + addFunctionsTOGlobalRole(epRoleList, updateExtRole, globalRoleFunctionListNew, mapper, app, portalAppInfo); + response = true; + } else { + String appRole = getSingleAppRole(epRoleList.get(0).getName(), app); + List roleFunctionListNew = convertSetToListOfRoleFunctions(updateExtRole); + if (!appRole.equals(IS_EMPTY_JSON_STRING)) { + JSONObject jsonObj = new JSONObject(appRole); + JSONArray extRole = jsonObj.getJSONArray("role"); + if (!extRole.getJSONObject(0).has(EXTERNAL_AUTH_ROLE_DESCRIPTION)) { + String roleName = extRole.getJSONObject(0).getString(ROLE_NAME); + Map delRoleKeyMapper = new HashMap<>(); + delRoleKeyMapper.put(ROLE_NAME, roleName); + String delRoleKeyValue = mapper.writeValueAsString(delRoleKeyMapper); + deleteResponse = deleteRoleInExternalSystem(delRoleKeyValue); + if (deleteResponse.getStatusCode().value() != 200) { + throw new ExternalAuthSystemException(deleteResponse.getBody()); + } + addRole(updateExtRole, app.getUebKey()); + } else { + String desc = extRole.getJSONObject(0).getString(EXTERNAL_AUTH_ROLE_DESCRIPTION); + String name = extRole.getJSONObject(0).getString(ROLE_NAME); + List list = new ArrayList<>(); + if (extRole.getJSONObject(0).has(EXTERNAL_AUTH_PERMS)) { + JSONArray perms = extRole.getJSONObject(0).getJSONArray(EXTERNAL_AUTH_PERMS); + list = mapper.readValue(perms.toString(), TypeFactory.defaultInstance() + .constructCollectionType(List.class, ExternalAccessPerms.class)); + } + ExternalRoleDescription sysRoleList = mapper.readValue(desc, ExternalRoleDescription.class); + // If role name or role functions are updated then delete + // record in External System and add new record to avoid + // conflicts + Boolean existingRoleActive; + boolean isActiveValueChanged; + // check role active status + existingRoleActive = new Boolean(sysRoleList.getActive()); + isActiveValueChanged = existingRoleActive.equals(updateExtRole.getActive()); + boolean isRoleNameChanged = false; + if (!sysRoleList.getName().equals(updateExtRole.getName())) { + isRoleNameChanged = true; + Map delRoleKeyMapper = new HashMap<>(); + delRoleKeyMapper.put(ROLE_NAME, name); + String delRoleKeyValue = mapper.writeValueAsString(delRoleKeyMapper); + deleteResponse = deleteRoleInExternalSystem(delRoleKeyValue); + if (deleteResponse.getStatusCode().value() != 200) { + logger.error(EELFLoggerDelegate.errorLogger, + "updateRoleInExternalSystem: Failed to delete role in external system due to {} ", + deleteResponse.getBody()); + throw new ExternalAuthSystemException(deleteResponse.getBody()); + } + addRole(updateExtRole, app.getUebKey()); + // add partner functions to the global role in External Auth System + if(!list.isEmpty() && isGlobalRole){ + addPartnerHasRoleFunctionsToGlobalRole(list, mapper, app, updateExtRole); + } + list.removeIf(perm -> EcompPortalUtils.checkNameSpaceMatching(perm.getType(), app.getNameSpace())); + // if role name is changes please ignore the previous functions in External Auth and update with user requested functions + addRemoveFunctionsToRole(updateExtRole, app, mapper, roleFunctionListNew, name, + list); + } + boolean checkPriorityStatus = StringUtils.equals(String.valueOf(sysRoleList.getPriority()), + String.valueOf(updateExtRole.getPriority())); + ExternalAccessRole updateRole = new ExternalAccessRole(); + if (!isActiveValueChanged || !checkPriorityStatus || sysRoleList.getId().equals(IS_NULL_STRING) + || !sysRoleList.getId().equals(String.valueOf(epRoleList.get(0).getId()))) { + String updateDesc = ""; + List getRole; + final Map getAppRoleByName = new HashMap<>(); + getAppRoleByName.put(APP_ROLE_NAME_PARAM, updateExtRole.getName()); + if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + getRole = dataAccessService.executeNamedQuery(GET_PORTAL_APP_ROLES_QUERY, getAppRoleByName, + null); + } else { + getAppRoleByName.put("appId", String.valueOf(app.getId())); + getRole = dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, + getAppRoleByName, null); + } + Map extSystemUpdateRoleJsonMapper = new LinkedHashMap<>(); + extSystemUpdateRoleJsonMapper.put(ID, String.valueOf(getRole.get(0).getId())); + extSystemUpdateRoleJsonMapper.put(ROLE_NAME, String.valueOf(updateExtRole.getName())); + extSystemUpdateRoleJsonMapper.put(ACTIVE, String.valueOf(updateExtRole.getActive())); + extSystemUpdateRoleJsonMapper.put(PRIORITY, String.valueOf(updateExtRole.getPriority())); + if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + extSystemUpdateRoleJsonMapper.put(APP_ID, "null"); + extSystemUpdateRoleJsonMapper.put(APP_ROLE_ID, "null"); + } else { + extSystemUpdateRoleJsonMapper.put(APP_ID, String.valueOf(app.getId())); + extSystemUpdateRoleJsonMapper.put(APP_ROLE_ID, + String.valueOf(getRole.get(0).getAppRoleId())); + + } + updateDesc = mapper.writeValueAsString(extSystemUpdateRoleJsonMapper); + updateRole.setName(app.getNameSpace() + "." + updateExtRole.getName().replaceAll( + EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")); + updateRole.setDescription(updateDesc); + String updateRoleDesc = mapper.writeValueAsString(updateRole); + HttpEntity entity = new HttpEntity<>(updateRoleDesc, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "updateRoleInExternalSystem: {} for PUT: {}", + CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE, updateRoleDesc); + ResponseEntity updatePermsResponse = template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "role", + HttpMethod.PUT, entity, String.class); + logger.debug(EELFLoggerDelegate.debugLogger, + "updateRoleInExternalSystem: Finished updating in External Auth system {} and status code: {} ", + updateRoleDesc, updatePermsResponse.getStatusCode().value()); + } + if(!isRoleNameChanged) { + response = addRemoveFunctionsToRole(updateExtRole, app, mapper, roleFunctionListNew, name, + list); + } + } + } else { + // It seems like role exists in local DB but not in External + // Access system + addRole(updateExtRole, app.getUebKey()); + List roleFunctionListUpdate = convertSetToListOfRoleFunctions(updateExtRole); + response = true; + if (!roleFunctionListUpdate.isEmpty()) { + addRoleFunctionsInExternalSystem(updateExtRole, mapper, app); + } + } + } + return response; + } + + private boolean addRemoveFunctionsToRole(Role updateExtRole, EPApp app, ObjectMapper mapper, + List roleFunctionListNew, String name, List list) throws Exception { + boolean response; + Map updateRoleFunc = new HashMap<>(); + for (RoleFunction addPerm : roleFunctionListNew) { + updateRoleFunc.put(addPerm.getCode(), addPerm); + } + final Map extRolePermMap = new HashMap<>(); + final Map extRolePermMapPipes = new HashMap<>(); + list.removeIf(perm -> !EcompPortalUtils.checkNameSpaceMatching(perm.getType(), app.getNameSpace())); + // Update permissions in the ExternalAccess System + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + if (!list.isEmpty()) { + for (ExternalAccessPerms perm : list) { + RoleFunction roleFunc = updateRoleFunc.get(perm.getType().substring(app.getNameSpace().length()+1) + FUNCTION_PIPE + perm.getInstance() + FUNCTION_PIPE + perm.getAction()); + if (roleFunc==null) { + RoleFunction roleFuncPipeFilter = updateRoleFunc.get(perm.getInstance()); + if(roleFuncPipeFilter == null) + removePermForRole(perm, mapper, name, headers); + } + extRolePermMap.put(perm.getInstance(), perm); + extRolePermMapPipes.put( + perm.getType().substring(app.getNameSpace().length()+1) + FUNCTION_PIPE + perm.getInstance() + FUNCTION_PIPE + perm.getAction(), perm); + } + } + response = true; + if (!roleFunctionListNew.isEmpty()) { + for (RoleFunction roleFunc : roleFunctionListNew) { + if(roleFunc.getCode().contains(FUNCTION_PIPE)) { + ExternalAccessPerms perm = extRolePermMapPipes.get(roleFunc.getCode()); + if (perm == null) { + response = addFunctionsToRoleInExternalAuthSystem(updateExtRole, app, mapper, headers, + roleFunc); + } + } else { + if (!extRolePermMap.containsKey(EcompPortalUtils.getFunctionCode(roleFunc.getCode()))) { + response = addFunctionsToRoleInExternalAuthSystem(updateExtRole, app, mapper, headers, + roleFunc); + } + } + } + } + return response; + } + + /* + * Adds function to the role in the external auth system while editing a role or updating new functions to a role + * + */ + private boolean addFunctionsToRoleInExternalAuthSystem(Role updateExtRole, EPApp app, ObjectMapper mapper, + HttpHeaders headers, RoleFunction roleFunc) throws JsonProcessingException { + boolean response; + ExternalAccessRolePerms extRolePerms; + ExternalAccessPerms extPerms; + String code = ""; + String type = ""; + String action = ""; + if (roleFunc.getCode().contains(FUNCTION_PIPE)) { + code = EcompPortalUtils.getFunctionCode(roleFunc.getCode()); + type = getFunctionType(roleFunc.getCode()); + action = getFunctionAction(roleFunc.getCode()); + } else { + code = roleFunc.getCode(); + type = roleFunc.getCode().contains("menu") ? "menu" : "url"; + action = "*"; + } + extPerms = new ExternalAccessPerms(app.getNameSpace() + "." + type, code, action); + extRolePerms = new ExternalAccessRolePerms(extPerms, + app.getNameSpace() + "." + + updateExtRole.getName().replaceAll( + EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, + "_")); + String updateRolePerms = mapper.writeValueAsString(extRolePerms); + HttpEntity entity = new HttpEntity<>(updateRolePerms, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "updateRoleInExternalSystem: {} for POST: {}", + CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE, updateRolePerms); + ResponseEntity addResponse = template.exchange( + SystemProperties.getProperty( + EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role/perm", + HttpMethod.POST, entity, String.class); + if (addResponse.getStatusCode().value() != 201 && addResponse.getStatusCode().value()!= 409) { + response = false; + logger.debug(EELFLoggerDelegate.debugLogger, + "updateRoleInExternalSystem: Connected to External Auth system but something went wrong! due to {} and statuscode: {}", + addResponse.getStatusCode().getReasonPhrase(), + addResponse.getStatusCode().value()); + } else { + response = true; + logger.debug(EELFLoggerDelegate.debugLogger, + "updateRoleInExternalSystem: Finished adding permissions to roles in External Auth system {} and status code: {} ", + updateRolePerms, addResponse.getStatusCode().value()); + } + return response; + } + + private void addPartnerHasRoleFunctionsToGlobalRole(List permslist, ObjectMapper mapper, + EPApp app, Role updateExtRole) throws Exception { + for (ExternalAccessPerms perm : permslist) { + if (!EcompPortalUtils.checkNameSpaceMatching(perm.getType(), app.getNameSpace())) { + ExternalAccessRolePerms extAddGlobalRolePerms = null; + ExternalAccessPerms extAddPerms = null; + extAddPerms = new ExternalAccessPerms(perm.getType(), perm.getInstance(), perm.getAction()); + extAddGlobalRolePerms = new ExternalAccessRolePerms(extAddPerms, + app.getNameSpace() + "." + updateExtRole.getName().replaceAll( + EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")); + String addPerms = mapper.writeValueAsString(extAddGlobalRolePerms); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + HttpEntity entity = new HttpEntity<>(addPerms, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "addPartnerHasRoleFunctionsToGlobalRole: {} ", + CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); + try { + ResponseEntity addResponse = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "role/perm", HttpMethod.POST, entity, String.class); + if (addResponse.getStatusCode().value() != 201) { + logger.debug(EELFLoggerDelegate.debugLogger, + "addPartnerHasRoleFunctionsToGlobalRole: While adding permission to the role in External Auth system something went wrong! due to {} and statuscode: {}", + addResponse.getStatusCode().getReasonPhrase(), addResponse.getStatusCode().value()); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, + "addPartnerHasRoleFunctionsToGlobalRole: Finished adding permissions to roles in External Auth system and status code: {} ", + addResponse.getStatusCode().value()); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "addPartnerHasRoleFunctionsToGlobalRole: Failed for POST request: {} due to ", + addPerms, e); + } + } + } + } + + @SuppressWarnings("unchecked") + private void addFunctionsTOGlobalRole(List epRoleList, Role updateExtRole, List roleFunctionListNew, ObjectMapper mapper, EPApp app, EPApp portalAppInfo) + throws Exception { + try { + logger.debug(EELFLoggerDelegate.debugLogger, "Entering into addFunctionsTOGlobalRole"); + //GET Permissions from External Auth System + JSONArray extPerms = getExtAuthPermissions(app); + List permsDetailList = getExtAuthPerrmissonList(app, extPerms); + final Map existingPermsWithRoles = new HashMap<>(); + final Map existingPermsWithRolesWithPipes = new HashMap<>(); + final Map userRquestedFunctionsMap = new HashMap<>(); + final Map userRquestedFunctionsMapPipesFilter = new HashMap<>(); + for (ExternalAccessPermsDetail permDetail : permsDetailList) { + existingPermsWithRoles.put(EcompPortalUtils.getFunctionCode(permDetail.getInstance()), permDetail); + existingPermsWithRolesWithPipes.put(permDetail.getInstance(), permDetail); + + } + // Add If function does not exists for role in External Auth System + for (RoleFunction roleFunc : roleFunctionListNew) { + String roleFuncCode = ""; + ExternalAccessPermsDetail permsDetail; + if(roleFunc.getCode().contains(FUNCTION_PIPE)) { + roleFuncCode = roleFunc.getCode(); + permsDetail = existingPermsWithRolesWithPipes.get(roleFunc.getCode()); + } else { + roleFuncCode = EcompPortalUtils.getFunctionCode(roleFunc.getCode()); + permsDetail = existingPermsWithRoles.get(roleFuncCode); + } + if (null == permsDetail.getRoles() || !permsDetail.getRoles() + .contains(portalAppInfo.getNameSpace() + FUNCTION_PIPE + epRoleList.get(0).getName().replaceAll( + EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_"))) { + addRoleFunctionsToGlobalRoleInExternalSystem(roleFunc, updateExtRole, mapper, app, portalAppInfo); + } + userRquestedFunctionsMap.put(roleFuncCode, roleFunc); + userRquestedFunctionsMapPipesFilter.put(EcompPortalUtils.getFunctionCode(roleFuncCode), roleFunc); + } + // Delete functions if exists in External Auth System but not in incoming request + final Map epAppRoleFuncParams = new HashMap<>(); + epAppRoleFuncParams.put("requestedAppId", app.getId()); + epAppRoleFuncParams.put("roleId",updateExtRole.getId()); + List globalRoleFunctionList = dataAccessService.executeNamedQuery("getGlobalRoleForRequestedApp", epAppRoleFuncParams, null); + for(GlobalRoleWithApplicationRoleFunction globalRoleFunc: globalRoleFunctionList){ + String globalRoleFuncWithoutPipes = ""; + RoleFunction roleFunc = null; + if(globalRoleFunc.getFunctionCd().contains(FUNCTION_PIPE)) { + globalRoleFuncWithoutPipes = globalRoleFunc.getFunctionCd(); + roleFunc = userRquestedFunctionsMap.get(globalRoleFuncWithoutPipes); + }else { + globalRoleFuncWithoutPipes = EcompPortalUtils.getFunctionCode(globalRoleFunc.getFunctionCd()); + roleFunc = userRquestedFunctionsMapPipesFilter.get(globalRoleFuncWithoutPipes); + } + if(roleFunc == null){ + ExternalAccessPermsDetail permDetailFromMap = globalRoleFunc.getFunctionCd().contains(FUNCTION_PIPE) ? existingPermsWithRolesWithPipes.get(globalRoleFuncWithoutPipes) : existingPermsWithRoles.get(globalRoleFuncWithoutPipes); + ExternalAccessPerms perm = new ExternalAccessPerms(permDetailFromMap.getType(), EcompPortalUtils.getFunctionCode(permDetailFromMap.getInstance()), permDetailFromMap.getAction()); + String roleName = portalAppInfo.getNameSpace()+"."+globalRoleFunc.getRoleName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_"); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + removePermForRole(perm, mapper, roleName, headers); + } + } + logger.debug(EELFLoggerDelegate.debugLogger, "Finished addFunctionsTOGlobalRole"); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "addFunctionsTOGlobalRole: Failed",e); + throw e; + } + } + + private void addRoleFunctionsToGlobalRoleInExternalSystem(RoleFunction addFunction, Role globalRole, ObjectMapper mapper, EPApp app, + EPApp portalAppInfo) throws Exception { + try { + logger.debug(EELFLoggerDelegate.debugLogger, "Entering into addRoleFunctionsToGlobalRoleInExternalSystem"); + ExternalAccessRolePerms extAddRolePerms = null; + ExternalAccessPerms extAddPerms = null; + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + String code = ""; + String type = ""; + String action = ""; + if (addFunction.getCode().contains(FUNCTION_PIPE)) { + code = EcompPortalUtils.getFunctionCode(addFunction.getCode()); + type = getFunctionType(addFunction.getCode()); + action = getFunctionAction(addFunction.getCode()); + } else { + code = addFunction.getCode(); + type = addFunction.getCode().contains("menu") ? "menu" : "url"; + action = "*"; + } + extAddPerms = new ExternalAccessPerms(app.getNameSpace() + "." + type, code, action); + extAddRolePerms = new ExternalAccessRolePerms(extAddPerms, + portalAppInfo.getNameSpace() + "." + globalRole.getName().replaceAll( + EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")); + String updateRolePerms = mapper.writeValueAsString(extAddRolePerms); + HttpEntity entity = new HttpEntity<>(updateRolePerms, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionsInExternalSystem: {} ", + CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); + ResponseEntity addResponse = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "role/perm", HttpMethod.POST, entity, String.class); + if (addResponse.getStatusCode().value() != 201) { + logger.debug(EELFLoggerDelegate.debugLogger, + "addRoleFunctionsInExternalSystem: While adding permission to the role in External Auth system something went wrong! due to {} and statuscode: {}", + addResponse.getStatusCode().getReasonPhrase(), addResponse.getStatusCode().value()); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, + "addRoleFunctionsInExternalSystem: Finished adding permissions to roles in External Auth system and status code: {} ", + addResponse.getStatusCode().value()); + } + logger.debug(EELFLoggerDelegate.debugLogger, "Finished addRoleFunctionsToGlobalRoleInExternalSystem"); + }catch(Exception e){ + logger.error(EELFLoggerDelegate.errorLogger, "addRoleFunctionsToGlobalRoleInExternalSystem: Failed",e); + throw e; + } + } + + /** + * + * It adds functions to the role in external auth system + * + * @param updateExtRole + * @param addPermsMapper + * @param app + * @return true if success else false + * @throws Exception + */ + private boolean addRoleFunctionsInExternalSystem(Role updateExtRole, ObjectMapper addPermsMapper, EPApp app) + throws Exception { + boolean response = false; + ExternalAccessRolePerms extAddRolePerms = null; + ExternalAccessPerms extAddPerms = null; + List roleFunctionListAdd = convertSetToListOfRoleFunctions(updateExtRole); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + for (RoleFunction roleFunc : roleFunctionListAdd) { + String code = ""; + String type= ""; + String action = ""; + if (roleFunc.getCode().contains(FUNCTION_PIPE)) { + code = EcompPortalUtils.getFunctionCode(roleFunc.getCode()); + type = getFunctionType(roleFunc.getCode()); + action = getFunctionAction(roleFunc.getCode()); + } else { + code = roleFunc.getCode(); + type = roleFunc.getCode().contains("menu") ? "menu" : "url"; + action = "*"; + } + extAddPerms = new ExternalAccessPerms(app.getNameSpace() + "." + type, code, action); + extAddRolePerms = new ExternalAccessRolePerms(extAddPerms, + app.getNameSpace() + "." + updateExtRole.getName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")); + String updateRolePerms = addPermsMapper.writeValueAsString(extAddRolePerms); + HttpEntity entity = new HttpEntity<>(updateRolePerms, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionsInExternalSystem: {} for POST: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE, updateRolePerms); + ResponseEntity addResponse = template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role/perm", + HttpMethod.POST, entity, String.class); + if (addResponse.getStatusCode().value() != 201) { + response = false; + logger.debug(EELFLoggerDelegate.debugLogger, + "addRoleFunctionsInExternalSystem: While adding permission to the role in External Auth system something went wrong! due to {} and statuscode: {}", + addResponse.getStatusCode().getReasonPhrase(), addResponse.getStatusCode().value()); + } else { + response = true; + logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionsInExternalSystem: Finished adding permissions to roles in External Auth system {} and status code: {} ", updateRolePerms, addResponse.getStatusCode().value()); + } + } + return response; + } + + /** + * + * It converts list of functions in updateExtRole parameter to the RoleFunction object + * + * @param updateExtRole + * @return list of functions + */ + @SuppressWarnings("unchecked") + private List convertSetToListOfRoleFunctions(Role updateExtRole) { + Set roleFunctionSetList = updateExtRole.getRoleFunctions(); + List roleFunctionList = new ArrayList<>(); + ObjectMapper roleFuncMapper = new ObjectMapper(); + Iterator itetaror = roleFunctionSetList.iterator(); + while (itetaror.hasNext()) { + Object nextValue = itetaror.next(); + RoleFunction roleFunction = roleFuncMapper.convertValue(nextValue, RoleFunction.class); + roleFunctionList.add(roleFunction); + } + return roleFunctionList.stream().distinct().collect(Collectors.toList()); + } + + /** + * It delete permissions/functions in the external auth system + * + * @param perm + * @param permMapper + * @param name + * @param headers + * @throws JsonProcessingException + * @throws Exception + */ + private void removePermForRole(ExternalAccessPerms perm, ObjectMapper permMapper, String name, HttpHeaders headers) + throws ExternalAuthSystemException, JsonProcessingException { + ExternalAccessRolePerms extAccessRolePerms = new ExternalAccessRolePerms(perm, name); + String permDetails = permMapper.writeValueAsString(extAccessRolePerms); + try{ + HttpEntity deleteEntity = new HttpEntity<>(permDetails, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "removePermForRole: {} for DELETE: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE, permDetails); + ResponseEntity deletePermResponse = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role/" + + name + "/perm", HttpMethod.DELETE, deleteEntity, String.class); + if (deletePermResponse.getStatusCode().value() != 200) { + throw new ExternalAuthSystemException(deletePermResponse.getBody()); + } + logger.debug(EELFLoggerDelegate.debugLogger, "removePermForRole: Finished deleting permission to role in External Auth system: {} and status code: {}", + permDetails, deletePermResponse.getStatusCode().value()); + } catch(Exception e){ + if(e.getMessage().contains("404")){ + logger.error(EELFLoggerDelegate.errorLogger, "Failed to add role for DELETE request: {} due to {}", permDetails, e.getMessage()); + } else{ + throw e; + } + } + } + + /** + * It will create new role in the External Auth System + * + * @param newRole + * @param app + * @return true if successfully added in the system else false + * @throws Exception + * If fails to add role in the system + */ + private void addNewRoleInExternalSystem(List newRole, EPApp app) throws Exception, HttpClientErrorException { + try{ + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + ObjectMapper mapper = new ObjectMapper(); + String addNewRole = ""; + ExternalAccessRole extRole = new ExternalAccessRole(); + String addDesc = null; + Map extSystemJsonMapper = new LinkedHashMap<>(); + extSystemJsonMapper.put(ID, String.valueOf(newRole.get(0).getId())); + extSystemJsonMapper.put(ROLE_NAME, String.valueOf(newRole.get(0).getName())); + extSystemJsonMapper.put(ACTIVE, String.valueOf(newRole.get(0).getActive())); + extSystemJsonMapper.put(PRIORITY, String.valueOf(newRole.get(0).getPriority())); + extSystemJsonMapper.put(APP_ID, String.valueOf(newRole.get(0).getAppId())); + extSystemJsonMapper.put(APP_ROLE_ID, String.valueOf(newRole.get(0).getAppRoleId())); + addDesc = mapper.writeValueAsString(extSystemJsonMapper); + extRole.setName(app.getNameSpace() + "." + newRole.get(0).getName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")); + extRole.setDescription(addDesc); + addNewRole = mapper.writeValueAsString(extRole); + HttpEntity postEntity = new HttpEntity<>(addNewRole, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "addNewRoleInExternalSystem: {} for POST: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE, addNewRole); + ResponseEntity addNewRoleInExternalSystem = template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role", + HttpMethod.POST, postEntity, String.class); + if (addNewRoleInExternalSystem.getStatusCode().value() == 201) { + logger.debug(EELFLoggerDelegate.debugLogger, + "addNewRoleInExternalSystem: Finished adding into External Auth system for POST: {} and status code: {}", + addNewRole, addNewRoleInExternalSystem.getStatusCode().value()); + } + }catch(HttpClientErrorException ht){ + dataAccessService.deleteDomainObjects(EPRole.class, " role_id = "+ newRole.get(0).getId(), null); + logger.error(EELFLoggerDelegate.debugLogger, "addNewRoleInExternalSystem: Failed to add in External Auth system and status code: {}", + ht); + throw new HttpClientErrorException(ht.getStatusCode()); + } + } + + /** + * + * It updates existing role in the External Auth System + * + * @param addRole + * It Contains role information + * @param app + * @return string which is formatted to match with the external auth system + * @throws JsonProcessingException + */ + private String updateExistingRoleInExternalSystem(Role addRole, EPApp app) throws JsonProcessingException { + ObjectMapper mapper = new ObjectMapper(); + String addNewRole = ""; + ExternalAccessRole extRole = new ExternalAccessRole(); + List role = null; + String addDesc = null; + Map extSystemUpdateRole = new LinkedHashMap<>(); + if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + role = getPortalAppRoleInfo(addRole.getId()); + } else { + role = getPartnerAppRoleInfo(addRole.getId(), app); + } + extSystemUpdateRole.put(ID, String.valueOf(role.get(0).getId())); + extSystemUpdateRole.put(ROLE_NAME, String.valueOf(addRole.getName())); + extSystemUpdateRole.put(ACTIVE, String.valueOf(role.get(0).getActive())); + extSystemUpdateRole.put(PRIORITY, String.valueOf(role.get(0).getPriority())); + extSystemUpdateRole.put(APP_ID, String.valueOf(role.get(0).getAppId())); + extSystemUpdateRole.put(APP_ROLE_ID, String.valueOf(role.get(0).getAppRoleId())); + addDesc = mapper.writeValueAsString(extSystemUpdateRole); + extRole.setName(app.getNameSpace() + "." + addRole.getName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")); + extRole.setDescription(addDesc); + addNewRole = mapper.writeValueAsString(extRole); + return addNewRole; + } + + /** + * It create a role in the external auth system and then in our local + * + * @param addRoleInDB + * @param app + * @return true else false + * @throws Exception + */ + @SuppressWarnings("unchecked") + @Transactional(rollbackFor = Exception.class) + private boolean addRoleInEcompDB(Role addRoleInDB, EPApp app) throws Exception { + boolean result = false; + EPRole epRole = null; + Set roleFunctionList = addRoleInDB.getRoleFunctions(); + List roleFunctionListNew = new ArrayList<>(); + ObjectMapper mapper = new ObjectMapper(); + Iterator itetaror = roleFunctionList.iterator(); + while (itetaror.hasNext()) { + Object nextValue = itetaror.next(); + RoleFunction roleFunction = mapper.convertValue(nextValue, RoleFunction.class); + roleFunctionListNew.add(roleFunction); + } + List listWithoutDuplicates = roleFunctionListNew.stream().distinct().collect(Collectors.toList()); + try { + if (addRoleInDB.getId() == null) { // check if it is new role + if (EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + checkIfRoleExitsInExternalSystem(addRoleInDB, app); + } + EPRole epRoleNew = new EPRole(); + epRoleNew.setActive(addRoleInDB.getActive()); + epRoleNew.setName(addRoleInDB.getName()); + epRoleNew.setPriority(addRoleInDB.getPriority()); + if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + epRoleNew.setAppId(null); + } else { + epRoleNew.setAppId(app.getId()); + } + dataAccessService.saveDomainObject(epRoleNew, null); + List getRoleCreated = null; + final Map epAppRoleParams = new HashMap<>(); + final Map epAppPortalRoleParams = new HashMap<>(); + if (!app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + epAppRoleParams.put("appId", String.valueOf(app.getId())); + epAppRoleParams.put(APP_ROLE_NAME_PARAM, addRoleInDB.getName()); + List roleCreated = dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, epAppRoleParams, null); + EPRole epUpdateRole = roleCreated.get(0); + epUpdateRole.setAppRoleId(epUpdateRole.getId()); + dataAccessService.saveDomainObject(epUpdateRole, null); + getRoleCreated = dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, epAppRoleParams, null); + } else { + epAppPortalRoleParams.put(APP_ROLE_NAME_PARAM, addRoleInDB.getName()); + getRoleCreated = dataAccessService.executeNamedQuery(GET_PORTAL_APP_ROLES_QUERY, epAppPortalRoleParams, null); + } + // Add role in External Auth system + if (EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + addNewRoleInExternalSystem(getRoleCreated, app); + } + } else { // if role already exists then update it + EPRole globalRole = null; + List applicationRoles; + List globalRoleList = getGlobalRolesOfPortal(); + boolean isGlobalRole = false; + if (!globalRoleList.isEmpty()) { + EPRole role = globalRoleList.stream().filter(x -> addRoleInDB.getId().equals(x.getId())).findAny() + .orElse(null); + if (role != null) { + globalRole = role; + isGlobalRole = true; + } + } + if (app.getId().equals(PortalConstants.PORTAL_APP_ID) + || (globalRole != null && app.getId() != globalRole.getAppId())) { + applicationRoles = getPortalAppRoleInfo(addRoleInDB.getId()); + } else { + applicationRoles = getPartnerAppRoleInfo(addRoleInDB.getId(), app); + } + if (EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + updateRoleInExternalSystem(addRoleInDB, app, isGlobalRole); + // Add all user to the re-named role in external auth system + if (!applicationRoles.isEmpty() + && !addRoleInDB.getName().equals(applicationRoles.get(0).getName())) { + bulkUploadUsersSingleRole(app.getUebKey(), applicationRoles.get(0).getId(), + addRoleInDB.getName()); + } + } + deleteRoleFunction(app, applicationRoles); + if (!applicationRoles.isEmpty()) { + epRole = applicationRoles.get(0); + epRole.setName(addRoleInDB.getName()); + epRole.setPriority(addRoleInDB.getPriority()); + epRole.setActive(addRoleInDB.getActive()); + if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + epRole.setAppId(null); + epRole.setAppRoleId(null); + } else if (!app.getId().equals(PortalConstants.PORTAL_APP_ID) + && applicationRoles.get(0).getAppRoleId() == null) { + epRole.setAppRoleId(epRole.getId()); + } + dataAccessService.saveDomainObject(epRole, null); + } + Long roleAppId = null; + if (globalRole != null && !app.getId().equals(globalRole.getAppId())) + roleAppId = PortalConstants.PORTAL_APP_ID; + saveRoleFunction(listWithoutDuplicates, app, applicationRoles, roleAppId); + result = true; + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "addRoleInEcompDB is failed", e); + throw e; + } + return result; + } + + /** + * + * It validates whether role exists in external auth system + * + * @param checkRole + * @param app + * @throws Exception + * If role exits + */ + private void checkIfRoleExitsInExternalSystem(Role checkRole, EPApp app) throws Exception { + getNameSpaceIfExists(app); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + String roleName = app.getNameSpace() + "." + checkRole.getName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_"); + HttpEntity checkRoleEntity = new HttpEntity<>(headers); + logger.debug(EELFLoggerDelegate.debugLogger, "checkIfRoleExitsInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); + ResponseEntity checkRoleInExternalSystem = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "roles/" + + roleName, HttpMethod.GET, checkRoleEntity, String.class); + if (!checkRoleInExternalSystem.getBody().equals(IS_EMPTY_JSON_STRING)) { + logger.debug("checkIfRoleExitsInExternalSystem: Role already exists in external system {} and status code: {} ", checkRoleInExternalSystem.getBody(), checkRoleInExternalSystem.getStatusCode().value()); + throw new ExternalAuthSystemException(" Role already exists in external system"); + } + } + + /** + * It saves list of functions to the role in portal + * + * @param roleFunctionListNew + * @param app + * @param applicationRoles + * @throws Exception + */ + @SuppressWarnings("unchecked") + private void saveRoleFunction(List roleFunctionListNew, EPApp app, List applicationRoles ,Long roleAppId) + throws Exception { + final Map getAppFunctionParams = new HashMap<>(); + + for (RoleFunction roleFunc : roleFunctionListNew) { + String code = EcompPortalUtils.getFunctionCode(roleFunc.getCode()); + EPAppRoleFunction appRoleFunc = new EPAppRoleFunction(); + appRoleFunc.setAppId(app.getId()); + appRoleFunc.setRoleId(applicationRoles.get(0).getId()); + appRoleFunc.setRoleAppId(String.valueOf(roleAppId)); + getAppFunctionParams.put("appId", String.valueOf(app.getId())); + getAppFunctionParams.put(FUNCTION_CODE_PARAMS, roleFunc.getCode()); + // query to check if function code has pipes + List roleFunction = dataAccessService.executeNamedQuery(GET_ROLE_FUNCTION_QUERY, getAppFunctionParams, null); + if(roleFunction.isEmpty()){ + getAppFunctionParams.put(FUNCTION_CODE_PARAMS, code); + roleFunction = dataAccessService.executeNamedQuery(GET_ROLE_FUNCTION_QUERY, getAppFunctionParams, null); + } + if(roleFunction.size() > 1){ + CentralV2RoleFunction getExactFunctionCode = appFunctionListFilter(code, roleFunction); + appRoleFunc.setCode(getExactFunctionCode.getCode()); + } else{ + appRoleFunc.setCode(roleFunction.get(0).getCode()); + } + + dataAccessService.saveDomainObject(appRoleFunc, null); + } + } + + /** + * + * It filters the app functions which starts with similar name in the result set + * + * @param roleFunc + * @param roleFunction + * @return CentralRoleFunction + */ + private CentralV2RoleFunction appFunctionListFilter(String roleFuncCode, List roleFunction) { + final Map appFunctionsFilter = new HashMap<>(); + final Map appFunctionsFilterPipes = new HashMap<>(); + CentralV2RoleFunction getExactFunctionCode = null; + for(CentralV2RoleFunction cenRoleFunction : roleFunction){ + appFunctionsFilter.put(cenRoleFunction.getCode(), cenRoleFunction); + appFunctionsFilterPipes.put(EcompPortalUtils.getFunctionCode(cenRoleFunction.getCode()), cenRoleFunction); + } + getExactFunctionCode = appFunctionsFilter.get(roleFuncCode); + if(getExactFunctionCode == null){ + getExactFunctionCode = appFunctionsFilterPipes.get(roleFuncCode); + } + return getExactFunctionCode; + } + + /** + * It deletes all EPAppRoleFunction records in the portal + * + * @param app + * @param role + */ + @SuppressWarnings("unchecked") + private void deleteRoleFunction(EPApp app, List role) { + final Map appRoleFuncsParams = new HashMap<>(); + appRoleFuncsParams.put("appId", app.getId()); + appRoleFuncsParams.put("roleId", role.get(0).getId()); + List appRoleFunctionList = dataAccessService.executeNamedQuery("getAppRoleFunctionOnRoleIdandAppId", appRoleFuncsParams, null); + if (!appRoleFunctionList.isEmpty()) { + for (EPAppRoleFunction approleFunction : appRoleFunctionList) { + dataAccessService.deleteDomainObject(approleFunction, null); + } + } + } + + @Override + @SuppressWarnings("unchecked") + public List getUser(String loginId){ + final Map userParams = new HashMap<>(); + userParams.put("org_user_id", loginId); + return (List) dataAccessService.executeNamedQuery("getEPUserByOrgUserId", userParams, null); + } + + @Override + public String getV2UserWithRoles(String loginId, String uebkey) throws Exception { + final Map params = new HashMap<>(); + List userList = null; + CentralV2User cenV2User = null; + String result = null; + try { + params.put("orgUserIdValue", loginId); + List appList = getApp(uebkey); + if (!appList.isEmpty()) { + userList = getUser(loginId); + if (!userList.isEmpty()) { + ObjectMapper mapper = new ObjectMapper(); + cenV2User = getV2UserAppRoles(loginId, uebkey); + result = mapper.writeValueAsString(cenV2User); + } else if (userList.isEmpty()) { + throw new InvalidUserException("User not found"); + } + } else { + throw new InactiveApplicationException("Application not found"); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUser: failed", e); + throw e; + } + return result; + } + + @Override + public List getRolesForApp(String uebkey) throws Exception { + logger.debug(EELFLoggerDelegate.debugLogger, "getRolesForApp: Entering into getRolesForApp"); + List roleList = new ArrayList<>(); + final Map params = new HashMap<>(); + try { + List app = getApp(uebkey); + List appRolesList = getAppRoles(app.get(0).getId()); + roleList = createCentralRoleObject(app, appRolesList, roleList, params); + if(app.get(0).getId() != PortalConstants.PORTAL_APP_ID){ + List globalRoleList = getGlobalRolesOfApplication(app.get(0).getId()); + List globalRolesList = getGlobalRolesOfPortal(); + List portalsGlobalRolesFinlaList = new ArrayList<>(); + if (!globalRolesList.isEmpty()) { + for (EPRole eprole : globalRolesList) { + CentralV2Role cenRole = convertRoleToCentralV2Role(eprole); + portalsGlobalRolesFinlaList.add(cenRole); + } + roleList.addAll(globalRoleList); + for (CentralV2Role role : portalsGlobalRolesFinlaList) { + CentralV2Role result = roleList.stream() + .filter(x -> role.getId().equals(x.getId())).findAny().orElse(null); + if (result == null) + roleList.add(role); + } + } else { + for (EPRole role : globalRolesList) { + CentralV2Role cenRole = convertRoleToCentralV2Role(role); + roleList.add(cenRole); + } + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getRolesForApp: Failed!", e); + throw e; + } + logger.debug(EELFLoggerDelegate.debugLogger, "getRolesForApp: Finished!"); + return roleList.stream().distinct().collect(Collectors.toList()); + } + + @SuppressWarnings("unchecked") + @Override + public List getRoleFuncList(String uebkey) throws Exception { + EPApp app = getApp(uebkey).get(0); + List finalRoleList = new ArrayList<>(); + final Map params = new HashMap<>(); + params.put(APP_ID, app.getId()); + List getRoleFuncList = dataAccessService.executeNamedQuery("getAllRoleFunctions", params, null); + for (CentralV2RoleFunction roleFuncItem : getRoleFuncList) { + String code = EcompPortalUtils.getFunctionCode(roleFuncItem.getCode()); + String type = getFunctionType(roleFuncItem.getCode()); + String action = getFunctionAction(roleFuncItem.getCode()); + roleFuncItem.setCode(EPUserUtils.decodeFunctionCode(code)); + roleFuncItem.setType(type); + roleFuncItem.setAction(action); + finalRoleList.add(roleFuncItem); + } + return finalRoleList; + } + + + /** + * It return function action + * + * @param roleFuncItem + * @return String action + */ + private String getFunctionAction(String roleFuncItem) { + return (!roleFuncItem.contains(FUNCTION_PIPE)) ? "*" + : EcompPortalUtils.getFunctionAction(roleFuncItem); + } + + /** + * + * It check function code has any pipes, if found return function type + * + * @param roleFuncItem + * @param type + * @return function type + */ + private String getFunctionType(String roleFuncItem) { + String type = null; + if ((roleFuncItem.contains(FUNCTION_PIPE) && roleFuncItem.contains("menu")) + || (!roleFuncItem.contains(FUNCTION_PIPE) && roleFuncItem.contains("menu"))) { + type = "menu"; + } else if (checkIfCodeHasNoPipesAndHasTypeUrl(roleFuncItem) + ||checkIfCodeHasPipesAndHasTypeUrl(roleFuncItem) + ||checkIfCodeHasNoPipesAndHasNoTypeUrl(roleFuncItem)) { + type = "url"; + } else if (roleFuncItem.contains(FUNCTION_PIPE) + && (!roleFuncItem.contains("menu") || roleFuncItem.contains("url"))) { + type = EcompPortalUtils.getFunctionType(roleFuncItem); + } + return type; + } + + /** + * + * It check whether function code has no pipes and no url string in it + * + * @param roleFuncItem + * @return true or false + */ + private boolean checkIfCodeHasNoPipesAndHasNoTypeUrl(String roleFuncItem) { + return !roleFuncItem.contains(FUNCTION_PIPE) && !roleFuncItem.contains("url"); + } + + /** + * + * It check whether function code has pipes and url string in it + * + * @param roleFuncItem + * @return true or false + */ + private boolean checkIfCodeHasPipesAndHasTypeUrl(String roleFuncItem) { + return roleFuncItem.contains(FUNCTION_PIPE) && roleFuncItem.contains("url"); + } + + /** + * + * It check whether function code has no pipes and has url string in it + * + * @param roleFuncItem + * @return true or false + */ + private boolean checkIfCodeHasNoPipesAndHasTypeUrl(String roleFuncItem) { + return !roleFuncItem.contains(FUNCTION_PIPE) && roleFuncItem.contains("url"); + } + + /** + * It returns user detail information which is deep copy of EPUser.class object + * + * @param userInfo + * @param userAppSet + * @param app + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + private CentralV2User createEPUser(EPUser userInfo, Set userAppSet, EPApp app) throws Exception { + + final Map params = new HashMap<>(); + CentralV2User userAppList = new CentralV2User(); + CentralV2User user1 = null; + try { + userAppList.setUserApps(new TreeSet()); + for (EPUserApp userApp : userAppSet) { + if (userApp.getRole().getActive()) { + EPApp epApp = userApp.getApp(); + String globalRole = userApp.getRole().getName().toLowerCase(); + if (((epApp.getId().equals(app.getId())) + && (!userApp.getRole().getId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID))) + || ((epApp.getId().equals(PortalConstants.PORTAL_APP_ID)) + && (globalRole.toLowerCase().startsWith("global_")))) { + CentralV2UserApp cua = new CentralV2UserApp(); + cua.setUserId(null); + CentralApp cenApp = new CentralApp(1L, epApp.getCreated(), epApp.getModified(), + epApp.getCreatedId(), epApp.getModifiedId(), epApp.getRowNum(), epApp.getName(), + epApp.getImageUrl(), epApp.getDescription(), epApp.getNotes(), epApp.getUrl(), + epApp.getAlternateUrl(), epApp.getAppRestEndpoint(), epApp.getMlAppName(), + epApp.getMlAppAdminId(), String.valueOf(epApp.getMotsId()), epApp.getAppPassword(), + String.valueOf(epApp.getOpen()), String.valueOf(epApp.getEnabled()), + epApp.getThumbnail(), epApp.getUsername(), epApp.getUebKey(), epApp.getUebSecret(), + epApp.getUebTopicName()); + cua.setApp(cenApp); + params.put("roleId", userApp.getRole().getId()); + params.put(APP_ID, userApp.getApp().getId()); + CentralV2Role centralRole; + List globalRoleList; + globalRoleList = getGlobalRolesOfPortal(); + EPRole result = globalRoleList.stream().filter(x -> userApp.getRole().getId().equals(x.getId())) + .findAny().orElse(null); + if (result != null && userApp.getApp().getId() != app.getId()) { + userApp.getRole().setId(result.getId()); + centralRole = getGlobalRoleForRequestedApp(app.getId(), userApp.getRole().getId()); + cua.setRole(centralRole); + } else { + List appRoleFunctionList = dataAccessService + .executeNamedQuery("getAppRoleFunctionList", params, null); + SortedSet roleFunctionSet = new TreeSet<>(); + for (CentralV2RoleFunction roleFunc : appRoleFunctionList) { + String functionCode = EcompPortalUtils.getFunctionCode(roleFunc.getCode()); + CentralV2RoleFunction cenRoleFunc = new CentralV2RoleFunction(roleFunc.getId(), + functionCode, roleFunc.getName(), null, null); + roleFunctionSet.add(cenRoleFunc); + } + Long userRoleId = null; + if (globalRole.toLowerCase().startsWith("global_") + && epApp.getId().equals(PortalConstants.PORTAL_APP_ID)) { + userRoleId = userApp.getRole().getId(); + } else { + userRoleId = userApp.getRole().getAppRoleId(); + } + CentralV2Role cenRole = new CentralV2Role(userRoleId, userApp.getRole().getCreated(), + userApp.getRole().getModified(), userApp.getRole().getCreatedId(), + userApp.getRole().getModifiedId(), userApp.getRole().getRowNum(), + userApp.getRole().getName(), userApp.getRole().getActive(), + userApp.getRole().getPriority(), roleFunctionSet, null, null); + cua.setRole(cenRole); + } + userAppList.getUserApps().add(cua); + } + } + } + + user1 = new CentralV2User(null, userInfo.getCreated(), userInfo.getModified(), userInfo.getCreatedId(), + userInfo.getModifiedId(), userInfo.getRowNum(), userInfo.getOrgId(), userInfo.getManagerId(), + userInfo.getFirstName(), userInfo.getMiddleInitial(), userInfo.getLastName(), userInfo.getPhone(), + userInfo.getFax(), userInfo.getCellular(), userInfo.getEmail(), userInfo.getAddressId(), + userInfo.getAlertMethodCd(), userInfo.getHrid(), userInfo.getOrgUserId(), userInfo.getOrgCode(), + userInfo.getAddress1(), userInfo.getAddress2(), userInfo.getCity(), userInfo.getState(), + userInfo.getZipCode(), userInfo.getCountry(), userInfo.getOrgManagerUserId(), + userInfo.getLocationClli(), userInfo.getBusinessCountryCode(), userInfo.getBusinessCountryName(), + userInfo.getBusinessUnit(), userInfo.getBusinessUnitName(), userInfo.getDepartment(), + userInfo.getDepartmentName(), userInfo.getCompanyCode(), userInfo.getCompany(), + userInfo.getZipCodeSuffix(), userInfo.getJobTitle(), userInfo.getCommandChain(), + userInfo.getSiloStatus(), userInfo.getCostCenter(), userInfo.getFinancialLocCode(), + userInfo.getLoginId(), userInfo.getLoginPwd(), userInfo.getLastLoginDate(), userInfo.getActive(), + userInfo.getInternal(), userInfo.getSelectedProfileId(), userInfo.getTimeZoneId(), + userInfo.isOnline(), userInfo.getChatId(), userAppList.getUserApps(), null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "createEPUser: createEPUser failed", e); + throw e; + } + return user1; + } + + @Override + public CentralV2Role getRoleInfo(Long roleId, String uebkey) throws Exception { + final Map params = new HashMap<>(); + List roleList = new ArrayList<>(); + CentralV2Role cenRole = new CentralV2Role(); + List roleInfo = null; + List app = null; + try { + app = getApp(uebkey); + if (app.isEmpty()) { + throw new InactiveApplicationException("Application not found"); + } + if (app.get(0).getId() != PortalConstants.PORTAL_APP_ID) { + List globalRoleList = new ArrayList<>(); + globalRoleList = getGlobalRolesOfPortal(); + if (globalRoleList.size() > 0) { + EPRole result = globalRoleList.stream().filter(x -> roleId.equals(x.getId())).findAny() + .orElse(null); + if (result != null) + return getGlobalRoleForRequestedApp(app.get(0).getId(), roleId); + } + } + if (app.get(0).getId().equals(PortalConstants.PORTAL_APP_ID)) { + roleInfo = getPortalAppRoleInfo(roleId); + } else { + roleInfo = getPartnerAppRoleInfo(roleId, app.get(0)); + } + roleList = createCentralRoleObject(app, roleInfo, roleList, params); + if (roleList.isEmpty()) { + return cenRole; + } + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getRoleInfo: failed", e); + throw e; + + } + return roleList.get(0); + } + + @SuppressWarnings("unchecked") + private List getPartnerAppRoleInfo(Long roleId, EPApp app) { + List roleInfo; + final Map getPartnerAppRoleParams = new HashMap<>(); + getPartnerAppRoleParams.put("appRoleId", roleId); + getPartnerAppRoleParams.put("appId", app.getId()); + roleInfo = dataAccessService.executeNamedQuery("getPartnerAppRoleByRoleId", getPartnerAppRoleParams, null); + if(roleInfo.isEmpty()) { + getPartnerAppRoleParams.put("appRoleId", roleId); + roleInfo = dataAccessService.executeNamedQuery("getPartnerAppRoleById", getPartnerAppRoleParams, null); + } + return roleInfo; + } + + @SuppressWarnings("unchecked") + private List getPortalAppRoleInfo(Long roleId) { + List roleInfo; + final Map getPortalAppRoleParams = new HashMap<>(); + getPortalAppRoleParams.put("roleId", roleId); + roleInfo = dataAccessService.executeNamedQuery("getPortalAppRoleByRoleId", getPortalAppRoleParams, null); + return roleInfo; + } + + /** + * + * It returns list of app roles along with role functions and which went through deep copy + * + * @param app + * @param roleInfo + * @param roleList + * @param params + * @return + * @throws DecoderException + */ + @SuppressWarnings("unchecked") + private List createCentralRoleObject(List app, List roleInfo, + List roleList, Map params) throws RoleFunctionException { + for (EPRole role : roleInfo) { + params.put("roleId", role.getId()); + params.put(APP_ID, app.get(0).getId()); + List cenRoleFuncList = dataAccessService.executeNamedQuery("getAppRoleFunctionList", + params, null); + SortedSet roleFunctionSet = new TreeSet<>(); + for (CentralV2RoleFunction roleFunc : cenRoleFuncList) { + String functionCode = EcompPortalUtils.getFunctionCode(roleFunc.getCode()); + functionCode = EPUserUtils.decodeFunctionCode(functionCode); + String type = getFunctionType(roleFunc.getCode()); + String action = getFunctionAction(roleFunc.getCode()); + CentralV2RoleFunction cenRoleFunc = new CentralV2RoleFunction(role.getId(), functionCode, + roleFunc.getName(), null, type, action, null); + roleFunctionSet.add(cenRoleFunc); + } + SortedSet childRoles = new TreeSet<>(); + SortedSet parentRoles = new TreeSet<>(); + CentralV2Role cenRole = null; + if (role.getAppRoleId() == null) { + cenRole = new CentralV2Role(role.getId(), role.getCreated(), role.getModified(), role.getCreatedId(), + role.getModifiedId(), role.getRowNum(), role.getName(), role.getActive(), role.getPriority(), + roleFunctionSet, childRoles, parentRoles); + } else { + cenRole = new CentralV2Role(role.getAppRoleId(), role.getCreated(), role.getModified(), + role.getCreatedId(), role.getModifiedId(), role.getRowNum(), role.getName(), role.getActive(), + role.getPriority(), roleFunctionSet, childRoles, parentRoles); + } + roleList.add(cenRole); + } + return roleList; + } + + @SuppressWarnings("unchecked") + @Override + public CentralV2RoleFunction getRoleFunction(String functionCode, String uebkey) throws Exception { + if (functionCode.contains("|")) + functionCode = EcompPortalUtils.getFunctionCode(functionCode); + functionCode = encodeFunctionCode(functionCode); + CentralV2RoleFunction roleFunc = null; + EPApp app = getApp(uebkey).get(0); + List getRoleFuncList = null; + final Map params = new HashMap<>(); + try { + params.put(FUNCTION_CODE_PARAMS, functionCode); + params.put(APP_ID, String.valueOf(app.getId())); + getRoleFuncList = dataAccessService.executeNamedQuery(GET_ROLE_FUNCTION_QUERY, params, null); + if (getRoleFuncList.isEmpty()) { + return roleFunc; + } else { + if (getRoleFuncList.size() > 1) { + CentralV2RoleFunction cenV2RoleFunction = appFunctionListFilter(functionCode, getRoleFuncList); + if(cenV2RoleFunction == null) + return roleFunc; + roleFunc = checkIfPipesExitsInFunctionCode(cenV2RoleFunction); + } else { + roleFunc = checkIfPipesExitsInFunctionCode(getRoleFuncList.get(0)); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getRoleFunction: failed", e); + throw e; + } + return roleFunc; + } + + private CentralV2RoleFunction checkIfPipesExitsInFunctionCode(CentralV2RoleFunction getRoleFuncList) { + CentralV2RoleFunction roleFunc; + String functionCodeFormat = getRoleFuncList.getCode(); + if (functionCodeFormat.contains(FUNCTION_PIPE)) { + String newfunctionCodeFormat = EcompPortalUtils.getFunctionCode(functionCodeFormat); + String newfunctionTypeFormat = EcompPortalUtils.getFunctionType(functionCodeFormat); + String newfunctionActionFormat = EcompPortalUtils.getFunctionAction(functionCodeFormat); + roleFunc = new CentralV2RoleFunction(getRoleFuncList.getId(), newfunctionCodeFormat, + getRoleFuncList.getName(), getRoleFuncList.getAppId(), newfunctionTypeFormat, newfunctionActionFormat, + getRoleFuncList.getEditUrl()); + } else { + roleFunc = new CentralV2RoleFunction(getRoleFuncList.getId(), functionCodeFormat, + getRoleFuncList.getName(), getRoleFuncList.getAppId(), + getRoleFuncList.getEditUrl()); + } + return roleFunc; + } + + @SuppressWarnings("unchecked") + @Override + public boolean saveCentralRoleFunction(CentralV2RoleFunction domainCentralRoleFunction, EPApp app) throws Exception { + boolean saveOrUpdateFunction = false; + try { + domainCentralRoleFunction.setCode(encodeFunctionCode(domainCentralRoleFunction.getCode())); + final Map functionParams = new HashMap<>(); + functionParams.put("appId", String.valueOf(app.getId())); + List appRoleFuncWithPipe = new ArrayList<>(); + // If request coming from portal application we use type, instance/code and action to fetch record + if(domainCentralRoleFunction.getType()!=null && domainCentralRoleFunction.getAction()!=null){ + functionParams.put(FUNCTION_CODE_PARAMS, domainCentralRoleFunction.getType()+FUNCTION_PIPE + +domainCentralRoleFunction.getCode()+FUNCTION_PIPE+domainCentralRoleFunction.getAction()); + appRoleFuncWithPipe = dataAccessService.executeNamedQuery(GET_ROLE_FUNCTION_QUERY, functionParams, null); + if(appRoleFuncWithPipe.isEmpty()){ + functionParams.put(FUNCTION_CODE_PARAMS, domainCentralRoleFunction.getCode()); + appRoleFuncWithPipe = dataAccessService.executeNamedQuery(GET_ROLE_FUNCTION_QUERY, functionParams, null); + } + } + // If request coming from SDK applications we use just function code to fetch record + else{ + functionParams.put(FUNCTION_CODE_PARAMS, domainCentralRoleFunction.getCode()); + } + CentralV2RoleFunction appFunctionCode = null; + if(!appRoleFuncWithPipe.isEmpty()){ + // Make sure we extract correct record if similar records are found as query uses like condition + appFunctionCode = appFunctionListFilter(domainCentralRoleFunction.getCode(), appRoleFuncWithPipe); + if(appFunctionCode == null){ + appFunctionCode = domainCentralRoleFunction; + } + } else{ + appFunctionCode = domainCentralRoleFunction; + } + appFunctionCode.setName(domainCentralRoleFunction.getName()); + if(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + addRoleFunctionInExternalSystem(appFunctionCode, app); + } + if(domainCentralRoleFunction.getType() != null && domainCentralRoleFunction.getAction() != null){ + appFunctionCode.setCode(domainCentralRoleFunction.getType()+ + FUNCTION_PIPE+domainCentralRoleFunction.getCode()+FUNCTION_PIPE+domainCentralRoleFunction.getAction()); + } + appFunctionCode.setAppId(app.getId()); + dataAccessService.saveDomainObject(appFunctionCode, null); + saveOrUpdateFunction = true; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveCentralRoleFunction: failed", e); + throw e; + } + return saveOrUpdateFunction; + } + + /** + * It creates application permission in external auth system + * + * @param domainCentralRoleFunction + * @param app + * @throws Exception + */ + private void addRoleFunctionInExternalSystem(CentralV2RoleFunction domainCentralRoleFunction, EPApp app) + throws Exception { + ObjectMapper mapper = new ObjectMapper(); + ExternalAccessPerms extPerms = new ExternalAccessPerms(); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + String type = ""; + String instance = ""; + String action = ""; + if((domainCentralRoleFunction.getType()!=null && domainCentralRoleFunction.getAction()!=null) || domainCentralRoleFunction.getCode().contains(FUNCTION_PIPE)){ + type = domainCentralRoleFunction.getCode().contains(FUNCTION_PIPE) ? EcompPortalUtils.getFunctionType(domainCentralRoleFunction.getCode()) : domainCentralRoleFunction.getType(); + instance = domainCentralRoleFunction.getCode().contains(FUNCTION_PIPE) ? EcompPortalUtils.getFunctionCode(domainCentralRoleFunction.getCode()) : domainCentralRoleFunction.getCode(); + action = domainCentralRoleFunction.getCode().contains(FUNCTION_PIPE) ? EcompPortalUtils.getFunctionAction(domainCentralRoleFunction.getCode()) : domainCentralRoleFunction.getAction(); + } else{ + type = domainCentralRoleFunction.getCode().contains("menu") ? "menu" : "url"; + instance = domainCentralRoleFunction.getCode(); + action = "*"; + } + // get Permissions from External Auth System + JSONArray extPermsList = getExtAuthPermissions(app); + List permsDetailList = getExtAuthPerrmissonList(app, extPermsList); + String requestedPerm = type+FUNCTION_PIPE+instance+FUNCTION_PIPE+action; + boolean checkIfFunctionsExits = permsDetailList.stream().anyMatch(permsDetail -> permsDetail.getInstance().equals(requestedPerm)); + if (!checkIfFunctionsExits) { + try { + extPerms.setAction(action); + extPerms.setInstance(instance); + extPerms.setType(app.getNameSpace() + "." + type); + extPerms.setDescription(domainCentralRoleFunction.getName()); + String addFunction = mapper.writeValueAsString(extPerms); + HttpEntity entity = new HttpEntity<>(addFunction, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionInExternalSystem: {} for POST: {}" , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE, addFunction); + ResponseEntity addPermResponse= template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "perm", + HttpMethod.POST, entity, String.class); + logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionInExternalSystem: Finished adding permission for POST: {} and status code: {} ", addPermResponse.getStatusCode().value(), addFunction); + } catch(HttpClientErrorException e){ + logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to add function in external central auth system", e); + EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); + throw e; + }catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "addRoleFunctionInExternalSystem: Failed to add fucntion in external central auth system", + e); + throw e; + } + } else { + try { + extPerms.setAction(action); + extPerms.setInstance(instance); + extPerms.setType(app.getNameSpace() + "." + type); + extPerms.setDescription(domainCentralRoleFunction.getName()); + String updateRoleFunction = mapper.writeValueAsString(extPerms); + HttpEntity entity = new HttpEntity<>(updateRoleFunction, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionInExternalSystem: {} for PUT: {}" , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE, updateRoleFunction); + ResponseEntity updatePermResponse = template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "perm", + HttpMethod.PUT, entity, String.class); + logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionInExternalSystem: Finished updating permission in External Auth system {} and response: {} ", updateRoleFunction, updatePermResponse.getStatusCode().value()); + } catch(HttpClientErrorException e){ + logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to add function in external central auth system", e); + EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); + throw e; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "addRoleFunctionInExternalSystem: Failed to update function in external central auth system",e); + throw e; + } + } + } + + @SuppressWarnings("unchecked") + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteCentralRoleFunction(String code, EPApp app) { + boolean deleteFunctionResponse = false; + try { + final Map params = new HashMap<>(); + params.put(FUNCTION_CODE_PARAMS, code); + params.put(APP_ID, String.valueOf(app.getId())); + List domainCentralRoleFunction = dataAccessService + .executeNamedQuery(GET_ROLE_FUNCTION_QUERY, params, null); + CentralV2RoleFunction appFunctionCode = appFunctionListFilter(code, domainCentralRoleFunction); + if (EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + deleteRoleFunctionInExternalSystem(appFunctionCode, app); + // Delete role function dependency records + deleteAppRoleFunctions(appFunctionCode.getCode(), app); + } + dataAccessService.deleteDomainObject(appFunctionCode, null); + deleteFunctionResponse = true; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteCentralRoleFunction: failed", e); + } + return deleteFunctionResponse; + } + + /** + * It deletes app function record in portal + * + * @param code + * @param app + */ + private void deleteAppRoleFunctions(String code, EPApp app) { + dataAccessService.deleteDomainObjects(EPAppRoleFunction.class, + APP_ID_EQUALS + app.getId() + AND_FUNCTION_CD_EQUALS + code + "'", null); + } + + /** + * + * It deletes permission in the external auth system + * + * @param domainCentralRoleFunction + * @param app + * @throws Exception + */ + private void deleteRoleFunctionInExternalSystem(CentralV2RoleFunction domainCentralRoleFunction, EPApp app) + throws Exception { + try { + ObjectMapper mapper = new ObjectMapper(); + ExternalAccessPerms extPerms = new ExternalAccessPerms(); + String instanceValue = EcompPortalUtils.getFunctionCode(domainCentralRoleFunction.getCode()); + String checkType = getFunctionType(domainCentralRoleFunction.getCode()); + String actionValue = getFunctionAction(domainCentralRoleFunction.getCode()); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + extPerms.setAction(actionValue); + extPerms.setInstance(instanceValue); + extPerms.setType(app.getNameSpace() + "." + checkType); + extPerms.setDescription(domainCentralRoleFunction.getName()); + String deleteRoleFunction = mapper.writeValueAsString(extPerms); + HttpEntity entity = new HttpEntity<>(deleteRoleFunction, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "deleteRoleFunctionInExternalSystem: {} for DELETE: {} ", + CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE, deleteRoleFunction); + ResponseEntity delPermResponse = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "perm?force=true", HttpMethod.DELETE, entity, String.class); + logger.debug(EELFLoggerDelegate.debugLogger, + "deleteRoleFunctionInExternalSystem: Finished deleting permission in External Auth system {} and status code: {} ", + deleteRoleFunction, delPermResponse.getStatusCode().value()); + } catch(HttpClientErrorException e){ + logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to delete functions in External System", e); + EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); + } catch (Exception e) { + if (e.getMessage().equalsIgnoreCase("404 Not Found")) { + logger.debug(EELFLoggerDelegate.debugLogger, + " deleteRoleFunctionInExternalSystem: It seems like function is already deleted in external central auth system but exists in local DB", + e.getMessage()); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "deleteRoleFunctionInExternalSystem: Failed to delete functions in External System", e); + } + } + } + + @Override + public ExternalRequestFieldsValidator saveRoleForApplication(Role saveRole, String uebkey) throws Exception { + boolean response = false; + String message = ""; + try { + EPApp app = getApp(uebkey).get(0); + addRoleInEcompDB(saveRole, app); + response = true; + } catch (Exception e) { + message = e.getMessage(); + logger.error(EELFLoggerDelegate.errorLogger, "saveRoleForApplication failed", e); + } + return new ExternalRequestFieldsValidator(response,message); + } + + @SuppressWarnings("unchecked") + @Override + public boolean deleteRoleForApplication(String deleteRole, String uebkey) throws Exception { + Session localSession = sessionFactory.openSession(); + Transaction transaction = null; + boolean result = false; + try { + List epRoleList = null; + EPApp app = getApp(uebkey).get(0); + final Map deleteRoleParams = new HashMap<>(); + deleteRoleParams.put(APP_ROLE_NAME_PARAM, deleteRole); + if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + epRoleList = dataAccessService.executeNamedQuery(GET_PORTAL_APP_ROLES_QUERY, deleteRoleParams, null); + } else { + deleteRoleParams.put(APP_ID, String.valueOf(app.getId())); + epRoleList = dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, deleteRoleParams, null); + } + if (!epRoleList.isEmpty()) { + transaction = localSession.beginTransaction(); + // Delete app role functions before deleting role + deleteRoleFunction(app, epRoleList); + if (app.getId() == 1) { + // Delete fn_user_ role + dataAccessService.deleteDomainObjects(EPUserApp.class, + APP_ID_EQUALS + app.getId() + " and role_id = " + epRoleList.get(0).getId(), null); + boolean isPortalRequest = false; + deleteRoleDependencyRecords(localSession, epRoleList.get(0).getId(), app.getId(), isPortalRequest); + } + deleteRoleInExternalAuthSystem(epRoleList, app); + transaction.commit(); + logger.debug(EELFLoggerDelegate.debugLogger, "deleteRoleForApplication: committed the transaction"); + dataAccessService.deleteDomainObject(epRoleList.get(0), null); + } + result = true; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteRoleForApplication: failed", e); + result = false; + } finally { + localSession.close(); + } + return result; + } + + /** + * + * It deletes role for application in external auth system + * + * @param epRoleList contains role information + * @param app contains application information + * @throws Exception + */ + private void deleteRoleInExternalAuthSystem(List epRoleList, EPApp app) throws Exception { + ResponseEntity deleteResponse; + ResponseEntity res = getNameSpaceIfExists(app); + if (res.getStatusCode() == HttpStatus.OK) { + // Delete Role in External System + String deleteRoleKey = "{\"name\":\"" + app.getNameSpace() + "." + epRoleList.get(0).getName() + .replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_") + "\"}"; + deleteResponse = deleteRoleInExternalSystem(deleteRoleKey); + if (deleteResponse.getStatusCode().value() != 200 || deleteResponse.getStatusCode().value() != 404) { + EPLogUtil.logExternalAuthAccessAlarm(logger, deleteResponse.getStatusCode()); + logger.error(EELFLoggerDelegate.errorLogger, + "deleteRoleForApplication: Failed to delete role in external auth system! due to {} ", + deleteResponse.getBody()); + } + logger.debug(EELFLoggerDelegate.debugLogger, + "deleteRoleForApplication: about to commit the transaction"); + } + } + + /** + * + * It deletes application user role in external auth system + * + * @param role + * @param app + * @param LoginId + * @throws Exception + */ + private void deleteUserRoleInExternalSystem(EPRole role, EPApp app, String LoginId) throws Exception { + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + HttpEntity entity = new HttpEntity<>(headers); + getNameSpaceIfExists(app); + logger.debug(EELFLoggerDelegate.debugLogger,"deleteUserRoleInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); + ResponseEntity getResponse = template + .exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "userRole/" + + LoginId + + SystemProperties + .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN) + + "/" + app.getNameSpace() + "." + role.getName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_"), + HttpMethod.GET, entity, String.class); + logger.debug(EELFLoggerDelegate.debugLogger, "deleteUserRoleInExternalSystem: Finished GET user roles from External Auth system and response: {} ", getResponse.getBody()); + if (getResponse.getStatusCode().value() != 200) { + throw new ExternalAuthSystemException(getResponse.getBody()); + } + String res = getResponse.getBody(); + if (!res.equals(IS_EMPTY_JSON_STRING)) { + HttpEntity userRoleentity = new HttpEntity<>(headers); + logger.debug(EELFLoggerDelegate.debugLogger, "deleteUserRoleInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); + ResponseEntity deleteResponse = template + .exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "userRole/" + LoginId + + SystemProperties + .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN) + + "/" + app.getNameSpace() + "." + role.getName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_"), + HttpMethod.DELETE, userRoleentity, String.class); + if (deleteResponse.getStatusCode().value() != 200) { + throw new ExternalAuthSystemException("Failed to delete user role"); + } + logger.debug(EELFLoggerDelegate.debugLogger, "deleteUserRoleInExternalSystem: Finished deleting user role in External Auth system and status code: {} ", deleteResponse.getStatusCode().value()); + } + } + + @SuppressWarnings("unchecked") + @Override + public List getActiveRoles(String uebkey) throws Exception { + List roleList = new ArrayList<>(); + try { + List app = getApp(uebkey); + final Map params = new HashMap<>(); + // check if portal + Long appId = null; + if (!app.get(0).getId().equals(PortalConstants.PORTAL_APP_ID)) { + appId = app.get(0).getId(); + } + List restrictionsList = new ArrayList(); + Criterion active_ynCrt = Restrictions.eq("active", Boolean.TRUE); + Criterion appIdCrt; + if (appId == null) + appIdCrt = Restrictions.isNull("appId"); + else + appIdCrt = Restrictions.eq("appId", appId); + Criterion andCrit = Restrictions.and(active_ynCrt, appIdCrt); + restrictionsList.add(andCrit); + List epRole = (List) dataAccessService.getList(EPRole.class, null, restrictionsList, null); + roleList = createCentralRoleObject(app, epRole, roleList, params); + List globalRoleList = getGlobalRolesOfApplication(app.get(0).getId()); + if (globalRoleList.size() > 0) + roleList.addAll(globalRoleList); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getActiveRoles: failed", e); + throw e; + } + return roleList; + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ExternalRequestFieldsValidator deleteDependencyRoleRecord(Long roleId, String uebkey, String LoginId) throws Exception { + Session localSession = sessionFactory.openSession(); + String message = ""; + Transaction transaction = null; + boolean response = false; + EPApp app = null; + try { + transaction = localSession.beginTransaction(); + List epRoleList = null; + app = getApp(uebkey).get(0); + if(app.getId().equals(PortalConstants.PORTAL_APP_ID)){ + epRoleList = getPortalAppRoleInfo(roleId); + } else{ + epRoleList = getPartnerAppRoleInfo(roleId, app); + } + if(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + // Delete User Role in External System before deleting role + deleteUserRoleInExternalSystem(epRoleList.get(0), app, LoginId); + } + // Delete user app roles + dataAccessService.deleteDomainObjects(EPUserApp.class, + APP_ID_EQUALS + app.getId() + " and role_id = " + epRoleList.get(0).getId(), null); + boolean isPortalRequest = false; + deleteRoleDependencyRecords(localSession, epRoleList.get(0).getId(), app.getId(), isPortalRequest); + transaction.commit(); + if (EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + // Final call to delete role once all dependencies has been deleted + deleteRoleInExternalAuthSystem(epRoleList, app); + } + dataAccessService.deleteDomainObjects(EPRole.class, " role_id = "+ epRoleList.get(0).getId(), null); + logger.debug(EELFLoggerDelegate.debugLogger, "deleteDependencyRoleRecord: committed the transaction"); + response = true; + } catch(HttpClientErrorException e){ + logger.error(EELFLoggerDelegate.errorLogger, "deleteDependencyRoleRecord: HttpClientErrorException", e); + EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); + message = e.getMessage(); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteDependencyRoleRecord failed", e); + EcompPortalUtils.rollbackTransaction(transaction, + "deleteDependencyRoleRecord rollback, exception = " + e.toString()); + message = e.getMessage(); + } finally { + localSession.close(); + } + return new ExternalRequestFieldsValidator(response,message); + } + + @Override + @SuppressWarnings("unchecked") + @Transactional + public void syncRoleFunctionFromExternalAccessSystem(EPApp app) { + try { + + // get Permissions from External Auth System + JSONArray extPerms = getExtAuthPermissions(app); + List permsDetailList = getExtAuthPerrmissonList(app, extPerms); + + // get functions in DB + final Map params = new HashMap<>(); + final Map roleFuncMap = new HashMap<>(); + params.put(APP_ID, app.getId()); + List appFunctions = dataAccessService.executeNamedQuery("getAllRoleFunctions", params, + null); + if (!appFunctions.isEmpty()) { + for (CentralV2RoleFunction roleFunc : appFunctions) { + roleFuncMap.put(roleFunc.getCode(), roleFunc); + } + } + + // get Roles for portal in DB + List portalRoleList = getGlobalRolesOfPortal(); + final Map existingPortalRolesMap = new HashMap<>(); + for(EPRole epRole : portalRoleList){ + existingPortalRolesMap.put(epRole.getName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_"), epRole); + } + + // get Roles in DB + final Map currentRolesInDB = getCurrentRolesInDB(app); + + // store External Permissions with Pipe and without Pipe (just instance) + final Map extAccessPermsContainsPipeMap = new HashMap<>(); + final Map extAccessPermsMap = new HashMap<>(); + for (ExternalAccessPermsDetail permsDetailInfoWithPipe : permsDetailList) { + extAccessPermsContainsPipeMap.put(permsDetailInfoWithPipe.getInstance(), permsDetailInfoWithPipe); + String finalFunctionCodeVal = EcompPortalUtils.getFunctionCode(permsDetailInfoWithPipe.getInstance()); + extAccessPermsMap.put(finalFunctionCodeVal, permsDetailInfoWithPipe); + } + + // Add if new functions and app role functions were added in + // external auth system + for (ExternalAccessPermsDetail permsDetail : permsDetailList) { + String code = permsDetail.getInstance(); + CentralV2RoleFunction getFunctionCodeKey = roleFuncMap.get(permsDetail.getInstance()); + List roleFunctionList = addGetLocalFunction(app, roleFuncMap, permsDetail, code, + getFunctionCodeKey); + List roles = permsDetail.getRoles(); + if (roles != null) { + // Check if function has any roles and which does not exist + // in External Auth System. If exists delete in local + addRemoveIfFunctionsRolesIsSyncWithExternalAuth(app, currentRolesInDB, roleFunctionList, roles, existingPortalRolesMap); + } + } + + // Check if function does exits in External Auth System but exits in + // local then delete function and its dependencies + for (CentralV2RoleFunction roleFunc : appFunctions) { + try { + ExternalAccessPermsDetail getFunctionCodeContainsPipeKey = extAccessPermsContainsPipeMap + .get(roleFunc.getCode()); + if (null == getFunctionCodeContainsPipeKey) { + ExternalAccessPermsDetail getFunctionCodeKey = extAccessPermsMap.get(roleFunc.getCode()); + if (null == getFunctionCodeKey) { + deleteAppRoleFuncDoesNotExitsInExtSystem(app, roleFunc); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "syncRoleFunctionFromExternalAccessSystem: Failed to delete function", e); + + } + } + + logger.debug(EELFLoggerDelegate.debugLogger, + "syncRoleFunctionFromExternalAccessSystem: Finished syncRoleFunctionFromExternalAccessSystem"); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "syncRoleFunctionFromExternalAccessSystem: Failed syncRoleFunctionFromExternalAccessSystem", e); + + } + } + + @SuppressWarnings("unchecked") + private void addRemoveIfFunctionsRolesIsSyncWithExternalAuth(EPApp app, final Map currentRolesInDB, + List roleFunctionList, List roles, Map existingPortalRolesMap) + throws Exception { + if (!roleFunctionList.isEmpty()) { + final Map appRoleFuncParams = new HashMap<>(); + final Map currentAppRoleFunctionsMap = new HashMap<>(); + final Map currentRolesInExtSystem = new HashMap<>(); + appRoleFuncParams.put("functionCd", roleFunctionList.get(0).getCode()); + appRoleFuncParams.put("appId", String.valueOf(app.getId())); + List localRoleList = dataAccessService.executeNamedQuery("getCurrentAppRoleFunctions", + appRoleFuncParams, null); + for (LocalRole localRole : localRoleList) { + currentAppRoleFunctionsMap.put(localRole.getRolename().replaceAll( + EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_"), localRole); + } + for (String addRole : roles) { + currentRolesInExtSystem.put(addRole.substring(addRole.indexOf(FUNCTION_PIPE)+1), addRole); + } + for (String extAuthrole : roles) { + String roleNameSpace = extAuthrole.substring(0, extAuthrole.indexOf(FUNCTION_PIPE)); + boolean isNameSpaceMatching = EcompPortalUtils.checkNameSpaceMatching(roleNameSpace, app.getNameSpace()); + if (isNameSpaceMatching) { + if (!currentAppRoleFunctionsMap + .containsKey(extAuthrole.substring(app.getNameSpace().length() + 1))) { + EPRole localAddFuntionRole = currentRolesInDB + .get(extAuthrole.substring(app.getNameSpace().length() + 1)); + if (localAddFuntionRole == null) { + checkAndAddRoleInDB(app, currentRolesInDB, roleFunctionList, extAuthrole); + } else { + EPAppRoleFunction addAppRoleFunc = new EPAppRoleFunction(); + addAppRoleFunc.setAppId(app.getId()); + addAppRoleFunc.setCode(roleFunctionList.get(0).getCode()); + addAppRoleFunc.setRoleId(localAddFuntionRole.getId()); + dataAccessService.saveDomainObject(addAppRoleFunc, null); + } + } + // This block is to save global role function if exists + } else { + String extAuthAppRoleName = extAuthrole.substring(extAuthrole.indexOf(FUNCTION_PIPE) + 1); + boolean checkIfGlobalRoleExists = existingPortalRolesMap.containsKey(extAuthAppRoleName); + if (checkIfGlobalRoleExists) { + final Map params = new HashMap<>(); + EPRole role = existingPortalRolesMap.get(extAuthAppRoleName); + EPAppRoleFunction addGlobalRoleFunctions = new EPAppRoleFunction(); + params.put("appId", app.getId()); + params.put("roleId", role.getId()); + List currentGlobalRoleFunctionsList = dataAccessService.executeNamedQuery("getAppRoleFunctionOnRoleIdandAppId", params, null); + boolean checkIfRoleFunctionExists = currentGlobalRoleFunctionsList.stream().anyMatch(currentGlobalRoleFunction -> currentGlobalRoleFunction.getCode().equals(roleFunctionList.get(0).getCode())); + if (role != null && !checkIfRoleFunctionExists) { + addGlobalRoleFunctions.setAppId(app.getId()); + addGlobalRoleFunctions.setRoleId(role.getId()); + if (!app.getId().equals(role.getAppRoleId())) { + addGlobalRoleFunctions.setRoleAppId((PortalConstants.PORTAL_APP_ID).toString()); + } else { + addGlobalRoleFunctions.setRoleAppId(null); + } + addGlobalRoleFunctions.setCode(roleFunctionList.get(0).getCode()); + dataAccessService.saveDomainObject(addGlobalRoleFunctions, null); + } + } + } + } + for (LocalRole localRoleDelete : localRoleList) { + if (!currentRolesInExtSystem.containsKey(localRoleDelete.getRolename() + .replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_"))) { + dataAccessService.deleteDomainObjects(EPAppRoleFunction.class, + APP_ID_EQUALS + app.getId() + AND_FUNCTION_CD_EQUALS + roleFunctionList.get(0).getCode() + + "'" + " and role_id = " + localRoleDelete.getRoleId().longValue(), + null); + } + } + } + } + + private void deleteAppRoleFuncDoesNotExitsInExtSystem(EPApp app, CentralV2RoleFunction roleFunc) { + logger.debug(EELFLoggerDelegate.debugLogger, + "syncRoleFunctionFromExternalAccessSystem: Deleting app role function {}", + roleFunc.getCode()); + dataAccessService.deleteDomainObjects(EPAppRoleFunction.class, + APP_ID_EQUALS + app.getId() + AND_FUNCTION_CD_EQUALS + roleFunc.getCode() +"'", null); + logger.debug(EELFLoggerDelegate.debugLogger, + "syncRoleFunctionFromExternalAccessSystem: Deleted app role function {}", + roleFunc.getCode()); + + logger.debug(EELFLoggerDelegate.debugLogger, + "syncRoleFunctionFromExternalAccessSystem: Deleting app function {}", + roleFunc.getCode()); + dataAccessService.deleteDomainObjects(CentralV2RoleFunction.class, + APP_ID_EQUALS + app.getId() + AND_FUNCTION_CD_EQUALS + roleFunc.getCode() +"'", null); + logger.debug(EELFLoggerDelegate.debugLogger, + "syncRoleFunctionFromExternalAccessSystem: Deleted app function {}", + roleFunc.getCode()); + } + + private void checkAndAddRoleInDB(EPApp app, final Map currentRolesInDB, + List roleFunctionList, String roleList) throws Exception { + if (!currentRolesInDB.containsKey( + roleList.substring(app.getNameSpace().length() + 1))) { + Role role = addRoleInDBIfDoesNotExists(app, + roleList.substring(app.getNameSpace().length() + 1)); + addIfRoleDescriptionNotExitsInExtSystem(role, app); + if (!roleFunctionList.isEmpty()) { + try { + if (!roleFunctionList.isEmpty()) { + EPAppRoleFunction addAppRoleFunc = new EPAppRoleFunction(); + addAppRoleFunc.setAppId(app.getId()); + addAppRoleFunc.setCode(roleFunctionList.get(0).getCode()); + addAppRoleFunc.setRoleId(role.getId()); + dataAccessService.saveDomainObject(addAppRoleFunc, null); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "syncRoleFunctionFromExternalAccessSystem: Failed to save app role function ", + e); + } + } + } + } + + @SuppressWarnings("unchecked") + private List addGetLocalFunction(EPApp app, final Map roleFuncMap, + ExternalAccessPermsDetail permsDetail, String code, CentralV2RoleFunction getFunctionCodeKey) { + String finalFunctionCodeVal = addToLocalIfFunctionNotExists(app, roleFuncMap, permsDetail, code, + getFunctionCodeKey); + final Map appSyncFuncsParams = new HashMap<>(); + appSyncFuncsParams.put("appId", String.valueOf(app.getId())); + appSyncFuncsParams.put("functionCd", finalFunctionCodeVal); + List roleFunctionList = null; + roleFunctionList = dataAccessService.executeNamedQuery("getAppFunctionOnCodeAndAppId", appSyncFuncsParams, + null); + if (roleFunctionList.isEmpty()) { + appSyncFuncsParams.put("functionCd", code); + roleFunctionList = dataAccessService.executeNamedQuery("getAppFunctionOnCodeAndAppId", appSyncFuncsParams, + null); + } + return roleFunctionList; + } + + private String addToLocalIfFunctionNotExists(EPApp app, final Map roleFuncMap, + ExternalAccessPermsDetail permsDetail, String code, CentralV2RoleFunction getFunctionCodeKey + ) { + String finalFunctionCodeVal = ""; + if (null == getFunctionCodeKey) { + finalFunctionCodeVal = EcompPortalUtils.getFunctionCode(permsDetail.getInstance()); + CentralV2RoleFunction checkIfCodeStillExits = roleFuncMap.get(finalFunctionCodeVal); + // If function does not exist in local then add! + if (null == checkIfCodeStillExits) { + logger.debug(EELFLoggerDelegate.debugLogger, + "syncRoleFunctionFromExternalAccessSystem: Adding function: {} ", code); + addFunctionInEcompDB(app, permsDetail, code); + logger.debug(EELFLoggerDelegate.debugLogger, + "syncRoleFunctionFromExternalAccessSystem: Finished adding function: {} ", code); + } + } + return finalFunctionCodeVal; + } + + @SuppressWarnings("unchecked") + @Override + public Map getCurrentRolesInDB(EPApp app) { + final Map currentRolesInDB = new HashMap<>(); + List getCurrentRoleList = null; + final Map appParams = new HashMap<>(); + if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + getCurrentRoleList = dataAccessService.executeNamedQuery("getPortalAppRolesList", null, null); + } else { + appParams.put("appId", app.getId()); + getCurrentRoleList = dataAccessService.executeNamedQuery("getPartnerAppRolesList", appParams, null); + } + for (EPRole role : getCurrentRoleList) { + currentRolesInDB.put(role.getName() + .replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_"), role); + } + return currentRolesInDB; + } + + private List getExtAuthPerrmissonList(EPApp app, JSONArray extPerms) + throws IOException{ + ExternalAccessPermsDetail permDetails = null; + List permsDetailList = new ArrayList<>(); + for (int i = 0; i < extPerms.length(); i++) { + String description = null; + if (extPerms.getJSONObject(i).has("description")) { + description = extPerms.getJSONObject(i).getString(EXTERNAL_AUTH_ROLE_DESCRIPTION); + } else { + description = extPerms.getJSONObject(i).getString("instance"); + } + if (extPerms.getJSONObject(i).has("roles")) { + ObjectMapper rolesListMapper = new ObjectMapper(); + JSONArray resRoles = extPerms.getJSONObject(i).getJSONArray("roles"); + List list = rolesListMapper.readValue(resRoles.toString(), + TypeFactory.defaultInstance().constructCollectionType(List.class, String.class)); + permDetails = new ExternalAccessPermsDetail(extPerms.getJSONObject(i).getString("type"), + extPerms.getJSONObject(i).getString("type").substring(app.getNameSpace().length() + 1) + + FUNCTION_PIPE + extPerms.getJSONObject(i).getString("instance") + FUNCTION_PIPE + + extPerms.getJSONObject(i).getString("action"), + extPerms.getJSONObject(i).getString("action"), list, description); + permsDetailList.add(permDetails); + } else { + permDetails = new ExternalAccessPermsDetail(extPerms.getJSONObject(i).getString("type"), + extPerms.getJSONObject(i).getString("type").substring(app.getNameSpace().length() + 1) + + FUNCTION_PIPE + extPerms.getJSONObject(i).getString("instance") + FUNCTION_PIPE + + extPerms.getJSONObject(i).getString("action"), + extPerms.getJSONObject(i).getString("action"), description); + permsDetailList.add(permDetails); + } + } + return permsDetailList; + } + + private JSONArray getExtAuthPermissions(EPApp app) throws Exception { + ResponseEntity response = null; + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + HttpEntity entity = new HttpEntity<>(headers); + logger.debug(EELFLoggerDelegate.debugLogger, "syncRoleFunctionFromExternalAccessSystem: {} ", + CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); + response = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "perms/ns/" + app.getNameSpace(), HttpMethod.GET, entity, String.class); + + String res = response.getBody(); + logger.debug(EELFLoggerDelegate.debugLogger, + "syncRoleFunctionFromExternalAccessSystem: Finished GET permissions from External Auth system and response: {} ", + response.getBody()); + JSONObject jsonObj = new JSONObject(res); + JSONArray extPerms = jsonObj.getJSONArray("perm"); + for (int i = 0; i < extPerms.length(); i++) { + if (extPerms.getJSONObject(i).getString("type").equals(app.getNameSpace() + ".access")) { + extPerms.remove(i); + i--; + } + } + return extPerms; + } + + /** + * + * Add function into local DB + * + * @param app + * @param permsDetail + * @param code + */ + private void addFunctionInEcompDB(EPApp app, ExternalAccessPermsDetail permsDetail, String code) { + try{ + CentralV2RoleFunction addFunction = new CentralV2RoleFunction(); + addFunction.setAppId(app.getId()); + addFunction.setCode(code); + addFunction.setName(permsDetail.getDescription()); + dataAccessService.saveDomainObject(addFunction, null); + } catch(Exception e){ + logger.error(EELFLoggerDelegate.errorLogger, "addFunctionInEcompDB: Failed to add function", e); + } + } + + /** + * + * It updates description of a role in external auth system + * + * @param role + * @param app + * @throws Exception + */ + private void addIfRoleDescriptionNotExitsInExtSystem(Role role, EPApp app) throws Exception { + String addRoleNew = updateExistingRoleInExternalSystem(role, app); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + try { + HttpEntity entity = new HttpEntity<>(addRoleNew, headers); + template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role", + HttpMethod.PUT, entity, String.class); + } catch (HttpClientErrorException e) { + logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to addIfRoleDescriptionNotExitsInExtSystem", + e); + EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "addIfRoleDescriptionNotExitsInExtSystem: Failed", + e); + } + } + + /** + * + * While sync functions form external auth system if new role found we should add in local and return Role.class object + * + * @param app + * @param role + * @return + */ + @SuppressWarnings("unchecked") + private Role addRoleInDBIfDoesNotExists(EPApp app, String role) { + Role setNewRole = new Role(); + try { + // functions can have new role created in External Auth System prevent + // duplication here + boolean isCreated = checkIfRoleExitsElseCreateInSyncFunctions(role, app); + final Map getRoleByNameParams = new HashMap<>(); + List getRoleCreated = null; + getRoleByNameParams.put(APP_ROLE_NAME_PARAM, role); + if (!app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + getRoleByNameParams.put("appId", String.valueOf(app.getId())); + List roleCreated = dataAccessService + .executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, getRoleByNameParams, null); + if (!isCreated) { + EPRole epUpdateRole = roleCreated.get(0); + epUpdateRole.setAppRoleId(epUpdateRole.getId()); + dataAccessService.saveDomainObject(epUpdateRole, null); + getRoleCreated = dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, + getRoleByNameParams, null); + } else { + getRoleCreated = roleCreated; + } + } else { + getRoleCreated = dataAccessService.executeNamedQuery(GET_PORTAL_APP_ROLES_QUERY, getRoleByNameParams, + null); + } + if (getRoleCreated != null && !getRoleCreated.isEmpty()) { + EPRole roleObject = getRoleCreated.get(0); + setNewRole.setId(roleObject.getId()); + setNewRole.setName(roleObject.getName()); + setNewRole.setActive(roleObject.getActive()); + setNewRole.setPriority(roleObject.getPriority()); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "addRoleInDBIfDoesNotExists: Failed", e); + } + return setNewRole; + } + + @SuppressWarnings("unchecked") + private boolean checkIfRoleExitsElseCreateInSyncFunctions(String role, EPApp app) { + boolean isCreated = false; + final Map roleParams = new HashMap<>(); + roleParams.put(APP_ROLE_NAME_PARAM, role); + List roleCreated = null; + if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + roleCreated = dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, roleParams, + null); + } else { + roleParams.put("appId", String.valueOf(app.getId())); + roleCreated = dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, roleParams, + null); + } + if (roleCreated == null || roleCreated.isEmpty()) { + roleParams.put("appId", String.valueOf(app.getId())); + EPRole epRoleNew = new EPRole(); + epRoleNew.setActive(true); + epRoleNew.setName(role); + if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + epRoleNew.setAppId(null); + } else { + epRoleNew.setAppId(app.getId()); + } + dataAccessService.saveDomainObject(epRoleNew, null); + isCreated = false; + } else { + isCreated = true; + } + return isCreated; + } + + @Override + @SuppressWarnings("unchecked") + public Integer bulkUploadFunctions(String uebkey) throws Exception { + EPApp app = getApp(uebkey).get(0); + List roleFuncList = dataAccessService.executeNamedQuery("getAllFunctions", null, null); + CentralV2RoleFunction cenRoleFunc = null; + Integer functionsAdded = 0; + try { + for (RoleFunction roleFunc : roleFuncList) { + cenRoleFunc = new CentralV2RoleFunction(roleFunc.getCode(), roleFunc.getName()); + addRoleFunctionInExternalSystem(cenRoleFunc, app); + functionsAdded++; + } + } catch(HttpClientErrorException e){ + logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - bulkUploadFunctions failed", e); + EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadFunctions: failed", e.getMessage(), e); + } + return functionsAdded; + } + + @Override + public Integer bulkUploadRoles(String uebkey) throws Exception { + List app = getApp(uebkey); + List roles = getAppRoles(app.get(0).getId()); + List cenRoleList = new ArrayList<>(); + final Map params = new HashMap<>(); + Integer rolesListAdded = 0; + try { + cenRoleList = createCentralRoleObject(app, roles, cenRoleList, params); + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false); + String roleList = mapper.writeValueAsString(cenRoleList); + List roleObjectList = mapper.readValue(roleList, + TypeFactory.defaultInstance().constructCollectionType(List.class, Role.class)); + for (Role role : roleObjectList) { + addRoleInExternalSystem(role, app.get(0)); + rolesListAdded++; + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRoles: failed", e); + throw e; + } + return rolesListAdded; + } + + /** + * It creating new role in external auth system while doing bulk upload + * + * @param role + * @param app + * @throws Exception + */ + private void addRoleInExternalSystem(Role role, EPApp app) throws Exception { + String addRoleNew = updateExistingRoleInExternalSystem(role, app); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + try { + HttpEntity entity = new HttpEntity<>(addRoleNew, headers); + template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role", + HttpMethod.POST, entity, String.class); + } catch(HttpClientErrorException e){ + logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to addRoleInExternalSystem", e); + EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); + } catch (Exception e) { + if (e.getMessage().equalsIgnoreCase("409 Conflict")) { + logger.error(EELFLoggerDelegate.errorLogger, "addRoleInExternalSystem: Role already exits but does not break functionality", e); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "addRoleInExternalSystem: Failed to addRoleInExternalSystem", e.getMessage()); + } + } + } + + @Override + @SuppressWarnings("unchecked") + public Integer bulkUploadRolesFunctions(String uebkey) throws Exception { + EPApp app = getApp(uebkey).get(0); + List roles = getAppRoles(app.getId()); + final Map params = new HashMap<>(); + Integer roleFunctions = 0; + try { + for (EPRole role : roles) { + params.put("roleId", role.getId()); + List appRoleFunc = dataAccessService.executeNamedQuery("uploadAllRoleFunctions", + params, null); + if (!appRoleFunc.isEmpty()) { + for (BulkUploadRoleFunction addRoleFunc : appRoleFunc) { + addRoleFunctionsInExternalSystem(addRoleFunc, role, app); + roleFunctions++; + } + } + } + } catch(HttpClientErrorException e){ + logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to bulkUploadRolesFunctions", e); + EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRolesFunctions: failed", e); + } + return roleFunctions; + } + + /** + * Its adding a role function while doing bulk upload + * + * @param addRoleFunc + * @param role + * @param app + */ + private void addRoleFunctionsInExternalSystem(BulkUploadRoleFunction addRoleFunc, EPRole role, EPApp app) { + String checkType = addRoleFunc.getFunctionCd().contains("menu") ? "menu" : "url"; + ExternalAccessRolePerms extRolePerms = null; + ExternalAccessPerms extPerms = null; + ObjectMapper mapper = new ObjectMapper(); + try { + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + + extPerms = new ExternalAccessPerms(app.getNameSpace() + "." + checkType, addRoleFunc.getFunctionCd(), "*", + addRoleFunc.getFunctionName()); + extRolePerms = new ExternalAccessRolePerms(extPerms, + app.getNameSpace() + "." + role.getName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")); + String updateRolePerms = mapper.writeValueAsString(extRolePerms); + HttpEntity entity = new HttpEntity<>(updateRolePerms, headers); + template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role/perm", + HttpMethod.POST, entity, String.class); + } catch (Exception e) { + if (e.getMessage().equalsIgnoreCase("409 Conflict")) { + logger.error(EELFLoggerDelegate.errorLogger, + "addRoleFunctionsInExternalSystem: RoleFunction already exits but does not break functionality", e); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "addRoleFunctionsInExternalSystem: Failed to addRoleFunctionsInExternalSystem", + e.getMessage()); + } + } + } + + @Override + public void bulkUploadPartnerFunctions(String uebkey, List roleFunctionsList) throws Exception { + EPApp app = getApp(uebkey).get(0); + CentralV2RoleFunction cenRoleFunc = null; + for (RoleFunction roleFunction : roleFunctionsList) { + cenRoleFunc = new CentralV2RoleFunction(roleFunction.getCode(), roleFunction.getName()); + addRoleFunctionInExternalSystem(cenRoleFunc, app); + } + } + + @Override + public void bulkUploadPartnerRoles(String uebkey, List roleList) throws Exception { + EPApp app = getApp(uebkey).get(0); + for (Role role : roleList) { + addRoleInExternalSystem(role, app); + } + } + + @SuppressWarnings("unchecked") + @Override + public void bulkUploadPartnerRoleFunctions(String uebkey, List roleList) throws Exception { + EPApp app = getApp(uebkey).get(0); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + for (Role role : roleList) { + try { + Set roleFunctionList = role.getRoleFunctions(); + List roleFunctionListNew = new ArrayList<>(); + ObjectMapper roleFunctionsMapper = new ObjectMapper(); + Iterator itetaror = roleFunctionList.iterator(); + while (itetaror.hasNext()) { + Object nextValue = itetaror.next(); + RoleFunction roleFunction = roleFunctionsMapper.convertValue(nextValue, RoleFunction.class); + roleFunctionListNew.add(roleFunction); + } + List listWithoutDuplicates = roleFunctionListNew.stream().distinct() + .collect(Collectors.toList()); + for (RoleFunction roleFunction : listWithoutDuplicates) { + String checkType = roleFunction.getCode().contains("menu") ? "menu" : "url"; + ExternalAccessRolePerms extRolePerms = null; + ExternalAccessPerms extPerms = null; + ObjectMapper mapper = new ObjectMapper(); + extPerms = new ExternalAccessPerms(app.getNameSpace() + "." + checkType, roleFunction.getCode(), + "*"); + extRolePerms = new ExternalAccessRolePerms(extPerms, + app.getNameSpace() + "." + role.getName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")); + String updateRolePerms = mapper.writeValueAsString(extRolePerms); + HttpEntity entity = new HttpEntity<>(updateRolePerms, headers); + template.exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "role/perm", HttpMethod.PUT, entity, String.class); + } + } catch (Exception e) { + if (e.getMessage().equalsIgnoreCase("409 Conflict")) { + logger.error(EELFLoggerDelegate.errorLogger, + "bulkUploadPartnerRoleFunctions: RoleFunction already exits but does not break functionality"); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadPartnerRoleFunctions: Failed to addRoleFunctionsInExternalSystem", + e); + } + } + + } + } + + @Override + @Transactional + public void syncApplicationRolesWithEcompDB(EPApp app) { + try { + logger.debug(EELFLoggerDelegate.debugLogger, "syncRoleFunctionFromExternalAccessSystem: Started"); + //Sync functions and roles assigned to it which also creates new roles if does not exits in portal + syncRoleFunctionFromExternalAccessSystem(app); + logger.debug(EELFLoggerDelegate.debugLogger, "syncRoleFunctionFromExternalAccessSystem: Finished"); + + ObjectMapper mapper = new ObjectMapper(); + logger.debug(EELFLoggerDelegate.debugLogger, "Entering to getAppRolesJSONFromExtAuthSystem"); + // Get Permissions from External Auth System + JSONArray extRole = getAppRolesJSONFromExtAuthSystem(app); + + logger.debug(EELFLoggerDelegate.debugLogger, "Entering into getExternalRoleDetailsList"); + List externalRoleDetailsList = getExternalRoleDetailsList(app, + mapper, extRole); + + List finalRoleList = new ArrayList<>(); + for (ExternalRoleDetails externalRole : externalRoleDetailsList) { + EPRole ecompRole = convertExternalRoleDetailstoEpRole(externalRole); + finalRoleList.add(ecompRole); + } + + List applicationRolesList; + applicationRolesList = getAppRoles(app.getId()); + List applicationRoleIdList = new ArrayList<>(); + for (EPRole applicationRole : applicationRolesList) { + applicationRoleIdList.add(applicationRole.getName()); + } + + List roleListToBeAddInEcompDB = new ArrayList<>(); + for (EPRole aafRole : finalRoleList) { + if (!applicationRoleIdList.contains(aafRole.getName())) { + roleListToBeAddInEcompDB.add(aafRole); + } + } + + logger.debug(EELFLoggerDelegate.debugLogger, "Entering into inactiveRolesNotInExternalAuthSystem"); + // Check if roles exits in external Access system and if not make inactive in DB + inactiveRolesNotInExternalAuthSystem(app, finalRoleList, applicationRolesList); + + logger.debug(EELFLoggerDelegate.debugLogger, "Entering into checkAndUpdateRoleInDB"); + // It checks properties in the external auth system app role description and updates role in local + checkAndUpdateRoleInDB(app, finalRoleList); + + logger.debug(EELFLoggerDelegate.debugLogger, "Entering into addNewRoleInEcompDBUpdateDescInExtAuthSystem"); + // Add new roles in DB and updates role description in External Auth System + addNewRoleInEcompDBUpdateDescInExtAuthSystem(app, roleListToBeAddInEcompDB); + logger.debug(EELFLoggerDelegate.debugLogger, "syncApplicationRolesWithEcompDB: Finished"); + } catch (HttpClientErrorException e) { + logger.error(EELFLoggerDelegate.errorLogger, "syncApplicationRolesWithEcompDB: Failed due to the External Auth System", e); + EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "syncApplicationRolesWithEcompDB: Failed ", e); + } + } + + /** + * + * It adds new roles in DB and updates description in External Auth System + * + * @param app + * @param roleListToBeAddInEcompDB + */ + @SuppressWarnings("unchecked") + private void addNewRoleInEcompDBUpdateDescInExtAuthSystem(EPApp app, List roleListToBeAddInEcompDB) { + EPRole roleToBeAddedInEcompDB; + for (int i = 0; i < roleListToBeAddInEcompDB.size(); i++) { + try { + roleToBeAddedInEcompDB = roleListToBeAddInEcompDB.get(i); + if (app.getId() == 1) { + roleToBeAddedInEcompDB.setAppRoleId(null); + } + dataAccessService.saveDomainObject(roleToBeAddedInEcompDB, null); + List getRoleCreatedInSync = null; + if (!app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + final Map globalRoleParams = new HashMap<>(); + globalRoleParams.put("appId", String.valueOf(app.getId())); + globalRoleParams.put("appRoleName", roleToBeAddedInEcompDB.getName()); + getRoleCreatedInSync = dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, globalRoleParams, null); + EPRole epUpdateRole = getRoleCreatedInSync.get(0); + epUpdateRole.setAppRoleId(epUpdateRole.getId()); + dataAccessService.saveDomainObject(epUpdateRole, null); + } + List roleList = new ArrayList<>(); + final Map params = new HashMap<>(); + + params.put(APP_ROLE_NAME_PARAM, roleToBeAddedInEcompDB.getName()); + boolean isPortalRole = false; + if (app.getId() == 1) { + isPortalRole = true; + roleList = dataAccessService.executeNamedQuery(GET_PORTAL_APP_ROLES_QUERY, params, null); + } else { + isPortalRole = false; + params.put(APP_ID, app.getId().toString()); + roleList = dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, params, null); + } + EPRole role = roleList.get(0); + Role aaFrole = new Role(); + aaFrole.setId(role.getId()); + aaFrole.setActive(role.getActive()); + aaFrole.setPriority(role.getPriority()); + aaFrole.setName(role.getName()); + updateRoleInExternalSystem(aaFrole, app, isPortalRole); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "SyncApplicationRolesWithEcompDB: Failed to add or update role in external auth system", e); + } + } + } + + /** + * + * It checks description in External Auth System if found any changes updates in DB + * + * @param app + * @param finalRoleList contains list of External Auth System roles list which is converted to EPRole + */ + @SuppressWarnings("unchecked") + private void checkAndUpdateRoleInDB(EPApp app, List finalRoleList) { + for (EPRole roleItem : finalRoleList) { + final Map roleParams = new HashMap<>(); + List currentList = null; + roleParams.put(APP_ROLE_NAME_PARAM, roleItem.getName()); + if (app.getId() == 1) { + currentList = dataAccessService.executeNamedQuery(GET_PORTAL_APP_ROLES_QUERY, roleParams, null); + } else { + roleParams.put(APP_ID, app.getId().toString()); + currentList = dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, roleParams, null); + } + + if (!currentList.isEmpty()) { + try { + Boolean aafRoleActive; + Boolean localRoleActive; + boolean result; + aafRoleActive = Boolean.valueOf(roleItem.getActive()); + localRoleActive = Boolean.valueOf(currentList.get(0).getActive()); + result = aafRoleActive.equals(localRoleActive); + EPRole updateRole = currentList.get(0); + + if (!result) { + updateRole.setActive(roleItem.getActive()); + dataAccessService.saveDomainObject(updateRole, null); + } + if (roleItem.getPriority() != null + && !currentList.get(0).getPriority().equals(roleItem.getPriority())) { + updateRole.setPriority(roleItem.getPriority()); + dataAccessService.saveDomainObject(updateRole, null); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "syncApplicationRolesWithEcompDB: Failed to update role ", e); + } + } + } + } + /** + * + * It de-activates application roles in DB if not present in External Auth system + * + * @param app + * @param finalRoleList contains list of current roles present in External Auth System + * @param applicationRolesList contains list of current roles present in DB + */ + @SuppressWarnings("unchecked") + private void inactiveRolesNotInExternalAuthSystem(EPApp app, List finalRoleList, + List applicationRolesList) { + final Map checkRolesInactive = new HashMap<>(); + for (EPRole extrole : finalRoleList) { + checkRolesInactive.put(extrole.getName(), extrole); + } + for (EPRole role : applicationRolesList) { + try { + final Map extRoleParams = new HashMap<>(); + List roleList = null; + extRoleParams.put(APP_ROLE_NAME_PARAM, role.getName()); + if (!checkRolesInactive.containsKey(role.getName())) { + if (app.getId() == 1) { + roleList = dataAccessService.executeNamedQuery(GET_PORTAL_APP_ROLES_QUERY, extRoleParams, null); + } else { + extRoleParams.put(APP_ID, app.getId().toString()); + roleList = dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, extRoleParams, null); + } + EPRole updateRoleInactive = roleList.get(0); + updateRoleInactive.setActive(false); + dataAccessService.saveDomainObject(updateRoleInactive, null); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "syncApplicationRolesWithEcompDB: Failed to de-activate role ", e); + } + } + } + + @Override + @SuppressWarnings("unchecked") + public List getExternalRoleDetailsList(EPApp app, + ObjectMapper mapper, JSONArray extRole) + throws IOException { + List externalRoleDetailsList = new ArrayList<>(); + ExternalRoleDescription ApplicationRole = new ExternalRoleDescription(); + ExternalAccessPerms externalAccessPerms = new ExternalAccessPerms(); + List functionCodelist = new ArrayList<>(); + for (int i = 0; i < extRole.length(); i++) { + ExternalRoleDetails externalRoleDetail = new ExternalRoleDetails(); + EPAppRoleFunction ePAppRoleFunction = new EPAppRoleFunction(); + JSONObject Role = (JSONObject) extRole.get(i); + if (!extRole.getJSONObject(i).has(EXTERNAL_AUTH_ROLE_DESCRIPTION)) { + ApplicationRole.setActive("true"); + ApplicationRole.setAppId(IS_NULL_STRING); + ApplicationRole.setPriority(IS_NULL_STRING); + ApplicationRole.setAppRoleId(IS_NULL_STRING); + String roleName = extRole.getJSONObject(i).getString(ROLE_NAME); + ApplicationRole.setName(roleName.substring(app.getNameSpace().length() + 1)); + } else { + String desc = extRole.getJSONObject(i).getString(EXTERNAL_AUTH_ROLE_DESCRIPTION); + ApplicationRole = mapper.readValue(desc, ExternalRoleDescription.class); + } + + SortedSet externalAccessPermsOfRole = new TreeSet<>(); + if (extRole.getJSONObject(i).has(EXTERNAL_AUTH_PERMS)) { + JSONArray extPerm = (JSONArray) Role.get(EXTERNAL_AUTH_PERMS); + for (int j = 0; j < extPerm.length(); j++) { + JSONObject perms = extPerm.getJSONObject(j); + boolean isNamespaceMatching = EcompPortalUtils.checkNameSpaceMatching(perms.getString("type"), app.getNameSpace()); + if (isNamespaceMatching) { + externalAccessPerms = new ExternalAccessPerms(perms.getString("type"), + perms.getString("instance"), perms.getString("action")); + ePAppRoleFunction.setCode(externalAccessPerms.getInstance()); + functionCodelist.add(ePAppRoleFunction.getCode()); + externalAccessPermsOfRole.add(externalAccessPerms); + } + + } + } + + if (ApplicationRole.getActive().equals(IS_NULL_STRING)) { + externalRoleDetail.setActive(false); + } else { + externalRoleDetail.setActive(Boolean.parseBoolean(ApplicationRole.getActive())); + } + externalRoleDetail.setName(ApplicationRole.getName()); + + if (ApplicationRole.getAppId().equals(IS_NULL_STRING) && app.getId() == 1) { + externalRoleDetail.setAppId(null); + } else if (ApplicationRole.getAppId().equals(IS_NULL_STRING)) { + externalRoleDetail.setAppId(app.getId()); + } else { + externalRoleDetail.setAppId(Long.parseLong(ApplicationRole.getAppId())); + } + + if (ApplicationRole.getPriority().equals(IS_NULL_STRING)) { + externalRoleDetail.setPriority(null); + } else { + externalRoleDetail.setPriority(Integer.parseInt(ApplicationRole.getPriority())); + } + + if (ApplicationRole.getAppRoleId().equals(IS_NULL_STRING) && app.getId() == 1) { + externalRoleDetail.setAppRoleId(null); + } + + // get role functions from DB + final Map roleFunctionsMap = new HashMap<>(); + if (!ApplicationRole.getId().equals(IS_NULL_STRING)) { + final Map appRoleFuncsParams = new HashMap<>(); + appRoleFuncsParams.put("appId", app.getId()); + appRoleFuncsParams.put("roleId", Long.valueOf(ApplicationRole.getId())); + List appRoleFunctions = dataAccessService.executeNamedQuery("getAppRoleFunctionOnRoleIdandAppId", appRoleFuncsParams, null); + if (!appRoleFunctions.isEmpty()) { + for (EPAppRoleFunction roleFunc : appRoleFunctions) { + roleFunctionsMap.put(roleFunc.getCode(), roleFunc); + } + } + } + + if (!externalAccessPermsOfRole.isEmpty()) { + // Adding functions to role + for (ExternalAccessPerms externalpermission : externalAccessPermsOfRole) { + EPAppRoleFunction checkRoleFunctionExits = roleFunctionsMap.get(externalpermission.getInstance()); + if (checkRoleFunctionExits == null) { + String funcCode = externalpermission.getType().substring(app.getNameSpace().length() + 1) + + FUNCTION_PIPE + externalAccessPerms.getInstance() + FUNCTION_PIPE + + externalAccessPerms.getAction(); + EPAppRoleFunction checkRoleFunctionPipeExits = roleFunctionsMap.get(funcCode); + if (checkRoleFunctionPipeExits == null) { + try { + final Map appFuncsParams = new HashMap<>(); + appFuncsParams.put("appId", String.valueOf(app.getId())); + appFuncsParams.put("functionCd", externalpermission.getInstance()); + logger.debug(EELFLoggerDelegate.debugLogger, + "SyncApplicationRolesWithEcompDB: Adding function to the role: {}", + externalpermission.getInstance()); + List roleFunction = null; + roleFunction = dataAccessService.executeNamedQuery("getAppFunctionOnCodeAndAppId", appFuncsParams, null); + if (roleFunction.isEmpty()) { + appFuncsParams.put("functionCd", funcCode); + roleFunction = dataAccessService.executeNamedQuery("getAppFunctionOnCodeAndAppId", appFuncsParams, null); + } + if (!roleFunction.isEmpty()) { + EPAppRoleFunction apRoleFunction = new EPAppRoleFunction(); + apRoleFunction.setAppId(app.getId()); + apRoleFunction.setRoleId(Long.parseLong(ApplicationRole.getId())); + apRoleFunction.setCode(roleFunction.get(0).getCode()); + dataAccessService.saveDomainObject(apRoleFunction, null); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "SyncApplicationRolesWithEcompDB: Failed to add role function", e); + } + } + } + } + } + externalRoleDetailsList.add(externalRoleDetail); + } + return externalRoleDetailsList; + } + + @Override + public JSONArray getAppRolesJSONFromExtAuthSystem(EPApp app) throws Exception { + ResponseEntity response = null; + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + HttpEntity entity = new HttpEntity<>(headers); + logger.debug(EELFLoggerDelegate.debugLogger, "syncApplicationRolesWithEcompDB: {} ", + CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); + response = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "roles/ns/" + app.getNameSpace(), HttpMethod.GET, entity, String.class); + String res = response.getBody(); + logger.debug(EELFLoggerDelegate.debugLogger, + "syncApplicationRolesWithEcompDB: Finished GET roles from External Auth system and the result is :", + res); + JSONObject jsonObj = new JSONObject(res); + JSONArray extRole = jsonObj.getJSONArray("role"); + for (int i = 0; i < extRole.length(); i++) { + if (extRole.getJSONObject(i).getString(ROLE_NAME).equals(app.getNameSpace() + ADMIN) + || extRole.getJSONObject(i).getString(ROLE_NAME).equals(app.getNameSpace() + OWNER) + || (extRole.getJSONObject(i).getString(ROLE_NAME).equals(app.getNameSpace() + ACCOUNT_ADMINISTRATOR) + && !app.getId().equals(PortalConstants.PORTAL_APP_ID))) { + extRole.remove(i); + i--; + } + } + return extRole; + } + + @Override + public JSONArray getAllUsersByRole(String roleName) throws Exception{ + ResponseEntity response = null; + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + HttpEntity entity = new HttpEntity<>(headers); + logger.debug(EELFLoggerDelegate.debugLogger, "getAllUsersByRole: {} ", + CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); + response = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "userRoles/role/" + roleName, HttpMethod.GET, entity, String.class); + String res = response.getBody(); + logger.debug(EELFLoggerDelegate.debugLogger, + "syncApplicationRolesWithEcompDB: Finished GET roles from External Auth system and the result is :", + res); + JSONObject jsonObj = new JSONObject(res); + JSONArray extRole = jsonObj.getJSONArray("userRole"); + + return extRole; + } + + /** + * + * It converts from ExternalRoleDetails.class object to EPRole.class object + * + * @param externalRoleDetails + * @return EPRole object + */ + private EPRole convertExternalRoleDetailstoEpRole(ExternalRoleDetails externalRoleDetails) { + EPRole role = new EPRole(); + role.setActive(externalRoleDetails.isActive()); + role.setAppId(externalRoleDetails.getAppId()); + role.setAppRoleId(externalRoleDetails.getAppRoleId()); + role.setName(externalRoleDetails.getName()); + role.setPriority(externalRoleDetails.getPriority()); + return role; + } + + @SuppressWarnings("unchecked") + @Override + public Integer bulkUploadUserRoles(String uebkey) throws Exception { + EPApp app = getApp(uebkey).get(0); + final Map params = new HashMap<>(); + params.put("uebKey", app.getUebKey()); + List userRolesList = null; + Integer userRolesAdded = 0; + if (app.getCentralAuth()) { + userRolesList = dataAccessService.executeNamedQuery("getBulkUserRoles", params, null); + for (BulkUploadUserRoles userRolesUpload : userRolesList) { + if(!userRolesUpload.getOrgUserId().equals("su1234")){ + addUserRoleInExternalSystem(userRolesUpload); + userRolesAdded++; + } + } + } + return userRolesAdded; + } + + /** + * Its adding a user role in external auth system while doing bulk upload + * + * @param userRolesUpload + */ + private void addUserRoleInExternalSystem(BulkUploadUserRoles userRolesUpload) { + try { + String name = ""; + ObjectMapper mapper = new ObjectMapper(); + if (EPCommonSystemProperties + .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { + name = userRolesUpload.getOrgUserId() + + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); + } + ExternalAccessUser extUser = new ExternalAccessUser(name, + userRolesUpload.getAppNameSpace() + "." + userRolesUpload.getRoleName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")); + String userRole = mapper.writeValueAsString(extUser); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + HttpEntity entity = new HttpEntity<>(userRole, headers); + template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "userRole", + HttpMethod.POST, entity, String.class); + } catch(HttpClientErrorException e){ + logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to addUserRoleInExternalSystem", e); + EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); + } catch (Exception e) { + if (e.getMessage().equalsIgnoreCase("409 Conflict")) { + logger.error(EELFLoggerDelegate.errorLogger, "addUserRoleInExternalSystem: UserRole already exits but does not break functionality"); + } else { + logger.error(EELFLoggerDelegate.errorLogger, "addUserRoleInExternalSystem: Failed to addUserRoleInExternalSystem", e); + } + } + } + + @Override + public void deleteRoleDependencyRecords(Session localSession, Long roleId, Long appId, boolean isPortalRequest) throws Exception { + try { + String sql = ""; + Query query = null; + + //It should delete only when it portal's roleId + if(appId.equals(PortalConstants.PORTAL_APP_ID)){ + // Delete from fn_role_function + sql = "DELETE FROM fn_role_function WHERE role_id=" + roleId; + logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); + query = localSession.createSQLQuery(sql); + query.executeUpdate(); + + // Delete from fn_role_composite + sql = "DELETE FROM fn_role_composite WHERE parent_role_id=" + roleId + " OR child_role_id=" + roleId; + logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); + query = localSession.createSQLQuery(sql); + query.executeUpdate(); + } + + // Delete from ep_app_role_function + sql = "DELETE FROM ep_app_role_function WHERE role_id=" + roleId; + logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); + query = localSession.createSQLQuery(sql); + query.executeUpdate(); + + // Delete from ep_role_notification + sql = "DELETE FROM ep_role_notification WHERE role_id=" + roleId; + logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); + query = localSession.createSQLQuery(sql); + query.executeUpdate(); + + // Delete from fn_user_pseudo_role + sql = "DELETE FROM fn_user_pseudo_role WHERE pseudo_role_id=" + roleId; + logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); + query = localSession.createSQLQuery(sql); + query.executeUpdate(); + + // Delete form EP_WIDGET_CATALOG_ROLE + sql = "DELETE FROM EP_WIDGET_CATALOG_ROLE WHERE role_id=" + roleId; + logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); + query = localSession.createSQLQuery(sql); + query.executeUpdate(); + + // Delete form EP_WIDGET_CATALOG_ROLE + sql = "DELETE FROM ep_user_roles_request_det WHERE requested_role_id=" + roleId; + logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); + query = localSession.createSQLQuery(sql); + query.executeUpdate(); + + if(!isPortalRequest) { + // Delete form fn_menu_functional_roles + sql = "DELETE FROM fn_menu_functional_roles WHERE role_id=" + roleId; + logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); + query = localSession.createSQLQuery(sql); + query.executeUpdate(); + } + } catch (Exception e) { + logger.debug(EELFLoggerDelegate.debugLogger, "deleteRoleDependeciesRecord: failed ", e); + throw new DeleteDomainObjectFailedException("delete Failed" + e.getMessage()); + } + + } + + @SuppressWarnings("unchecked") + @Override + public List getMenuFunctionsList(String uebkey) throws Exception { + List appMenuFunctionsList = null; + try { + EPApp app = getApp(uebkey).get(0); + final Map appParams = new HashMap<>(); + appParams.put(APP_ID, app.getId()); + appMenuFunctionsList = dataAccessService.executeNamedQuery("getMenuFunctions", appParams, null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getMenuFunctionsList: Failed", e); + return appMenuFunctionsList; + } + return appMenuFunctionsList; + } + + @SuppressWarnings({ "unchecked"}) + @Override + public List getAllAppUsers(String uebkey) throws Exception { + List usersList = new ArrayList<>(); + List usersfinalList = new ArrayList<>(); + try { + EPApp app = getApp(uebkey).get(0); + final Map appParams = new HashMap<>(); + appParams.put("appId", app.getId()); + List userList = (List) dataAccessService + .executeNamedQuery("ApplicationUserRoles", appParams, null); + for (EcompUserRoles ecompUserRole : userList) { + boolean found = false; + Set roles = null; + for (EcompUser user : usersfinalList) { + if (user.getOrgUserId().equals(ecompUserRole.getOrgUserId())) { + EcompRole ecompRole = new EcompRole(); + ecompRole.setId(ecompUserRole.getRoleId()); + ecompRole.setName(ecompUserRole.getRoleName()); + roles = user.getRoles(); + roles.add(ecompRole); + user.setRoles(roles); + found = true; + break; + } + } + + if (!found) { + EcompUser epUser = new EcompUser(); + epUser.setOrgId(ecompUserRole.getOrgId()); + epUser.setManagerId(ecompUserRole.getManagerId()); + epUser.setFirstName(ecompUserRole.getFirstName()); + epUser.setLastName(ecompUserRole.getLastName()); + epUser.setPhone(ecompUserRole.getPhone()); + epUser.setEmail(ecompUserRole.getEmail()); + epUser.setOrgUserId(ecompUserRole.getOrgUserId()); + epUser.setOrgCode(ecompUserRole.getOrgCode()); + epUser.setOrgManagerUserId(ecompUserRole.getOrgManagerUserId()); + epUser.setJobTitle(ecompUserRole.getJobTitle()); + epUser.setLoginId(ecompUserRole.getLoginId()); + epUser.setActive(true); + roles = new HashSet<>(); + EcompRole ecompRole = new EcompRole(); + ecompRole.setId(ecompUserRole.getRoleId()); + ecompRole.setName(ecompUserRole.getRoleName()); + roles.add(ecompRole); + epUser.setRoles(roles); + usersfinalList.add(epUser); + } + } + ObjectMapper mapper = new ObjectMapper(); + + for (EcompUser u1 : usersfinalList) { + String str = mapper.writeValueAsString(u1); + usersList.add(str); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAllUsers failed", e); + throw e; + } + return usersfinalList; + } + + + @Override + public Role ConvertCentralRoleToRole(String result) { + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + Role newRole = new Role(); + try { + newRole = mapper.readValue(result, Role.class); + } catch (IOException e) { + logger.error(EELFLoggerDelegate.errorLogger, "Failed to convert the result to Role Object", e); + } + if (newRole.getRoleFunctions() != null) { + @SuppressWarnings("unchecked") + Set roleFunctionList = newRole.getRoleFunctions(); + Set roleFunctionListNew = new HashSet<>(); + Iterator itetaror = roleFunctionList.iterator(); + while (itetaror.hasNext()) { + Object nextValue = itetaror.next(); + RoleFunction roleFun = mapper.convertValue(nextValue, RoleFunction.class); + roleFunctionListNew.add(roleFun); + } + newRole.setRoleFunctions(roleFunctionListNew); + } + return newRole; + } + + @Override + @SuppressWarnings("unchecked") + public List getCentralizedAppsOfUser(String userId) { + Map params = new HashMap<>(); + params.put("userId", userId); + List centralizedAppsList = new ArrayList<>(); + try{ + centralizedAppsList = dataAccessService + .executeNamedQuery("getCentralizedAppsOfUser", params, null); + }catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getCentralizedAppsOfUser failed", e); + } + return centralizedAppsList; + } + + @SuppressWarnings("unchecked") + public List getGlobalRolesOfApplication(Long appId) { + Map params = new HashMap<>(); + params.put("appId", appId); + List globalRoles = new ArrayList<>(); + try { + globalRoles = dataAccessService.executeNamedQuery("getGlobalRoleWithApplicationRoleFunctions", params, + null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getCentralizedAppsOfUser failed", e); + } + List rolesfinalList = new ArrayList<>(); + if (globalRoles.size() > 0) + rolesfinalList = finalListOfCentralRoles(globalRoles); + return rolesfinalList; + } + + @SuppressWarnings("unchecked") + private CentralV2Role getGlobalRoleForRequestedApp(long requestedAppId, long roleId) { + CentralV2Role finalGlobalrole = null; + List roleWithApplicationRoleFucntions = new ArrayList<>(); + Map params = new HashMap<>(); + params.put("roleId", roleId); + params.put("requestedAppId", requestedAppId); + try { + roleWithApplicationRoleFucntions = dataAccessService.executeNamedQuery("getGlobalRoleForRequestedApp", + params, null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getGlobalRoleForRequestedApp failed", e); + } + if (roleWithApplicationRoleFucntions.size() > 0) { + List rolesfinalList = finalListOfCentralRoles(roleWithApplicationRoleFucntions); + finalGlobalrole = rolesfinalList.get(0); + } else { + List roleList = getPortalAppRoleInfo(roleId); + finalGlobalrole = convertRoleToCentralV2Role(roleList.get(0)); + } + return finalGlobalrole; + } + + private List finalListOfCentralRoles(List globalRoles) { + List rolesfinalList = new ArrayList<>(); + for (GlobalRoleWithApplicationRoleFunction role : globalRoles) { + boolean found = false; + for (CentralV2Role cenRole : rolesfinalList) { + if (role.getRoleId().equals(cenRole.getId())) { + SortedSet roleFunctions = cenRole.getRoleFunctions(); + CentralV2RoleFunction cenRoleFun = createCentralRoleFunctionForGlobalRole(role); + roleFunctions.add(cenRoleFun); + cenRole.setRoleFunctions(roleFunctions); + found = true; + break; + } + } + if (!found) { + CentralV2Role cenrole = new CentralV2Role(); + cenrole.setName(role.getRoleName()); + cenrole.setId(role.getRoleId()); + cenrole.setActive(role.isActive()); + cenrole.setPriority(role.getPriority()); + SortedSet roleFunctions = new TreeSet<>(); + CentralV2RoleFunction cenRoleFun = createCentralRoleFunctionForGlobalRole(role); + roleFunctions.add(cenRoleFun); + cenrole.setRoleFunctions(roleFunctions); + rolesfinalList.add(cenrole); + } + } + return rolesfinalList; + } + + private CentralV2RoleFunction createCentralRoleFunctionForGlobalRole(GlobalRoleWithApplicationRoleFunction role) { + String instance; + String type; + String action; + CentralV2RoleFunction cenRoleFun; + if(role.getFunctionCd().contains(FUNCTION_PIPE)){ + instance = EcompPortalUtils.getFunctionCode(role.getFunctionCd()); + type = EcompPortalUtils.getFunctionType(role.getFunctionCd()); + action = EcompPortalUtils.getFunctionAction(role.getFunctionCd()); + cenRoleFun = new CentralV2RoleFunction(null, instance, role.getFunctionName(), null, type, action, null); + } else{ + type = getFunctionType(role.getFunctionCd()); + action = getFunctionAction(role.getFunctionCd()); + cenRoleFun = new CentralV2RoleFunction(null, role.getFunctionCd(), role.getFunctionName(), null, type, action, null); + } + return cenRoleFun; + } + + @SuppressWarnings("unchecked") + @Override + public List getGlobalRolesOfPortal() { + List globalRoles = new ArrayList<>(); + try { + globalRoles = dataAccessService.executeNamedQuery("getGlobalRolesOfPortal", null, null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getGlobalRolesOfPortal failed", e); + } + return globalRoles; + } + + private CentralV2Role convertRoleToCentralV2Role(EPRole role) { + return new CentralV2Role(role.getId(), role.getCreated(), role.getModified(), role.getCreatedId(), + role.getModifiedId(), role.getRowNum(), role.getName(), role.getActive(), role.getPriority(), + new TreeSet<>(), new TreeSet<>(), new TreeSet<>()); + + } + + @Override + public List convertCentralRoleFunctionToRoleFunctionObject(List answer) { + List addRoleFuncList = new ArrayList<>(); + for(CentralV2RoleFunction cenRoleFunc : answer){ + RoleFunction setRoleFunc = new RoleFunction(); + setRoleFunc.setCode(cenRoleFunc.getCode()); + setRoleFunc.setName(cenRoleFunc.getName()); + addRoleFuncList.add(setRoleFunc); + } + return addRoleFuncList; + } + + @Override + public CentralUser getUserRoles(String loginId, String uebkey) throws Exception { + CentralUser sendUserRoles = null; + + try { + CentralV2User cenV2User = getV2UserAppRoles(loginId, uebkey); + sendUserRoles = convertV2UserRolesToOlderVersion(cenV2User); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUserRoles: failed", e); + } + return sendUserRoles; + } + + /** + * + * It returns V2 CentralUser object if user has any roles and permissions + * + * @param loginId + * @param uebkey + * @return CentralUser object + * @throws Exception + */ + private CentralV2User getV2UserAppRoles(String loginId, String uebkey) throws Exception { + EPApp app; + List epUserList; + List appList = getApp(uebkey); + app = appList.get(0); + epUserList = getUser(loginId); + EPUser user = epUserList.get(0); + Set userAppSet = user.getEPUserApps(); + return createEPUser(user, userAppSet, app); + } + + /** + * It converts V2 CentralUser object to old version CentralUser object + * + * @param cenV2User + * @return EPUser object + */ + private CentralUser convertV2UserRolesToOlderVersion(CentralV2User cenV2User) { + Set userV2Apps = cenV2User.getUserApps(); + Set userApps = new TreeSet<>(); + for(CentralV2UserApp userApp : userV2Apps){ + CentralApp app = userApp.getApp(); + CentralUserApp cua = new CentralUserApp(); + cua.setUserId(null); + cua.setApp(app); + SortedSet cenRoleFunction = new TreeSet<>(); + for(CentralV2RoleFunction cenV2RoleFunc : userApp.getRole().getRoleFunctions() ){ + CentralRoleFunction cenRoleFunc = new CentralRoleFunction(cenV2RoleFunc.getCode(), cenV2RoleFunc.getName()); + cenRoleFunction.add(cenRoleFunc); + } + CentralRole role = new CentralRole(userApp.getRole().getId(), userApp.getRole().getName(), userApp.getRole().isActive(), userApp.getRole().getPriority(), + cenRoleFunction); + cua.setRole(role); + userApps.add(cua); + } + return new CentralUser(cenV2User.getId(), cenV2User.getCreated(), cenV2User.getModified(), + cenV2User.getCreatedId(),cenV2User.getModifiedId(), + cenV2User.getRowNum(), cenV2User.getOrgId(), cenV2User.getManagerId(), cenV2User.getFirstName(), + cenV2User.getMiddleInitial(), cenV2User.getLastName(), cenV2User.getPhone(), cenV2User.getFax(), + cenV2User.getCellular(),cenV2User.getEmail(),cenV2User.getAddressId(),cenV2User.getAlertMethodCd(), + cenV2User.getHrid(),cenV2User.getOrgUserId(),cenV2User.getOrgCode(),cenV2User.getAddress1(), + cenV2User.getAddress2(),cenV2User.getCity(),cenV2User.getState(),cenV2User.getZipCode(),cenV2User.getCountry(), + cenV2User.getOrgManagerUserId(),cenV2User.getLocationClli(),cenV2User.getBusinessCountryCode(), + cenV2User.getBusinessCountryName(),cenV2User.getBusinessUnit(),cenV2User.getBusinessUnitName(), + cenV2User.getDepartment(),cenV2User.getDepartmentName(),cenV2User.getCompanyCode(), + cenV2User.getCompany(),cenV2User.getZipCodeSuffix(),cenV2User.getJobTitle(), + cenV2User.getCommandChain(),cenV2User.getSiloStatus(),cenV2User.getCostCenter(), + cenV2User.getFinancialLocCode(),cenV2User.getLoginId(),cenV2User.getLoginPwd(), + cenV2User.getLastLoginDate(),cenV2User.isActive(),cenV2User.isInternal(),cenV2User.getSelectedProfileId(),cenV2User.getTimeZoneId(), + cenV2User.isOnline(),cenV2User.getChatId(), + userApps); + } + + @Override + public List convertV2CentralRoleListToOldVerisonCentralRoleList(List v2CenRoleList) { + List cenRoleList = new ArrayList<>(); + SortedSet cenRoleFuncList = new TreeSet<>(); + for(CentralV2Role v2CenRole : v2CenRoleList){ + for(CentralV2RoleFunction v2CenRoleFunc: v2CenRole.getRoleFunctions()){ + CentralRoleFunction roleFunc = new CentralRoleFunction(v2CenRoleFunc.getCode(), v2CenRoleFunc.getName()); + cenRoleFuncList.add(roleFunc); + } + CentralRole role = new CentralRole(v2CenRole.getId(), v2CenRole.getName(), v2CenRole.isActive(), v2CenRole.getPriority(), cenRoleFuncList); + cenRoleList.add(role); + } + return cenRoleList; + } + + @Override + public ResponseEntity getNameSpaceIfExists(EPApp app) throws Exception { + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + HttpEntity entity = new HttpEntity<>(headers); + logger.debug(EELFLoggerDelegate.debugLogger, "checkIfNameSpaceExists: Connecting to External Auth system"); + ResponseEntity response = null; + try { + response = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "nss/" + app.getNameSpace(), HttpMethod.GET, entity, String.class); + logger.debug(EELFLoggerDelegate.debugLogger, "checkIfNameSpaceExists: Finished ", + response.getStatusCode().value()); + } catch (HttpClientErrorException e) { + logger.error(EELFLoggerDelegate.errorLogger, "checkIfNameSpaceExists failed", e); + EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); + if (e.getStatusCode() == HttpStatus.NOT_FOUND) + throw new InvalidApplicationException("Invalid NameSpace"); + else + throw e; + } + return response; + } + + @Override + public CentralRole convertV2CentralRoleToOldVerisonCentralRole(CentralV2Role v2CenRole) { + SortedSet cenRoleFuncList = new TreeSet<>(); + for (CentralV2RoleFunction v2CenRoleFunc : v2CenRole.getRoleFunctions()) { + CentralRoleFunction roleFunc = new CentralRoleFunction(v2CenRoleFunc.getCode(), v2CenRoleFunc.getName()); + cenRoleFuncList.add(roleFunc); + } + return new CentralRole(v2CenRole.getId(), v2CenRole.getName(), v2CenRole.isActive(), v2CenRole.getPriority(), + cenRoleFuncList); + } + + @SuppressWarnings("unchecked") + @Override + public Integer bulkUploadUsersSingleRole(String uebkey, Long roleId, String modifiedRoleName) throws Exception { + EPApp app = getApp(uebkey).get(0); + final Map params = new HashMap<>(); + params.put("uebKey", app.getUebKey()); + params.put("roleId", String.valueOf(roleId)); + List userRolesList = null; + Integer userRolesAdded = 0; + if (app.getCentralAuth()) { + userRolesList = dataAccessService.executeNamedQuery("getBulkUsersForSingleRole", params, null); + for (BulkUploadUserRoles userRolesUpload : userRolesList) { + userRolesUpload.setRoleName(modifiedRoleName); + if(!userRolesUpload.getOrgUserId().equals("su1234")){ + addUserRoleInExternalSystem(userRolesUpload); + userRolesAdded++; + } + } + } + return userRolesAdded; + } + + @Override + public String encodeFunctionCode(String funCode){ + String encodedString = funCode; + List encodingList = new ArrayList<>(); + encodingList.add(Pattern.compile("/")); + encodingList.add(Pattern.compile("-")); + for (Pattern xssInputPattern : encodingList) { + encodedString = xssInputPattern.matcher(encodedString) + .replaceAll("%" + Hex.encodeHexString(xssInputPattern.toString().getBytes())); + } + encodedString = encodedString.replaceAll("\\*", "%"+ Hex.encodeHexString("*".getBytes())); + return encodedString; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/FunctionalMenuService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/FunctionalMenuService.java new file mode 100644 index 00000000..fa703bdf --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/FunctionalMenuService.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.FunctionalMenuItemWithAppID; +import org.onap.portalapp.portal.transport.BusinessCardApplicationRole; +import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItem; +import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; +import org.onap.portalapp.portal.transport.FunctionalMenuItemWithRoles; +import org.onap.portalapp.portal.transport.FunctionalMenuRole; + +public interface FunctionalMenuService { + List getFunctionalMenuItems (EPUser user); + // return all active menu items + List getFunctionalMenuItems (); + // return all active menu items. If all is true, return all active and inactive menu items. + List getFunctionalMenuItems(Boolean all); + // return all active Functional menu items for Notification Tree in User Notification . If all is true, return all active menu items. + List getFunctionalMenuItemsForNotificationTree(Boolean all); + List getFunctionalMenuItemsForApp (Integer appId); + List getFunctionalMenuItemsForUser (String orgUserId); + FunctionalMenuItem getFunctionalMenuItemDetails (Long menuid); + FieldsValidator createFunctionalMenuItem (FunctionalMenuItemWithRoles menuItemJson); + FieldsValidator editFunctionalMenuItem (FunctionalMenuItemWithRoles menuItemJson); + FieldsValidator deleteFunctionalMenuItem (Long menuId); + FieldsValidator regenerateAncestorTable (); + //Methods relevant to favorites + FieldsValidator setFavoriteItem(FavoritesFunctionalMenuItem menuItemJson); + List getFavoriteItems(Long userId); + FieldsValidator removeFavoriteItem (Long userId, Long menuId); + List transformFunctionalMenuItemWithAppIDToFunctionalMenuItem(List functionalMenuItemWithAppIDList); + List getFunctionalMenuRole(); + //Assign URLs under Help Menu + void assignHelpURLs(List menuItems); + List getUserAppRolesList(String userId); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/FunctionalMenuServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/FunctionalMenuServiceImpl.java new file mode 100644 index 00000000..a6a4ca31 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/FunctionalMenuServiceImpl.java @@ -0,0 +1,1016 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.Query; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Projections; +import org.hibernate.criterion.Restrictions; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.FunctionalMenuItemWithAppID; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.transport.BusinessCardApplicationRole; +import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItem; +import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; +import org.onap.portalapp.portal.transport.FunctionalMenuItemWithRoles; +import org.onap.portalapp.portal.transport.FunctionalMenuRole; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; + +@Service("functionalMenuService") +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class FunctionalMenuServiceImpl implements FunctionalMenuService { + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FunctionalMenuServiceImpl.class); + + private Long ACCOUNT_ADMIN_ROLE_ID = 999L; + private String RESTRICTED_APP_ROLE_ID = "900"; + + @Autowired + private DataAccessService dataAccessService; + @Autowired + private SessionFactory sessionFactory; + + @PostConstruct + private void init() { + try { + ACCOUNT_ADMIN_ROLE_ID = Long + .valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ACCOUNT_ADMIN_ROLE_ID)); + RESTRICTED_APP_ROLE_ID = SystemProperties.getProperty(EPCommonSystemProperties.RESTRICTED_APP_ROLE_ID); + } catch (Exception e) { + } + } + + public List getFunctionalMenuItems(EPUser user) { + List menuItems = new ArrayList(); + return menuItems; + } + + public List getFunctionalMenuItems() { + return getFunctionalMenuItems(false); + } + + public List getFunctionalMenuItems(Boolean all) { + // Divide this into 2 queries: one which returns the bottom-level menu items + // associated with Restricted apps, + // and one that returns all the other menu items. Then we can easily add the + // boolean flag + // restrictedApp to each FunctionalMenuItem, to be used by the front end. + String activeWhereClause = ""; + if (!all) { + activeWhereClause = " AND UPPER(m.active_yn) = 'Y' "; + } + String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id " + + "FROM fn_menu_functional m, fn_menu_functional_roles r " + "WHERE m.menu_id = r.menu_id " + + activeWhereClause // " AND UPPER(m.active_yn) = 'Y' " + + " AND r.role_id != '" + RESTRICTED_APP_ROLE_ID + "' " + " UNION " + + " SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn,-1 app_id " + + " FROM fn_menu_functional m " + " WHERE m.url='' " + activeWhereClause; // " AND UPPER(m.active_yn) = + // 'Y' "; + logQuery(sql); + + @SuppressWarnings("unchecked") + List menuItemsWithAppIdList = dataAccessService.executeSQLQuery(sql, + FunctionalMenuItemWithAppID.class, null); + List menuItems = new ArrayList<>(); + menuItems = transformFunctionalMenuItemWithAppIDToFunctionalMenuItem(menuItemsWithAppIdList); + for (FunctionalMenuItem menuItem : menuItems) { + menuItem.restrictedApp = false; + } + + sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id " + + "FROM fn_menu_functional m, fn_menu_functional_roles r " + "WHERE m.menu_id = r.menu_id " + + activeWhereClause // " AND UPPER(m.active_yn) = 'Y' " + + " AND r.role_id = '" + RESTRICTED_APP_ROLE_ID + "' "; + logQuery(sql); + @SuppressWarnings("unchecked") + List menuItems2 = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); + for (FunctionalMenuItem menuItem : menuItems2) { + menuItem.restrictedApp = true; + menuItems.add(menuItem); + } + + return menuItems; + } + + public List getFunctionalMenuItemsForNotificationTree(Boolean all) { + // Divide this into 2 queries: one which returns the bottom-level menu items + // associated with Restricted apps, + // and one that returns all the other menu items which are active. Then we can + // easily add the boolean flag + // restrictedApp to each FunctionalMenuItem, to be used by the front end. + String activeWhereClause = ""; + if (!all) { + activeWhereClause = " AND UPPER(m.active_yn) = 'Y' "; + } + String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id " + + "FROM fn_menu_functional m, fn_menu_functional_roles r " + "WHERE m.menu_id = r.menu_id " + + activeWhereClause + " AND UPPER(m.active_yn) = 'Y' " + " AND r.role_id != '" + RESTRICTED_APP_ROLE_ID + + "' " + " UNION " + + " SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn,-1 app_id " + + " FROM fn_menu_functional m " + " WHERE m.url='' " + activeWhereClause + + " AND UPPER(m.active_yn) = 'Y' "; + logQuery(sql); + + @SuppressWarnings("unchecked") + List menuItemsWithAppIdList = dataAccessService.executeSQLQuery(sql, + FunctionalMenuItemWithAppID.class, null); + List menuItems = new ArrayList<>(); + menuItems = transformFunctionalMenuItemWithAppIDToFunctionalMenuItem(menuItemsWithAppIdList); + for (FunctionalMenuItem menuItem : menuItems) { + menuItem.restrictedApp = false; + } + + sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id " + + "FROM fn_menu_functional m, fn_menu_functional_roles r " + "WHERE m.menu_id = r.menu_id " + + activeWhereClause + " AND UPPER(m.active_yn) = 'Y' " + " AND r.role_id = '" + RESTRICTED_APP_ROLE_ID + + "' "; + logQuery(sql); + @SuppressWarnings("unchecked") + List menuItems2 = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); + for (FunctionalMenuItem menuItem : menuItems2) { + menuItem.restrictedApp = true; + menuItems.add(menuItem); + } + + return menuItems; + } + + public List getFunctionalMenuItemsForApp(Integer appId) { + String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn " + + " FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, fn_menu_functional_roles mr " + + " WHERE " + " mr.app_id='" + appId + "' " + " AND mr.menu_id = m.menu_id " + + " AND UPPER(m.active_yn) = 'Y'" + " AND UPPER(m1.active_yn) ='Y'" + " AND a.menu_id = m.menu_id " + + " AND a.ancestor_menu_id = m1.menu_id"; + logQuery(sql); + logger.debug(EELFLoggerDelegate.debugLogger, "getFunctionalMenuItemsForApp: logged the query"); + + @SuppressWarnings("unchecked") + List menuItems = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); + + return menuItems; + } + + /** + * convert List of FunctionalMenuItemWithAppID into List of FunctionalMenuItem + * + */ + public List transformFunctionalMenuItemWithAppIDToFunctionalMenuItem( + List functionalMenuItemWithAppIDList) { + List functionalMenuItemList = new ArrayList(); + for (FunctionalMenuItemWithAppID functionalMenuItemWithAppID : functionalMenuItemWithAppIDList) { + FunctionalMenuItem menuItem = new FunctionalMenuItem(); + menuItem.menuId = functionalMenuItemWithAppID.menuId; + menuItem.column = functionalMenuItemWithAppID.column; + menuItem.text = functionalMenuItemWithAppID.text; + menuItem.parentMenuId = functionalMenuItemWithAppID.parentMenuId; + menuItem.url = functionalMenuItemWithAppID.url; + menuItem.active_yn = functionalMenuItemWithAppID.active_yn; + menuItem.appid = functionalMenuItemWithAppID.appid; + menuItem.setRoles(functionalMenuItemWithAppID.roles); + menuItem.restrictedApp = functionalMenuItemWithAppID.restrictedApp; + functionalMenuItemList.add(menuItem); + } + return functionalMenuItemList; + } + + public List getFunctionalMenuItemsForUser(String orgUserId) { + // m represents the functional menu items that are the leaf nodes + // m1 represents the functional menu items for all the nodes + + // Divide this into 2 queries: one which returns the bottom-level menu items + // associated with Restricted apps, + // and one that returns all the other menu items. Then we can easily add the + // boolean flag + // restrictedApp to each FunctionalMenuItem, to be used by the front end. + String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn " + + " FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, " + + " fn_menu_functional_roles mr, fn_user u , fn_user_role ur " + " WHERE " + " u.org_user_id='" + + orgUserId + "' " + " AND u.user_id = ur.user_id " + " AND ur.app_id = mr.app_id " + + // " AND ur.role_id = mr.role_id " + + " AND (ur.role_id = mr.role_id " + " OR ur.role_id = '" + ACCOUNT_ADMIN_ROLE_ID + "') " + + " AND m.menu_id = mr.menu_id " + " AND UPPER(m.active_yn) = 'Y'" + " AND UPPER(m1.active_yn) ='Y' " + + " AND a.menu_id = m.menu_id " + " AND a.ancestor_menu_id = m1.menu_id " + " UNION " + // the ancestors of the restricted app menu items + + " select m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m1.active_yn " + + " FROM fn_menu_functional m, fn_menu_functional_roles mr, fn_menu_functional m1, " + + " fn_menu_functional_ancestors a " + " where a.menu_id = m.menu_id " + + " AND a.ancestor_menu_id = m1.menu_id " + " AND m.menu_id != m1.menu_id " + + " AND m.menu_id = mr.menu_id " + " AND mr.role_id = '" + RESTRICTED_APP_ROLE_ID + "' " + + " AND UPPER(m.active_yn) = 'Y'" + " AND UPPER(m1.active_yn) ='Y' " + // Add the Favorites menu item + + " UNION " + " SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn " + + " FROM fn_menu_functional m " + + " WHERE m.text in ('Favorites','Get Access','Contact Us','Support','User Guide','Help')"; + + logQuery(sql); + logger.debug(EELFLoggerDelegate.debugLogger, "getFunctionalMenuItemsForUser: logged the query"); + + @SuppressWarnings("unchecked") + List menuItems = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); + for (FunctionalMenuItem menuItem : menuItems) { + menuItem.restrictedApp = false; + } + + sql = " SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn " + + " FROM fn_menu_functional m, fn_menu_functional_roles r " + " WHERE m.menu_id = r.menu_id " + + " AND UPPER(m.active_yn) = 'Y' " + " AND r.role_id = '" + RESTRICTED_APP_ROLE_ID + "' "; + logQuery(sql); + @SuppressWarnings("unchecked") + List menuItems2 = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); + for (FunctionalMenuItem menuItem : menuItems2) { + menuItem.restrictedApp = true; + menuItems.add(menuItem); + } + + return menuItems; + } + + public FunctionalMenuItem getFunctionalMenuItemDetails(Long menuid) { + // First, fill in the fields that apply to all menu items + + List menuItems = getFunctionalMenuItem(menuid); + FunctionalMenuItem menuItem = (menuItems == null || menuItems.isEmpty() ? null : menuItems.get(0)); + // If it is a bottom-level menu item, must fill in the appid and the + // roles + List roleItems = getFunctionalMenuRoleWithMenuId(menuid); + if (roleItems.size() > 0 && menuItem != null) { + Integer appid = roleItems.get(0).appId; + menuItem.appid = appid; + List roles = new ArrayList(); + for (FunctionalMenuRole roleItem : roleItems) { + logger.debug(EELFLoggerDelegate.debugLogger, + "LR: app_id: " + roleItem.appId + "; role_id: " + roleItem.roleId + "\n"); + roles.add(roleItem.roleId); + } + menuItem.setRoles(roles); + } + + return menuItem; + } + + @SuppressWarnings("unchecked") + private List getFunctionalMenuItem(Long menuid) { + List restrictionsList = new ArrayList(); + Criterion textCriterion = Restrictions.eq("menuId",menuid); + restrictionsList.add(textCriterion); + return (List) dataAccessService.getList(FunctionalMenuItem.class, null, restrictionsList, null); + } + + @SuppressWarnings("unchecked") + private List getFunctionalMenuRoleWithMenuId(Long menuid) { + List restrictionsList = new ArrayList(); + Criterion textCriterion = Restrictions.eq("menuId",menuid); + restrictionsList.add(textCriterion); + return (List) dataAccessService.getList(FunctionalMenuRole.class, null, restrictionsList, null); + } + + private FieldsValidator menuItemFieldsChecker(FunctionalMenuItemWithRoles menuItemJson) { + FieldsValidator fieldsValidator = new FieldsValidator(); + try { + // TODO: validate all the fields + List functionalMenuItems = getFunctionalMenuItemWithText(menuItemJson); + boolean dublicatedName = false; + for (FunctionalMenuItem fnMenuItem : functionalMenuItems) { + if (menuItemJson.menuId != null && menuItemJson.menuId.equals(fnMenuItem.menuId)) { + // FunctionalMenuItem should not be compared with itself + continue; + } + + if (!dublicatedName && fnMenuItem.text.equalsIgnoreCase(menuItemJson.text)) { + dublicatedName = true; + break; + } + } + if (dublicatedName) { + fieldsValidator.addProblematicFieldName("text"); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); + fieldsValidator.errorCode = new Long(EPCommonSystemProperties.DUBLICATED_FIELD_VALUE_ECOMP_ERROR); + logger.debug(EELFLoggerDelegate.debugLogger, + "In menuItemFieldsChecker, Error: we have an duplicate text field"); + } else if (StringUtils.isEmpty(menuItemJson.text) && menuItemJson.menuId == null) { + // text must be non empty for a create. For an edit, can be empty, which means + // it is a move request. + // a null menuId indicates a create. + fieldsValidator.addProblematicFieldName("text"); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); + logger.debug(EELFLoggerDelegate.debugLogger, + "In menuItemFieldsChecker, Error: we have an empty text field"); + } else { + // The url, appid, and roles must either be all filled or all empty. + Boolean urlIsEmpty = StringUtils.isEmpty(menuItemJson.url); + Boolean rolesIsEmpty = menuItemJson.getRoles() == null || menuItemJson.getRoles().isEmpty(); + Boolean appidIsEmpty = menuItemJson.appid == null || menuItemJson.appid == 0; + logger.debug(EELFLoggerDelegate.debugLogger, "LR: menuItemfieldsChecker: urlIsEmpty: " + urlIsEmpty + + "; rolesIsEmpty: " + rolesIsEmpty + "; appidIsEmpty: " + appidIsEmpty + "\n"); + if (!((urlIsEmpty && rolesIsEmpty && appidIsEmpty) + || (!urlIsEmpty && !rolesIsEmpty && !appidIsEmpty))) { + fieldsValidator.addProblematicFieldName("url,roles,appid"); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); + logger.debug(EELFLoggerDelegate.debugLogger, + "In menuItemFieldsChecker, Error: we don't have: either all 3 fields empty or all 3 fields nonempty"); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, + "In menuItemFieldsChecker, Success: either all 3 fields empty or all 3 fields nonempty"); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "menuItemFieldsChecker failed", e); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + + return fieldsValidator; + } + + @SuppressWarnings("unchecked") + private List getFunctionalMenuItemWithText(FunctionalMenuItemWithRoles menuItemJson) { + List restrictionsList = new ArrayList(); + Criterion textCriterion = Restrictions.eq("text",menuItemJson.text); + restrictionsList.add(textCriterion); + return (List) dataAccessService.getList(FunctionalMenuItem.class, null, restrictionsList, null); + } + + // Turn foreign key checks on or off + protected void setForeignKeys(Session localSession, Boolean on) { + String keyCheck = "0"; + if (on) { + keyCheck = "1"; + } + String sql = "set FOREIGN_KEY_CHECKS=" + keyCheck; + logQuery(sql); + Query query = localSession.createSQLQuery(sql); + query.executeUpdate(); + } + + public FieldsValidator createFunctionalMenuItem(FunctionalMenuItemWithRoles menuItemJson) { + FieldsValidator fieldsValidator = menuItemFieldsChecker(menuItemJson); + if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { + logger.debug(EELFLoggerDelegate.debugLogger, "LR: createFunctionalMenuItem: test 1"); + boolean result = false; + Session localSession = null; + Transaction transaction = null; + try { + FunctionalMenuItem menuItem = new FunctionalMenuItem(); + menuItem.appid = menuItemJson.appid; + menuItem.setRoles(menuItemJson.getRoles()); + menuItem.url = menuItemJson.url; + menuItem.text = menuItemJson.text; + menuItem.parentMenuId = menuItemJson.parentMenuId; + menuItem.active_yn = "Y"; + localSession = sessionFactory.openSession(); + + // If the app is disabled, deactivate the menu item. + if (menuItemJson.appid != null) { + Long appidLong = Long.valueOf(menuItemJson.appid); + EPApp app = (EPApp) localSession.get(EPApp.class, appidLong); + if (app != null && !app.getEnabled()) { + menuItem.active_yn = "N"; + } + } + + // Set the column number to 1 higher than the highest column + // number under this parent. + Criteria criteria = localSession.createCriteria(FunctionalMenuItem.class); + criteria.setProjection(Projections.max("column")); + criteria.add(Restrictions.eq("parentMenuId", menuItem.parentMenuId)); + Integer maxColumn = (Integer) criteria.uniqueResult(); + if (maxColumn == null) { + maxColumn = 0; + } + menuItem.column = maxColumn + 1; + logger.debug(EELFLoggerDelegate.debugLogger, "about to create menu item: " + menuItem.toString()); + + transaction = localSession.beginTransaction(); + // localSession.saveOrUpdate(newMenuItem); + localSession.save(menuItem); + Long menuid = menuItem.menuId; + menuItemJson.menuId = menuid; + logger.debug(EELFLoggerDelegate.debugLogger, "after saving menu object, new id: " + menuid); + + // Next, save all the roles + + addRoles(menuItemJson, localSession); + transaction.commit(); + result = true; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "createFunctionalMenuItem failed", e); + EcompPortalUtils.rollbackTransaction(transaction, + "createFunctionalMenuItem rollback, exception = " + e.toString()); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "createFunctionalMenuItem"); + } + if (result) { + } else { + logger.debug(EELFLoggerDelegate.debugLogger, + "LR: createFunctionalMenuItem: no result. setting httpStatusCode to " + + HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "FunctionalMenuServiceImpl.createFunctionalMenuItem: bad request"); + } + return fieldsValidator; + } + + /* Add all the roles in the menu item to the database */ + public void addRoles(FunctionalMenuItemWithRoles menuItemJson, Session localSession) { + logger.debug(EELFLoggerDelegate.debugLogger, "entering addRoles."); + List roles = menuItemJson.getRoles(); + if (roles != null && roles.size() > 0) { + Integer appid = menuItemJson.appid; + Long menuid = menuItemJson.menuId; + for (Integer roleid : roles) { + logger.debug(EELFLoggerDelegate.debugLogger, "about to create record for role: " + roleid); + FunctionalMenuRole role = new FunctionalMenuRole(); + role.appId = appid; + role.menuId = menuid; + role.roleId = roleid; + localSession.save(role); + logger.debug(EELFLoggerDelegate.debugLogger, "after saving role menu object, new id: " + role.id); + } + } + } + + /* Delete all the roles associated with the menu item from the database */ + public void deleteRoles(Long menuId) { + dataAccessService.deleteDomainObjects(FunctionalMenuRole.class, "menu_id='" + menuId + "'", null); + } + + /* Delete all favorites associated with the menu item from the database */ + public void deleteFavorites(Long menuId) { + dataAccessService.deleteDomainObjects(FavoritesFunctionalMenuItem.class, "menu_id='" + menuId + "'", null); + } + + private Boolean parentMenuIdEqual(Integer menuId1, Integer menuId2) { + return ((menuId1 == null && menuId2 == null) || (menuId1 != null && menuId1.equals(menuId2))); + } + + private void updateColumnForSiblings(Session localSession, Long menuId, Integer oldParentMenuId, + Integer newParentMenuId, Integer oldColumn, Integer newColumn) { + logger.debug(EELFLoggerDelegate.debugLogger, "entering updateColumnForSiblings"); + Criteria criteria = localSession.createCriteria(FunctionalMenuItem.class); + criteria.add(Restrictions.ne("menuId", menuId)); + if (parentMenuIdEqual(oldParentMenuId, newParentMenuId)) { + logger.debug(EELFLoggerDelegate.debugLogger, "moving under the same parent"); + // We are moving to a new position under the same parent + if (newParentMenuId == null) { + logger.debug(EELFLoggerDelegate.debugLogger, "newParentMenuId is null, so using isNull"); + criteria.add(Restrictions.isNull("parentMenuId")); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "newParentMenuId is NOT null, so using eq"); + criteria.add(Restrictions.eq("parentMenuId", newParentMenuId)); + } + if (oldColumn > newColumn) { + logger.debug(EELFLoggerDelegate.debugLogger, "moving to a lower column under the same parent"); + // We are moving to a lower column under the same parent + criteria.add(Restrictions.ge("column", newColumn)); + criteria.add(Restrictions.lt("column", oldColumn)); + @SuppressWarnings("unchecked") + List menuItems = criteria.list(); + for (FunctionalMenuItem menuItem : menuItems) { + menuItem.column += 1; + localSession.save(menuItem); + } + } else if (oldColumn < newColumn) { + logger.debug(EELFLoggerDelegate.debugLogger, "moving to a higher column under the same parent"); + // We are moving to a higher column under the same parent + criteria.add(Restrictions.gt("column", oldColumn)); + criteria.add(Restrictions.le("column", newColumn)); + @SuppressWarnings("unchecked") + List menuItems = criteria.list(); + for (FunctionalMenuItem menuItem : menuItems) { + menuItem.column -= 1; + localSession.save(menuItem); + } + } else { + // No info has changed + logger.debug(EELFLoggerDelegate.debugLogger, "no info has changed, so we are not moving"); + } + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "moving under a new parent"); + // We are moving under a new parent. + + // Adjust the children under the old parent + logger.debug(EELFLoggerDelegate.debugLogger, "about to adjust the children under the old parent"); + + // If the parentId is null, must check for its children differently + if (oldParentMenuId == null) { + logger.debug(EELFLoggerDelegate.debugLogger, "oldParentMenuId is null, so using isNull"); + criteria.add(Restrictions.isNull("parentMenuId")); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "oldParentMenuId is NOT null, so using eq"); + criteria.add(Restrictions.eq("parentMenuId", oldParentMenuId)); + } + + criteria.add(Restrictions.gt("column", oldColumn)); + @SuppressWarnings("unchecked") + List menuItems1 = criteria.list(); + for (FunctionalMenuItem menuItem : menuItems1) { + menuItem.column -= 1; + localSession.save(menuItem); + } + // Adjust the children under the new parent. + logger.debug(EELFLoggerDelegate.debugLogger, "about to adjust the children under the new parent"); + logger.debug(EELFLoggerDelegate.debugLogger, "get all menu items where menuId!=" + menuId + + "; parentMenuId==" + newParentMenuId + "; column>=" + newColumn); + criteria = localSession.createCriteria(FunctionalMenuItem.class); + criteria.add(Restrictions.ne("menuId", menuId)); + if (newParentMenuId == null) { + logger.debug(EELFLoggerDelegate.debugLogger, "newParentMenuId is null, so using isNull"); + criteria.add(Restrictions.isNull("parentMenuId")); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "newParentMenuId is NOT null, so using eq"); + criteria.add(Restrictions.eq("parentMenuId", newParentMenuId)); + } + + criteria.add(Restrictions.ge("column", newColumn)); + @SuppressWarnings("unchecked") + List menuItems2 = criteria.list(); + if (menuItems2 != null) { + logger.debug(EELFLoggerDelegate.debugLogger, "found " + menuItems2.size() + " menu items"); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "found null menu items"); + } + for (FunctionalMenuItem menuItem : menuItems2) { + menuItem.column += 1; + localSession.save(menuItem); + } + } + logger.debug(EELFLoggerDelegate.debugLogger, "done with updateColumnForSiblings"); + } + + public void removeAppInfo(Session localSession, Long menuId) { + // Remove the url, role, and app info from a menu item + FunctionalMenuItem menuItem = (FunctionalMenuItem) localSession.get(FunctionalMenuItem.class, menuId); + menuItem.url = ""; + deleteRoles(menuId); + } + + public FieldsValidator editFunctionalMenuItem(FunctionalMenuItemWithRoles menuItemJson) { + boolean result = false; + Session localSession = null; + Transaction transaction = null; + Long menuId = menuItemJson.menuId; + + logger.debug(EELFLoggerDelegate.debugLogger, "LR: editFunctionalMenuItem: test 1"); + FieldsValidator fieldsValidator = menuItemFieldsChecker(menuItemJson); + if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { + // TODO: make sure menuId is here. And, it might not already exist + // in db table. + if (menuId == null) { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); + logger.error(EELFLoggerDelegate.errorLogger, + "FunctionalMenuServiceImpl.editFunctionalMenuItem: bad request"); + } else { + // To simplify the code, assume we will have a transaction + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + + // Get the existing info associated with menuItem from the DB + FunctionalMenuItem menuItem = (FunctionalMenuItem) localSession.get(FunctionalMenuItem.class, + menuId); + Integer oldColumn = menuItem.column; + Integer oldParentMenuId = menuItem.parentMenuId; + Integer newColumn = menuItemJson.column; + Integer newParentMenuId = menuItemJson.parentMenuId; + + logger.debug(EELFLoggerDelegate.debugLogger, + "prev info: column: " + oldColumn + "; parentMenuId: " + oldParentMenuId); + + if (menuItemJson.appid != null && menuItemJson.getRoles() != null + && !menuItemJson.getRoles().isEmpty() && menuItemJson.url != null + && !menuItemJson.url.isEmpty() && menuItemJson.text != null + && !menuItemJson.text.isEmpty()) { + // Scenario: appid, roles, url and text are all non-null. + // This menu item is associated with an app. + // (Note: this should only occur for a bottom-level menu + // item with no children.) + // 1) Remove all the records from fn_menu_functional_role + // for this menuId. + // 2) Add records to the fn_menu_function_role table for the + // appId and each roleId + // 3) Update the url and text for this menu item. + + // Because of foreign key constraints, delete the roles, + // then update the menuItem then add the roles. + deleteRoles(menuId); + // Assumption: this is not a Move, so don't change the + // parentMenuId and column. + menuItem.appid = menuItemJson.appid; + menuItem.setRoles(menuItemJson.getRoles()); + menuItem.url = menuItemJson.url; + menuItem.text = menuItemJson.text; + + // If the app is disabled, deactivate the menu item. + Long appidLong = Long.valueOf(menuItemJson.appid); + EPApp app = (EPApp) localSession.get(EPApp.class, appidLong); + if (app != null && !app.getEnabled()) { + menuItem.active_yn = "N"; + } else { + menuItem.active_yn = "Y"; + } + + localSession.update(menuItem); + addRoles(menuItemJson, localSession); + + } else if (menuItemJson.appid == null + && (menuItemJson.getRoles() == null || menuItemJson.getRoles().isEmpty()) + && (menuItemJson.url == null || menuItemJson.url.isEmpty()) && menuItemJson.text != null + && !menuItemJson.text.isEmpty()) { + // Scenario: appid, roles and url are all null; text is + // non-null. + // This menu item is NOT associated with an app. + // 1) Remove all the records from fn_menu_functional_role + // for this menuId + // (in case it was previously associated with an app). + // 2) Update the text for this menu item. + // 3) Set the url to "" + deleteRoles(menuId); + // Assumption: this is not a Move, so don't change the + // parentMenuId and column. + menuItem.text = menuItemJson.text; + menuItem.url = ""; + menuItem.active_yn = "Y"; + localSession.update(menuItem); + + } else if (newColumn != null) { + // This is a "move" request. + // Menu item has been moved to a different position under + // the same parent, or under a new parent. + logger.debug(EELFLoggerDelegate.debugLogger, "Doing a move operation."); + if (parentMenuIdEqual(oldParentMenuId, newParentMenuId)) { + // The parent is the same. We have just changed the + // column + logger.debug(EELFLoggerDelegate.debugLogger, "moving under the same parent"); + menuItem.column = newColumn; + localSession.update(menuItem); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, "moving under a different parent"); + menuItem.parentMenuId = newParentMenuId; + menuItem.column = newColumn; + localSession.update(menuItem); + // If we are moving under a new parent, must delete any + // app/role info from + // the new parent, since it is no longer a leaf menu + // item and cannot have app info + // associated with it. The front end will have warned + // the user and gotten confirmation. + if (menuItemJson.parentMenuId != null) { + Long parentMenuIdLong = new Long(menuItemJson.parentMenuId); + removeAppInfo(localSession, parentMenuIdLong); + // deleteRoles(parentMenuIdLong); + } + } + // must update the column for all old and new sibling menu + // items + updateColumnForSiblings(localSession, menuId, oldParentMenuId, newParentMenuId, oldColumn, + newColumn); + } + + transaction.commit(); + logger.debug(EELFLoggerDelegate.debugLogger, + "LR: editFunctionalMenuItem: finished committing transaction"); + result = true; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "editFunctionalMenuItem failed", e); + EcompPortalUtils.rollbackTransaction(transaction, + "createFunctionalMenuItem rollback, exception = " + e.toString()); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "editFunctionalMenuItem"); + } + + if (result) { + } else { + logger.debug(EELFLoggerDelegate.debugLogger, + "LR: createFunctionalMenuItem: no result. setting httpStatusCode to " + + HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + } + } + + return fieldsValidator; + } + + public FieldsValidator deleteFunctionalMenuItem(Long menuId) { + FieldsValidator fieldsValidator = new FieldsValidator(); + logger.debug(EELFLoggerDelegate.debugLogger, "LR: deleteFunctionalMenuItem: test 1"); + boolean result = false; + Session localSession = null; + Transaction transaction = null; + + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + // We must turn off foreign keys before deleting a menu item. Otherwise there + // will be a + // constraint violation from the ancestors table. + setForeignKeys(localSession, false); + deleteRoles(menuId); + logger.debug(EELFLoggerDelegate.debugLogger, "deleteFunctionalMenuItem: after deleting roles"); + deleteFavorites(menuId); + logger.debug(EELFLoggerDelegate.debugLogger, "deleteFunctionalMenuItem: after deleting favorites"); + localSession.delete(localSession.get(FunctionalMenuItem.class, menuId)); + logger.debug(EELFLoggerDelegate.debugLogger, "deleteFunctionalMenuItem: about to commit"); + transaction.commit(); + result = true; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteFunctionalMenuItem failed", e); + EcompPortalUtils.rollbackTransaction(transaction, + "deleteFunctionalMenuItem rollback, exception = " + e.toString()); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "deleteFunctionalMenuItem"); + } + if (result) { + } else { + logger.debug(EELFLoggerDelegate.debugLogger, + "LR: deleteFunctionalMenuItem: no result. setting httpStatusCode to " + + HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + return fieldsValidator; + } + + // Regenerate the fn_menu_functional_ancestors table, which is used + // by the queries that return the functional menu items. + public FieldsValidator regenerateAncestorTable() { + FieldsValidator fieldsValidator = new FieldsValidator(); + Session localSession = null; + Transaction transaction = null; + + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + String sql = "DELETE FROM fn_menu_functional_ancestors"; + logQuery(sql); + Query query = localSession.createSQLQuery(sql); + query.executeUpdate(); + logger.debug(EELFLoggerDelegate.debugLogger, "regenerateAncestorTable: finished query 1"); + + sql = "ALTER TABLE fn_menu_functional_ancestors AUTO_INCREMENT=1"; + logQuery(sql); + query = localSession.createSQLQuery(sql); + query.executeUpdate(); + logger.debug(EELFLoggerDelegate.debugLogger, "regenerateAncestorTable: reset AUTO_INCREMENT to 1"); + + int depth = 0; + sql = "INSERT INTO fn_menu_functional_ancestors(menu_id, ancestor_menu_id, depth) " + + "SELECT m.menu_id, m.menu_id, " + depth + " FROM fn_menu_functional m"; + logQuery(sql); + query = localSession.createSQLQuery(sql); + query.executeUpdate(); + logger.debug(EELFLoggerDelegate.debugLogger, "regenerateAncestorTable: finished query 2"); + for (depth = 0; depth < 3; depth++) { + int depthPlusOne = depth + 1; + sql = "INSERT INTO fn_menu_functional_ancestors(menu_id, ancestor_menu_id, depth) " + + " SELECT a.menu_id, m.parent_menu_id, " + depthPlusOne + + " FROM fn_menu_functional m, fn_menu_functional_ancestors a " + " WHERE a.depth='" + depth + + "' AND " + " a.ancestor_menu_id = m.menu_id AND " + " m.parent_menu_id != '-1'"; + logQuery(sql); + query = localSession.createSQLQuery(sql); + query.executeUpdate(); + } + logger.debug(EELFLoggerDelegate.debugLogger, "regenerateAncestorTable: finished query 3"); + transaction.commit(); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "regenerateAncestorTable failed", e); + EcompPortalUtils.rollbackTransaction(transaction, + "regenerateAncestorTable rollback, exception = " + e.toString()); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "regenerateAncestorTable"); + } + return fieldsValidator; + } + + private void logQuery(String sql) { + logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); + } + + public FieldsValidator setFavoriteItem(FavoritesFunctionalMenuItem menuItemJson) { + boolean result = false; + FieldsValidator fieldsValidator = new FieldsValidator(); + + Session localSession = null; + Transaction transaction = null; + + try { + logger.debug(EELFLoggerDelegate.debugLogger, + String.format("Before adding favorite for user id:{0} and menu id:{1} ", menuItemJson.userId, + menuItemJson.menuId)); + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + localSession.save(menuItemJson); + transaction.commit(); + result = true; + logger.debug(EELFLoggerDelegate.debugLogger, + String.format("After adding favorite for user id:{0} and menu id:{1} ", menuItemJson.userId, + menuItemJson.menuId)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "setFavoriteItem failed", e); + EcompPortalUtils.rollbackTransaction(transaction, "setFavoriteItem rollback, exception = " + e.toString()); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "setFavoriteItem"); + } + + if (result) { + } else { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + + return fieldsValidator; + } + + public List getFavoriteItems(Long userId) { + try { + logger.debug(EELFLoggerDelegate.debugLogger, "Before getting favorites for user id: " + userId); + + // Divide this into 2 queries: one which returns the favorites items associated + // with Restricted apps, + // and one that returns all the other favorites items. Then we can easily add + // the boolean flag + // restrictedApp to each FavoritesFunctionalMenuItemJson, to be used by the + // front end. + + String sql = "SELECT f.user_id,f.menu_id,m.text,m.url " + + " FROM fn_menu_favorites f, fn_menu_functional m, fn_menu_functional_roles mr " + + " WHERE f.user_id='" + userId + "' AND f.menu_id = m.menu_id " + " AND f.menu_id = mr.menu_id " + + " AND mr.role_id = '" + RESTRICTED_APP_ROLE_ID + "' "; + + @SuppressWarnings("unchecked") + List menuItems = dataAccessService.executeSQLQuery(sql, + FavoritesFunctionalMenuItemJson.class, null); + for (FavoritesFunctionalMenuItemJson menuItem : menuItems) { + menuItem.restrictedApp = true; + } + + sql = "SELECT DISTINCT f.user_id,f.menu_id,m.text,m.url " + + " FROM fn_menu_favorites f, fn_menu_functional m, fn_menu_functional_roles mr " + + " WHERE f.user_id='" + userId + "' AND f.menu_id = m.menu_id " + " AND f.menu_id = mr.menu_id " + + " AND mr.role_id != '" + RESTRICTED_APP_ROLE_ID + "' "; + @SuppressWarnings("unchecked") + List menuItems2 = dataAccessService.executeSQLQuery(sql, + FavoritesFunctionalMenuItemJson.class, null); + for (FavoritesFunctionalMenuItemJson menuItem : menuItems2) { + menuItem.restrictedApp = false; + menuItems.add(menuItem); + } + + return menuItems; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getFavoriteItems failed", e); + List menuItems = new ArrayList(); + return menuItems; + } + } + + public FieldsValidator removeFavoriteItem(Long userId, Long menuId) { + boolean result = false; + FieldsValidator fieldsValidator = new FieldsValidator(); + + Session localSession = null; + Transaction transaction = null; + + try { + + FavoritesFunctionalMenuItem menuItemJson = new FavoritesFunctionalMenuItem(); + menuItemJson.userId = userId; + menuItemJson.menuId = menuId; + + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + localSession.delete(menuItemJson); + localSession.flush(); + transaction.commit(); + result = true; + logger.debug(EELFLoggerDelegate.debugLogger, + String.format("After removing favorite for user id: " + userId + "; menu id: " + menuId)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "removeFavoriteItem failed", e); + EcompPortalUtils.rollbackTransaction(transaction, + "removeFavoriteItem rollback, exception = " + e.toString()); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "removeFavoriteItem"); + } + + if (result) { + } else { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + + return fieldsValidator; + } + + @Override + public void assignHelpURLs(List menuItems) { + try { + String user_guide_link = SystemProperties.getProperty(EPCommonSystemProperties.USER_GUIDE_URL); + + for (FunctionalMenuItem menuItem : menuItems) { + if (menuItem.text.equalsIgnoreCase("Contact Us")) { + menuItem.setUrl("contactUs"); + // menuItem.setRestrictedApp(true); + } + if (menuItem.text.equalsIgnoreCase("Get Access")) { + menuItem.setUrl("getAccess"); + } + if (menuItem.text.equalsIgnoreCase("User Guide")) { + menuItem.setUrl(user_guide_link); + menuItem.setRestrictedApp(true); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "assignHelpURLs process failed", e); + } + + } + + public List getFunctionalMenuRole() { + String sql = "SELECT * from fn_menu_functional_roles"; + logQuery(sql); + logger.debug(EELFLoggerDelegate.debugLogger, "getFunctionalMenuRole: logged the query"); + + @SuppressWarnings("unchecked") + List functionalMenuRole = dataAccessService.executeSQLQuery(sql, FunctionalMenuRole.class, + null); + + return functionalMenuRole; + } + + @SuppressWarnings("unchecked") + @Override + public List getUserAppRolesList(String userId) { + Map params = new HashMap<>(); + params.put("userId", userId); + + List userAppRoles = null; + try { + userAppRoles = dataAccessService.executeNamedQuery("getUserApproles", params, null); + } catch (Exception e) { + // TODO Auto-generated catch block + logger.error(EELFLoggerDelegate.errorLogger, "getUserAppRolesList failed", e); + } + return userAppRoles; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/GetAccessService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/GetAccessService.java new file mode 100644 index 00000000..093fd258 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/GetAccessService.java @@ -0,0 +1,51 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.GetAccessResult; + +public interface GetAccessService { + /** + * @return One entry per application function AND role; i.e., each application + * appears many times. + */ + List getAppAccessList(EPUser user); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/GetAccessServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/GetAccessServiceImpl.java new file mode 100644 index 00000000..fb0bf7f7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/GetAccessServiceImpl.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.GetAccessResult; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.service.DataAccessService; + +@Service("getAccessService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class GetAccessServiceImpl implements GetAccessService{ + + @Autowired + private DataAccessService dataAccessService; + + /* + * (non-Javadoc) + * @see org.openecomp.portalapp.portal.service.GetAccessService#getAppAccessList() + */ + @SuppressWarnings("unchecked") + @Override + public List getAppAccessList(EPUser user) { + final Map params = new HashMap<>(); + List appAccessList = null; + params.put("userId", user.getId()); + appAccessList = dataAccessService + .executeNamedQuery("getAppAccessFunctionRole", params, null); + return appAccessList; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ManifestService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ManifestService.java new file mode 100644 index 00000000..ab15b189 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ManifestService.java @@ -0,0 +1,51 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.io.IOException; +import java.util.jar.Attributes; + +public interface ManifestService { + /** + * Gets the content of the webapp manifest file META-INF/MANIFEST.MF. + * + * @return Attributes object with key-value pairs from the manifest + * @throws IOException + */ + public Attributes getWebappManifest() throws IOException; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ManifestServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ManifestServiceImpl.java new file mode 100644 index 00000000..6ea66fe1 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ManifestServiceImpl.java @@ -0,0 +1,79 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.io.IOException; +import java.io.InputStream; +import java.util.jar.Attributes; +import java.util.jar.Manifest; + +import javax.servlet.ServletContext; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +@Service("manifestService") +@EnableAspectJAutoProxy +@EPMetricsLog +public class ManifestServiceImpl implements ManifestService { + @Autowired + ServletContext context; + + /* + * (non-Javadoc) + * @see org.openecomp.portalapp.portal.service.ManifestService#getWebappManifest() + */ + public Attributes getWebappManifest() throws IOException { + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ManifestServiceImpl.class); + // Path to resource on classpath + final String MANIFEST_RESOURCE_PATH = "/META-INF/MANIFEST.MF"; + // Manifest is formatted as Java-style properties + try { + InputStream inputStream = context.getResourceAsStream(MANIFEST_RESOURCE_PATH); + Manifest manifest = new Manifest(inputStream); + inputStream.close(); + return manifest.getMainAttributes(); + } catch (IOException e) { + logger.error(EELFLoggerDelegate.errorLogger, "getWebappManifest: failed to read/find manifest"); + throw e; + } + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceProxyService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceProxyService.java new file mode 100644 index 00000000..594e5ef2 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceProxyService.java @@ -0,0 +1,77 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalapp.portal.domain.EPUser; +import org.springframework.web.client.RestClientException; + +public interface MicroserviceProxyService { + + /** + * Gets the specific microservice from table ep_microservice, communicates + * to microservice with the specified security type. The microservice sends + * back the response. + * + * Gets the data while testing the microservice with no widget associated with + * + * @param serviceId + * Id of microservice to be used + * @return response sent from microservice + * @throws Exception + */ + String proxyToDestination(long serviceId, EPUser user, HttpServletRequest request) throws Exception; + + + + /** + * Gets the microservice data based on the user id and widget id. Different + * users have his/her own parameters for one widget. The method sends back + * the response. + * + * @param widgetId + * Id of widget to be used + * @param user + * User information + * @param request + * @return response sent from microserivce + * @throws Exception + */ + String proxyToDestinationByWidgetId(long widgetId, EPUser user, HttpServletRequest request) throws Exception; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceProxyServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceProxyServiceImpl.java new file mode 100644 index 00000000..d18ffbe9 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceProxyServiceImpl.java @@ -0,0 +1,242 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import org.apache.commons.codec.binary.Base64; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.MicroserviceData; +import org.onap.portalapp.portal.domain.MicroserviceParameter; +import org.onap.portalapp.portal.domain.WidgetCatalogParameter; +import org.onap.portalapp.portal.domain.WidgetServiceHeaders; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.RestTemplate; + +@Service("microserviceProxyService") +@EnableAspectJAutoProxy +@EPMetricsLog +public class MicroserviceProxyServiceImpl implements MicroserviceProxyService { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MicroserviceProxyServiceImpl.class); + + private static final String BASIC_AUTH = "Basic Authentication"; + private static final String NO_AUTH = "No Authentication"; + private static final String COOKIE_AUTH = "Cookie based Authentication"; + private static final String QUESTION_MARK = "?"; + private static final String ADD_MARK = "&"; + + @Autowired + private ConsulHealthService consulHealthService; + @Autowired + MicroserviceService microserviceService; + @Autowired + WidgetParameterService widgetParameterService; + + private String whatService = "widgets-service"; + + private RestTemplate template = new RestTemplate(); + + @Override + public String proxyToDestination(long serviceId, EPUser user, HttpServletRequest request) throws Exception { + // get the microservice object by the id + MicroserviceData data = microserviceService.getMicroserviceDataById(serviceId); + // No such microservice available + if (data == null) { + // can we return a better response than null? + return null; + } + return authenticateAndRespond(data, request, composeParams(data, user)); + } + + @Override + public String proxyToDestinationByWidgetId(long widgetId, EPUser user, HttpServletRequest request) + throws Exception { + @SuppressWarnings({ "rawtypes", "unchecked" }) + ResponseEntity ans = (ResponseEntity) template.exchange( + EcompPortalUtils.widgetMsProtocol() + "://" + + consulHealthService.getServiceLocation(whatService, + SystemProperties.getProperty("microservices.widget.local.port")) + + "/widget/microservices/widgetCatalog/parameters/" + widgetId, + HttpMethod.GET, new HttpEntity(WidgetServiceHeaders.getInstance()), Long.class); + Long serviceId = ans.getBody(); + // get the microservice object by the id + MicroserviceData data = microserviceService.getMicroserviceDataById(serviceId); + // No such microservice available + if (data == null) + return null; + + List params = composeParams(data, user); + for (MicroserviceParameter p : params) { + WidgetCatalogParameter userValue = widgetParameterService.getUserParamById(widgetId, user.getId(), + p.getId()); + if (userValue != null) + p.setPara_value(userValue.getUser_value()); + } + return authenticateAndRespond(data, request, params); + } + + private String authenticateAndRespond(MicroserviceData data, HttpServletRequest request, + List params) throws HttpClientErrorException, IllegalArgumentException { + String response = null; + if (data.getSecurityType().equals(NO_AUTH)) { + HttpEntity entity = new HttpEntity(headersForNoAuth()); + String url = microserviceUrlConverter(data, params); + logger.debug(EELFLoggerDelegate.debugLogger, + "authenticateAndRespond: Before making no authentication call: {}", url); + response = template.exchange(url, HttpMethod.GET, entity, String.class).getBody(); + logger.debug(EELFLoggerDelegate.debugLogger, "authenticateAndRespond: No authentication call response: {}", + response); + } else if (data.getSecurityType().equals(BASIC_AUTH)) { + // encoding the username and password + String plainCreds = null; + try { + plainCreds = data.getUsername() + ":" + decryptedPassword(data.getPassword()); + } catch (Exception e) { + logger.error("authenticateAndRespond failed to decrypt password", e); + throw new IllegalArgumentException("Failed to decrypt password", e); + } + byte[] plainCredsBytes = plainCreds.getBytes(); + byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes); + String base64Creds = new String(base64CredsBytes); + + HttpEntity entity = new HttpEntity(headersForBasicAuth(request, base64Creds)); + + String url = microserviceUrlConverter(data, params); + try { + response = template.exchange(url, HttpMethod.GET, entity, String.class).getBody(); + } catch (HttpClientErrorException e) { + logger.error("authenticateAndRespond failed for basic security url " + url, e); + throw e; + } + } else if (data.getSecurityType().equals(COOKIE_AUTH)) { + HttpEntity entity = new HttpEntity(headersForCookieAuth(request)); + String url = microserviceUrlConverter(data, params); + try { + response = template.exchange(url, HttpMethod.GET, entity, String.class).getBody(); + } catch (HttpClientErrorException e) { + logger.error("authenticateAndRespond failed for cookie auth url " + url, e); + throw e; + } + } + + return response; + } + + private String decryptedPassword(String encryptedPwd) throws Exception { + String result = ""; + if (encryptedPwd != null && encryptedPwd.length() > 0) { + try { + result = CipherUtil.decryptPKC(encryptedPwd, + SystemProperties.getProperty(SystemProperties.Decryption_Key)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword failed", e); + throw e; + } + } + + return result; + } + + private String microserviceUrlConverter(MicroserviceData data, List params) { + String url = data.getUrl(); + for (int i = 0; i < params.size(); i++) { + if (i == 0) { + url += QUESTION_MARK; + } + url += params.get(i).getPara_key() + "=" + params.get(i).getPara_value(); + if (i != (params.size() - 1)) { + url += ADD_MARK; + } + } + + return url; + } + + private HttpHeaders headersForNoAuth() { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + + return headers; + } + + // TODO: why is this generically named cookie used? + private final static String Cookie = "Cookie"; + + private HttpHeaders headersForBasicAuth(HttpServletRequest request, String base64Creds) { + HttpHeaders headers = new HttpHeaders(); + headers.add("Authorization", "Basic " + base64Creds); + headers.setContentType(MediaType.APPLICATION_JSON); + String rawCookie = request.getHeader(Cookie); + if (rawCookie != null) + headers.add(Cookie, rawCookie); + return headers; + } + + private HttpHeaders headersForCookieAuth(HttpServletRequest request) { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + String rawCookie = request.getHeader(Cookie); + if (rawCookie != null) + headers.add(Cookie, rawCookie); + return headers; + } + + private List composeParams(MicroserviceData data, EPUser user) { + List params = data.getParameterList(); + MicroserviceParameter userIdParam = new MicroserviceParameter(); + userIdParam.setPara_key("userId"); + userIdParam.setPara_value(user.getOrgUserId()); + params.add(userIdParam); + return params; + } +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceService.java new file mode 100644 index 00000000..60553b32 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceService.java @@ -0,0 +1,105 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.MicroserviceData; +import org.onap.portalapp.portal.domain.MicroserviceParameter; + +public interface MicroserviceService { + + /** + * Get all microservices from the ep_microservice + * + * @return list of all microservices + * @throws Exception + */ + List getMicroserviceData() throws Exception; + + /** + * Gets the specified microservice with id from ep_microservice + * + * @param id + * ID of microservice to be fetched + * @return the microservice with the specified id + */ + MicroserviceData getMicroserviceDataById(long id); + + /** + * Saves the specified microservice to the table ep_microservice + * + * @param newService + * Content of microservice to be saved + * @return new microservice id + * @throws Exception + */ + Long saveMicroservice(MicroserviceData newService) throws Exception; + + void saveServiceParameters(long serviceId, List list) throws Exception; + + /** + * Deletes the specified microservice from all tables where the serviceId is + * used + * + * @param serviceId + * @throws Exception + */ + void deleteMicroservice(long serviceId) throws Exception; + + /** + * Updates the specified microservice from all tables where the serviceId is + * used + * + * @param serviceId + * Id of microservice to be updated + * @param newService + * Content of microservice to be updated + * @throws Exception + */ + void updateMicroservice(long serviceId, MicroserviceData newService) throws Exception; + + /** + * Gets the Service parameters by the service Id + * + * @param serviceId + * @return List + */ + List getParametersById(long serviceId); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceServiceImpl.java new file mode 100644 index 00000000..d7f78d8c --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/MicroserviceServiceImpl.java @@ -0,0 +1,227 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.crypto.BadPaddingException; + +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.onap.portalapp.portal.domain.MicroserviceData; +import org.onap.portalapp.portal.domain.MicroserviceParameter; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; + +@Service("microserviceService") +@EnableAspectJAutoProxy +@EPMetricsLog +public class MicroserviceServiceImpl implements MicroserviceService { + + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MicroserviceServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + public Long saveMicroservice(MicroserviceData newService) throws Exception { + if (newService.getPassword() != null) + newService.setPassword(encryptedPassword(newService.getPassword())); + getDataAccessService().saveDomainObject(newService, null); + return newService.getId(); + } + + public void saveServiceParameters(long serviceId, List list) throws Exception { + for (int i = 0; i < list.size(); i++) { + MicroserviceParameter para = list.get(i); + para.setServiceId(serviceId); + getDataAccessService().saveDomainObject(para, null); + } + } + + @Override + public MicroserviceData getMicroserviceDataById(long id) { + MicroserviceData data = null; + try { + List restrictionsList = new ArrayList(); + Criterion idCriterion = Restrictions.eq("id", id); + restrictionsList.add(idCriterion); + data = (MicroserviceData) dataAccessService.getList(MicroserviceData.class, null, restrictionsList, null).get(0); + + data.setParameterList(getServiceParameters(id)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getMicroserviceDataById failed", e); + throw e; + } + return data; + } + + @SuppressWarnings("unchecked") + @Override + public List getMicroserviceData() throws Exception { + List list = (List) dataAccessService.getList(MicroserviceData.class, null); + for (int i = 0; i < list.size(); i++) { + if (list.get(i).getPassword() != null) + try{ + list.get(i).setPassword(decryptedPassword(list.get(i).getPassword())); + } catch(BadPaddingException bpe){ + logger.error(EELFLoggerDelegate.errorLogger, "Couldn't decrypt - Check decryption key in system.properties - looks wrong. Still going ahead with list population though", bpe); + } + list.get(i).setParameterList(getServiceParameters(list.get(i).getId())); + } + return list; + } + + private List getServiceParameters(long serviceId) { + List list = getMicroServiceParametersList(serviceId); + return list; + } + + @SuppressWarnings("unchecked") + private List getMicroServiceParametersList(long serviceId) { + List restrictionsList = new ArrayList(); + Criterion serviceIdCriterion = Restrictions.eq("serviceId", serviceId); + restrictionsList.add(serviceIdCriterion); + return (List) dataAccessService.getList(MicroserviceParameter.class, null, restrictionsList, null); + } + + @Override + public void deleteMicroservice(long serviceId) throws Exception { + + try { + Map params = new HashMap(); + params.put("serviceId", Long.toString(serviceId)); + + dataAccessService.executeNamedQuery("deleteMicroserviceParameter", params, null); + dataAccessService.executeNamedQuery("deleteMicroservice", params, null); + + } catch (Exception e) { + e.printStackTrace(); + logger.error(EELFLoggerDelegate.errorLogger, "deleteMicroservice failed", e); + throw e; + } + } + + @Override + public void updateMicroservice(long serviceId, MicroserviceData newService) throws Exception { + try { + newService.setId(serviceId); + if (newService.getPassword() != null) + newService.setPassword(encryptedPassword(newService.getPassword())); + getDataAccessService().saveDomainObject(newService, null); + List oldService = getServiceParameters(serviceId); + boolean foundParam; + for (int i = 0; i < oldService.size(); i++) { + foundParam = false; + for (int n = 0; n < newService.getParameterList().size(); n++) { + if (newService.getParameterList().get(n).getId().equals(oldService.get(i).getId())) { + foundParam = true; + break; + } + } + if (foundParam == false) { + MicroserviceParameter pd = oldService.get(i); + getDataAccessService().deleteDomainObject(pd, null); + } + } + for (int i = 0; i < newService.getParameterList().size(); i++) { + MicroserviceParameter param = newService.getParameterList().get(i); + param.setServiceId(serviceId); + getDataAccessService().saveDomainObject(param, null); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "updateMicroservice failed", e); + throw e; + } + saveServiceParameters(serviceId, newService.getParameterList()); + } + + @Override + @SuppressWarnings("unchecked") + public List getParametersById(long serviceId) { + List restrictionsList = new ArrayList(); + Criterion contextIdCrit = Restrictions.eq("serviceId", serviceId); + restrictionsList.add(contextIdCrit); + List list = (List) dataAccessService + .getList(MicroserviceParameter.class, null, restrictionsList, null); + logger.debug(EELFLoggerDelegate.debugLogger, + "getParametersById: microservice parameters list size: " + list.size()); + return list; + } + + private String decryptedPassword(String encryptedPwd) throws Exception { + String result = ""; + if (encryptedPwd != null & encryptedPwd.length() > 0) { + try { + result = CipherUtil.decryptPKC(encryptedPwd, + SystemProperties.getProperty(SystemProperties.Decryption_Key)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword failed", e); + throw e; + } + } + return result; + } + + private String encryptedPassword(String decryptedPwd) throws Exception { + String result = ""; + if (decryptedPwd != null & decryptedPwd.length() > 0) { + try { + result = CipherUtil.encryptPKC(decryptedPwd, + SystemProperties.getProperty(SystemProperties.Decryption_Key)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "encryptedPassword failed", e); + throw e; + } + } + return result; + } + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserAppService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserAppService.java new file mode 100644 index 00000000..7838eb43 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserAppService.java @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; + +public interface PersUserAppService { + + /** + * Sets the appropriate code in the user personalization table to indicate + * the application is (de)selected and/or pending. + * + * @param user + * EP User + * @param app + * EP Application + * @param select + * True or false + * @param pending + * True or false + */ + void setPersUserAppValue(EPUser user, EPApp app, boolean select, boolean pending); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserAppServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserAppServiceImpl.java new file mode 100644 index 00000000..39b88f63 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserAppServiceImpl.java @@ -0,0 +1,175 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserApp; +import org.onap.portalapp.portal.domain.PersUserAppSelection; +import org.onap.portalapp.portal.domain.PersUserWidgetSelection; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; + +@Service("persUserAppService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class PersUserAppServiceImpl implements PersUserAppService { + + private static final String APP_ID = "appId"; + + private static final String USER_ID = "userId"; + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PersUserAppServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + @Autowired + private AdminRolesService adminRolesService; + @Autowired + private UserRolesService userRolesService; + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserAppSelectService# + * setAppCatalogSelection(org.openecomp.portalapp.portal.domain.EPUser, + * org.openecomp.portalapp.portal.transport.AppCatalogSelection) + */ + @Override + public void setPersUserAppValue(EPUser user, EPApp app, boolean select, boolean pending) { + if (user == null || app == null) + throw new IllegalArgumentException("setPersUserAppValue: Null values"); + + // Find the record for this user-app combo, if any + List persList = getUsersAppSelection(user, app); + + // Key constraint limits to 1 row + PersUserAppSelection persRow = null; + if (persList.size() == 1) + persRow = persList.get(0); + else + persRow = new PersUserAppSelection(null, user.getId(), app.getId(), null); + + if (app.getOpen()) { + // Pending status is not meaningful for open apps. + if (pending) + logger.error(EELFLoggerDelegate.errorLogger, + "setPersUserAppValue: invalid request, ignoring set-pending for open app"); + + // Open apps have same behavior for regular and admin users + if (select) { + // Selection of an open app requires a record + persRow.setStatusCode("S"); // show + dataAccessService.saveDomainObject(persRow, null); + } else { + // De-selection of an open app requires no record + if (persRow.getId() != null) + dataAccessService.deleteDomainObject(persRow, null); + } + } else { + // Non-open app. + + // Pending overrides select. + if (pending) { + persRow.setStatusCode("P"); + dataAccessService.saveDomainObject(persRow, null); + } else { + // Behavior depends on Portal (super) admin status, bcos an + // admin can force an app onto the dashboard. + boolean isPortalAdmin = adminRolesService.isSuperAdmin(user); + boolean adminUserHasAppRole = false; + if (isPortalAdmin) { + List roles = userRolesService.getCachedAppRolesForUser(app.getId(), user.getId()); + adminUserHasAppRole = (roles.size() > 0); + logger.debug(EELFLoggerDelegate.debugLogger, "setPersUserAppValue: app {}, admin user {}, role count {}", + app.getId(), user.getId(), roles.size()); + } + + if (select) { + if (isPortalAdmin) { + // The special case: portal admin + persRow.setStatusCode("S"); // show + dataAccessService.saveDomainObject(persRow, null); + } else { + // User has role-based access to the app. + // Showing an accessible app requires no record. + if (persRow.getId() != null) + dataAccessService.deleteDomainObject(persRow, null); + } + } // select + else { + if (isPortalAdmin && !adminUserHasAppRole) { + // The special case: portal admin, no role + if (persRow.getId() != null) + dataAccessService.deleteDomainObject(persRow, null); + } else { + // User has role-based access to the app. + // Hiding an accessible app requires a record + persRow.setStatusCode("H"); // hide + dataAccessService.saveDomainObject(persRow, null); + } + } // deselect + } + } + } + + @SuppressWarnings("unchecked") + private List getUsersAppSelection(EPUser user, EPApp app) { + List restrictionsList = new ArrayList(); + Criterion userIdCriterion = Restrictions.eq("userId", user.getId()); + Criterion appIdCriterion = Restrictions.eq("appId", app.getId()); + restrictionsList.add(Restrictions.and(userIdCriterion, appIdCriterion)); + return (List) dataAccessService.getList(PersUserAppSelection.class, null, restrictionsList, null); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserWidgetService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserWidgetService.java new file mode 100644 index 00000000..5070e4b2 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserWidgetService.java @@ -0,0 +1,57 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import org.onap.portalapp.portal.domain.EPUser; + +public interface PersUserWidgetService { + + /** + * Sets the appropriate code in the user personalization table to indicate + * the application is (de)selected and/or pending. + * + * @param user + * EP User + * @param widgetId + * widget + * @param select + * True or false + */ + void setPersUserAppValue(EPUser user, Long widgetId, boolean select); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserWidgetServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserWidgetServiceImpl.java new file mode 100644 index 00000000..94c934df --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PersUserWidgetServiceImpl.java @@ -0,0 +1,106 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.PersUserWidgetSelection; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; + +@Service("persUserWidgetService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class PersUserWidgetServiceImpl implements PersUserWidgetService{ + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PersUserAppServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + @Override + public void setPersUserAppValue(EPUser user, Long widgetId, boolean select) { + if (user == null || widgetId == null) + throw new IllegalArgumentException("setPersUserAppValue: Null values"); + + List persList = getUserWidgetSelction(user, widgetId); + // Key constraint limits to 1 row + PersUserWidgetSelection persRow = null; + if (persList.size() == 1){ + persRow = persList.get(0); + } + else { + persRow = new PersUserWidgetSelection(null, user.getId(), widgetId, null); + } + if(select){ + if (persRow.getId() != null){ + dataAccessService.deleteDomainObject(persRow, null); + } + persRow.setStatusCode("S"); // show + dataAccessService.saveDomainObject(persRow, null); + } else{ + if (persRow.getId() != null){ + dataAccessService.deleteDomainObject(persRow, null); + } + persRow.setStatusCode("H"); // Hide + dataAccessService.saveDomainObject(persRow, null); + } + + } + + @SuppressWarnings("unchecked") + private List getUserWidgetSelction(EPUser user, Long widgetId) { + List restrictionsList = new ArrayList(); + Criterion userIdCriterion = Restrictions.eq("userId", user.getId()); + Criterion widgetIdCriterion = Restrictions.eq("widgetId", widgetId); + restrictionsList.add(Restrictions.and(userIdCriterion, widgetIdCriterion)); + return (List) dataAccessService.getList(PersUserWidgetSelection.class, null, restrictionsList, null); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PortalAdminService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PortalAdminService.java new file mode 100644 index 00000000..a8817286 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PortalAdminService.java @@ -0,0 +1,49 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.PortalAdmin; + +public interface PortalAdminService { + List getPortalAdmins (); + FieldsValidator createPortalAdmin(String orgUserId); + FieldsValidator deletePortalAdmin(Long userId); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PortalAdminServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PortalAdminServiceImpl.java new file mode 100644 index 00000000..2704554e --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/PortalAdminServiceImpl.java @@ -0,0 +1,305 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.servlet.http.HttpServletResponse; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.onap.portalapp.portal.service.SearchService; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.transport.ExternalAccessUser; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.PortalAdmin; +import org.onap.portalapp.portal.transport.PortalAdminUserRole; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import com.fasterxml.jackson.databind.ObjectMapper; + +@Service("portalAdminService") +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class PortalAdminServiceImpl implements PortalAdminService { + + private String SYS_ADMIN_ROLE_ID = "1"; + private String ECOMP_APP_ID = "1"; + + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PortalAdminServiceImpl.class); + + @Autowired + private SessionFactory sessionFactory; + @Autowired + private DataAccessService dataAccessService; + @Autowired + SearchService searchService; + @Autowired + private EPAppService epAppService; + + RestTemplate template = new RestTemplate(); + + @PostConstruct + private void init() { + SYS_ADMIN_ROLE_ID = SystemProperties.getProperty(SystemProperties.SYS_ADMIN_ROLE_ID); + ECOMP_APP_ID = SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID); + } + + public List getPortalAdmins() { + try { + Map params = new HashMap<>(); + params.put("adminRoleId", SYS_ADMIN_ROLE_ID); + @SuppressWarnings("unchecked") + List portalAdmins = (List) dataAccessService.executeNamedQuery("getPortalAdmins", + params, null); + logger.debug(EELFLoggerDelegate.debugLogger, "getPortalAdmins was successful"); + return portalAdmins; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getPortalAdmins failed", e); + return null; + } + } + + public FieldsValidator createPortalAdmin(String orgUserId) { + FieldsValidator fieldsValidator = new FieldsValidator(); + logger.debug(EELFLoggerDelegate.debugLogger, "LR: createPortalAdmin: orgUserId is {}", orgUserId); + EPUser user = null; + boolean createNewUser = false; + List localUserList = getUserListWithOrguseId(orgUserId); + if (!localUserList.isEmpty()) { + user = localUserList.get(0); + } else { + createNewUser = true; + } + + if (user != null && isLoggedInUserPortalAdmin(user.getId())) { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); + logger.error(EELFLoggerDelegate.errorLogger, + "User '" + user.getOrgUserId() + "' already has PortalAdmin role assigned."); + } else if (user != null || createNewUser) { + Session localSession = null; + Transaction transaction = null; + try { + localSession = sessionFactory.openSession(); + + transaction = localSession.beginTransaction(); + if (createNewUser) { + user = this.searchService.searchUserByUserId(orgUserId); + if (user != null) { + // insert the user with active true in order to + // pass login phase. + user.setActive(true); + localSession.save(EPUser.class.getName(), user); + } + } + if (user != null) { + Long userid = user.getId(); + PortalAdminUserRole userRole = new PortalAdminUserRole(); + userRole.userId = userid; + userRole.roleId = Long.valueOf(SYS_ADMIN_ROLE_ID); + userRole.appId = Long.valueOf(ECOMP_APP_ID); + + localSession.save(PortalAdminUserRole.class.getName(), userRole); + } + + transaction.commit(); + // Add role in the external central auth system + if(user != null && EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + addPortalAdminInExternalCentralAuth(user.getOrgUserId(), PortalConstants.PORTAL_ADMIN_ROLE); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "createPortalAdmin failed", e); + EcompPortalUtils.rollbackTransaction(transaction, "createPortalAdmin rollback, exception = " + e.toString()); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "createPortalAdmin"); + } + } + return fieldsValidator; + } + + @SuppressWarnings("unchecked") + private List getUserListWithOrguseId(String orgUserId) { + List restrictionsList = new ArrayList(); + Criterion orgUserIdCriterion = Restrictions.eq("orgUserId", orgUserId); + restrictionsList.add(orgUserIdCriterion); + return (List) dataAccessService.getList(EPUser.class, null, restrictionsList, null); + } + + private void addPortalAdminInExternalCentralAuth(String loginId, String portalAdminRole) throws Exception{ + try{ + String name = ""; + if (EPCommonSystemProperties.containsProperty( + EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { + name = loginId + SystemProperties + .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); + } + EPApp app = epAppService.getApp(PortalConstants.PORTAL_APP_ID); + String extRole = app.getNameSpace()+"."+portalAdminRole.replaceAll(" ", "_"); + ObjectMapper addUserRoleMapper = new ObjectMapper(); + ExternalAccessUser extUser = new ExternalAccessUser(name, extRole); + String userRole = addUserRoleMapper.writeValueAsString(extUser); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + + HttpEntity addUserRole = new HttpEntity<>(userRole, headers); + template.exchange( + SystemProperties.getProperty( + EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "userRole", + HttpMethod.POST, addUserRole, String.class); + } catch (Exception e) { + // This happens only if role already exists in external central access system but not in local DB thats where we logging here + if (e.getMessage().equalsIgnoreCase("409 Conflict")) { + logger.debug(EELFLoggerDelegate.debugLogger, "Portal Admin role already exists", e.getMessage()); + } else{ + logger.error(EELFLoggerDelegate.errorLogger, "Failed to add Portal Admin role ", e); + throw e; + } + } + } + + public FieldsValidator deletePortalAdmin(Long userId) { + FieldsValidator fieldsValidator = new FieldsValidator(); + logger.debug(EELFLoggerDelegate.debugLogger, "deletePortalAdmin: test 1"); + Session localSession = null; + Transaction transaction = null; + + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + dataAccessService.deleteDomainObjects(PortalAdminUserRole.class, + "user_id='" + userId + "' AND role_id='" + SYS_ADMIN_ROLE_ID + "'", null); + transaction.commit(); + if(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()){ + deletePortalAdminInExternalCentralAuth(userId, PortalConstants.PORTAL_ADMIN_ROLE); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deletePortalAdmin failed", e); + EcompPortalUtils.rollbackTransaction(transaction, "deletePortalAdmin rollback, exception = " + e.toString()); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "deletePortalAdmin"); + } + return fieldsValidator; + } + + + private void deletePortalAdminInExternalCentralAuth(Long userId, String portalAdminRole) throws Exception{ + try{ + String name = ""; + List localUserList = getUserListWithUserid(userId); + if (EPCommonSystemProperties.containsProperty( + EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { + name = localUserList.get(0).getOrgUserId() + SystemProperties + .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); + } + EPApp app = epAppService.getApp(PortalConstants.PORTAL_APP_ID); + String extRole = app.getNameSpace()+"."+portalAdminRole.replaceAll(" ", "_"); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + HttpEntity addUserRole = new HttpEntity<>(headers); + template.exchange( + SystemProperties.getProperty( + EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "userRole/"+name+"/"+extRole, + HttpMethod.DELETE, addUserRole, String.class); + } catch (Exception e) { + if (e.getMessage().equalsIgnoreCase("404 Not Found")) { + logger.debug(EELFLoggerDelegate.debugLogger, "Portal Admin role already deleted or may not be found", e.getMessage()); + } else{ + logger.error(EELFLoggerDelegate.errorLogger, "Failed to add Portal Admin role ", e); + throw e; + } + } + } + + @SuppressWarnings("unchecked") + private List getUserListWithUserid(Long userId) { + List restrictionsList = new ArrayList(); + Criterion orgUserIdCriterion = Restrictions.eq("id", userId); + restrictionsList.add(orgUserIdCriterion); + return (List) dataAccessService.getList(EPUser.class, null, restrictionsList, null); + } + + private void logQuery(String sql) { + logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); + } + + private boolean isLoggedInUserPortalAdmin(Long userId) { + try { + String sql = "SELECT u.user_id, u.first_name, u.last_name, u.login_id " + + " FROM fn_user u, fn_user_role ur " + " WHERE u.user_id = ur.user_id " + " AND ur.user_id=" + + userId + " AND ur.role_id=" + SYS_ADMIN_ROLE_ID; + + logQuery(sql); + + @SuppressWarnings("unchecked") + List portalAdmins = dataAccessService.executeSQLQuery(sql, PortalAdmin.class, null); + logger.debug(EELFLoggerDelegate.debugLogger, portalAdmins.toString()); + if (portalAdmins == null || portalAdmins.size() <= 0) { + return false; + } + return true; + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "isLoggedInUserPortalAdmin failed", e); + return false; + } + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SearchService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SearchService.java new file mode 100644 index 00000000..9cbc52ea --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SearchService.java @@ -0,0 +1,48 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import org.onap.portalapp.portal.domain.EPUser; + +public interface SearchService { + + public String searchUsersInPhoneBook(String searchString); + + public EPUser searchUserByUserId(String orgUserId); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SearchServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SearchServiceImpl.java new file mode 100644 index 00000000..30ff5980 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SearchServiceImpl.java @@ -0,0 +1,195 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.List; + +import org.onap.portalapp.portal.service.SearchService; +import org.onap.portalapp.portal.service.SearchServiceImpl; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.transport.UserWithNameSurnameTitle; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +@Service("searchService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class SearchServiceImpl implements SearchService { + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SearchServiceImpl.class); + + // TODO: the values below should be defined in other place + private static final int maxSizeOfSearchResult = 100; + + + @Autowired + EPLdapService ldapService; + + @Override + public String searchUsersInPhoneBook(String searchString) { + String orgUserId = null; + List tokens = EcompPortalUtils.parsingByRegularExpression(searchString, " "); + for (int i = 0; i < tokens.size(); i++) { // find orgUserId if possible and remove it from tokens + if (tokens.get(i).matches(".*\\d+.*")) { + orgUserId = tokens.get(i); + tokens.remove(i); + } + } + while (tokens.size() > 2) { // we use no more then first 2 tokens (orgUserId is removed, see above) + tokens.remove(tokens.size() - 1); + } + EPUser attrUser = new EPUser(); + attrUser.setOrgUserId(orgUserId); + List resultOfSearch = new ArrayList(), resultOfAdditionalSearch = null; + if (tokens.size() == 2) { + attrUser.setFirstName(tokens.get(0)); + attrUser.setLastName(tokens.get(1)); + resultOfSearch = this.searchUsersByAttrs(attrUser); + resultOfSearch = this.removeWrongFirstNames(resultOfSearch, tokens.get(0)); + resultOfSearch = this.removeWrongLastNames(resultOfSearch, tokens.get(1)); + if (resultOfSearch.size() < maxSizeOfSearchResult) { + attrUser.setFirstName(tokens.get(1)); + attrUser.setLastName(tokens.get(0)); + resultOfAdditionalSearch = this.searchUsersByAttrs(attrUser); + resultOfAdditionalSearch = this.removeWrongFirstNames(resultOfAdditionalSearch, tokens.get(1)); + resultOfAdditionalSearch = this.removeWrongLastNames(resultOfAdditionalSearch, tokens.get(0)); + } + } else if (tokens.size() == 1) { + attrUser.setFirstName(tokens.get(0)); + resultOfSearch = this.searchUsersByAttrs(attrUser); + resultOfSearch = this.removeWrongFirstNames(resultOfSearch, tokens.get(0)); + if (resultOfSearch.size() < maxSizeOfSearchResult) { + attrUser.setFirstName(null); + attrUser.setLastName(tokens.get(0)); + resultOfAdditionalSearch = this.searchUsersByAttrs(attrUser); + resultOfAdditionalSearch = this.removeWrongLastNames(resultOfAdditionalSearch, tokens.get(0)); + } + } else if (orgUserId != null) { + resultOfSearch = this.searchUsersByAttrs(attrUser); + } + if (resultOfAdditionalSearch != null) { + resultOfSearch.addAll(resultOfAdditionalSearch); + } + resultOfSearch = this.cutSearchResultToMaximumSize(resultOfSearch); + ObjectMapper mapper = new ObjectMapper(); + String result = "[]"; + try { + result = mapper.writeValueAsString(resultOfSearch); + } catch (JsonProcessingException e) { + logger.error(EELFLoggerDelegate.errorLogger, "searchUsersInPhoneBook failed", e); + } + return result; + } + + private List searchUsersByAttrs(EPUser attrUser) { + List foundUsers = new ArrayList(); + try { + org.onap.portalsdk.core.command.support.SearchResult searchResult = this.ldapService.searchPost(attrUser, null, null, null, 0, 0, -1); + for (Object obj : searchResult) { + EPUser user = (EPUser) obj; + UserWithNameSurnameTitle foundUser = new UserWithNameSurnameTitle(user.getOrgUserId(), user.getFirstName(), user.getLastName(), user.getJobTitle()); + foundUsers.add(foundUser); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "searchUsersByAttrs failed", e); + } + return foundUsers; + } + + private List removeWrongFirstNames(List resultOfSearch, String firstName) { + firstName = firstName.toUpperCase(); + for (int i = resultOfSearch.size() - 1; i >= 0; i--) { + UserWithNameSurnameTitle user = resultOfSearch.get(i); + if ((user.firstName == null) || !user.firstName.toUpperCase().startsWith(firstName)) { + resultOfSearch.remove(i); + } + } + return resultOfSearch; + } + + private List removeWrongLastNames(List resultOfSearch, String lastName) { + lastName = lastName.toUpperCase(); + for (int i = resultOfSearch.size() - 1; i >= 0; i--) { + UserWithNameSurnameTitle user = resultOfSearch.get(i); + if ((user.lastName == null) || !user.lastName.toUpperCase().startsWith(lastName)) { + resultOfSearch.remove(i); + } + } + return resultOfSearch; + } + + private List cutSearchResultToMaximumSize(List resultOfSearch) { + for (int i = resultOfSearch.size() - 1; i >= maxSizeOfSearchResult; i--) { + resultOfSearch.remove(i); + } + return resultOfSearch; + } + + @Override + @SuppressWarnings("unchecked") + public EPUser searchUserByUserId(String orgUserId) { + EPUser user = null; + EPUser searchedUser = new EPUser(); + searchedUser.setOrgUserId(orgUserId); + try { + List searchResult = ldapService.searchPost(searchedUser, "", null, null, 0, -1, 1); + for (Object obj : searchResult) { + if (obj instanceof EPUser) { + user = (EPUser) obj; + // This assignment should be checked later! + user.setLoginId(orgUserId); + break; + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "searchUserByUserId failed", e); + } + return user; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SharedContextService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SharedContextService.java new file mode 100644 index 00000000..37321e55 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SharedContextService.java @@ -0,0 +1,118 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.SharedContext; + +/** + * Defines the methods exposed by the service that manages shared context + * objects in the database. + */ +public interface SharedContextService { + + /** + * Gets all shared context objects for the specified context ID. + * + * @param contextId + * SharedContext ID + * @return List of SharedContext objects + */ + List getSharedContexts(String contextId); + + /** + * Gets the shared context with the specified context ID and key. + * + * @param contextId + * Context ID; usually a session ID + * @param key + * Key for the key-value pair + * @return Value found in the database, null if any parameter is null or no + * shared context exists with that context ID - key pair. + */ + SharedContext getSharedContext(String contextId, String key); + + /** + * Creates a new shared context entry with the specified context ID, key and + * value. + * + * @param contextId + * SharedContext ID + * @param key + * Key for the key-value pair. + * @param value + * Value for the key-value pair. + */ + void addSharedContext(String contextId, String key, String value); + + /** + * Saves the specified shared context. + * + * @param context + * SharedContext object to save. + */ + void saveSharedContext(SharedContext context); + + /** + * Deletes the specified shared context. + * + * @param context + * SharedContext object to delete. + */ + void deleteSharedContext(SharedContext context); + + /** + * Deletes all shared contexts with the specified context ID. + * + * @param contextId + * Context ID; usually a session ID + * @return number of shared-context objects deleted + */ + int deleteSharedContexts(String contextId); + + /** + * Deletes all shared contexts with a creation time that is older than the + * specified value. + * + * @param ageInSeconds + * Expiration threshold in seconds + */ + void expireSharedContexts(int ageInSeconds); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SharedContextServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SharedContextServiceImpl.java new file mode 100644 index 00000000..a950c5ff --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SharedContextServiceImpl.java @@ -0,0 +1,194 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.onap.portalapp.portal.domain.SharedContext; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; + +/** + * Implementation of the shared-context service that talks to the database. + */ +@Service("sharedContextService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class SharedContextServiceImpl implements SharedContextService { + + @Autowired + private DataAccessService dataAccessService; + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SharedContextServiceImpl.class); + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalsdk.core.service.SharedContextService# + * getSharedContexts() + */ + @Override + @SuppressWarnings("unchecked") + public List getSharedContexts(String contextId) { + List restrictionsList = new ArrayList(); + Criterion contextIdCrit = Restrictions.eq("context_id", contextId); + restrictionsList.add(contextIdCrit); + List contexts = (List) getDataAccessService().getList(SharedContext.class, null, + restrictionsList, null); + + return contexts; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalsdk.core.service.SharedContextService# + * getSharedContext(java. lang.String, java.lang.String) + */ + @Override + public SharedContext getSharedContext(String contextId, String key) { + SharedContext context = null; + List restrictionsList = new ArrayList(); + Criterion contextIdCrit = Restrictions.eq("context_id", contextId); + Criterion keyCrit = Restrictions.eq("ckey", key); + restrictionsList.add(contextIdCrit); + restrictionsList.add(keyCrit); + @SuppressWarnings("unchecked") + List contexts = (List) getDataAccessService().getList(SharedContext.class, null, + restrictionsList, null); + if (contexts != null && contexts.size() == 1) + context = contexts.get(0); + + return context; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.SharedContextService# + * addSharedContext(java.lang.String, java.lang.String, java.lang.String) + */ + @Override + public void addSharedContext(String contextId, String key, String value) { + SharedContext context = new SharedContext(contextId, key, value); + saveSharedContext(context); + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalsdk.core.service.SharedContextService# + * saveSharedContext(org.openecomp.portalapp.portal.domain.SharedContext) + */ + @Override + public void saveSharedContext(SharedContext context) { + getDataAccessService().saveDomainObject(context, null); + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalsdk.core.service.SharedContextService# + * deleteSharedContext(org.openecomp.portalapp.portal.domain.SharedContext) + */ + @Override + public void deleteSharedContext(SharedContext context) { + getDataAccessService().deleteDomainObject(context, null); + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.SharedContextService# + * deleteSharedContexts(java.lang.String) + */ + @Override + public int deleteSharedContexts(String contextId) { + // Uses an inefficient method to avoid a where clause + // that could be used to mount a SQL injection attack. + List contexts = getSharedContexts(contextId); + if (contexts == null) + return 0; + + logger.debug(EELFLoggerDelegate.debugLogger, "deleteSharedContexts: count is " + contexts.size()); + for (SharedContext sc : contexts) + deleteSharedContext(sc); + + return contexts.size(); + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.SharedContextService# + * expireSharedContexts(int) + */ + @Override + public void expireSharedContexts(int ageInSeconds) { + // Specific to the MySQL database. + // final String whereClause = " where create_time < ADDDATE(NOW(), + // INTERVAL - " + ageInSeconds + " SECOND)"; + final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date expiredDateTime = new Date(System.currentTimeMillis() - ageInSeconds * 1000); + logger.debug(EELFLoggerDelegate.debugLogger, + "expireSharedContexts: expire time is " + expiredDateTime.toString()); + final String whereClause = " create_time < '" + dateFormat.format(expiredDateTime) + "'"; + getDataAccessService().deleteDomainObjects(SharedContext.class, whereClause, null); + } + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/TicketEventService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/TicketEventService.java new file mode 100644 index 00000000..ad0dbc55 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/TicketEventService.java @@ -0,0 +1,46 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import com.fasterxml.jackson.databind.JsonNode; + +public interface TicketEventService { + + public String getNotificationHyperLink(JsonNode application, String ticket, String eventSource); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserNotificationService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserNotificationService.java new file mode 100644 index 00000000..f327c842 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserNotificationService.java @@ -0,0 +1,158 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EcompAppRole; +import org.onap.portalapp.portal.transport.EpNotificationItem; +import org.onap.portalapp.portal.transport.EpNotificationItemVO; +import org.onap.portalapp.portal.transport.EpRoleNotificationItem; + +public interface UserNotificationService { + + /** + * Gets the specified notifications with userId from ep_notification + * + * @param userId + * + * @return the notifications with the specified userId + */ + + List getNotifications(Long userId); + + /** + * Gets the specified roles from ep_role_notification + * + * @param notificationId + * + * @return the roles for a specified notification + */ + + List getNotificationRoles(Long notificationId); + + /** + * Get all app role list from the fn_app and fn_role table + * + * @return list of all roles associated with the applications + */ + List getAppRoleList(); + + /** + * Marks the notification as viewed by the specified user. + * + * @param notificationId + * @param userId + */ + void setNotificationRead(Long notificationId, int userId); + + /** + * Saves the specified notification to the table ep_notification + * + * @param notificationItem + * @throws Exception + */ + + String saveNotification(EpNotificationItem notificationItem) throws Exception; + + /** + * Gets the specified notification with the userId for view all recent + * notifications + * + * @param userId + * + * @return the notification list + */ + + List getNotificationHistoryVO(Long userId); + + /** + * Gets the notifications with the userId for user notifications + * + * @param userId + * + * @return the notification list + */ + + List getAdminNotificationVOS(Long userId); + + /** + * Gets the user list from fn_user + * + * @param OrgIds + * + * @return the users list + */ + + List getUsersByOrgIds(List OrgIds); + + /** + * Gets the received recipient to whom the notification is delivered from + * external system + * + * @param notificationId + * + * @return the active users + */ + + List getMessageRecipients(Long notificationId); + + /** + * delete the records from ep_notification table when the endtime is more + * than 3 months + * + */ + + void deleteNotificationsFromEpNotificationTable(); + + /** + * delete the records from ep_user_notification table when the endtime is + * more than 3 months + * + */ + void deleteNotificationsFromEpUserNotificationTable(); + + /** + * delete the records from ep_role_notification table when the endtime is + * more than 3 months + * + */ + void deleteNotificationsFromEpRoleNotificationTable(); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserNotificationServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserNotificationServiceImpl.java new file mode 100644 index 00000000..130c99e7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserNotificationServiceImpl.java @@ -0,0 +1,262 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.hibernate.SessionFactory; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserNotification; +import org.onap.portalapp.portal.domain.EcompAppRole; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.transport.EpNotificationItem; +import org.onap.portalapp.portal.transport.EpNotificationItemVO; +import org.onap.portalapp.portal.transport.EpRoleNotificationItem; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; + +@Service("userNotificationService") +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class UserNotificationServiceImpl implements UserNotificationService { + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FunctionalMenuServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + @Autowired + private SessionFactory sessionFactory; + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserNotificationService# + * getNotifications(java.lang.Long) + */ + @Override + public List getNotifications(Long userId) { + Map params = new HashMap(); + params.put("user_id", userId.toString()); + @SuppressWarnings("unchecked") + List notificationList = dataAccessService.executeNamedQuery("getNotifications", params, + null); + // set the roles to null for pure retrieval of all notifications + for (EpNotificationItem item : notificationList) { + item.setRoles(null); + } + return notificationList; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserNotificationService# + * getNotificationHistoryVO(java.lang.Long) + */ + @Override + public List getNotificationHistoryVO(Long userId) { + Map params = new HashMap(); + params.put("user_id", userId.toString()); + @SuppressWarnings("unchecked") + List notificationList = dataAccessService.executeNamedQuery("getNotificationHistoryVO", + params, null); + return notificationList; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserNotificationService# + * getAdminNotificationVOS() + */ + @Override + public List getAdminNotificationVOS(Long userId) { + Map params = new HashMap(); + params.put("user_id", userId.toString()); + @SuppressWarnings("unchecked") + List notificationList = dataAccessService + .executeNamedQuery("getAdminNotificationHistoryVO", params, null); + return notificationList; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserNotificationService# + * getNotificationRoles(java.lang.Long) + */ + @Override + public List getNotificationRoles(Long notificationId) { + Map params = new HashMap(); + params.put("notificationId", Long.toString(notificationId)); + @SuppressWarnings("unchecked") + List roleNotifList = dataAccessService.executeNamedQuery("getNotificationRoles", params, + null); + return roleNotifList; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserNotificationService# + * getAppRoleList() + */ + @SuppressWarnings("unchecked") + @Override + public List getAppRoleList() { + List appRoleList = (List) dataAccessService + .executeNamedQuery("getEpNotificationAppRoles", null, null); + return appRoleList; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserNotificationService# + * setNotificationsRead(java.lang.Long, int) + */ + @Override + public void setNotificationRead(Long notificationId, int userId) { + EPUserNotification userNotification = new EPUserNotification(); + userNotification.setNotificationId(notificationId); + userNotification.setUpdateTime(new Date()); + userNotification.setViewed("Y"); + userNotification.setUserId((long) userId); + getDataAccessService().saveDomainObject(userNotification, null); + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserNotificationService# + * saveNotification(org.openecomp.portalapp.portal.transport. + * EpNotificationItem) + */ + @Override + public String saveNotification(EpNotificationItem notificationItem) throws Exception { + + // gather the roles + if (notificationItem.getRoleIds() != null && !notificationItem.getIsForAllRoles().equals("Y")) { + if (notificationItem.getRoles() == null) { + Set roleSet = new HashSet(); + notificationItem.setRoles(roleSet); + } + for (Long roleId : notificationItem.getRoleIds()) { + EpRoleNotificationItem roleItem = new EpRoleNotificationItem(); + roleItem.setNotificationId(notificationItem.getNotificationId()); + roleItem.setRoleId(roleId.intValue()); + notificationItem.getRoles().add(roleItem); + } + } + + // for updates fetch roles and then save + if (notificationItem.getNotificationId() != null) { + EpNotificationItem updateNotificationItem = (EpNotificationItem) getDataAccessService() + .getDomainObject(EpNotificationItem.class, notificationItem.getNotificationId(), null); + notificationItem.setRoles(updateNotificationItem.getRoles()); + } + if (notificationItem.msgSource == null) { + notificationItem.setMsgSource("EP"); + } + getDataAccessService().saveDomainObject(notificationItem, null); + return ""; + + } + + @Override + public List getUsersByOrgIds(List OrgIds) { + Map params = new HashMap(); + params.put("OrgIds", OrgIds); + @SuppressWarnings("unchecked") + List userList = dataAccessService.executeNamedQuery("getUsersByOrgIdsNotifications", params, null); + return userList; + } + + @Override + public List getMessageRecipients(Long notificationId) { + Map params = new HashMap<>(); + params.put("notificationId", Long.toString(notificationId)); + @SuppressWarnings("unchecked") + List activeUsers = dataAccessService.executeNamedQuery("messageRecipients", params, null); + return activeUsers; + } + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } + + public SessionFactory getSessionFactory() { + return sessionFactory; + } + + public void setSessionFactory(SessionFactory sessionFactory) { + this.sessionFactory = sessionFactory; + } + + @Override + public void deleteNotificationsFromEpNotificationTable() { + Map params = new HashMap(); + dataAccessService.executeNamedQuery("deleteNotificationsFromEpNotificationTable", params, null); + } + + @Override + public void deleteNotificationsFromEpUserNotificationTable() { + Map params = new HashMap(); + dataAccessService.executeNamedQuery("deleteNotificationsFromEpUserNotificationTable", params, null); + + } + + @Override + public void deleteNotificationsFromEpRoleNotificationTable() { + Map params = new HashMap(); + dataAccessService.executeNamedQuery("deleteNotificationsFromEpRoleNotificationTable", params, null); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImpl.java new file mode 100644 index 00000000..3535f753 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImpl.java @@ -0,0 +1,1950 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.apache.cxf.transport.http.HTTPException; +import org.hibernate.SQLQuery; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.json.JSONArray; +import org.json.JSONObject; +import org.onap.portalapp.portal.service.SearchService; +import org.onap.portalapp.externalsystemapproval.model.ExternalSystemRoleApproval; +import org.onap.portalapp.externalsystemapproval.model.ExternalSystemUser; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserApp; +import org.onap.portalapp.portal.domain.EPUserAppCatalogRoles; +import org.onap.portalapp.portal.domain.EPUserAppRoles; +import org.onap.portalapp.portal.domain.EPUserAppRolesRequest; +import org.onap.portalapp.portal.domain.EPUserAppRolesRequestDetail; +import org.onap.portalapp.portal.domain.ExternalSystemAccess; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.transport.AppWithRolesForUser; +import org.onap.portalapp.portal.transport.CentralV2Role; +import org.onap.portalapp.portal.transport.EPUserAppCurrentRoles; +import org.onap.portalapp.portal.transport.EcompUserAppRoles; +import org.onap.portalapp.portal.transport.ExternalAccessUser; +import org.onap.portalapp.portal.transport.ExternalAccessUserRoleDetail; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; +import org.onap.portalapp.portal.transport.ExternalRoleDescription; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; +import org.onap.portalapp.portal.transport.FunctionalMenuRole; +import org.onap.portalapp.portal.transport.RemoteRole; +import org.onap.portalapp.portal.transport.RemoteUserWithRoles; +import org.onap.portalapp.portal.transport.RoleInAppForUser; +import org.onap.portalapp.portal.transport.RolesInAppForUser; +import org.onap.portalapp.portal.transport.UserApplicationRoles; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.domain.Role; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.restful.domain.EcompRole; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.RoleService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; + +@EPMetricsLog +public class UserRolesCommonServiceImpl { + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserRolesCommonServiceImpl.class); + + private static final Object syncRests = new Object(); + + @Autowired + private DataAccessService dataAccessService; + @Autowired + private SessionFactory sessionFactory; + @Autowired + private SearchService searchService; + @Autowired + private EPAppService appsService; + @Autowired + private ApplicationsRestClientService applicationsRestClientService; + @Autowired + private EPRoleService epRoleService; + @Autowired + private RoleService roleService; + + @Autowired + private ExternalAccessRolesService externalAccessRolesService; + + RestTemplate template = new RestTemplate(); + + /** + * + * @param ecompRoles + * @return HashMap + */ + private static HashMap hashMapFromEcompRoles(EcompRole[] ecompRoles) { + HashMap result = new HashMap(); + if (ecompRoles != null) { + for (int i = 0; i < ecompRoles.length; i++) { + if (ecompRoles[i].getId() != null) { + result.put(ecompRoles[i].getId(), ecompRoles[i]); + } + } + } + return result; + } + + /** + * + * @param userId + */ + protected void createLocalUserIfNecessary(String userId) { + if (StringUtils.isEmpty(userId)) { + logger.error(EELFLoggerDelegate.errorLogger, "createLocalUserIfNecessary : empty userId!"); + return; + } + Session localSession = null; + Transaction transaction = null; + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + @SuppressWarnings("unchecked") + List userList = localSession + .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + userId + "'").list(); + if (userList.size() == 0) { + EPUser client = searchService.searchUserByUserId(userId); + if (client == null) { + String msg = "createLocalUserIfNecessary: cannot create user " + userId + + ", because not found in phonebook"; + logger.error(EELFLoggerDelegate.errorLogger, msg); + } else { + client.setLoginId(userId); + client.setActive(true); + localSession.save(client); + } + } + transaction.commit(); + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + EcompPortalUtils.rollbackTransaction(transaction, "searchOrCreateUser rollback, exception = " + e); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "searchOrCreateUser"); + } + } + + /** + * This method return nothing and remove roles before adding any roles for an app + * @param userRole + * @param appId + * @param localSession + * @param userAppRoles + * @param newUserAppRolesMap + */ + private static void syncUserRolesExtension(EPUserApp userRole, Long appId, Session localSession, EcompRole[] userAppRoles, HashMap newUserAppRolesMap) { + + Long userAppRoleId = 0L; + if (appId == PortalConstants.PORTAL_APP_ID) { // local app + userAppRoleId = userRole.getRoleId(); + } else { // remote app + userAppRoleId = userRole.getAppRoleId(); + } + + if (!newUserAppRolesMap.containsKey(userAppRoleId)) { + localSession.delete(userRole); + } else { + newUserAppRolesMap.remove(userAppRoleId); + } + } + + /** + * Checks whether the role is inactive + * + * @param epRole + * @throws Exception + * if role is inactive, throws exception + */ + private void checkIfRoleInactive(EPRole epRole) throws Exception{ + if(!epRole.getActive()){ + throw new Exception(epRole.getName()+ " role is unavailable"); + } + } + + /** + * + * @param sessionFactory + * @param userId + * @param appId + * @param userAppRoles + * @param extRequestValue + * set to false if request is from users page otherwise true + * @throws Exception + */ + protected void syncUserRoles(SessionFactory sessionFactory, String userId, Long appId, + EcompRole[] userAppRoles, Boolean extRequestValue, String reqType) throws Exception { + boolean result = false; + Session localSession = null; + Transaction transaction = null; + String roleActive = null; + final Map userAppParams = new HashMap<>(); + final Map appParams = new HashMap<>(); + HashMap newUserAppRolesMap = hashMapFromEcompRoles(userAppRoles); + + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + @SuppressWarnings("unchecked") + List userList = localSession + .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + userId + "'").list(); + if (userList.size() > 0) { + EPUser client = userList.get(0); + roleActive = ("DELETE".equals(reqType)) ? "" : " and role.active = 'Y'"; + @SuppressWarnings("unchecked") + List userRoles = localSession.createQuery("from " + EPUserApp.class.getName() + + " where app.id=" + appId + roleActive + " and userId=" + client.getId()).list(); + + if ("DELETE".equals(reqType)) { + for (EPUserApp userAppRoleList : userRoles) { + userAppParams.put("roleName", String.valueOf(userAppRoleList.getRole().getName())); + userAppParams.put("appId", String.valueOf(appId)); + appParams.put("appRoleName", userAppRoleList.getRole().getName()); + @SuppressWarnings("unchecked") + List rolesList = (!userAppRoleList.getRole().getName().equals(PortalConstants.ADMIN_ROLE)) ? (List) dataAccessService.executeNamedQuery("getAppRoles", userAppParams, null) : (List) dataAccessService.executeNamedQuery("getPortalAppRoles", appParams, null); + if(rolesList.size() > 0 || !rolesList.isEmpty()){ + checkIfRoleInactive(rolesList.get(0)); + } + } + } + + for (EPUserApp userRole : userRoles) { + if (!userRole.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID) && userRole.getRoleId() != PortalConstants.SYS_ADMIN_ROLE_ID && !extRequestValue){ + syncUserRolesExtension(userRole, appId, localSession, userAppRoles, newUserAppRolesMap); + } + else if (extRequestValue && ("PUT".equals(reqType) || "POST".equals(reqType) || "DELETE".equals(reqType))){ + syncUserRolesExtension(userRole, appId, localSession, userAppRoles, newUserAppRolesMap); + } + else if (extRequestValue && !userRole.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)){ + syncUserRolesExtension(userRole, appId, localSession, userAppRoles, newUserAppRolesMap); + } + } + Collection newRolesToAdd = newUserAppRolesMap.values(); + if (newRolesToAdd.size() > 0) { + EPApp app = (EPApp) localSession.get(EPApp.class, appId); + + HashMap rolesMap = new HashMap(); + if (appId.equals(PortalConstants.PORTAL_APP_ID)) { // local app + String appIdValue = ""; + if(!extRequestValue){ + appIdValue = "and id != " + PortalConstants.SYS_ADMIN_ROLE_ID; + } + @SuppressWarnings("unchecked") + List roles = localSession + .createQuery("from " + EPRole.class.getName() + " where appId is null " + appIdValue).list(); + for (EPRole role : roles) { + role.setAppId(1L); + rolesMap.put(role.getId(), role); + } + } else { // remote app + @SuppressWarnings("unchecked") + List roles = localSession + .createQuery("from " + EPRole.class.getName() + " where appId=" + appId).list(); + for (EPRole role : roles) { + if (!extRequestValue && app.getCentralAuth()) { + rolesMap.put(role.getId(), role); + } else { + rolesMap.put(role.getAppRoleId(), role); + } + } + } + + EPRole role = null; + for (EcompRole userRole : newRolesToAdd) { + EPUserApp userApp = new EPUserApp(); + if (("PUT".equals(reqType) || "POST".equals(reqType)) && userRole.getName().equals(PortalConstants.ADMIN_ROLE)) { + role = (EPRole) localSession.get(EPRole.class, new Long(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)); + userApp.setRole(role); + } else if ((userRole.getId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)) && !extRequestValue){ + continue; + }else if((userRole.getId().equals(PortalConstants.SYS_ADMIN_ROLE_ID)) && app.getId().equals(PortalConstants.PORTAL_APP_ID) && !extRequestValue){ + continue; + } + else { + userApp.setRole(rolesMap.get(userRole.getId())); + } + + userApp.setUserId(client.getId()); + userApp.setApp(app); + localSession.save(userApp); + localSession.flush(); + } + + if (appId == PortalConstants.PORTAL_APP_ID) { + /* + * for local app -- hack - always make sure fn_role + * table's app_id is null and not 1 for primary app in + * this case being ecomp portal app; reason: hibernate + * is rightly setting this to 1 while persisting to + * fn_role as per the mapping but SDK role management + * code expects the app_id to be null as there is no + * concept of App_id in SDK + */ + localSession.flush(); + SQLQuery sqlQuery = localSession + .createSQLQuery("update fn_role set app_id = null where app_id = 1 "); + sqlQuery.executeUpdate(); + + } + } + } + transaction.commit(); + result = true; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "syncUserRoles failed", e); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + EcompPortalUtils.rollbackTransaction(transaction, + "Exception occurred in syncUserRoles, Details: " + e.toString()); + if("DELETE".equals(reqType)){ + throw new Exception(e.getMessage()); + } + } finally { + localSession.close(); + if (!result && !"DELETE".equals(reqType)) { + throw new Exception( + "Exception occurred in syncUserRoles while closing database session for app: '" + appId + "'."); + } + } + } + + /** + * Called when getting the list of roles for the user + * + * @param appRoles + * @param userAppRoles + * @return List + */ + protected List constructRolesInAppForUserGet(EcompRole[] appRoles, EcompRole[] userAppRoles) { + List rolesInAppForUser = new ArrayList(); + + Set userAppRolesMap = new HashSet(); + if (userAppRoles != null) { + for (EcompRole ecompRole : userAppRoles) { + userAppRolesMap.add(ecompRole.getId()); + } + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "constructRolesInAppForUserGet has received userAppRoles list empty"); + } + + if (appRoles != null) { + for (EcompRole ecompRole : appRoles) { + RoleInAppForUser roleForUser = new RoleInAppForUser(ecompRole.getId(), ecompRole.getName()); + roleForUser.isApplied = userAppRolesMap.contains(ecompRole.getId()); + rolesInAppForUser.add(roleForUser); + } + } else { + logger.error(EELFLoggerDelegate.errorLogger, "constructRolesInAppForUser has received appRoles list empty"); + } + return rolesInAppForUser; + } + + /** + * Called when getting the list of roles for the user + * + * @param appRoles + * @param userAppRoles + * @param extRequestValue + * set to false if request is from users page otherwise true + * @return List + */ + protected List constructRolesInAppForUserGet(List appRoles, EPRole[] userAppRoles, Boolean extRequestValue) { + List rolesInAppForUser = new ArrayList(); + + Set userAppRolesMap = new HashSet(); + if (userAppRoles != null) { + for (EPRole ecompRole : userAppRoles) { + userAppRolesMap.add(ecompRole.getId()); + } + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "constructRolesInAppForUserGet has received userAppRoles list empty."); + } + + if (appRoles != null) { + for (Role ecompRole : appRoles) { + if (ecompRole.getId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID) && !extRequestValue) + continue; + RoleInAppForUser roleForUser = new RoleInAppForUser(ecompRole.getId(), ecompRole.getName()); + roleForUser.isApplied = userAppRolesMap.contains(ecompRole.getId()); + rolesInAppForUser.add(roleForUser); + } + } else { + logger.error(EELFLoggerDelegate.errorLogger, + "constructRolesInAppForUser has received appRoles list empty."); + } + return rolesInAppForUser; + } + + + /** + * copies of methods in GetAppsWithUserRoleState + * + * @param sessionFactory + * @param appId + * @param appRoles + * @throws Exception + */ + protected void syncAppRoles(SessionFactory sessionFactory, Long appId, EcompRole[] appRoles) throws Exception { + logger.debug(EELFLoggerDelegate.debugLogger, "entering syncAppRoles for appId: " + appId); + HashMap newRolesMap = hashMapFromEcompRoles(appRoles); + Session localSession = null; + Transaction transaction = null; + + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + // Attention! All roles from remote application supposed to be + // active! + @SuppressWarnings("unchecked") + List currentAppRoles = localSession + .createQuery("from " + EPRole.class.getName() + " where appId=" + appId).list(); + List obsoleteRoles = new ArrayList(); + for (int i = 0; i < currentAppRoles.size(); i++) { + EPRole oldAppRole = currentAppRoles.get(i); + if (oldAppRole.getAppRoleId() != null) { + EcompRole role = null; + role = newRolesMap.get(oldAppRole.getAppRoleId()); + if (role != null) { + if (!(role.getName() == null || oldAppRole.getName().equals(role.getName()))) { + oldAppRole.setName(role.getName()); + localSession.update(oldAppRole); + } + newRolesMap.remove(oldAppRole.getAppRoleId()); + } else { + obsoleteRoles.add(oldAppRole); + } + } else { + obsoleteRoles.add(oldAppRole); + } + } + Collection newRolesToAdd = newRolesMap.values(); + if (obsoleteRoles.size() > 0) { + logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: we have obsolete roles to delete"); + for (EPRole role : obsoleteRoles) { + logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: obsolete role: " + role.toString()); + Long roleId = role.getId(); + // delete obsolete roles here + // Must delete all records with foreign key constraints on + // fn_role: + // fn_user_role, fn_role_composite, fn_role_function, + // fn_user_pseudo_role, fn_menu_functional_roles. + // And for fn_menu_functional, if no other roles for that + // menu item, remove the url. + + // Delete from fn_user_role + @SuppressWarnings("unchecked") + List userRoles = localSession.createQuery( + "from " + EPUserApp.class.getName() + " where app.id=" + appId + " and role_id=" + roleId) + .list(); + + logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: number of userRoles to delete: " + userRoles.size()); + for (EPUserApp userRole : userRoles) { + logger.debug(EELFLoggerDelegate.debugLogger, + "syncAppRoles: about to delete userRole: " + userRole.toString()); + localSession.delete(userRole); + logger.debug(EELFLoggerDelegate.debugLogger, + "syncAppRoles: finished deleting userRole: " + userRole.toString()); + } + + // Delete from fn_menu_functional_roles + @SuppressWarnings("unchecked") + List funcMenuRoles = localSession + .createQuery("from " + FunctionalMenuRole.class.getName() + " where roleId=" + roleId) + .list(); + int numMenuRoles = funcMenuRoles.size(); + logger.debug(EELFLoggerDelegate.debugLogger, + "syncAppRoles: number of funcMenuRoles for roleId: " + roleId + ": " + numMenuRoles); + for (FunctionalMenuRole funcMenuRole : funcMenuRoles) { + Long menuId = funcMenuRole.menuId; + // If this is the only role for this menu item, then the + // app and roles will be gone, + // so must null out the url too, to be consistent + @SuppressWarnings("unchecked") + List funcMenuRoles2 = localSession + .createQuery("from " + FunctionalMenuRole.class.getName() + " where menuId=" + menuId) + .list(); + int numMenuRoles2 = funcMenuRoles2.size(); + logger.debug(EELFLoggerDelegate.debugLogger, + "syncAppRoles: number of funcMenuRoles for menuId: " + menuId + ": " + numMenuRoles2); + localSession.delete(funcMenuRole); + if (numMenuRoles2 == 1) { + // If this is the only role for this menu item, then + // the app and roles will be gone, + // so must null out the url too, to be consistent + logger.debug(EELFLoggerDelegate.debugLogger, + "syncAppRoles: There is exactly 1 menu item for this role, so emptying the url"); + @SuppressWarnings("unchecked") + List funcMenuItems = localSession + .createQuery( + "from " + FunctionalMenuItem.class.getName() + " where menuId=" + menuId) + .list(); + if (funcMenuItems.size() > 0) { + logger.debug(EELFLoggerDelegate.debugLogger, "got the menu item"); + FunctionalMenuItem funcMenuItem = funcMenuItems.get(0); + funcMenuItem.url = ""; + localSession.update(funcMenuItem); + } + } + } + boolean isPortalRequest = true; + externalAccessRolesService.deleteRoleDependencyRecords(localSession, roleId, appId, isPortalRequest); + logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: about to delete the role: " + role.toString()); + localSession.delete(role); + logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: deleted the role"); + } + } + for (EcompRole role : newRolesToAdd) { + logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: about to add missing role: " + role.toString()); + EPRole newRole = new EPRole(); + // Attention! All roles from remote application supposed to be + // active! + newRole.setActive(true); + newRole.setName(role.getName()); + newRole.setAppId(appId); + newRole.setAppRoleId(role.getId()); + localSession.save(newRole); + } + logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: about to commit the transaction"); + transaction.commit(); + logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: committed the transaction"); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "syncAppRoles failed", e); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + EcompPortalUtils.rollbackTransaction(transaction, + "Exception occurred in syncAppRoles, Details: " + e.toString()); + throw new Exception(e); + } finally { + localSession.close(); + } + } + + + + + + /** + * Called when updating the list of roles for the user + * + * @param userId + * @param appId + * @param userRolesInRemoteApp + * @return RolesInAppForUser + */ + protected RolesInAppForUser constructRolesInAppForUserUpdate(String userId, Long appId, + Set userRolesInRemoteApp) { + RolesInAppForUser result; + result = new RolesInAppForUser(); + result.appId = appId; + result.orgUserId = userId; + for (EcompRole role : userRolesInRemoteApp) { + RoleInAppForUser roleInAppForUser = new RoleInAppForUser(); + roleInAppForUser.roleId = role.getId(); + roleInAppForUser.roleName = role.getName(); + roleInAppForUser.isApplied = new Boolean(true); + result.roles.add(roleInAppForUser); + } + return result; + } + + /** + * + * @param roleInAppForUserList + * @return boolean + */ + protected boolean remoteUserShouldBeCreated(List roleInAppForUserList) { + for (RoleInAppForUser roleInAppForUser : roleInAppForUserList) { + if (roleInAppForUser.isApplied.booleanValue()) { + return true; + } + } + return false; + } + + /** + * Builds JSON and posts it to a remote application to update user roles. + * + * @param roleInAppForUserList + * @param mapper + * @param applicationsRestClientService + * @param appId + * @param userId + * @return Set of roles as sent; NOT the response from the app. + * @throws JsonProcessingException + * @throws HTTPException + */ + protected Set postUsersRolesToRemoteApp(List roleInAppForUserList, ObjectMapper mapper, + ApplicationsRestClientService applicationsRestClientService, Long appId, String userId) + throws JsonProcessingException, HTTPException { + Set updatedUserRolesinRemote = constructUsersRemoteAppRoles(roleInAppForUserList); + Set updateUserRolesInEcomp = constructUsersEcompRoles(roleInAppForUserList); + String userRolesAsString = mapper.writeValueAsString(updatedUserRolesinRemote); + applicationsRestClientService.post(EcompRole.class, appId, userRolesAsString, + String.format("/user/%s/roles", userId)); + // TODO: We should add code that verifies that the post operation did + // succeed. Because the SDK may still return 200 OK with an html page + // even when it fails! + return updateUserRolesInEcomp; + } + + /** + * + * @param roleInAppForUserList + * @return Set + */ + protected Set constructUsersEcompRoles(List roleInAppForUserList) { + Set existingUserRoles = new TreeSet(); + for (RoleInAppForUser roleInAppForUser : roleInAppForUserList) { + if (roleInAppForUser.isApplied) { + EcompRole ecompRole = new EcompRole(); + ecompRole.setId(roleInAppForUser.roleId); + ecompRole.setName(roleInAppForUser.roleName); + existingUserRoles.add(ecompRole); + } + } + return existingUserRoles; + } + + /** + * Constructs user app roles excluding Account Administrator role + * + * @param roleInAppForUserList + * @return + * List of roles with Role name, Role Id + */ + protected Set constructUsersRemoteAppRoles(List roleInAppForUserList) { + Set existingUserRoles = new TreeSet(); + for (RoleInAppForUser roleInAppForUser : roleInAppForUserList) { + if (roleInAppForUser.isApplied && !roleInAppForUser.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)) { + EcompRole ecompRole = new EcompRole(); + ecompRole.setId(roleInAppForUser.roleId); + ecompRole.setName(roleInAppForUser.roleName); + existingUserRoles.add(ecompRole); + } + } + return existingUserRoles; + } + + /** + * This is for a single app + * + * @param rolesInAppForUser + * @param externalSystemRequest + * set to false if requests from Users page otherwise true + * @return true on success, false otherwise + */ + protected boolean applyChangesInUserRolesForAppToEcompDB(RolesInAppForUser rolesInAppForUser, boolean externalSystemRequest, String reqType) throws Exception { + boolean result = false; + String userId = rolesInAppForUser.orgUserId; + Long appId = rolesInAppForUser.appId; + synchronized (syncRests) { + if (rolesInAppForUser != null) { + createLocalUserIfNecessary(userId); + } + + if (rolesInAppForUser != null) { + EcompRole[] userAppRoles = new EcompRole[rolesInAppForUser.roles.stream().distinct().collect(Collectors.toList()).size()]; + for (int i = 0; i < rolesInAppForUser.roles.stream().distinct().collect(Collectors.toList()).size(); i++) { + RoleInAppForUser roleInAppForUser = rolesInAppForUser.roles.get(i); + EcompRole role = new EcompRole(); + role.setId(roleInAppForUser.roleId); + role.setName(roleInAppForUser.roleName); + userAppRoles[i] = role; + } + try { + syncUserRoles(sessionFactory, userId, appId, userAppRoles, externalSystemRequest, reqType); + result = true; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "applyChangesInUserRolesForAppToEcompDB: failed to syncUserRoles for orgUserId " + userId, e); + if("DELETE".equals(reqType)){ + throw new Exception(e.getMessage()); + } + } + } + } + return result; + } + + /** + * + * @param appId + * @param remoteUser + * @return UserApplicationRoles + */ + protected UserApplicationRoles convertToUserApplicationRoles(Long appId, RemoteUserWithRoles remoteUser) { + UserApplicationRoles userWithRemoteAppRoles = new UserApplicationRoles(); + userWithRemoteAppRoles.setAppId(appId); + userWithRemoteAppRoles.setOrgUserId(remoteUser.getOrgUserId()); + userWithRemoteAppRoles.setFirstName(remoteUser.getFirstName()); + userWithRemoteAppRoles.setLastName(remoteUser.getLastName()); + userWithRemoteAppRoles.setRoles(remoteUser.getRoles()); + return userWithRemoteAppRoles; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserRolesService# + * importRolesFromRemoteApplication(java.lang.Long) + */ + public List importRolesFromRemoteApplication(Long appId) throws HTTPException { + EPRole[] appRolesFull = applicationsRestClientService.get(EPRole[].class, appId, "/rolesFull"); + List rolesList = Arrays.asList(appRolesFull); + for (EPRole externalAppRole : rolesList) { + + // Try to find an existing extern role for the app in the local + // ecomp DB. If so, then use its id to update the existing external + // application role record. + Long externAppId = externalAppRole.getId(); + EPRole existingAppRole = epRoleService.getRole(appId, externAppId); + if (existingAppRole != null) { + logger.debug(EELFLoggerDelegate.debugLogger, + String.format("ecomp role already exists for app=%s; appRoleId=%s. No need to import this one.", + appId, externAppId)); + continue; + } + // persistExternalRoleInEcompDb(externalAppRole, appId, + // roleService); + } + + return rolesList; + } + + /** + * It adds new user for remote application + * + * @param roleInAppForUserList + * @param remoteAppUser + * @param userId + * @param app + * @param mapper + * @param searchService + * @param applicationsRestClientService + * @return + * @throws Exception + */ + private EPUser addRemoteUser(List roleInAppForUserList, String userId, EPApp app, ObjectMapper mapper, SearchService searchService, ApplicationsRestClientService applicationsRestClientService) throws Exception{ + EPUser addRemoteUser = null; + if (remoteUserShouldBeCreated(roleInAppForUserList)) { + + createNewUserOnRemoteApp(userId, app, applicationsRestClientService, searchService, mapper, isAppUpgradeVersion(app)); + // If we succeed, we know that the new user was + // persisted on remote app. + addRemoteUser = getUserFromApp(userId, app, applicationsRestClientService); + if (addRemoteUser == null) { + logger.error(EELFLoggerDelegate.errorLogger, + "Failed to persist new user: " + userId + " in remote app. appId = " + app.getId()); + // return null; + } + } + return addRemoteUser; + } + + /** + * It checks whether the remote user exists or not + * if exits returns user object else null + * + * @param userId + * @param app + * @param applicationsRestClientService + * @return + * @throws HTTPException + */ + private EPUser checkIfRemoteUserExits(String userId, EPApp app, ApplicationsRestClientService applicationsRestClientService) throws HTTPException{ + EPUser checkRemoteUser = null; + try { + checkRemoteUser = getUserFromApp(userId, app, applicationsRestClientService); + } catch (HTTPException e) { + // Some apps are returning 400 if user is not found. + if (e.getResponseCode() == 400) { + logger.debug(EELFLoggerDelegate.debugLogger, + "setAppWithUserRoleStateForUser: getuserFromApp threw exception with response code 400; continuing", + e); + } else if(e.getResponseCode() == 404) { + logger.debug(EELFLoggerDelegate.debugLogger, + "setAppWithUserRoleStateForUser: getuserFromApp threw exception with response code 404; continuing", + e); + } else { + // Other response code, let it come thru. + throw e; + } + } + return checkRemoteUser; + } + + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserRolesService# + * setAppWithUserRoleStateForUser(org.openecomp.portalapp.portal.domain. + * EPUser, org.openecomp.portalapp.portal.transport.AppWithRolesForUser) + */ + public boolean setAppWithUserRoleStateForUser(EPUser user, AppWithRolesForUser newAppRolesForUser) { + boolean result = false; + boolean epRequestValue = false; + String userId = ""; + if (newAppRolesForUser != null && newAppRolesForUser.orgUserId != null) { + userId = newAppRolesForUser.orgUserId.trim(); + } + Long appId = newAppRolesForUser.appId; + List roleInAppForUserList = newAppRolesForUser.appRoles; + if (userId.length() > 0) { + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + try { + EPApp app = appsService.getApp(appId); + applyChangesToUserAppRolesForMyLoginsRequest(user, appId); + + // if centralized app + if (app.getCentralAuth()) { + // We should add If user does not exist in remote application + if (!app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + EPUser remoteAppUser = null; + remoteAppUser = checkIfRemoteUserExits(userId, app, applicationsRestClientService); + + if (remoteAppUser == null) { + addRemoteUser(roleInAppForUserList, userId, app, mapper, searchService, + applicationsRestClientService); + } + } + + Set userRolesInLocalApp = postUsersRolesToLocalApp(roleInAppForUserList, mapper, + applicationsRestClientService, appId, userId); + RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(userId, appId, + userRolesInLocalApp); + List roleAppUserList = rolesInAppForUser.roles; + if (EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + // Apply changes in external Access system + updateUserRolesInExternalSystem(app, rolesInAppForUser.orgUserId, roleAppUserList, + epRequestValue); + } + result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, epRequestValue, "Portal"); + } + // In case if portal is not centralized then follow existing approach + else if(!app.getCentralAuth() && app.getId().equals(PortalConstants.PORTAL_APP_ID)){ + Set userRolesInLocalApp = postUsersRolesToLocalApp(roleInAppForUserList, mapper, + applicationsRestClientService, appId, userId); + RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(userId, appId, + userRolesInLocalApp); + result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, epRequestValue, "Portal"); + } else{// remote app + EPUser remoteAppUser = null; + if(!app.getCentralAuth() && !app.getId().equals(PortalConstants.PORTAL_APP_ID)){ + + remoteAppUser = checkIfRemoteUserExits(userId, app, applicationsRestClientService); + + if (remoteAppUser == null) { + remoteAppUser = addRemoteUser(roleInAppForUserList, userId, app, mapper, searchService, applicationsRestClientService); + } + if (remoteAppUser != null) { + Set userRolesInRemoteApp = postUsersRolesToRemoteApp(roleInAppForUserList, mapper, + applicationsRestClientService, appId, userId); + RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(userId, appId, + userRolesInRemoteApp); + result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, epRequestValue, null); + + // If no roles remain, request app to set user inactive. + if (userRolesInRemoteApp.size() == 0) { + logger.debug(EELFLoggerDelegate.debugLogger, + "setAppWithUserRoleStateForUser: no roles in app {}, set user {} to inactive", app, + userId); + remoteAppUser.setActive(false); + postUserToRemoteApp(userId, user, app, applicationsRestClientService); + } + } + } + } + } catch (Exception e) { + String message = String.format( + "Failed to create user or update user roles for User %s, AppId %s", + userId, Long.toString(appId)); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + result = false; + } + + } + return result; + } + /** + * It adds user roles in External system and also make data consistent in both local and in External System + * + * @param app details + * @param orgUserId + * @param roleInAppUser Contains list of active roles + */ + @SuppressWarnings("unchecked") + private void updateUserRolesInExternalSystem(EPApp app, String orgUserId, List roleInAppUser, boolean isPortalRequest) throws Exception + { + try { + // check if user exists + final Map userParams = new HashMap<>(); + userParams.put("orgUserIdValue", orgUserId); + List userInfo = checkIfUserExists(userParams); + if (userInfo.isEmpty()) { + createLocalUserIfNecessary(orgUserId); + } + String name = ""; + if (EPCommonSystemProperties + .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { + name = orgUserId + + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); + } + ObjectMapper mapper = new ObjectMapper(); + HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); + HttpEntity getUserRolesEntity = new HttpEntity<>(headers); + logger.debug(EELFLoggerDelegate.debugLogger, "Connecting to external system to get current user roles"); + ResponseEntity getResponse = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "roles/user/" + name, HttpMethod.GET, getUserRolesEntity, String.class); + if (getResponse.getStatusCode().value() == 200) { + logger.debug(EELFLoggerDelegate.debugLogger, "updateUserRolesInExternalSystem: Finished GET user roles from external system and received user roles {}", + getResponse.getBody()); + + }else{ + logger.error(EELFLoggerDelegate.errorLogger, "updateUserRolesInExternalSystem: Failed GET user roles from external system and received user roles {}",getResponse.getBody() ); + EPLogUtil.logExternalAuthAccessAlarm(logger, getResponse.getStatusCode()); + } + List userRoleDetailList = new ArrayList<>(); + String res = getResponse.getBody(); + JSONObject jsonObj = null; + JSONArray extRoles = null; + if (!res.equals("{}")) { + jsonObj = new JSONObject(res); + extRoles = jsonObj.getJSONArray("role"); + } + ExternalAccessUserRoleDetail userRoleDetail = null; + if (extRoles != null) { + for (int i = 0; i < extRoles.length(); i++) { + if (extRoles.getJSONObject(i).getString("name").startsWith(app.getNameSpace() + ".") + && !extRoles.getJSONObject(i).getString("name").equals(app.getNameSpace() + ".admin") + && !extRoles.getJSONObject(i).getString("name").equals(app.getNameSpace() + ".owner")) { + ObjectMapper descMapper = new ObjectMapper(); + if (extRoles.getJSONObject(i).has("description") && EcompPortalUtils.isJSONValid(extRoles.getJSONObject(i).getString("description"))) { + ExternalRoleDescription desc = descMapper.readValue( + extRoles.getJSONObject(i).getString("description"), ExternalRoleDescription.class); + userRoleDetail = new ExternalAccessUserRoleDetail( + extRoles.getJSONObject(i).getString("name"), desc); + userRoleDetailList.add(userRoleDetail); + } else { + userRoleDetail = new ExternalAccessUserRoleDetail( + extRoles.getJSONObject(i).getString("name"), null); + userRoleDetailList.add(userRoleDetail); + } + + } + } + } + + List userRoleListMatchingInExtAuthAndLocal = CheckIfRoleAreMatchingInUserRoleDetailList(userRoleDetailList,app); + + // If request coming from portal not from external role approval system then we have to check if user already + // have account admin or system admin as GUI will not send these roles + if (!isPortalRequest) { + final Map loginIdParams = new HashMap<>(); + loginIdParams.put("orgUserIdValue", orgUserId); + EPUser user = (EPUser) dataAccessService.executeNamedQuery("epUserAppId", loginIdParams, null).get(0); + final Map params = new HashMap<>(); + params.put("appId", app.getId()); + params.put("userId", user.getId()); + List userAppList = dataAccessService.executeNamedQuery("getUserAppExistingRoles", + params, null); + if (!roleInAppUser.isEmpty()) { + for (EcompUserAppRoles userApp : userAppList) { + if (userApp.getRoleId().equals(PortalConstants.SYS_ADMIN_ROLE_ID) + || userApp.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)) { + RoleInAppForUser addSpecialRole = new RoleInAppForUser(); + addSpecialRole.setIsApplied(true); + addSpecialRole.setRoleId(userApp.getRoleId()); + addSpecialRole.setRoleName(userApp.getRoleName()); + roleInAppUser.add(addSpecialRole); + } + } + } + } + List roleInAppUserNonDupls = roleInAppUser.stream().distinct() + .collect(Collectors.toList()); + final Map currentUserRolesToUpdate = new HashMap<>(); + for (RoleInAppForUser roleInAppUserNew : roleInAppUserNonDupls) { + currentUserRolesToUpdate.put(roleInAppUserNew.getRoleName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_"), roleInAppUserNew); + } + final Map currentUserRolesInExternalSystem = new HashMap<>(); + for (ExternalAccessUserRoleDetail extAccessUserRole : userRoleListMatchingInExtAuthAndLocal) { + currentUserRolesInExternalSystem.put(extAccessUserRole.getName(), extAccessUserRole); + } + // Check if user roles does not exists in local but still there in External Central Auth System delete them all + for (ExternalAccessUserRoleDetail userRole : userRoleListMatchingInExtAuthAndLocal) { + if (!(currentUserRolesToUpdate + .containsKey(userRole.getName().substring(app.getNameSpace().length() + 1)))) { + HttpEntity entity = new HttpEntity<>(headers); + logger.debug(EELFLoggerDelegate.debugLogger, + "updateUserRolesInExternalSystem: Connecting to external system to DELETE user role {}", + userRole.getName()); + ResponseEntity deleteResponse = template.exchange( + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "userRole/" + name + "/" + userRole.getName(), + HttpMethod.DELETE, entity, String.class); + logger.debug(EELFLoggerDelegate.debugLogger, + "updateUserRolesInExternalSystem: Finished DELETE operation in external system for user role {} and the response is {}", + userRole.getName(), deleteResponse.getBody()); + } + } + // Check if user roles does not exists in External Central Auth System add them all + for (RoleInAppForUser addUserRole : roleInAppUserNonDupls) { + if (!(currentUserRolesInExternalSystem + .containsKey(app.getNameSpace() + "." + addUserRole.getRoleName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")))) { + ExternalAccessUser extUser = new ExternalAccessUser(name, + app.getNameSpace() + "." + addUserRole.getRoleName().replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")); + String formattedUserRole = mapper.writeValueAsString(extUser); + HttpEntity entity = new HttpEntity<>(formattedUserRole, headers); + logger.debug(EELFLoggerDelegate.debugLogger, "updateUserRolesInExternalSystem: Connecting to external system for user {} and POST {}", + name , addUserRole.getRoleName()); + ResponseEntity addResponse = template + .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + + "userRole", HttpMethod.POST, entity, String.class); + logger.debug(EELFLoggerDelegate.debugLogger, + "updateUserRolesInExternalSystem: Finished adding user role in external system {} and added user role {}", + addResponse.getBody(), addUserRole.getRoleName()); + if (addResponse.getStatusCode().value() != 201 && addResponse.getStatusCode().value() != 404) { + logger.debug(EELFLoggerDelegate.debugLogger, + "Finished POST operation in external system but unable to save user role", addResponse.getBody(), + addUserRole.getRoleName()); + throw new Exception(addResponse.getBody()); + } + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "updateUserRolesInExternalSystem: Failed to add user role for application {} due to {}", app.getId(), e); + EPLogUtil.logExternalAuthAccessAlarm(logger, HttpStatus.BAD_REQUEST); + throw e; + } + + } + + private List CheckIfRoleAreMatchingInUserRoleDetailList( + List userRoleDetailList, EPApp app) { + Map epRoleList = externalAccessRolesService.getCurrentRolesInDB(app); + //Add Account Admin role for partner app to prevent conflict + if(!app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + EPRole role = new EPRole(); + role.setName(PortalConstants.ADMIN_ROLE.replaceAll(EcompPortalUtils.EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS, "_")); + epRoleList.put(role.getName(), role); + } + userRoleDetailList.removeIf(userRoleDetail -> !epRoleList.containsKey(userRoleDetail.getName().substring(app.getNameSpace().length()+1))); + return userRoleDetailList; + } + + /** + * + * @param userId + * @param app + * @param applicationsRestClientService + * @param searchService + * @param mapper + * @throws Exception + */ + protected void createNewUserOnRemoteApp(String userId, EPApp app, + ApplicationsRestClientService applicationsRestClientService, SearchService searchService, + ObjectMapper mapper, boolean postOpenSource) throws Exception { + + + EPUser client = searchService.searchUserByUserId(userId); + + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + if (client == null) { + String msg = "cannot create user " + userId + ", because he/she cannot be found in phonebook."; + logger.error(EELFLoggerDelegate.errorLogger, msg); + throw new Exception(msg); + } + + client.setLoginId(userId); + client.setActive(true); + + String userInString = null; + userInString = mapper.writerFor(EPUser.class).writeValueAsString(client); + logger.debug(EELFLoggerDelegate.debugLogger, + "about to post new client to remote application, users json = " + userInString); + applicationsRestClientService.post(EPUser.class, app.getId(), userInString, String.format("/user", userId)); + + } + + @SuppressWarnings("unchecked") + protected void applyChangesToAppRolesRequest(Long appId, Long userId, String updateStatus, EPUserAppRolesRequest epUserAppRolesRequest) { + final Map epRequestParams = new HashMap<>(); + try { + EPUserAppRolesRequest epAppRolesRequestData = epUserAppRolesRequest; + epAppRolesRequestData.setUpdatedDate(new Date()); + epAppRolesRequestData.setRequestStatus(updateStatus); + HashMap addiotonalUpdateParam = new HashMap(); + addiotonalUpdateParam.put("userId", userId); + dataAccessService.saveDomainObject(epAppRolesRequestData, addiotonalUpdateParam); + epRequestParams.put("reqId", epUserAppRolesRequest.getId()); + List epUserAppRolessDetailList = new ArrayList(); + epUserAppRolessDetailList = dataAccessService.executeNamedQuery("userAppRolesRequestDetailList", + epRequestParams, null); + if (epUserAppRolessDetailList.size() > 0) { + for (EPUserAppRolesRequestDetail epRequestUpdateData : epUserAppRolessDetailList) { + EPUserAppRolesRequestDetail epAppRoleDetailData = epRequestUpdateData; + epAppRoleDetailData.setReqType(updateStatus); + epAppRoleDetailData.setEpRequestIdData(epAppRolesRequestData); + HashMap updateDetailsParam = new HashMap(); + addiotonalUpdateParam.put("reqId", epUserAppRolesRequest.getId()); + dataAccessService.saveDomainObject(epAppRoleDetailData, updateDetailsParam); + } + } + logger.debug(EELFLoggerDelegate.debugLogger, "The request is set to complete"); + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "applyChangesToAppRolesRequest failed", e); + } + } + + @SuppressWarnings("unchecked") + public void applyChangesToUserAppRolesForMyLoginsRequest(EPUser user, Long appId) { + final Map params = new HashMap<>(); + final Map epDetailParams = new HashMap<>(); + List epRequestIdVal = new ArrayList(); + params.put("appId", appId); + params.put("userId", user.getId()); + try { + epRequestIdVal = (List) dataAccessService + .executeNamedQuery("userAppRolesRequestList", params, null); + if (epRequestIdVal.size() > 0) { + EPUserAppRolesRequest epAppRolesRequestData = epRequestIdVal.get(0); + epAppRolesRequestData.setUpdatedDate(new Date()); + epAppRolesRequestData.setRequestStatus("O"); + HashMap addiotonalUpdateParam = new HashMap(); + addiotonalUpdateParam.put("userId", user.getId()); + dataAccessService.saveDomainObject(epAppRolesRequestData, addiotonalUpdateParam); + epDetailParams.put("reqId", epAppRolesRequestData.getId()); + List epUserAppRolesDetailList = new ArrayList(); + epUserAppRolesDetailList = dataAccessService.executeNamedQuery("userAppRolesRequestDetailList", + epDetailParams, null); + if (epUserAppRolesDetailList.size() > 0) { + for (EPUserAppRolesRequestDetail epRequestUpdateList : epUserAppRolesDetailList) { + EPUserAppRolesRequestDetail epAppRoleDetailData = epRequestUpdateList; + epAppRoleDetailData.setReqType("O"); + epAppRoleDetailData.setEpRequestIdData(epAppRolesRequestData); + HashMap updateDetailsParams = new HashMap(); + addiotonalUpdateParam.put("reqId", epAppRolesRequestData.getId()); + dataAccessService.saveDomainObject(epAppRoleDetailData, updateDetailsParams); + } + logger.debug(EELFLoggerDelegate.debugLogger, "User App roles request from User Page is overridden"); + } + } + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "applyChangesToUserAppRolesRequest failed", e); + } + } + + /** + * Pushes specified user details to the specified remote app. + * + * @param userId + * OrgUserId identifying user at remote app in REST endpoint path + * @param user + * User details to be pushed + * @param app + * Remote app + * @param applicationsRestClientService + * @throws HTTPException + */ + protected void postUserToRemoteApp(String userId, EPUser user, EPApp app, + ApplicationsRestClientService applicationsRestClientService) throws HTTPException { + + getUser(userId, app, applicationsRestClientService); + + } + + /** + * It returns user details for single org user id + * + * @param userParams + * @return + * if user exists it returns list of user details otherwise empty value + */ + @SuppressWarnings("unchecked") + private List checkIfUserExists(Map userParams){ + return (List)dataAccessService.executeNamedQuery("epUserAppId", userParams, null); + } + + /** + * It checks whether the new user is valid or not otherwise throws exception + * + * @param orgUserId + * @param app + * @return + * Checks if user is valid and returns message otherwise throws exception + * @throws Exception + */ + private String validateNewUser(String orgUserId, EPApp app) throws Exception { + EPUser epUser = searchService.searchUserByUserId(orgUserId); + if (epUser == null) { + throw new Exception("User does not exist"); + } else if (!epUser.getOrgUserId().equals(orgUserId)) { + throw new Exception("User does not exist"); + } else if (app == null) { + throw new Exception("Application does not exist"); + } + return "Saved Successfully"; + } + + /** + * Checks if the fields exists or not + * + * @param userList + * contains user information + * @param app + * contains app name + * @throws Exception + * throws exception if the field is not valid + */ + private void validateExternalRequestFields(List userList, EPApp app) throws Exception{ + if (userList.size() == 0 || userList.isEmpty() ) { + throw new Exception("User does not exist"); + } else if(app == null) { + throw new Exception("Application does not exist"); + } else if(!app.getEnabled() && !app.getId().equals(PortalConstants.PORTAL_APP_ID)) { + throw new Exception(app.getMlAppName()+" application is unavailable"); + } + } + + @SuppressWarnings("unchecked") + public ExternalRequestFieldsValidator setExternalRequestUserAppRole(ExternalSystemUser newAppRolesForUser, String reqType) { + boolean result = false; + boolean externalSystemRequest = true; + final Map params = new HashMap<>(); + final Map userParams = new HashMap<>(); + List userInfo = null; + EPUser userId = null; + List epRequestId = null; + String orgUserId = ""; + String updateStatus = ""; + String reqMessage = ""; + EPApp app = null; + if (newAppRolesForUser != null && newAppRolesForUser.getLoginId() != null) { + orgUserId = newAppRolesForUser.getLoginId().trim(); + } + String appName = newAppRolesForUser.getApplicationName(); + String logMessage = ("DELETE").equals(reqType) ? "Deleting": "Assigning/Updating" ; + if (orgUserId.length() > 0) { + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + int epRequestIdSize = 0; + try { + app = appsService.getAppDetail(appName); + userParams.put("orgUserIdValue", orgUserId); + userInfo = checkIfUserExists(userParams); + reqMessage = "Updated Successfully"; + if (!reqType.equals("DELETE") && (userInfo.size() == 0 || userInfo.isEmpty())) { + reqMessage = validateNewUser(orgUserId, app); + } + if (userInfo.size() != 0 || !userInfo.isEmpty()) { + validateExternalRequestFields(userInfo, app); + userId = userInfo.get(0); + params.put("appId", app.getId()); + params.put("userId", userId.getId()); + epRequestId = (List) dataAccessService + .executeNamedQuery("userAppRolesRequestList", params, null); + epRequestIdSize = epRequestId.size(); + } + + //If Non-Centralized app make sure you sync app roles before assigning to user + if (!app.getId().equals(PortalConstants.PORTAL_APP_ID) && !app.getCentralAuth()) { + logger.debug(EELFLoggerDelegate.debugLogger, "setExternalRequestUserAppRole: Starting GET roles for app {}",app.getId()); + EcompRole[] appRoles = applicationsRestClientService.get(EcompRole[].class, app.getId(), "/roles"); + logger.debug(EELFLoggerDelegate.debugLogger, "setExternalRequestUserAppRole: Finshed GET roles for app {} and payload {}",app.getId(), appRoles); + if (appRoles.length > 0) { + syncAppRoles(sessionFactory, app.getId(), appRoles); + } + } + List roleInAppForUserList = roleInAppForUserList(newAppRolesForUser.getRoles(), + app.getId(), app.getMlAppName()); + List userRoleList = null; + if(!userInfo.isEmpty()){ + final Map appParams = new HashMap<>(); + appParams.put("userId", userId.getId()); + appParams.put("appId", app.getId()); + userRoleList = dataAccessService.executeNamedQuery("getUserAppExistingRoles", appParams, null); + } + // Check if list contains just account admin role + boolean checkIfAdminRoleExists = false; + if (reqType.equals("DELETE") && userRoleList!=null) { + checkIfAdminRoleExists = userRoleList.stream() + .anyMatch(userRole -> userRole.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)); + } else { + checkIfAdminRoleExists = roleInAppForUserList.stream() + .anyMatch(roleList -> roleList.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)); + } + // if Centralized app + if (app.getCentralAuth()) { + // We should add If user does not exist in remote application + try { + // If adding just account admin role dont make remote application user call + if (!app.getId().equals(PortalConstants.PORTAL_APP_ID) && !(checkIfAdminRoleExists + && reqType.equals("DELETE")) && roleInAppForUserList.size() > 1) { + EPUser remoteAppUser = null; + remoteAppUser = checkIfRemoteUserExits(orgUserId, app, + applicationsRestClientService); + if (remoteAppUser == null) { + addRemoteUser(roleInAppForUserList, orgUserId, app, mapper, searchService, + applicationsRestClientService); + reqMessage = "Saved Successfully"; + } + } + } catch (Exception e) { + reqMessage = e.getMessage(); + logger.error(EELFLoggerDelegate.errorLogger, "setExternalRequestUserAppRole: Failed to added remote user", e); + throw new Exception(reqMessage); + } + Set userRolesInLocalApp = postUsersRolesToLocalApp(roleInAppForUserList, mapper, + applicationsRestClientService, app.getId(), orgUserId); + RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(orgUserId, app.getId(), + userRolesInLocalApp); + List roleAppUserList = rolesInAppForUser.roles; + if(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()) { + // Apply changes in external Access system + updateUserRolesInExternalSystem(app, rolesInAppForUser.orgUserId, roleAppUserList, externalSystemRequest); + } + logger.info(EELFLoggerDelegate.debugLogger, "setExternalRequestUserAppRole: {} user app roles: for app {}, user {}", logMessage, + newAppRolesForUser.getApplicationName(), newAppRolesForUser.getLoginId()); + result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, externalSystemRequest, reqType); + } + // If local application is not centralized + else if(!app.getCentralAuth() && app.getId().equals(PortalConstants.PORTAL_APP_ID)){ + Set userRolesInLocalApp = postUsersRolesToLocalApp(roleInAppForUserList, mapper, + applicationsRestClientService, app.getId(), orgUserId); + RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(orgUserId, app.getId(), + userRolesInLocalApp); + result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, externalSystemRequest, reqType); + } else {// remote app + // If adding just account admin role don't do remote application user call + if(!((roleInAppForUserList.size() == 1 || reqType.equals("DELETE")) && checkIfAdminRoleExists)){ + EPUser remoteAppUser = null; + remoteAppUser = checkIfRemoteUserExits(orgUserId, app, applicationsRestClientService); + if (remoteAppUser == null) { + remoteAppUser = addRemoteUser(roleInAppForUserList, orgUserId, app, mapper, searchService, applicationsRestClientService); + reqMessage = "Saved Successfully"; + } + if (remoteAppUser != null) { + Set userRolesInRemoteApp = postUsersRolesToRemoteApp(roleInAppForUserList, + mapper, applicationsRestClientService, app.getId(), orgUserId); + + RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(orgUserId, + app.getId(), userRolesInRemoteApp); + logger.info(EELFLoggerDelegate.debugLogger, "setExternalRequestUserAppRole: {} user app roles: for app {}, user {}", + logMessage, newAppRolesForUser.getApplicationName(), + newAppRolesForUser.getLoginId()); + result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, externalSystemRequest, + reqType); + // If no roles remain, request app to set user inactive. + /*if (userRolesInRemoteApp.size() == 0) { + logger.debug(EELFLoggerDelegate.debugLogger, + "setAppWithUserRoleStateForUser: no roles in app {}, set user {} to inactive", app, + orgUserId); + //TODO Need to fix the logged in user is not set to inactive + remoteAppUser.setActive(false); + postUserToRemoteApp(orgUserId, user, app, applicationsRestClientService); + }*/ + } + } else { + // Here we are adding only we have single account admin in roleInAppForUserList and this should not add in remote + if(!(reqType.equals("DELETE")) && userInfo.isEmpty()){ + reqMessage = "Saved Successfully"; + } + Set userRolesInRemoteApp = constructUsersEcompRoles(roleInAppForUserList); + + RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(orgUserId, app.getId(), + userRolesInRemoteApp); + logger.info(EELFLoggerDelegate.debugLogger, "setExternalRequestUserAppRole: {} user app roles: for app {}, user {}", + logMessage, newAppRolesForUser.getApplicationName(), newAppRolesForUser.getLoginId()); + result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, externalSystemRequest, + reqType); + } + if(!result){ + reqMessage = "Failed to save the user app role(s)"; + } + if (epRequestIdSize > 0 && !userInfo.isEmpty()) { + updateStatus = "C"; + applyChangesToAppRolesRequest(app.getId(), userId.getId(), updateStatus, epRequestId.get(0)); + } + } + } catch (Exception e) { + String message = String.format("setExternalRequestUserAppRole: Failed to create user or update user roles for User %s, AppId %s", + orgUserId, appName); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + result = false; + reqMessage = e.getMessage(); + if(epRequestIdSize > 0 && userInfo!=null && !userInfo.isEmpty()){ + updateStatus = "F"; + applyChangesToAppRolesRequest(app.getId(), userId.getId(), + updateStatus, epRequestId.get(0)); + } + } + + } + return new ExternalRequestFieldsValidator(result, reqMessage); + } + + /** + * + * @param roleInAppForUserList + * @param mapper + * @param applicationsRestClientService + * @param appId + * @param userId + * @return Set + * @throws JsonProcessingException + * @throws HTTPException + */ + private Set postUsersRolesToLocalApp(List roleInAppForUserList, ObjectMapper mapper, + ApplicationsRestClientService applicationsRestClientService, Long appId, String userId) + throws JsonProcessingException, HTTPException { + Set updatedUserRoles = constructUsersEcompRoles(roleInAppForUserList); + return updatedUserRoles; + } + + /** + * It constructs and returns list of user app roles when the external API role approval system calls + * this method + * + * @param roleInAppForUserList + * @param appId + * @return list of user app roles + * @throws Exception + * throws exceptions if role id does not exits + */ + private List roleInAppForUserList(List roleInAppForUserList, + Long appId, String appName) throws Exception { + List existingUserRoles = new ArrayList(); + EPRole existingAppRole = null; + for (ExternalSystemRoleApproval roleInAppForUser : roleInAppForUserList) { + RoleInAppForUser ecompRole = new RoleInAppForUser(); + existingAppRole = epRoleService.getAppRole(roleInAppForUser.getRoleName(), appId); + if (existingAppRole == null) { + logger.error(EELFLoggerDelegate.errorLogger, "roleInAppForUserList failed for the roles {}", + roleInAppForUserList); + throw new Exception("'" +roleInAppForUser.getRoleName() + "'" +" role does not exist for " + appName + " application"); + } + if (!existingAppRole.getActive()) { + logger.error(EELFLoggerDelegate.errorLogger, "roleInAppForUserList failed for the roles {}", + roleInAppForUserList); + throw new Exception(roleInAppForUser.getRoleName() + " role is unavailable for "+ appName + " application"); + } else { + ecompRole.roleId = (appId == 1 || roleInAppForUser.getRoleName().equals(PortalConstants.ADMIN_ROLE)) ? existingAppRole.getId() : existingAppRole.getAppRoleId(); + ecompRole.roleName = roleInAppForUser.getRoleName(); + ecompRole.isApplied = true; + existingUserRoles.add(ecompRole); + } + } + return existingUserRoles; + } + + + + /** + * + * @param userId + * @param app + * @param applicationsRestClientService + * @return EPUser + * @throws HTTPException + */ + protected EPUser getUserFromApp(String userId, EPApp app, ApplicationsRestClientService applicationsRestClientService) + throws HTTPException { + // local app + if (app.getId() == PortalConstants.PORTAL_APP_ID) { + // Map params = new HashMap(); + // params.put("sbcid",userId); + @SuppressWarnings("unchecked") + List userList = (List) dataAccessService + .executeQuery("from EPUser where orgUserId='" + userId + "'", null); + if (userList != null && !userList.isEmpty()) + return userList.get(0); + else + return null; + } + // remote app + + return getUser(userId, app, applicationsRestClientService); + } + + protected EPUser getUser(String userId, EPApp app, ApplicationsRestClientService applicationsRestClientService) + throws HTTPException { + return applicationsRestClientService.get(EPUser.class, app.getId(), String.format("/user/%s", userId), true); + + } + + protected boolean isAppUpgradeVersion(EPApp app){ + return true; + } + + + public ExternalSystemAccess getExternalRequestAccess(){ + ExternalSystemAccess res = null; + try { + res = new ExternalSystemAccess(EPCommonSystemProperties.EXTERNAL_ACCESS_ENABLE, + Boolean.parseBoolean(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_ACCESS_ENABLE))); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getExternalRequestAccess failed" + e.getMessage()); + } + return res; + } + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserRolesService# + * getAppRolesForUser(java.lang.Long, java.lang.String) + */ + @SuppressWarnings("unchecked") + public List getAppRolesForUser(Long appId, String userId, Boolean extRequestValue) { + + List rolesInAppForUser = null; + EPApp app = appsService.getApp(appId); + try { + // for ecomp portal app, no need to make a remote call + List roleList = new ArrayList<>(); + if (appId == PortalConstants.PORTAL_APP_ID) { + if(app.getCentralAuth()){ + List cenRoleList = externalAccessRolesService.getRolesForApp(app.getUebKey()); + for(CentralV2Role cenRole : cenRoleList){ + Role role = new Role(); + role.setActive(cenRole.isActive()); + role.setId(cenRole.getId()); + role.setName(cenRole.getName()); + role.setPriority(cenRole.getPriority()); + roleList.add(role); + } + }else{ + roleList = roleService.getAvailableRoles(userId); + } + List activeRoleList = new ArrayList(); + for(Role role: roleList) { + if(role.getActive()) { + if(role.getId() != 1){ // prevent portal admin from being added + activeRoleList.add(role); + } else if(extRequestValue){ + activeRoleList.add(role); + } + } + + } + EPUser localUser = getUserFromApp(userId, app, applicationsRestClientService); + // If localUser does not exists return roles + Set roleSet = null; + EPRole[] roleSetList = null; + if(localUser != null){ + roleSet = localUser.getAppEPRoles(app); + roleSetList = roleSet.toArray(new EPRole[0]); + } + rolesInAppForUser = constructRolesInAppForUserGet(activeRoleList, roleSetList, extRequestValue); + return rolesInAppForUser; + } + + EcompRole[] appRoles = null; + List roles = new ArrayList<>(); + if(app.getCentralAuth()){ + List applicationRoles = dataAccessService.getList(EPRole.class, " where app_id = "+app.getId()+ " and active_yn = 'Y'", null, null);; + for(EPRole role : applicationRoles){ + EcompRole ecompRole = new EcompRole(); + ecompRole.setId(role.getId()); + ecompRole.setName(role.getName()); + roles.add(ecompRole); + } + appRoles = roles.toArray(new EcompRole[roles.size()]); + } else{ + appRoles = applicationsRestClientService.get(EcompRole[].class, appId, "/roles"); + } + // Test this error case, for generating an internal Ecomp Portal + // error + // EcompRole[] appRoles = null; + // If there is an exception in the rest client api, then null will + // be returned. + if (appRoles != null) { + if(!app.getCentralAuth()) { + syncAppRoles(sessionFactory, appId, appRoles); + } + EcompRole[] userAppRoles = null; + try { + try { + if(app.getCentralAuth()){ + final Map params = new HashMap<>(); + final Map userParams = new HashMap<>(); + params.put("orgUserIdValue", userId); + List user = dataAccessService.executeNamedQuery("epUserAppId", params, null); + userParams.put("appId", app.getId()); + userParams.put("userId", user.get(0).getId()); + List userAppsRolesList = dataAccessService.executeNamedQuery("getUserAppCurrentRoles", userParams, null); + List setUserRoles = new ArrayList<>(); + for(EPUserAppCurrentRoles role : userAppsRolesList){ + EcompRole ecompRole = new EcompRole(); + ecompRole.setId(role.getRoleId()); + ecompRole.setName(role.getRoleName()); + setUserRoles.add(ecompRole); + } + userAppRoles = setUserRoles.toArray(new EcompRole[setUserRoles.size()]); + rolesInAppForUser = constructRolesInAppForUserGet(appRoles, userAppRoles); + return rolesInAppForUser; + }else{ + userAppRoles = applicationsRestClientService.get(EcompRole[].class, appId, + String.format("/user/%s/roles", userId)); + } + } catch (HTTPException e) { + // Some apps are returning 400 if user is not found. + if (e.getResponseCode() == 400) { + logger.debug(EELFLoggerDelegate.debugLogger, + "getAppRolesForUser caught exception with response code 400; continuing", e); + } else { + // Other response code, let it come thru. + throw e; + } + } + if (userAppRoles == null) { + if (EcompPortalUtils.getExternalAppResponseCode() == 400) { + EcompPortalUtils.setExternalAppResponseCode(200); + String message = String.format( + "getAppRolesForUser: App %s, User %, endpoint /user/{userid}/roles returned 400, " + + "assuming user doesn't exist, app is framework SDK based, and things are ok. " + + "Overriding to 200 until framework SDK returns a useful response.", + Long.toString(appId), userId); + logger.warn(EELFLoggerDelegate.applicationLogger, message); + } + } + + HashMap appRolesActiveMap =hashMapFromEcompRoles(appRoles); + ArrayList activeRoles = new ArrayList(); + if(userAppRoles != null){ + for (int i = 0; i < userAppRoles.length; i++) { + if (appRolesActiveMap.containsKey(userAppRoles[i].getId())) { + EcompRole role = new EcompRole(); + role.setId(userAppRoles[i].getId()); + role.setName(userAppRoles[i].getName()); + activeRoles.add(role); + } + } + } + EcompRole[] userAppRolesActive = activeRoles.toArray(new EcompRole[activeRoles.size()]); + + // If the remote application isn't down we MUST sync user + // roles here in case we have this user here! + syncUserRoles(sessionFactory, userId, appId, userAppRolesActive, extRequestValue, null); + } catch (Exception e) { + // TODO: we may need to check if user exists, maybe remote + // app is down. + String message = String.format( + "getAppRolesForUser: user %s does not exist in remote application %s", userId, + Long.toString(appId)); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + userAppRoles = new EcompRole[0]; + } + rolesInAppForUser = constructRolesInAppForUserGet(appRoles, userAppRoles); + } + } catch (Exception e) { + String message = String.format("getAppRolesForUser: failed for User %s, AppId %s", userId, + Long.toString(appId)); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + } + return rolesInAppForUser; + + } + + private boolean postUserRolesToMylogins(AppWithRolesForUser userAppRolesData, + ApplicationsRestClientService applicationsRestClientService, Long appId, Long userId) + throws JsonProcessingException, HTTPException { + boolean result = false; + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + String userRolesAsString = mapper.writeValueAsString(userAppRolesData); + logger.error(EELFLoggerDelegate.errorLogger,"Should not be reached here, as the endpoint is not defined yet from the Mylogins"); + applicationsRestClientService.post(AppWithRolesForUser.class, appId, userRolesAsString, String.format("/user/%s/myLoginroles", userId)); + return result; + } + + public FieldsValidator putUserAppRolesRequest(AppWithRolesForUser userAppRolesData, EPUser user) { + FieldsValidator fieldsValidator = new FieldsValidator(); + final Map params = new HashMap<>(); + EPUserAppRoles appRole= new EPUserAppRoles(); + try { + logger.error(EELFLoggerDelegate.errorLogger,"Should not be reached here, still the endpoint is yet to be defined"); + boolean result = postUserRolesToMylogins(userAppRolesData, applicationsRestClientService, userAppRolesData.appId, user.getId()); + logger.debug(EELFLoggerDelegate.debugLogger,"putUserAppRolesRequest: result {}", result); + + params.put("appId", userAppRolesData.appId); + EPUserAppRolesRequest epAppRolesRequestData = new EPUserAppRolesRequest(); + epAppRolesRequestData.setCreatedDate(new Date()); + epAppRolesRequestData.setUpdatedDate(new Date()); + epAppRolesRequestData.setUserId(user.getId()); + epAppRolesRequestData.setAppId(userAppRolesData.appId); + epAppRolesRequestData.setRequestStatus("P"); + List appRoleIdList = userAppRolesData.appRoles; + Set appRoleDetails = new LinkedHashSet(); + dataAccessService.saveDomainObject(epAppRolesRequestData, null); + for (RoleInAppForUser userAppRoles : appRoleIdList) { + Boolean isAppliedVal = userAppRoles.isApplied; + params.put("appRoleId", userAppRoles.roleId); + if (isAppliedVal) { + appRole = (EPUserAppRoles) dataAccessService.executeNamedQuery("appRoles", params, null).get(0); + EPUserAppRolesRequestDetail epAppRoleDetail = new EPUserAppRolesRequestDetail(); + epAppRoleDetail.setReqRoleId(appRole.getRoleId()); + epAppRoleDetail.setReqType("P"); + epAppRoleDetail.setEpRequestIdData(epAppRolesRequestData); + dataAccessService.saveDomainObject(epAppRoleDetail, null); + } + } + epAppRolesRequestData.setEpRequestIdDetail(appRoleDetails); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "putUserAppRolesRequest failed", e); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + return fieldsValidator; + } + + public List getUserAppCatalogRoles(EPUser userid, String appName) { + Map params = new HashMap<>(); + params.put("userid", userid.getId().toString()); + //params.put("appid", appid); + params.put("appName", appName); + + @SuppressWarnings("unchecked") + List userAppRoles = (List) dataAccessService + .executeNamedQuery("userAppCatalogRoles", params, null); + return userAppRoles; + } + + public String updateRemoteUserProfile(String orgUserId, Long appId) { + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + EPUser client = searchService.searchUserByUserId(orgUserId); + EPUser newUser = new EPUser(); + newUser.setActive(client.getActive()); + newUser.setFirstName(client.getFirstName()); + newUser.setLastName(client.getLastName()); + newUser.setLoginId(client.getLoginId()); + newUser.setLoginPwd(client.getLoginPwd()); + newUser.setMiddleInitial(client.getMiddleInitial()); + newUser.setEmail(client.getEmail()); + newUser.setOrgUserId(client.getLoginId()); + try { + String userAsString = mapper.writeValueAsString(newUser); + List appList = appsService.getUserRemoteApps(client.getId().toString()); + // applicationsRestClientService.post(EPUser.class, appId, + // userAsString, String.format("/user", orgUserId)); + for (EPApp eachApp : appList) { + try { + applicationsRestClientService.post(EPUser.class, eachApp.getId(), userAsString, + String.format("/user/%s", orgUserId)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "Failed to update user: " + client.getOrgUserId() + + " in remote app. appId = " + eachApp.getId()); + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "updateRemoteUserProfile failed", e); + return "failure"; + } + + return "success"; + } + + + /* + * (non-Javadoc) + * + * @see org.openecomp.portalapp.portal.service.UserRolesService# + * getCachedAppRolesForUser(java.lang.Long, java.lang.Long) + */ + public List getCachedAppRolesForUser(Long appId, Long userId) { + // Find the records for this user-app combo, if any + String filter = " where user_id = " + Long.toString(userId) + " and app_id = " + Long.toString(appId); + @SuppressWarnings("unchecked") + List roleList = dataAccessService.getList(EPUserApp.class, filter, null, null); + logger.debug(EELFLoggerDelegate.debugLogger, "getCachedAppRolesForUser: list size is {}", roleList.size()); + return roleList; + } + + /** + * It retrieves and returns list of user app roles for local and remote applications based app id + * + * @param appId + * @return list of user app roles + * @throws HTTPException + */ + public List getUsersFromAppEndpoint(Long appId) throws HTTPException { + ArrayList userApplicationRoles = new ArrayList(); + + EPApp app = appsService.getApp(appId); + //If local or centralized application + if (appId == PortalConstants.PORTAL_APP_ID || app.getCentralAuth()) { + @SuppressWarnings("unchecked") + List userList = (List) dataAccessService.executeNamedQuery("getActiveUsers", null, null); + for (EPUser user : userList) { + UserApplicationRoles userWithAppRoles = convertToUserApplicationRoles(appId, user, app); + if (userWithAppRoles.getRoles() != null && userWithAppRoles.getRoles().size() > 0) + userApplicationRoles.add(userWithAppRoles); + } + + } + // remote app + else { + RemoteUserWithRoles[] remoteUsers = null; + String remoteUsersString = applicationsRestClientService.getIncomingJsonString(appId, "/users"); + + remoteUsers = doGetUsers(isAppUpgradeVersion(app), remoteUsersString); + + userApplicationRoles = new ArrayList(); + for (RemoteUserWithRoles remoteUser : remoteUsers) { + UserApplicationRoles userWithRemoteAppRoles = convertToUserApplicationRoles(appId, remoteUser); + if (userWithRemoteAppRoles.getRoles() != null && userWithRemoteAppRoles.getRoles().size() > 0) { + userApplicationRoles.add(userWithRemoteAppRoles); + } else { + logger.debug(EELFLoggerDelegate.debugLogger, + "User " + userWithRemoteAppRoles.getOrgUserId() + " doesn't have any roles assigned to any app."); + } + } + } + + return userApplicationRoles; + } + + /** + * + * @param appId + * @param user + * @param appgetUsersFromAppEndpoint + * @return + */ + private UserApplicationRoles convertToUserApplicationRoles(Long appId, EPUser user, EPApp app) { + UserApplicationRoles userWithRemoteAppRoles = new UserApplicationRoles(); + userWithRemoteAppRoles.setAppId(appId); + userWithRemoteAppRoles.setOrgUserId(user.getOrgUserId()); + userWithRemoteAppRoles.setFirstName(user.getFirstName()); + userWithRemoteAppRoles.setLastName(user.getLastName()); + userWithRemoteAppRoles.setRoles(convertToRemoteRoleList(user, app)); + return userWithRemoteAppRoles; + } + + /** + * + * @param user + * @param app + * @return + */ + private List convertToRemoteRoleList(EPUser user, EPApp app) { + List roleList = new ArrayList(); + SortedSet roleSet = user.getAppEPRoles(app); + for (EPRole role : roleSet) { + RemoteRole rRole = new RemoteRole(); + rRole.setId(role.getId()); + rRole.setName(role.getName()); + roleList.add(rRole); + } + return roleList; + } + + public RemoteUserWithRoles[] doGetUsers(boolean postOpenSource, String remoteUsersString) { + + ObjectMapper mapper = new ObjectMapper(); + try { + return mapper.readValue(remoteUsersString, RemoteUserWithRoles[].class); + } catch (IOException e) { + logger.error(EELFLoggerDelegate.errorLogger, + "doGetUsers : Failed : Unexpected property in incoming JSON", + e); + logger.error(EELFLoggerDelegate.errorLogger, + "doGetUsers : Incoming JSON that caused it --> " + remoteUsersString); + } + + return new RemoteUserWithRoles[0]; + } + + @SuppressWarnings("unchecked") + public List getEPUserAppList(Long appId, Long userId, Long roleId) { + List userRoleList = new ArrayList(); + final Map params = new HashMap<>(); + params.put("appId", appId); + params.put("userId", userId); + params.put("roleId", roleId); + userRoleList = dataAccessService.executeNamedQuery("getUserRoleOnUserIdAndRoleIdAndAppId", params, null); + return userRoleList; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesService.java new file mode 100644 index 00000000..1b638627 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesService.java @@ -0,0 +1,111 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.apache.cxf.transport.http.HTTPException; +import org.onap.portalapp.externalsystemapproval.model.ExternalSystemUser; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserApp; +import org.onap.portalapp.portal.domain.EPUserAppCatalogRoles; +import org.onap.portalapp.portal.domain.ExternalSystemAccess; +import org.onap.portalapp.portal.transport.AppWithRolesForUser; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.RoleInAppForUser; +import org.onap.portalapp.portal.transport.UserApplicationRoles; + +public interface UserRolesService { + + /** + * Returns list of app roles of a single app + * + * @param appId + * ID of row in fn_app + * @param userId + * ID of row in fn_user + * @param extRequestValue + * set to false if request is from users page otherwise true + * @return List + */ + public List getAppRolesForUser(Long appId, String userId, Boolean extRequestValue); + + public boolean setAppWithUserRoleStateForUser(EPUser user, AppWithRolesForUser newAppRolesForUser); + + public List getUsersFromAppEndpoint(Long appId) throws HTTPException; + + public List importRolesFromRemoteApplication(Long appId) throws HTTPException; + + /** + * Gets entries from the local fn_user_role table for the specified user and + * app. + * + * @param appId + * ID of row in fn_app + * @param userId + * ID of row in fn_user + * @return List of EPRole; empty if none found. + */ + public List getCachedAppRolesForUser(Long appId, Long userId); + + public FieldsValidator putUserAppRolesRequest(AppWithRolesForUser userAppRolesData, EPUser user); + + /** + * Save user app roles in the database from the external request + * + * @param newAppRolesForUser + * + * contains login id, app name, request id, and list of role + * names + * @param reqType + * @return if any exceptions, returns detail message and true or false + */ + ExternalRequestFieldsValidator setExternalRequestUserAppRole(ExternalSystemUser newAppRolesForUser, String reqType); + + public List getUserAppCatalogRoles(EPUser user, String appName); + + public String updateRemoteUserProfile(String orgUserId, Long appId); + + public ExternalSystemAccess getExternalRequestAccess(); + + public List getEPUserAppList(Long appId, Long userId, Long roleId); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserService.java new file mode 100644 index 00000000..cfc32306 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserService.java @@ -0,0 +1,54 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.EPUser; + +public interface UserService { + + List getUserByUserId(String orgUserId); + + List getUserByFirstLastName(String firstName, String lastName); + + public String saveNewUser(EPUser newUser, String checkDuplicate) throws Exception; + + public void saveUser(EPUser user) throws Exception; + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserServiceImpl.java new file mode 100644 index 00000000..860712bb --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserServiceImpl.java @@ -0,0 +1,288 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; + +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.json.JSONArray; +import org.json.JSONObject; +import org.onap.portalapp.portal.service.UserService; +import org.onap.portalapp.portal.service.UserServiceImpl; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalsdk.core.FusionObject.Utilities; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service("userService") +@Transactional +public class UserServiceImpl implements UserService { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } + + @SuppressWarnings("unchecked") + @Override + public List getUserByUserId(String userId) { + + if (SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM).trim().equalsIgnoreCase("OIDC")) { + List users = new ArrayList(); + List filterdUsers = new ArrayList(); + BufferedReader in = null; + HttpURLConnection con = null; + try { + String url = EPCommonSystemProperties.getProperty(EPCommonSystemProperties.AUTH_USER_SERVER); + URL obj = new URL(url); + + con = (HttpURLConnection) obj.openConnection(); + + // optional default is GET + con.setRequestMethod("GET"); + con.setConnectTimeout(3000); + con.setReadTimeout(8000); + + StringBuffer response = new StringBuffer(); + + in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); + String inputLine; + while ((inputLine = in.readLine()) != null) + response.append(inputLine); + JSONObject jObject = new JSONObject(response.toString()); // json + JSONArray jsonUsers = jObject.getJSONArray("response"); // get + // data + // object + for (int i = 0; i < jsonUsers.length(); i++) { + JSONObject eachObject = jsonUsers.getJSONObject(i); + EPUser eachUser = new EPUser(); + eachUser.setOrgUserId(eachObject.get("id").toString()); + eachUser.setFirstName(eachObject.get("givenName").toString()); + eachUser.setLastName(eachObject.get("familyName").toString()); + eachUser.setEmail(eachObject.get("email").toString()); + users.add(eachUser); + } + + for (int i = 0; i < users.size(); i++) { + if (Utilities.nvl(userId).length() > 0) { + if (!userId.equalsIgnoreCase(users.get(i).getOrgUserId())) { + continue; + } + } + filterdUsers.add(users.get(i)); + } + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUserByUserId failed", e); + } finally { + try { + in.close(); + con.disconnect(); + } catch (IOException e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUserByUserId failed to close", e); + } + } + + return filterdUsers; + + } else { + + List restrictionsList = new ArrayList(); + Criterion orgUserIdCriterion = Restrictions.eq("orgUserId",userId); + restrictionsList.add(orgUserIdCriterion); + + List list = (List) dataAccessService.getList(EPUser.class, null, restrictionsList, null); + + return (list == null || list.size() == 0) ? null : list; + + } + + } + + @SuppressWarnings("unchecked") + @Override + public List getUserByFirstLastName(String firstName, String lastName) { + + if (!SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM).trim().equalsIgnoreCase("OIDC")) { + List restrictionsList = new ArrayList(); + Criterion firstNameCriterion = Restrictions.eq("firstName", firstName); + Criterion lastNameCriterion = Restrictions.eq("lastName", lastName); + restrictionsList.add(Restrictions.or(firstNameCriterion, lastNameCriterion)); + + List list = (List) dataAccessService.getList(EPUser.class, null, restrictionsList, null); + return (list == null || list.size() == 0) ? null : list; + + } else { + + List users = new ArrayList(); + List filterdUsers = new ArrayList(); + BufferedReader in = null; + HttpURLConnection con = null; + try { + String url = EPCommonSystemProperties.getProperty(EPCommonSystemProperties.AUTH_USER_SERVER); + URL obj = new URL(url); + + con = (HttpURLConnection) obj.openConnection(); + + // optional default is GET + con.setRequestMethod("GET"); + con.setConnectTimeout(3000); + con.setReadTimeout(8000); + + StringBuffer response = new StringBuffer(); + + in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); + String inputLine; + while ((inputLine = in.readLine()) != null) + response.append(inputLine); + JSONObject jObject = new JSONObject(response.toString()); // json + JSONArray jsonUsers = jObject.getJSONArray("response"); // get + // data + // object + for (int i = 0; i < jsonUsers.length(); i++) { + JSONObject eachObject = jsonUsers.getJSONObject(i); + EPUser eachUser = new EPUser(); + eachUser.setOrgUserId(eachObject.get("id").toString());// getString("id")); + eachUser.setFirstName(eachObject.get("givenName").toString()); + eachUser.setLastName(eachObject.get("familyName").toString()); + eachUser.setEmail(eachObject.get("email").toString()); + users.add(eachUser); + } + + for (int i = 0; i < users.size(); i++) { + + if (Utilities.nvl(firstName).length() > 0) { + if (!firstName.equalsIgnoreCase(users.get(i).getFirstName())) { + continue; + } + } + if (Utilities.nvl(lastName).length() > 0) { + if (!lastName.equalsIgnoreCase(users.get(i).getLastName())) { + continue; + } + } + + filterdUsers.add(users.get(i)); + + } + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUserByFirstLastName failed", e); + } finally { + try { + in.close(); + con.disconnect(); + } catch (IOException e) { + logger.error(EELFLoggerDelegate.errorLogger, "getUserByFirstLastName failed to close", e); + } + } + + return filterdUsers; + } + + } + + @SuppressWarnings("unchecked") + public String saveNewUser(EPUser newUser, String checkDuplicate) throws Exception { + + try { + + List restrictionsList = new ArrayList(); + Criterion orgUserIdCriterion = Restrictions.eq("orgUserId",newUser.getLoginId()); + restrictionsList.add(orgUserIdCriterion); + List list = (List) dataAccessService.getList(EPUser.class, null, restrictionsList, null); + + if (list == null || list.size() == 0) { + newUser.setActive(true); + newUser.setOrgUserId(newUser.getLoginId()); + newUser.setLoginPwd(CipherUtil.encryptPKC(newUser.getLoginPwd())); + getDataAccessService().saveDomainObject(newUser, null); + } else { + if (checkDuplicate.equals("Yes")) { + // userId already exist in database + return "Record already exist"; + } else { + + EPUser oldUser = (EPUser) list.get(0); + oldUser.setFirstName(newUser.getFirstName()); + oldUser.setLastName(newUser.getLastName()); + oldUser.setMiddleInitial(newUser.getMiddleInitial()); + if (!oldUser.getLoginPwd().equals(newUser.getLoginPwd())) + oldUser.setLoginPwd(CipherUtil.encryptPKC(newUser.getLoginPwd())); + else + oldUser.setLoginPwd(newUser.getLoginPwd()); + getDataAccessService().saveDomainObject(oldUser, null); + + } + + } + + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveNewUser failed", e); + throw new Exception(e); + } + return "success"; + }; + + @Override + public void saveUser(EPUser user) throws Exception { + getDataAccessService().saveDomainObject(user, null); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetParameterService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetParameterService.java new file mode 100644 index 00000000..782f54bf --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetParameterService.java @@ -0,0 +1,82 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.WidgetCatalogParameter; + +public interface WidgetParameterService { + + /** + * Saves the specified user-defined widget parameters to the table ep_widget_parameters + * + * @param newParameter + */ + void saveUserParameter(WidgetCatalogParameter newParameter); + + /** + * Gets the specified user-defined widget parameter where paramId is used from all users + * + * @param paramId + * @return + * List of widget parameters + */ + List getUserParameterById(Long paramId); + + + /** + * Deletes the specified user-defined widget parameters from ep_widget_parameters table + * where paramId is used + * + * @param paramId + */ + void deleteUserParameterById(Long paramId); + + + /** + * Gets the specified user-defined widget parameter where paramId is used from the specified + * user with userId + * @param widgetId + * @param userId + * @param paramId + * @return WidgetCatalogParameter + */ + WidgetCatalogParameter getUserParamById(Long widgetId, Long userId, Long paramId); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetParameterServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetParameterServiceImpl.java new file mode 100644 index 00000000..e01e2cba --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetParameterServiceImpl.java @@ -0,0 +1,109 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.onap.portalapp.portal.domain.WidgetCatalogParameter; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; + +@Service("widgetParameterService") +@EnableAspectJAutoProxy +@EPMetricsLog +public class WidgetParameterServiceImpl implements WidgetParameterService{ + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetParameterServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + @SuppressWarnings("unchecked") + @Override + public WidgetCatalogParameter getUserParamById(Long widgetId, Long userId, Long paramId) { + List restrictionsList = new ArrayList(); + Criterion widgetIdCrit = Restrictions.eq("widgetId", widgetId); + restrictionsList.add(widgetIdCrit); + Criterion userIdCrit = Restrictions.eq("userId", userId); + restrictionsList.add(userIdCrit); + Criterion paramIdCrit = Restrictions.eq("paramId", paramId); + restrictionsList.add(paramIdCrit); + + + WidgetCatalogParameter widgetParam = null; + List list = (List) dataAccessService + .getList(WidgetCatalogParameter.class, null, restrictionsList, null); + if(list.size() != 0) + widgetParam = list.get(0); + logger.debug(EELFLoggerDelegate.debugLogger, + "getUserParamById: widget parameters: " + widgetParam); + return widgetParam; + } + + @Override + public void saveUserParameter(WidgetCatalogParameter newParameter) { + dataAccessService.saveDomainObject(newParameter, null); + } + + @SuppressWarnings("unchecked") + @Override + public List getUserParameterById(Long paramId) { + List restrictionsList = new ArrayList(); + Criterion paramIdCrit = Restrictions.eq("paramId", paramId); + restrictionsList.add(paramIdCrit); + List list = (List) dataAccessService + .getList(WidgetCatalogParameter.class, null, restrictionsList, null); + return list; + } + + @Override + public void deleteUserParameterById(Long paramId) { + Map params = new HashMap(); + params.put("paramId", Long.toString(paramId)); + dataAccessService.executeNamedQuery("deleteWidgetCatalogParameter", params, null); + dataAccessService.executeNamedQuery("deleteMicroserviceParameterById", params, null); + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetService.java new file mode 100644 index 00000000..a529ba8a --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetService.java @@ -0,0 +1,54 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.OnboardingWidget; + +public interface WidgetService { + + List getOnboardingWidgets(EPUser user, boolean managed); + + FieldsValidator setOnboardingWidget(EPUser user, OnboardingWidget onboardingWidget); + + FieldsValidator deleteOnboardingWidget(EPUser user, Long onboardingWidgetId); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetServiceImpl.java new file mode 100644 index 00000000..062e9cb9 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/WidgetServiceImpl.java @@ -0,0 +1,310 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.servlet.http.HttpServletResponse; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserApp; +import org.onap.portalapp.portal.domain.Widget; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.OnboardingWidget; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; + +@Service("widgetService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class WidgetServiceImpl implements WidgetService { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetServiceImpl.class); + + private static final String baseSqlToken = " widget.WIDGET_ID, widget.WDG_NAME, widget.APP_ID, app.APP_NAME, widget.WDG_WIDTH, widget.WDG_HEIGHT, widget.WDG_URL" + + " from FN_WIDGET widget join FN_APP app ON widget.APP_ID = app.APP_ID"; + + private String validAppsFilter = ""; + + private Long LONG_ECOMP_APP_ID = 1L; + private Long ACCOUNT_ADMIN_ROLE_ID = 999L; + private static final Long DUBLICATED_FIELD_VALUE_ECOMP_ERROR = new Long(EPCommonSystemProperties.DUBLICATED_FIELD_VALUE_ECOMP_ERROR); + + private static final String urlField = "url"; + + private static final String nameField = "name"; + @Autowired + AdminRolesService adminRolesService; + @Autowired + private SessionFactory sessionFactory; + @Autowired + private DataAccessService dataAccessService; + + @PostConstruct + private void init() { + try { + validAppsFilter = " AND app.ENABLED = 'Y' AND app.APP_ID != " + SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID); + ACCOUNT_ADMIN_ROLE_ID = Long.valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ACCOUNT_ADMIN_ROLE_ID)); + LONG_ECOMP_APP_ID = Long.valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID)); + } catch(Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "init failed", e); + } + } + + private String sqlWidgetsForAllApps() { + return "SELECT" + baseSqlToken + validAppsFilter; + } + + private String sqlWidgetsForAllAppsWhereUserIsAdmin(Long userId) { + return "SELECT" + baseSqlToken + " join FN_USER_ROLE ON FN_USER_ROLE.APP_ID = app.APP_ID where FN_USER_ROLE.USER_ID = " + userId + + " AND FN_USER_ROLE.ROLE_ID = " + ACCOUNT_ADMIN_ROLE_ID + validAppsFilter; + } + + private String sqlWidgetsForAllAppsWhereUserHasAnyRole(Long userId) { + return "SELECT DISTINCT" + baseSqlToken + " join FN_USER_ROLE ON FN_USER_ROLE.APP_ID = app.APP_ID where FN_USER_ROLE.USER_ID = " + + userId + validAppsFilter; + } + + @SuppressWarnings("unchecked") + @Override + public List getOnboardingWidgets(EPUser user, boolean managed) { + List onboardingWidgets = new ArrayList(); + String sql = null; + if (adminRolesService.isSuperAdmin(user)) { + sql = this.sqlWidgetsForAllApps(); + } else if (managed) { + if (adminRolesService.isAccountAdmin(user)) { + sql = this.sqlWidgetsForAllAppsWhereUserIsAdmin(user.getId()); + } + } else if (adminRolesService.isAccountAdmin(user) || adminRolesService.isUser(user)) { + sql = this.sqlWidgetsForAllAppsWhereUserHasAnyRole(user.getId()); + } + if (sql != null) { + onboardingWidgets = dataAccessService.executeSQLQuery(sql, OnboardingWidget.class, null); + } + return onboardingWidgets; + } + + private static final Object syncRests = new Object(); + + private boolean isUserAdminOfAppForWidget(boolean superAdmin, Long userId, Long appId) { + if (!superAdmin) { + List userRoles = getAdminUserRoles(userId, appId); + return (userRoles.size() > 0); + } + return true; + } + + @SuppressWarnings("unchecked") + private List getAdminUserRoles(Long userId, Long appId) { + List restrictionsList = new ArrayList(); + Criterion userIdCriterion = Restrictions.eq("userId",userId); + Criterion roleIDCriterion = Restrictions.eq("role.id", ACCOUNT_ADMIN_ROLE_ID); + Criterion appIDCriterion = Restrictions.eq("app.id", appId); + restrictionsList.add(Restrictions.and(userIdCriterion, roleIDCriterion,appIDCriterion)); + return (List) dataAccessService.getList(EPUserApp.class, null, restrictionsList, null); + } + + private void validateOnboardingWidget(OnboardingWidget onboardingWidget, FieldsValidator fieldsValidator) { + + List widgets = getWidgets(onboardingWidget); + boolean dublicatedUrl = false; + boolean dublicatedName = false; + for (Widget widget : widgets) { + if (onboardingWidget.id != null && onboardingWidget.id.equals(widget.getId())) { + // widget should not be compared with itself + continue; + } + if (!dublicatedUrl && widget.getUrl().equals(onboardingWidget.url)) { + dublicatedUrl = true; + if (dublicatedName) { + break; + } + } + if (!dublicatedName && widget.getName().equalsIgnoreCase(onboardingWidget.name) && widget.getAppId().equals(onboardingWidget.appId)) { + dublicatedName = true; + if (dublicatedUrl) { + break; + } + } + } + if (dublicatedUrl || dublicatedName) { + if (dublicatedUrl) { + fieldsValidator.addProblematicFieldName(urlField); + } + if (dublicatedName) { + fieldsValidator.addProblematicFieldName(nameField); + } + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); + fieldsValidator.errorCode = DUBLICATED_FIELD_VALUE_ECOMP_ERROR; + } + } + + @SuppressWarnings("unchecked") + private List getWidgets(OnboardingWidget onboardingWidget) { + List restrictionsList = new ArrayList(); + Criterion urlCriterion = Restrictions.eq("url", onboardingWidget.url); + Criterion nameCriterion = Restrictions.eq("name", onboardingWidget.name); + restrictionsList.add(Restrictions.or(urlCriterion, nameCriterion)); + return (List) dataAccessService.getList(Widget.class, null, restrictionsList, null); + } + + private void applyOnboardingWidget(OnboardingWidget onboardingWidget, FieldsValidator fieldsValidator) { + boolean result = false; + Session localSession = null; + Transaction transaction = null; + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + Widget widget; + if (onboardingWidget.id == null) { + widget = new Widget(); + } else { + widget = (Widget) localSession.get(Widget.class, onboardingWidget.id); + } + widget.setAppId(onboardingWidget.appId); + widget.setName(onboardingWidget.name); + widget.setWidth(onboardingWidget.width); + widget.setHeight(onboardingWidget.height); + widget.setUrl(onboardingWidget.url); + localSession.saveOrUpdate(widget); + transaction.commit(); + result = true; + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + EcompPortalUtils.rollbackTransaction(transaction, "applyOnboardingWidget rollback, exception = " + e); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "applyOnboardingWidget"); + } + if (!result) { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + } + + private FieldsValidator updateOrSaveWidget(boolean superAdmin, Long userId, OnboardingWidget onboardingWidget) { + FieldsValidator fieldsValidator = new FieldsValidator(); + if (!this.isUserAdminOfAppForWidget(superAdmin, userId, onboardingWidget.appId)) { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_FORBIDDEN); + return fieldsValidator; + } + synchronized (syncRests) { + // onboardingWidget.id is null for POST and not null for PUT + if (onboardingWidget.id == null) { + this.validateOnboardingWidget(onboardingWidget, fieldsValidator); + } else { + Widget widget = (Widget) dataAccessService.getDomainObject(Widget.class, onboardingWidget.id, null); + if (widget == null || widget.getId() == null) { + // Widget not found + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_NOT_FOUND); + return fieldsValidator; + } + this.validateOnboardingWidget(onboardingWidget, fieldsValidator); + } + if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { + this.applyOnboardingWidget(onboardingWidget, fieldsValidator); + } + } + return fieldsValidator; + } + + @Override + public FieldsValidator setOnboardingWidget(EPUser user, OnboardingWidget onboardingWidget) { + if (onboardingWidget.name.length() == 0 || onboardingWidget.url.length() == 0 || onboardingWidget.appId == null + || onboardingWidget.appId.equals(LONG_ECOMP_APP_ID) || onboardingWidget.width.intValue() <= 0 || onboardingWidget.height.intValue() <= 0) { + if (onboardingWidget.appId.equals(LONG_ECOMP_APP_ID)) { + } + FieldsValidator fieldsValidator = new FieldsValidator(); + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); + return fieldsValidator; + } + return this.updateOrSaveWidget(adminRolesService.isSuperAdmin(user), user.getId(), onboardingWidget); + } + + @Override + public FieldsValidator deleteOnboardingWidget(EPUser user, Long onboardingWidgetId) { + FieldsValidator fieldsValidator = new FieldsValidator(); + synchronized (syncRests) { + Widget widget = (Widget) dataAccessService.getDomainObject(Widget.class, onboardingWidgetId, null); + if (widget != null && widget.getId() != null) { // widget exists + if (!this.isUserAdminOfAppForWidget(adminRolesService.isSuperAdmin(user), user.getId(), widget.getAppId())) { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_FORBIDDEN); + } else { + boolean result = false; + Session localSession = null; + Transaction transaction = null; + try { + localSession = sessionFactory.openSession(); + transaction = localSession.beginTransaction(); + localSession.delete(localSession.get(Widget.class, onboardingWidgetId)); + transaction.commit(); + result = true; + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); + EcompPortalUtils.rollbackTransaction(transaction, "deleteOnboardingWidget rollback, exception = " + e); + } finally { + EcompPortalUtils.closeLocalSession(localSession, "deleteOnboardingWidget"); + } + if (!result) { + fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + } + } + } + return fieldsValidator; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AllAppsWithRolesForUser.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AllAppsWithRolesForUser.java new file mode 100644 index 00000000..2d2374ec --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AllAppsWithRolesForUser.java @@ -0,0 +1,58 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.List; + +public class AllAppsWithRolesForUser { + + public String orgUserId; + + public List apps; + + public static class AppWithUserRoles { + + public Long appId; + + public String appName; + + public List appRoles; + + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/Analytics.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/Analytics.java new file mode 100644 index 00000000..deb36294 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/Analytics.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class Analytics { + + private String action; + private String page; + private String function; + private String userid; + private String type; + + public String getType() { + return type; + } + public void setType(String type) { + this.type = type; + } + public String getAction() { + return action; + } + public void setAction(String action) { + this.action = action; + } + public String getPage() { + return page; + } + public void setPage(String page) { + this.page = page; + } + public String getFunction() { + return function; + } + public void setFunction(String function) { + this.function = function; + } + public String getUserid() { + return userid; + } + public void setUserid(String userId) { + this.userid = userId; + } + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppCatalogPersonalization.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppCatalogPersonalization.java new file mode 100644 index 00000000..29bba67a --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppCatalogPersonalization.java @@ -0,0 +1,112 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +/** + * Model for the object PUT to the controller when the user takes an action on + * an application in the catalog. + */ +public class AppCatalogPersonalization { + + public Long appId; + public Boolean select; + public Boolean pending; + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public Boolean getSelect() { + return select; + } + + public void setSelect(Boolean select) { + this.select = select; + } + + public Boolean getPending() { + return pending; + } + + public void setPending(Boolean pending) { + this.pending = pending; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((appId == null) ? 0 : appId.hashCode()); + result = prime * result + ((pending == null) ? 0 : pending.hashCode()); + result = prime * result + ((select == null) ? 0 : select.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + AppCatalogPersonalization other = (AppCatalogPersonalization) obj; + if (appId == null) { + if (other.appId != null) + return false; + } else if (!appId.equals(other.appId)) + return false; + if (pending == null) { + if (other.pending != null) + return false; + } else if (!pending.equals(other.pending)) + return false; + if (select == null) { + if (other.select != null) + return false; + } else if (!select.equals(other.select)) + return false; + return true; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppNameIdIsAdmin.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppNameIdIsAdmin.java new file mode 100644 index 00000000..a554197b --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppNameIdIsAdmin.java @@ -0,0 +1,132 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class AppNameIdIsAdmin { + + public Long id; + + public String appName; + + public Boolean isAdmin; + + public Boolean restrictedApp; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + public Boolean getIsAdmin() { + return isAdmin; + } + + public void setIsAdmin(Boolean isAdmin) { + this.isAdmin = isAdmin; + } + + public Boolean getRestrictedApp() { + return restrictedApp; + } + + public void setRestrictedApp(Boolean restrictedApp) { + this.restrictedApp = restrictedApp; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((appName == null) ? 0 : appName.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((isAdmin == null) ? 0 : isAdmin.hashCode()); + result = prime * result + ((restrictedApp == null) ? 0 : restrictedApp.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + AppNameIdIsAdmin other = (AppNameIdIsAdmin) obj; + if (appName == null) { + if (other.appName != null) + return false; + } else if (!appName.equals(other.appName)) + return false; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + if (isAdmin == null) { + if (other.isAdmin != null) + return false; + } else if (!isAdmin.equals(other.isAdmin)) + return false; + if (restrictedApp == null) { + if (other.restrictedApp != null) + return false; + } else if (!restrictedApp.equals(other.restrictedApp)) + return false; + return true; + } + + @Override + public String toString() { + return "AppNameIdIsAdmin [id=" + id + ", appName=" + appName + ", isAdmin=" + isAdmin + ", restrictedApp=" + + restrictedApp + "]"; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppWithRolesForUser.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppWithRolesForUser.java new file mode 100644 index 00000000..b6b10310 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppWithRolesForUser.java @@ -0,0 +1,90 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.List; + +public class AppWithRolesForUser { + + public String orgUserId; + + public Long appId; + + public String appName; + + public List appRoles; + + public String getOrgUserId() { + return orgUserId; + } + + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + public List getAppRoles() { + return appRoles; + } + + public void setAppRoles(List appRoles) { + this.appRoles = appRoles; + } + + @Override + public String toString() { + return "AppWithRolesForUser [orgUserId=" + orgUserId + ", appId=" + appId + ", appName=" + appName + + ", appRoles=" + appRoles + "]"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppsListWithAdminRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppsListWithAdminRole.java new file mode 100644 index 00000000..67189fac --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/AppsListWithAdminRole.java @@ -0,0 +1,104 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.ArrayList; + +public class AppsListWithAdminRole { + + public String orgUserId; + + public ArrayList appsRoles; + + public AppsListWithAdminRole() { + appsRoles = new ArrayList(); + } + + public String getOrgUserId() { + return orgUserId; + } + + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + + public ArrayList getAppsRoles() { + return appsRoles; + } + + public void setAppsRoles(ArrayList appsRoles) { + this.appsRoles = appsRoles; + } + + @Override + public String toString() { + return "AppsListWithAdminRole [orgUserId=" + orgUserId + ", appsRoles=" + appsRoles + "]"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((appsRoles == null) ? 0 : appsRoles.hashCode()); + result = prime * result + ((orgUserId == null) ? 0 : orgUserId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + AppsListWithAdminRole other = (AppsListWithAdminRole) obj; + if (appsRoles == null) { + if (other.appsRoles != null) + return false; + } else if (!appsRoles.equals(other.appsRoles)) + return false; + if (orgUserId == null) { + if (other.orgUserId != null) + return false; + } else if (!orgUserId.equals(other.orgUserId)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BulkUploadRoleFunction.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BulkUploadRoleFunction.java new file mode 100644 index 00000000..9457242c --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BulkUploadRoleFunction.java @@ -0,0 +1,105 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@Entity +@JsonInclude(JsonInclude.Include.NON_NULL) +public class BulkUploadRoleFunction implements Serializable{ + + + private static final long serialVersionUID = -1880947347092068841L; + + @Id + @Column(name="function_name") + private String functionName; + @Id + @Column(name="function_cd") + private String functionCd; + + public String getFunctionName() { + return functionName; + } + public void setFunctionName(String functionName) { + this.functionName = functionName; + } + public String getFunctionCd() { + return functionCd; + } + public void setFunctionCd(String functionCd) { + this.functionCd = functionCd; + } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((functionCd == null) ? 0 : functionCd.hashCode()); + result = prime * result + ((functionName == null) ? 0 : functionName.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + BulkUploadRoleFunction other = (BulkUploadRoleFunction) obj; + if (functionCd == null) { + if (other.functionCd != null) + return false; + } else if (!functionCd.equals(other.functionCd)) + return false; + if (functionName == null) { + if (other.functionName != null) + return false; + } else if (!functionName.equals(other.functionName)) + return false; + return true; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BulkUploadUserRoles.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BulkUploadUserRoles.java new file mode 100644 index 00000000..67260af7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BulkUploadUserRoles.java @@ -0,0 +1,120 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@Entity +@JsonInclude(JsonInclude.Include.NON_NULL) +public class BulkUploadUserRoles implements Serializable{ + + private static final long serialVersionUID = -7478654947593502185L; + + @Id + @Column(name="role_name") + private String roleName; + @Id + @Column(name="org_user_id") + private String orgUserId; + @Id + @Column(name="auth_namespace") + private String appNameSpace; + + public String getRoleName() { + return roleName; + } + public void setRoleName(String roleName) { + this.roleName = roleName; + } + public String getOrgUserId() { + return orgUserId; + } + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + public String getAppNameSpace() { + return appNameSpace; + } + public void setAppNameSpace(String appNameSpace) { + this.appNameSpace = appNameSpace; + } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((appNameSpace == null) ? 0 : appNameSpace.hashCode()); + result = prime * result + ((orgUserId == null) ? 0 : orgUserId.hashCode()); + result = prime * result + ((roleName == null) ? 0 : roleName.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + BulkUploadUserRoles other = (BulkUploadUserRoles) obj; + if (appNameSpace == null) { + if (other.appNameSpace != null) + return false; + } else if (!appNameSpace.equals(other.appNameSpace)) + return false; + if (orgUserId == null) { + if (other.orgUserId != null) + return false; + } else if (!orgUserId.equals(other.orgUserId)) + return false; + if (roleName == null) { + if (other.roleName != null) + return false; + } else if (!roleName.equals(other.roleName)) + return false; + return true; + } + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRole.java new file mode 100644 index 00000000..a9132364 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRole.java @@ -0,0 +1,126 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@Entity +@JsonInclude(JsonInclude.Include.NON_NULL) +public class BusinessCardApplicationRole implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + + public BusinessCardApplicationRole() { + } + + + @Id + @Column(name="app_name") + private String appName; + + @Id + @Column(name="role_name") + private String roleName; + + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + @Override + public String toString() { + return "BusinessCardUserApplicationRoles [appName=" + appName + ", roleName=" + roleName + "]"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((appName == null) ? 0 : appName.hashCode()); + result = prime * result + ((roleName == null) ? 0 : roleName.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + BusinessCardApplicationRole other = (BusinessCardApplicationRole) obj; + if (appName == null) { + if (other.appName != null) + return false; + } else if (!appName.equals(other.appName)) + return false; + if (roleName == null) { + if (other.roleName != null) + return false; + } else if (!roleName.equals(other.roleName)) + return false; + return true; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRolesList.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRolesList.java new file mode 100644 index 00000000..e17e53e0 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRolesList.java @@ -0,0 +1,104 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class BusinessCardApplicationRolesList { + + public BusinessCardApplicationRolesList(){} + + private String appName; + private List roleNames; + + + public String getAppName() { + return appName; + } + public void setAppName(String appName) { + this.appName = appName; + } + public List getRoleNames() { + return roleNames; + } + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + public BusinessCardApplicationRolesList(String appName, List roleNames) { + super(); + this.appName = appName; + this.roleNames = roleNames; + } + @Override + public String toString() { + return "BusinessCardUserAppRoles [appName=" + appName + ", roleNames=" + roleNames + "]"; + } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((appName == null) ? 0 : appName.hashCode()); + result = prime * result + ((roleNames == null) ? 0 : roleNames.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + BusinessCardApplicationRolesList other = (BusinessCardApplicationRolesList) obj; + if (appName == null) { + if (other.appName != null) + return false; + } else if (!appName.equals(other.appName)) + return false; + if (roleNames == null) { + if (other.roleNames != null) + return false; + } else if (!roleNames.equals(other.roleNames)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralApp.java new file mode 100644 index 00000000..6fcc0dc8 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralApp.java @@ -0,0 +1,400 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; +import java.util.Date; + +public class CentralApp implements Serializable{ + /** + * + */ + private static final long serialVersionUID = -3325965646585871632L; + private Long id; + private Date created; + private Date modified; + private Long createdId; + private Long modifiedId; + private Long rowNum; + private String name; // app_name + private String imageUrl; // app_image_url + private String description; // app_description + private String notes; // app_notes + private String url; // app_url + private String alternateUrl; // app_alternate_url + private String restEndpoint; // app_rest_endpoint + private String mlAppName; // ml_app_name + private String mlAppAdminId; // ml_app_admin_id; + private String motsId; // mots_id + private String appPassword; // app_password + private String open; + private String enabled; + private byte[] thumbnail; + private String username; // app_username + private String uebKey; // ueb_key + private String uebSecret; // ueb_secret + private String uebTopicName; // ueb_topic_name + + public CentralApp(){ + + } + + public CentralApp(Long id, Date created, Date modified, Long createdId, Long modifiedId, Long rowNum, String name, + String imageUrl, String description, String notes, String url, String alternateUrl, String restEndpoint, + String mlAppName, String mlAppAdminId, String motsId, String appPassword, String open, String enabled, + byte[] thumbnail, String username, String uebKey, String uebSecret, String uebTopicName) { + super(); + this.id = id; + this.created = created; + this.modified = modified; + this.createdId = createdId; + this.modifiedId = modifiedId; + this.rowNum = rowNum; + this.name = name; + this.imageUrl = imageUrl; + this.description = description; + this.notes = notes; + this.url = url; + this.alternateUrl = alternateUrl; + this.restEndpoint = restEndpoint; + this.mlAppName = mlAppName; + this.mlAppAdminId = mlAppAdminId; + this.motsId = motsId; + this.appPassword = appPassword; + this.open = open; + this.enabled = enabled; + this.thumbnail = thumbnail; + this.username = username; + this.uebKey = uebKey; + this.uebSecret = uebSecret; + this.uebTopicName = uebTopicName; + } + + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + + public Date getCreated() { + return created; + } + public void setCreated(Date created) { + this.created = created; + } + public Date getModified() { + return modified; + } + public void setModified(Date modified) { + this.modified = modified; + } + public Long getCreatedId() { + return createdId; + } + public void setCreatedId(Long createdId) { + this.createdId = createdId; + } + public Long getModifiedId() { + return modifiedId; + } + public void setModifiedId(Long modifiedId) { + this.modifiedId = modifiedId; + } + public Long getRowNum() { + return rowNum; + } + public void setRowNum(Long rowNum) { + this.rowNum = rowNum; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getImageUrl() { + return imageUrl; + } + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + public String getNotes() { + return notes; + } + public void setNotes(String notes) { + this.notes = notes; + } + public String getUrl() { + return url; + } + public void setUrl(String url) { + this.url = url; + } + public String getAlternateUrl() { + return alternateUrl; + } + public void setAlternateUrl(String alternateUrl) { + this.alternateUrl = alternateUrl; + } + public String getRestEndpoint() { + return restEndpoint; + } + public void setRestEndpoint(String restEndpoint) { + this.restEndpoint = restEndpoint; + } + public String getMlAppName() { + return mlAppName; + } + public void setMlAppName(String mlAppName) { + this.mlAppName = mlAppName; + } + public String getMlAppAdminId() { + return mlAppAdminId; + } + public void setMlAppAdminId(String mlAppAdminId) { + this.mlAppAdminId = mlAppAdminId; + } + public String getMotsId() { + return motsId; + } + public void setMotsId(String motsId) { + this.motsId = motsId; + } + public String getAppPassword() { + return appPassword; + } + public void setAppPassword(String appPassword) { + this.appPassword = appPassword; + } + public String getOpen() { + return open; + } + public void setOpen(String open) { + this.open = open; + } + public String getEnabled() { + return enabled; + } + public void setEnabled(String enabled) { + this.enabled = enabled; + } + public byte[] getThumbnail() { + return thumbnail; + } + public void setThumbnail(byte[] thumbnail) { + this.thumbnail = thumbnail; + } + public String getUsername() { + return username; + } + public void setUsername(String username) { + this.username = username; + } + public String getUebKey() { + return uebKey; + } + public void setUebKey(String uebKey) { + this.uebKey = uebKey; + } + public String getUebSecret() { + return uebSecret; + } + public void setUebSecret(String uebSecret) { + this.uebSecret = uebSecret; + } + public String getUebTopicName() { + return uebTopicName; + } + public void setUebTopicName(String uebTopicName) { + this.uebTopicName = uebTopicName; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((alternateUrl == null) ? 0 : alternateUrl.hashCode()); + result = prime * result + ((appPassword == null) ? 0 : appPassword.hashCode()); + result = prime * result + ((createdId == null) ? 0 : createdId.hashCode()); + result = prime * result + ((description == null) ? 0 : description.hashCode()); + result = prime * result + ((enabled == null) ? 0 : enabled.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((imageUrl == null) ? 0 : imageUrl.hashCode()); + result = prime * result + ((mlAppAdminId == null) ? 0 : mlAppAdminId.hashCode()); + result = prime * result + ((mlAppName == null) ? 0 : mlAppName.hashCode()); + result = prime * result + ((modifiedId == null) ? 0 : modifiedId.hashCode()); + result = prime * result + ((motsId == null) ? 0 : motsId.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((notes == null) ? 0 : notes.hashCode()); + result = prime * result + ((open == null) ? 0 : open.hashCode()); + result = prime * result + ((restEndpoint == null) ? 0 : restEndpoint.hashCode()); + result = prime * result + ((rowNum == null) ? 0 : rowNum.hashCode()); + result = prime * result + ((uebKey == null) ? 0 : uebKey.hashCode()); + result = prime * result + ((uebSecret == null) ? 0 : uebSecret.hashCode()); + result = prime * result + ((uebTopicName == null) ? 0 : uebTopicName.hashCode()); + result = prime * result + ((url == null) ? 0 : url.hashCode()); + result = prime * result + ((username == null) ? 0 : username.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + CentralApp other = (CentralApp) obj; + if (alternateUrl == null) { + if (other.alternateUrl != null) + return false; + } else if (!alternateUrl.equals(other.alternateUrl)) + return false; + if (appPassword == null) { + if (other.appPassword != null) + return false; + } else if (!appPassword.equals(other.appPassword)) + return false; + if (createdId == null) { + if (other.createdId != null) + return false; + } else if (!createdId.equals(other.createdId)) + return false; + if (description == null) { + if (other.description != null) + return false; + } else if (!description.equals(other.description)) + return false; + if (enabled == null) { + if (other.enabled != null) + return false; + } else if (!enabled.equals(other.enabled)) + return false; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + if (imageUrl == null) { + if (other.imageUrl != null) + return false; + } else if (!imageUrl.equals(other.imageUrl)) + return false; + if (mlAppAdminId == null) { + if (other.mlAppAdminId != null) + return false; + } else if (!mlAppAdminId.equals(other.mlAppAdminId)) + return false; + if (mlAppName == null) { + if (other.mlAppName != null) + return false; + } else if (!mlAppName.equals(other.mlAppName)) + return false; + if (modifiedId == null) { + if (other.modifiedId != null) + return false; + } else if (!modifiedId.equals(other.modifiedId)) + return false; + if (motsId == null) { + if (other.motsId != null) + return false; + } else if (!motsId.equals(other.motsId)) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (notes == null) { + if (other.notes != null) + return false; + } else if (!notes.equals(other.notes)) + return false; + if (open == null) { + if (other.open != null) + return false; + } else if (!open.equals(other.open)) + return false; + if (restEndpoint == null) { + if (other.restEndpoint != null) + return false; + } else if (!restEndpoint.equals(other.restEndpoint)) + return false; + if (rowNum == null) { + if (other.rowNum != null) + return false; + } else if (!rowNum.equals(other.rowNum)) + return false; + if (uebKey == null) { + if (other.uebKey != null) + return false; + } else if (!uebKey.equals(other.uebKey)) + return false; + if (uebSecret == null) { + if (other.uebSecret != null) + return false; + } else if (!uebSecret.equals(other.uebSecret)) + return false; + if (uebTopicName == null) { + if (other.uebTopicName != null) + return false; + } else if (!uebTopicName.equals(other.uebTopicName)) + return false; + if (url == null) { + if (other.url != null) + return false; + } else if (!url.equals(other.url)) + return false; + if (username == null) { + if (other.username != null) + return false; + } else if (!username.equals(other.username)) + return false; + return true; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralRole.java new file mode 100644 index 00000000..dc1a78fe --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralRole.java @@ -0,0 +1,279 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; +import java.util.Date; +import java.util.SortedSet; +import java.util.TreeSet; + +public class CentralRole implements Serializable { + + private static final long serialVersionUID = -9210905386086213882L; + private Long id; + private Date created; + private Date modified; + private Long createdId; + private Long modifiedId; + private Long rowNum; + + private String name; + private boolean active; + private Integer priority; + + private SortedSet roleFunctions = new TreeSet<>(); + + private SortedSet childRoles = new TreeSet<>(); + + private SortedSet parentRoles = new TreeSet<>(); + + public CentralRole(){ + + } + + public CentralRole(Long id, String name, boolean active, Integer priority, + SortedSet roleFunctions) { + super(); + this.id = id; + this.name = name; + this.active = active; + this.priority = priority; + this.roleFunctions = roleFunctions; + } + + + + public CentralRole(Long id, Date created, Date modified, Long createdId, Long modifiedId, Long rowNum, String name, + boolean active, Integer priority, SortedSet roleFunctions, + SortedSet childRoles, SortedSet parentRoles) { + super(); + this.id = id; + this.created = created; + this.modified = modified; + this.createdId = createdId; + this.modifiedId = modifiedId; + this.rowNum = rowNum; + this.name = name; + this.active = active; + this.priority = priority; + this.roleFunctions = roleFunctions; + this.childRoles = childRoles; + this.parentRoles = parentRoles; + } + + /** + * @return the id + */ + public Long getId() { + return id; + } + + /** + * @param id + * the id to set + */ + public void setId(Long id) { + this.id = id; + } + + /** + * @return the created + */ + public Date getCreated() { + return created; + } + + /** + * @param created + * the created to set + */ + public void setCreated(Date created) { + this.created = created; + } + + /** + * @return the modified + */ + public Date getModified() { + return modified; + } + + /** + * @param modified + * the modified to set + */ + public void setModified(Date modified) { + this.modified = modified; + } + + /** + * @return the createdId + */ + public Long getCreatedId() { + return createdId; + } + + /** + * @param createdId + * the createdId to set + */ + public void setCreatedId(Long createdId) { + this.createdId = createdId; + } + + /** + * @return the modifiedId + */ + public Long getModifiedId() { + return modifiedId; + } + + /** + * @param modifiedId + * the modifiedId to set + */ + public void setModifiedId(Long modifiedId) { + this.modifiedId = modifiedId; + } + + /** + * @return the rowNum + */ + public Long getRowNum() { + return rowNum; + } + + /** + * @param rowNum + * the rowNum to set + */ + public void setRowNum(Long rowNum) { + this.rowNum = rowNum; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name + * the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the active + */ + public boolean isActive() { + return active; + } + + /** + * @param active + * the active to set + */ + public void setActive(boolean active) { + this.active = active; + } + + /** + * @return the priority + */ + public Integer getPriority() { + return priority; + } + + /** + * @param priority + * the priority to set + */ + public void setPriority(Integer priority) { + this.priority = priority; + } + + /** + * @return the roleFunctions + */ + public SortedSet getRoleFunctions() { + return roleFunctions; + } + + /** + * @param roleFunctions + * the roleFunctions to set + */ + public void setRoleFunctions(SortedSet roleFunctions) { + this.roleFunctions = roleFunctions; + } + + /** + * @return the childRoles + */ + public SortedSet getChildRoles() { + return childRoles; + } + + /** + * @param childRoles + * the childRoles to set + */ + public void setChildRoles(SortedSet childRoles) { + this.childRoles = childRoles; + } + + /** + * @return the parentRoles + */ + public SortedSet getParentRoles() { + return parentRoles; + } + + /** + * @param parentRoles + * the parentRoles to set + */ + public void setParentRoles(SortedSet parentRoles) { + this.parentRoles = parentRoles; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralRoleFunction.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralRoleFunction.java new file mode 100644 index 00000000..6cc474a1 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralRoleFunction.java @@ -0,0 +1,251 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; +import java.util.Date; +import java.util.Set; + +@SuppressWarnings("rawtypes") +public class CentralRoleFunction implements Serializable, Comparable { + private static final long serialVersionUID = 1990254299529285610L; + private Long id; + private Date created; + private Date modified; + private Long createdId; + private Long modifiedId; + private Serializable auditUserId; + private Set auditTrail; + private Long rowNum; + private String code; + private String name; + private String editUrl; + + public CentralRoleFunction(String code, String name) { + super(); + this.code = code; + this.name = name; + } + + public CentralRoleFunction() { + } + + /** + * @return the id + */ + public Long getId() { + return id; + } + + /** + * @param id + * the id to set + */ + public void setId(Long id) { + this.id = id; + } + + /** + * @return the created + */ + public Date getCreated() { + return created; + } + + /** + * @param created + * the created to set + */ + public void setCreated(Date created) { + this.created = created; + } + + /** + * @return the modified + */ + public Date getModified() { + return modified; + } + + /** + * @param modified + * the modified to set + */ + public void setModified(Date modified) { + this.modified = modified; + } + + /** + * @return the createdId + */ + public Long getCreatedId() { + return createdId; + } + + /** + * @param createdId + * the createdId to set + */ + public void setCreatedId(Long createdId) { + this.createdId = createdId; + } + + /** + * @return the modifiedId + */ + public Long getModifiedId() { + return modifiedId; + } + + /** + * @param modifiedId + * the modifiedId to set + */ + public void setModifiedId(Long modifiedId) { + this.modifiedId = modifiedId; + } + + /** + * @return the rowNum + */ + public Long getRowNum() { + return rowNum; + } + + /** + * @param rowNum + * the rowNum to set + */ + public void setRowNum(Long rowNum) { + this.rowNum = rowNum; + } + + /** + * @return the code + */ + public String getCode() { + return code; + } + + /** + * @param code + * the code to set + */ + public void setCode(String code) { + this.code = code; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name + * the name to set + */ + public void setName(String name) { + this.name = name; + } + + public Serializable getAuditUserId() { + return auditUserId; + } + + public void setAuditUserId(Serializable auditUserId) { + this.auditUserId = auditUserId; + } + + public Set getAuditTrail() { + return auditTrail; + } + + public void setAuditTrail(Set auditTrail) { + this.auditTrail = auditTrail; + } + + public String getEditUrl() { + return editUrl; + } + + public void setEditUrl(String editUrl) { + this.editUrl = editUrl; + } + + @Override + public int compareTo(Object obj) { + String c1 = getName(); + String c2 = ((CentralRoleFunction) obj).getName(); + + return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((code == null) ? 0 : code.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + CentralRoleFunction other = (CentralRoleFunction) obj; + if (code == null) { + if (other.code != null) + return false; + } else if (!code.equals(other.code)) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralUser.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralUser.java new file mode 100644 index 00000000..3b94d11a --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralUser.java @@ -0,0 +1,965 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; +import java.util.Date; +import java.util.Set; +import java.util.TreeSet; + +public class CentralUser implements Serializable { + + private static final long serialVersionUID = 7060454665330579923L; + private Long id; + private Date created; + private Date modified; + private Long createdId; + private Long modifiedId; + private Long rowNum; + + private Long orgId; + private Long managerId; + private String firstName; + private String middleInitial; + private String lastName; + private String phone; + private String fax; + private String cellular; + private String email; + private Long addressId; + private String alertMethodCd; + private String hrid; + private String orgUserId; + private String orgCode; + private String address1; + private String address2; + private String city; + private String state; + private String zipCode; + private String country; + private String orgManagerUserId; + private String locationClli; + private String businessCountryCode; + private String businessCountryName; + private String businessUnit; + private String businessUnitName; + private String department; + private String departmentName; + private String companyCode; + private String company; + private String zipCodeSuffix; + private String jobTitle; + private String commandChain; + private String siloStatus; + private String costCenter; + private String financialLocCode; + + private String loginId; + private String loginPwd; + private Date lastLoginDate; + private boolean active; + private boolean internal; + private Long selectedProfileId; + private Long timeZoneId; + private boolean online; + private String chatId; + + private Set userApps = new TreeSet<>(); + private Set pseudoRoles = new TreeSet<>(); + + public CentralUser(Long id, Date created, Date modified, Long createdId, Long modifiedId, Long rowNum, Long orgId, + Long managerId, String firstName, String middleInitial, String lastName, String phone, String fax, + String cellular, String email, Long addressId, String alertMethodCd, String hrid, String orgUserId, + String orgCode, String address1, String address2, String city, String state, String zipCode, String country, + String orgManagerUserId, String locationClli, String businessCountryCode, String businessCountryName, + String businessUnit, String businessUnitName, String department, String departmentName, String companyCode, + String company, String zipCodeSuffix, String jobTitle, String commandChain, String siloStatus, + String costCenter, String financialLocCode, String loginId, String loginPwd, Date lastLoginDate, + boolean active, boolean internal, Long selectedProfileId, Long timeZoneId, boolean online, String chatId, + Set userApps) { + super(); + this.id = id; + this.created = created; + this.modified = modified; + this.createdId = createdId; + this.modifiedId = modifiedId; + this.rowNum = rowNum; + this.orgId = orgId; + this.managerId = managerId; + this.firstName = firstName; + this.middleInitial = middleInitial; + this.lastName = lastName; + this.phone = phone; + this.fax = fax; + this.cellular = cellular; + this.email = email; + this.addressId = addressId; + this.alertMethodCd = alertMethodCd; + this.hrid = hrid; + this.orgUserId = orgUserId; + this.orgCode = orgCode; + this.address1 = address1; + this.address2 = address2; + this.city = city; + this.state = state; + this.zipCode = zipCode; + this.country = country; + this.orgManagerUserId = orgManagerUserId; + this.locationClli = locationClli; + this.businessCountryCode = businessCountryCode; + this.businessCountryName = businessCountryName; + this.businessUnit = businessUnit; + this.businessUnitName = businessUnitName; + this.department = department; + this.departmentName = departmentName; + this.companyCode = companyCode; + this.company = company; + this.zipCodeSuffix = zipCodeSuffix; + this.jobTitle = jobTitle; + this.commandChain = commandChain; + this.siloStatus = siloStatus; + this.costCenter = costCenter; + this.financialLocCode = financialLocCode; + this.loginId = loginId; + this.loginPwd = loginPwd; + this.lastLoginDate = lastLoginDate; + this.active = active; + this.internal = internal; + this.selectedProfileId = selectedProfileId; + this.timeZoneId = timeZoneId; + this.online = online; + this.chatId = chatId; + this.userApps = userApps; + } + + /** + * @return the id + */ + public Long getId() { + return id; + } + + /** + * @param id + * the id to set + */ + public void setId(Long id) { + this.id = id; + } + + /** + * @return the created + */ + public Date getCreated() { + return created; + } + + /** + * @param created + * the created to set + */ + public void setCreated(Date created) { + this.created = created; + } + + /** + * @return the modified + */ + public Date getModified() { + return modified; + } + + /** + * @param modified + * the modified to set + */ + public void setModified(Date modified) { + this.modified = modified; + } + + /** + * @return the createdId + */ + public Long getCreatedId() { + return createdId; + } + + /** + * @param createdId + * the createdId to set + */ + public void setCreatedId(Long createdId) { + this.createdId = createdId; + } + + /** + * @return the modifiedId + */ + public Long getModifiedId() { + return modifiedId; + } + + /** + * @param modifiedId + * the modifiedId to set + */ + public void setModifiedId(Long modifiedId) { + this.modifiedId = modifiedId; + } + + /** + * @return the rowNum + */ + public Long getRowNum() { + return rowNum; + } + + /** + * @param rowNum + * the rowNum to set + */ + public void setRowNum(Long rowNum) { + this.rowNum = rowNum; + } + + /** + * @return the orgId + */ + public Long getOrgId() { + return orgId; + } + + /** + * @param orgId + * the orgId to set + */ + public void setOrgId(Long orgId) { + this.orgId = orgId; + } + + /** + * @return the managerId + */ + public Long getManagerId() { + return managerId; + } + + /** + * @param managerId + * the managerId to set + */ + public void setManagerId(Long managerId) { + this.managerId = managerId; + } + + /** + * @return the firstName + */ + public String getFirstName() { + return firstName; + } + + /** + * @param firstName + * the firstName to set + */ + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + /** + * @return the middleInitial + */ + public String getMiddleInitial() { + return middleInitial; + } + + /** + * @param middleInitial + * the middleInitial to set + */ + public void setMiddleInitial(String middleInitial) { + this.middleInitial = middleInitial; + } + + /** + * @return the lastName + */ + public String getLastName() { + return lastName; + } + + /** + * @param lastName + * the lastName to set + */ + public void setLastName(String lastName) { + this.lastName = lastName; + } + + /** + * @return the phone + */ + public String getPhone() { + return phone; + } + + /** + * @param phone + * the phone to set + */ + public void setPhone(String phone) { + this.phone = phone; + } + + /** + * @return the fax + */ + public String getFax() { + return fax; + } + + /** + * @param fax + * the fax to set + */ + public void setFax(String fax) { + this.fax = fax; + } + + /** + * @return the cellular + */ + public String getCellular() { + return cellular; + } + + /** + * @param cellular + * the cellular to set + */ + public void setCellular(String cellular) { + this.cellular = cellular; + } + + /** + * @return the email + */ + public String getEmail() { + return email; + } + + /** + * @param email + * the email to set + */ + public void setEmail(String email) { + this.email = email; + } + + /** + * @return the addressId + */ + public Long getAddressId() { + return addressId; + } + + /** + * @param addressId + * the addressId to set + */ + public void setAddressId(Long addressId) { + this.addressId = addressId; + } + + /** + * @return the alertMethodCd + */ + public String getAlertMethodCd() { + return alertMethodCd; + } + + /** + * @param alertMethodCd + * the alertMethodCd to set + */ + public void setAlertMethodCd(String alertMethodCd) { + this.alertMethodCd = alertMethodCd; + } + + /** + * @return the hrid + */ + public String getHrid() { + return hrid; + } + + /** + * @param hrid + * the hrid to set + */ + public void setHrid(String hrid) { + this.hrid = hrid; + } + + /** + * @return the orgUserId + */ + public String getOrgUserId() { + return orgUserId; + } + + /** + * @param orgUserId + * the orgUserId to set + */ + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + + /** + * @return the orgCode + */ + public String getOrgCode() { + return orgCode; + } + + /** + * @param orgCode + * the orgCode to set + */ + public void setOrgCode(String orgCode) { + this.orgCode = orgCode; + } + + /** + * @return the address1 + */ + public String getAddress1() { + return address1; + } + + /** + * @param address1 + * the address1 to set + */ + public void setAddress1(String address1) { + this.address1 = address1; + } + + /** + * @return the address2 + */ + public String getAddress2() { + return address2; + } + + /** + * @param address2 + * the address2 to set + */ + public void setAddress2(String address2) { + this.address2 = address2; + } + + /** + * @return the city + */ + public String getCity() { + return city; + } + + /** + * @param city + * the city to set + */ + public void setCity(String city) { + this.city = city; + } + + /** + * @return the state + */ + public String getState() { + return state; + } + + /** + * @param state + * the state to set + */ + public void setState(String state) { + this.state = state; + } + + /** + * @return the zipCode + */ + public String getZipCode() { + return zipCode; + } + + /** + * @param zipCode + * the zipCode to set + */ + public void setZipCode(String zipCode) { + this.zipCode = zipCode; + } + + /** + * @return the country + */ + public String getCountry() { + return country; + } + + /** + * @param country + * the country to set + */ + public void setCountry(String country) { + this.country = country; + } + + /** + * @return the orgManagerUserId + */ + public String getOrgManagerUserId() { + return orgManagerUserId; + } + + /** + * @param orgManagerUserId + * the orgManagerUserId to set + */ + public void setOrgManagerUserId(String orgManagerUserId) { + this.orgManagerUserId = orgManagerUserId; + } + + /** + * @return the locationClli + */ + public String getLocationClli() { + return locationClli; + } + + /** + * @param locationClli + * the locationClli to set + */ + public void setLocationClli(String locationClli) { + this.locationClli = locationClli; + } + + /** + * @return the businessCountryCode + */ + public String getBusinessCountryCode() { + return businessCountryCode; + } + + /** + * @param businessCountryCode + * the businessCountryCode to set + */ + public void setBusinessCountryCode(String businessCountryCode) { + this.businessCountryCode = businessCountryCode; + } + + /** + * @return the businessCountryName + */ + public String getBusinessCountryName() { + return businessCountryName; + } + + /** + * @param businessCountryName + * the businessCountryName to set + */ + public void setBusinessCountryName(String businessCountryName) { + this.businessCountryName = businessCountryName; + } + + /** + * @return the businessUnit + */ + public String getBusinessUnit() { + return businessUnit; + } + + /** + * @param businessUnit + * the businessUnit to set + */ + public void setBusinessUnit(String businessUnit) { + this.businessUnit = businessUnit; + } + + /** + * @return the businessUnitName + */ + public String getBusinessUnitName() { + return businessUnitName; + } + + /** + * @param businessUnitName + * the businessUnitName to set + */ + public void setBusinessUnitName(String businessUnitName) { + this.businessUnitName = businessUnitName; + } + + /** + * @return the department + */ + public String getDepartment() { + return department; + } + + /** + * @param department + * the department to set + */ + public void setDepartment(String department) { + this.department = department; + } + + /** + * @return the departmentName + */ + public String getDepartmentName() { + return departmentName; + } + + /** + * @param departmentName + * the departmentName to set + */ + public void setDepartmentName(String departmentName) { + this.departmentName = departmentName; + } + + /** + * @return the companyCode + */ + public String getCompanyCode() { + return companyCode; + } + + /** + * @param companyCode + * the companyCode to set + */ + public void setCompanyCode(String companyCode) { + this.companyCode = companyCode; + } + + /** + * @return the company + */ + public String getCompany() { + return company; + } + + /** + * @param company + * the company to set + */ + public void setCompany(String company) { + this.company = company; + } + + /** + * @return the zipCodeSuffix + */ + public String getZipCodeSuffix() { + return zipCodeSuffix; + } + + /** + * @param zipCodeSuffix + * the zipCodeSuffix to set + */ + public void setZipCodeSuffix(String zipCodeSuffix) { + this.zipCodeSuffix = zipCodeSuffix; + } + + /** + * @return the jobTitle + */ + public String getJobTitle() { + return jobTitle; + } + + /** + * @param jobTitle + * the jobTitle to set + */ + public void setJobTitle(String jobTitle) { + this.jobTitle = jobTitle; + } + + /** + * @return the commandChain + */ + public String getCommandChain() { + return commandChain; + } + + /** + * @param commandChain + * the commandChain to set + */ + public void setCommandChain(String commandChain) { + this.commandChain = commandChain; + } + + /** + * @return the siloStatus + */ + public String getSiloStatus() { + return siloStatus; + } + + /** + * @param siloStatus + * the siloStatus to set + */ + public void setSiloStatus(String siloStatus) { + this.siloStatus = siloStatus; + } + + /** + * @return the costCenter + */ + public String getCostCenter() { + return costCenter; + } + + /** + * @param costCenter + * the costCenter to set + */ + public void setCostCenter(String costCenter) { + this.costCenter = costCenter; + } + + /** + * @return the financialLocCode + */ + public String getFinancialLocCode() { + return financialLocCode; + } + + /** + * @param financialLocCode + * the financialLocCode to set + */ + public void setFinancialLocCode(String financialLocCode) { + this.financialLocCode = financialLocCode; + } + + /** + * @return the loginId + */ + public String getLoginId() { + return loginId; + } + + /** + * @param loginId + * the loginId to set + */ + public void setLoginId(String loginId) { + this.loginId = loginId; + } + + /** + * @return the loginPwd + */ + public String getLoginPwd() { + return loginPwd; + } + + /** + * @param loginPwd + * the loginPwd to set + */ + public void setLoginPwd(String loginPwd) { + this.loginPwd = loginPwd; + } + + /** + * @return the lastLoginDate + */ + public Date getLastLoginDate() { + return lastLoginDate; + } + + /** + * @param lastLoginDate + * the lastLoginDate to set + */ + public void setLastLoginDate(Date lastLoginDate) { + this.lastLoginDate = lastLoginDate; + } + + /** + * @return the active + */ + public boolean isActive() { + return active; + } + + /** + * @param active + * the active to set + */ + public void setActive(boolean active) { + this.active = active; + } + + /** + * @return the internal + */ + public boolean isInternal() { + return internal; + } + + /** + * @param internal + * the internal to set + */ + public void setInternal(boolean internal) { + this.internal = internal; + } + + /** + * @return the selectedProfileId + */ + public Long getSelectedProfileId() { + return selectedProfileId; + } + + /** + * @param selectedProfileId + * the selectedProfileId to set + */ + public void setSelectedProfileId(Long selectedProfileId) { + this.selectedProfileId = selectedProfileId; + } + + /** + * @return the timeZoneId + */ + public Long getTimeZoneId() { + return timeZoneId; + } + + /** + * @param timeZoneId + * the timeZoneId to set + */ + public void setTimeZoneId(Long timeZoneId) { + this.timeZoneId = timeZoneId; + } + + /** + * @return the online + */ + public boolean isOnline() { + return online; + } + + /** + * @param online + * the online to set + */ + public void setOnline(boolean online) { + this.online = online; + } + + /** + * @return the chatId + */ + public String getChatId() { + return chatId; + } + + /** + * @param chatId + * the chatId to set + */ + public void setChatId(String chatId) { + this.chatId = chatId; + } + + /** + * @return the userApps + */ + public Set getUserApps() { + return userApps; + } + + /** + * @param userApps + * the userApps to set + */ + public void setUserApps(Set userApps) { + this.userApps = userApps; + } + + /** + * @return the pseudoRoles + */ + public Set getPseudoRoles() { + return pseudoRoles; + } + + /** + * @param pseudoRoles + * the pseudoRoles to set + */ + public void setPseudoRoles(Set pseudoRoles) { + this.pseudoRoles = pseudoRoles; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralUserApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralUserApp.java new file mode 100644 index 00000000..59ce5fb3 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralUserApp.java @@ -0,0 +1,144 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +@SuppressWarnings("rawtypes") +public class CentralUserApp implements Serializable, Comparable { + + private static final long serialVersionUID = -1140858385803822099L; + private Long userId; + private CentralApp app; + private CentralRole role; + private Short priority; + + /** + * @return the userId + */ + public Long getUserId() { + return userId; + } + + /** + * @param userId + * the userId to set + */ + public void setUserId(Long userId) { + this.userId = userId; + } + + /** + * @return the app + */ + public CentralApp getApp() { + return app; + } + + /** + * @param app + * the app to set + */ + public void setApp(CentralApp app) { + this.app = app; + } + + /** + * @return the role + */ + public CentralRole getRole() { + return role; + } + + /** + * @param role + * the role to set + */ + public void setRole(CentralRole role) { + this.role = role; + } + + /** + * @return the priority + */ + public Short getPriority() { + return priority; + } + + /** + * @param priority + * the priority to set + */ + public void setPriority(Short priority) { + this.priority = priority; + } + + @Override + public int compareTo(Object obj) { + String c1 = getRole().getName(); + String c2 = ((CentralUserApp) obj).getRole().getName(); + + return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((role == null) ? 0 : role.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + CentralUserApp other = (CentralUserApp) obj; + if (role == null) { + if (other.role != null) + return false; + } else if (!role.equals(other.role)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2Role.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2Role.java new file mode 100644 index 00000000..8c87acb9 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2Role.java @@ -0,0 +1,246 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; +import java.util.Date; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.onap.portalapp.portal.domain.CentralV2RoleFunction; + +@SuppressWarnings("rawtypes") +public class CentralV2Role implements Serializable, Comparable{ + /** + * + */ + private static final long serialVersionUID = -4332644961113063714L; + private Long id; + private Date created; + private Date modified; + private Long createdId; + private Long modifiedId; + private Long rowNum; + + private String name; + private boolean active; + private Integer priority; + + private SortedSet roleFunctions = new TreeSet<>(); + + private SortedSet childRoles = new TreeSet<>(); + + private SortedSet parentRoles = new TreeSet<>(); + + public CentralV2Role(Long id, Date created, Date modified, Long createdId, Long modifiedId, Long rowNum, + String name, boolean active, Integer priority, SortedSet roleFunctions, + SortedSet childRoles, SortedSet parentRoles) { + super(); + this.id = id; + this.created = created; + this.modified = modified; + this.createdId = createdId; + this.modifiedId = modifiedId; + this.rowNum = rowNum; + this.name = name; + this.active = active; + this.priority = priority; + this.roleFunctions = roleFunctions; + this.childRoles = childRoles; + this.parentRoles = parentRoles; + } + + public CentralV2Role(){ + + } + + public CentralV2Role(Long id, String name){ + this.id = id; + this.name = name; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public Date getModified() { + return modified; + } + + public void setModified(Date modified) { + this.modified = modified; + } + + public Long getCreatedId() { + return createdId; + } + + public void setCreatedId(Long createdId) { + this.createdId = createdId; + } + + public Long getModifiedId() { + return modifiedId; + } + + public void setModifiedId(Long modifiedId) { + this.modifiedId = modifiedId; + } + + public Long getRowNum() { + return rowNum; + } + + public void setRowNum(Long rowNum) { + this.rowNum = rowNum; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isActive() { + return active; + } + + public void setActive(boolean active) { + this.active = active; + } + + public Integer getPriority() { + return priority; + } + + public void setPriority(Integer priority) { + this.priority = priority; + } + + public SortedSet getRoleFunctions() { + return roleFunctions; + } + + public void setRoleFunctions(SortedSet roleFunctions) { + this.roleFunctions = roleFunctions; + } + + public SortedSet getChildRoles() { + return childRoles; + } + + public void setChildRoles(SortedSet childRoles) { + this.childRoles = childRoles; + } + + public SortedSet getParentRoles() { + return parentRoles; + } + + public void setParentRoles(SortedSet parentRoles) { + this.parentRoles = parentRoles; + } + public void addRoleFunction(CentralV2RoleFunction roleFunction) { + this.roleFunctions.add(roleFunction); + } + + public void addChildRole(CentralV2Role role) { + this.childRoles.add(role); + } + + public void addParentRole(CentralV2Role role) { + this.parentRoles.add(role); + } + + public int compareTo(Object obj){ + CentralV2Role other = (CentralV2Role)obj; + + String c1 = getName(); + String c2 = other.getName(); + + return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + CentralV2Role other = (CentralV2Role) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2User.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2User.java new file mode 100644 index 00000000..bdbf3924 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2User.java @@ -0,0 +1,1250 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; +import java.util.Date; +import java.util.Set; + +public class CentralV2User implements Serializable { + + + /** + * + */ + private static final long serialVersionUID = -2673289523184880563L; + private Long id; + private Date created; + private Date modified; + private Long createdId; + private Long modifiedId; + private Long rowNum; + + private Long orgId; + private Long managerId; + private String firstName; + private String middleInitial; + private String lastName; + private String phone; + private String fax; + private String cellular; + private String email; + private Long addressId; + private String alertMethodCd; + private String hrid; + private String orgUserId; + private String orgCode; + private String address1; + private String address2; + private String city; + private String state; + private String zipCode; + private String country; + private String orgManagerUserId; + private String locationClli; + private String businessCountryCode; + private String businessCountryName; + private String businessUnit; + private String businessUnitName; + private String department; + private String departmentName; + private String companyCode; + private String company; + private String zipCodeSuffix; + private String jobTitle; + private String commandChain; + private String siloStatus; + private String costCenter; + private String financialLocCode; + + private String loginId; + private String loginPwd; + private Date lastLoginDate; + private boolean active; + private boolean internal; + private Long selectedProfileId; + private Long timeZoneId; + private boolean online; + private String chatId; + + private Set userApps = null; + private Set pseudoRoles = null; + + public CentralV2User(){ + + } + + public CentralV2User(Long id, Date created, Date modified, Long createdId, Long modifiedId, Long rowNum, Long orgId, + Long managerId, String firstName, String middleInitial, String lastName, String phone, String fax, + String cellular, String email, Long addressId, String alertMethodCd, String hrid, String orgUserId, + String orgCode, String address1, String address2, String city, String state, String zipCode, String country, + String orgManagerUserId, String locationClli, String businessCountryCode, String businessCountryName, + String businessUnit, String businessUnitName, String department, String departmentName, String companyCode, + String company, String zipCodeSuffix, String jobTitle, String commandChain, String siloStatus, + String costCenter, String financialLocCode, String loginId, String loginPwd, Date lastLoginDate, + boolean active, boolean internal, Long selectedProfileId, Long timeZoneId, boolean online, String chatId, + Set userApps, Set pseudoRoles) { + super(); + this.id = id; + this.created = created; + this.modified = modified; + this.createdId = createdId; + this.modifiedId = modifiedId; + this.rowNum = rowNum; + this.orgId = orgId; + this.managerId = managerId; + this.firstName = firstName; + this.middleInitial = middleInitial; + this.lastName = lastName; + this.phone = phone; + this.fax = fax; + this.cellular = cellular; + this.email = email; + this.addressId = addressId; + this.alertMethodCd = alertMethodCd; + this.hrid = hrid; + this.orgUserId = orgUserId; + this.orgCode = orgCode; + this.address1 = address1; + this.address2 = address2; + this.city = city; + this.state = state; + this.zipCode = zipCode; + this.country = country; + this.orgManagerUserId = orgManagerUserId; + this.locationClli = locationClli; + this.businessCountryCode = businessCountryCode; + this.businessCountryName = businessCountryName; + this.businessUnit = businessUnit; + this.businessUnitName = businessUnitName; + this.department = department; + this.departmentName = departmentName; + this.companyCode = companyCode; + this.company = company; + this.zipCodeSuffix = zipCodeSuffix; + this.jobTitle = jobTitle; + this.commandChain = commandChain; + this.siloStatus = siloStatus; + this.costCenter = costCenter; + this.financialLocCode = financialLocCode; + this.loginId = loginId; + this.loginPwd = loginPwd; + this.lastLoginDate = lastLoginDate; + this.active = active; + this.internal = internal; + this.selectedProfileId = selectedProfileId; + this.timeZoneId = timeZoneId; + this.online = online; + this.chatId = chatId; + this.userApps = userApps; + this.pseudoRoles = pseudoRoles; + } + + /** + * @return the id + */ + public Long getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(Long id) { + this.id = id; + } + + /** + * @return the created + */ + public Date getCreated() { + return created; + } + + /** + * @param created the created to set + */ + public void setCreated(Date created) { + this.created = created; + } + + /** + * @return the modified + */ + public Date getModified() { + return modified; + } + + /** + * @param modified the modified to set + */ + public void setModified(Date modified) { + this.modified = modified; + } + + /** + * @return the createdId + */ + public Long getCreatedId() { + return createdId; + } + + /** + * @param createdId the createdId to set + */ + public void setCreatedId(Long createdId) { + this.createdId = createdId; + } + + /** + * @return the modifiedId + */ + public Long getModifiedId() { + return modifiedId; + } + + /** + * @param modifiedId the modifiedId to set + */ + public void setModifiedId(Long modifiedId) { + this.modifiedId = modifiedId; + } + + /** + * @return the rowNum + */ + public Long getRowNum() { + return rowNum; + } + + /** + * @param rowNum the rowNum to set + */ + public void setRowNum(Long rowNum) { + this.rowNum = rowNum; + } + + /** + * @return the orgId + */ + public Long getOrgId() { + return orgId; + } + + /** + * @param orgId the orgId to set + */ + public void setOrgId(Long orgId) { + this.orgId = orgId; + } + + /** + * @return the managerId + */ + public Long getManagerId() { + return managerId; + } + + /** + * @param managerId the managerId to set + */ + public void setManagerId(Long managerId) { + this.managerId = managerId; + } + + /** + * @return the firstName + */ + public String getFirstName() { + return firstName; + } + + /** + * @param firstName the firstName to set + */ + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + /** + * @return the middleInitial + */ + public String getMiddleInitial() { + return middleInitial; + } + + /** + * @param middleInitial the middleInitial to set + */ + public void setMiddleInitial(String middleInitial) { + this.middleInitial = middleInitial; + } + + /** + * @return the lastName + */ + public String getLastName() { + return lastName; + } + + /** + * @param lastName the lastName to set + */ + public void setLastName(String lastName) { + this.lastName = lastName; + } + + /** + * @return the phone + */ + public String getPhone() { + return phone; + } + + /** + * @param phone the phone to set + */ + public void setPhone(String phone) { + this.phone = phone; + } + + /** + * @return the fax + */ + public String getFax() { + return fax; + } + + /** + * @param fax the fax to set + */ + public void setFax(String fax) { + this.fax = fax; + } + + /** + * @return the cellular + */ + public String getCellular() { + return cellular; + } + + /** + * @param cellular the cellular to set + */ + public void setCellular(String cellular) { + this.cellular = cellular; + } + + /** + * @return the email + */ + public String getEmail() { + return email; + } + + /** + * @param email the email to set + */ + public void setEmail(String email) { + this.email = email; + } + + /** + * @return the addressId + */ + public Long getAddressId() { + return addressId; + } + + /** + * @param addressId the addressId to set + */ + public void setAddressId(Long addressId) { + this.addressId = addressId; + } + + /** + * @return the alertMethodCd + */ + public String getAlertMethodCd() { + return alertMethodCd; + } + + /** + * @param alertMethodCd the alertMethodCd to set + */ + public void setAlertMethodCd(String alertMethodCd) { + this.alertMethodCd = alertMethodCd; + } + + /** + * @return the hrid + */ + public String getHrid() { + return hrid; + } + + /** + * @param hrid the hrid to set + */ + public void setHrid(String hrid) { + this.hrid = hrid; + } + + /** + * @return the orgUserId + */ + public String getOrgUserId() { + return orgUserId; + } + + /** + * @param orgUserId the orgUserId to set + */ + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + + /** + * @return the orgCode + */ + public String getOrgCode() { + return orgCode; + } + + /** + * @param orgCode the orgCode to set + */ + public void setOrgCode(String orgCode) { + this.orgCode = orgCode; + } + + /** + * @return the address1 + */ + public String getAddress1() { + return address1; + } + + /** + * @param address1 the address1 to set + */ + public void setAddress1(String address1) { + this.address1 = address1; + } + + /** + * @return the address2 + */ + public String getAddress2() { + return address2; + } + + /** + * @param address2 the address2 to set + */ + public void setAddress2(String address2) { + this.address2 = address2; + } + + /** + * @return the city + */ + public String getCity() { + return city; + } + + /** + * @param city the city to set + */ + public void setCity(String city) { + this.city = city; + } + + /** + * @return the state + */ + public String getState() { + return state; + } + + /** + * @param state the state to set + */ + public void setState(String state) { + this.state = state; + } + + /** + * @return the zipCode + */ + public String getZipCode() { + return zipCode; + } + + /** + * @param zipCode the zipCode to set + */ + public void setZipCode(String zipCode) { + this.zipCode = zipCode; + } + + /** + * @return the country + */ + public String getCountry() { + return country; + } + + /** + * @param country the country to set + */ + public void setCountry(String country) { + this.country = country; + } + + /** + * @return the orgManagerUserId + */ + public String getOrgManagerUserId() { + return orgManagerUserId; + } + + /** + * @param orgManagerUserId the orgManagerUserId to set + */ + public void setOrgManagerUserId(String orgManagerUserId) { + this.orgManagerUserId = orgManagerUserId; + } + + /** + * @return the locationClli + */ + public String getLocationClli() { + return locationClli; + } + + /** + * @param locationClli the locationClli to set + */ + public void setLocationClli(String locationClli) { + this.locationClli = locationClli; + } + + /** + * @return the businessCountryCode + */ + public String getBusinessCountryCode() { + return businessCountryCode; + } + + /** + * @param businessCountryCode the businessCountryCode to set + */ + public void setBusinessCountryCode(String businessCountryCode) { + this.businessCountryCode = businessCountryCode; + } + + /** + * @return the businessCountryName + */ + public String getBusinessCountryName() { + return businessCountryName; + } + + /** + * @param businessCountryName the businessCountryName to set + */ + public void setBusinessCountryName(String businessCountryName) { + this.businessCountryName = businessCountryName; + } + + /** + * @return the businessUnit + */ + public String getBusinessUnit() { + return businessUnit; + } + + /** + * @param businessUnit the businessUnit to set + */ + public void setBusinessUnit(String businessUnit) { + this.businessUnit = businessUnit; + } + + /** + * @return the businessUnitName + */ + public String getBusinessUnitName() { + return businessUnitName; + } + + /** + * @param businessUnitName the businessUnitName to set + */ + public void setBusinessUnitName(String businessUnitName) { + this.businessUnitName = businessUnitName; + } + + /** + * @return the department + */ + public String getDepartment() { + return department; + } + + /** + * @param department the department to set + */ + public void setDepartment(String department) { + this.department = department; + } + + /** + * @return the departmentName + */ + public String getDepartmentName() { + return departmentName; + } + + /** + * @param departmentName the departmentName to set + */ + public void setDepartmentName(String departmentName) { + this.departmentName = departmentName; + } + + /** + * @return the companyCode + */ + public String getCompanyCode() { + return companyCode; + } + + /** + * @param companyCode the companyCode to set + */ + public void setCompanyCode(String companyCode) { + this.companyCode = companyCode; + } + + /** + * @return the company + */ + public String getCompany() { + return company; + } + + /** + * @param company the company to set + */ + public void setCompany(String company) { + this.company = company; + } + + /** + * @return the zipCodeSuffix + */ + public String getZipCodeSuffix() { + return zipCodeSuffix; + } + + /** + * @param zipCodeSuffix the zipCodeSuffix to set + */ + public void setZipCodeSuffix(String zipCodeSuffix) { + this.zipCodeSuffix = zipCodeSuffix; + } + + /** + * @return the jobTitle + */ + public String getJobTitle() { + return jobTitle; + } + + /** + * @param jobTitle the jobTitle to set + */ + public void setJobTitle(String jobTitle) { + this.jobTitle = jobTitle; + } + + /** + * @return the commandChain + */ + public String getCommandChain() { + return commandChain; + } + + /** + * @param commandChain the commandChain to set + */ + public void setCommandChain(String commandChain) { + this.commandChain = commandChain; + } + + /** + * @return the siloStatus + */ + public String getSiloStatus() { + return siloStatus; + } + + /** + * @param siloStatus the siloStatus to set + */ + public void setSiloStatus(String siloStatus) { + this.siloStatus = siloStatus; + } + + /** + * @return the costCenter + */ + public String getCostCenter() { + return costCenter; + } + + /** + * @param costCenter the costCenter to set + */ + public void setCostCenter(String costCenter) { + this.costCenter = costCenter; + } + + /** + * @return the financialLocCode + */ + public String getFinancialLocCode() { + return financialLocCode; + } + + /** + * @param financialLocCode the financialLocCode to set + */ + public void setFinancialLocCode(String financialLocCode) { + this.financialLocCode = financialLocCode; + } + + /** + * @return the loginId + */ + public String getLoginId() { + return loginId; + } + + /** + * @param loginId the loginId to set + */ + public void setLoginId(String loginId) { + this.loginId = loginId; + } + + /** + * @return the loginPwd + */ + public String getLoginPwd() { + return loginPwd; + } + + /** + * @param loginPwd the loginPwd to set + */ + public void setLoginPwd(String loginPwd) { + this.loginPwd = loginPwd; + } + + /** + * @return the lastLoginDate + */ + public Date getLastLoginDate() { + return lastLoginDate; + } + + /** + * @param lastLoginDate the lastLoginDate to set + */ + public void setLastLoginDate(Date lastLoginDate) { + this.lastLoginDate = lastLoginDate; + } + + /** + * @return the active + */ + public boolean isActive() { + return active; + } + + /** + * @param active the active to set + */ + public void setActive(boolean active) { + this.active = active; + } + + /** + * @return the internal + */ + public boolean isInternal() { + return internal; + } + + /** + * @param internal the internal to set + */ + public void setInternal(boolean internal) { + this.internal = internal; + } + + /** + * @return the selectedProfileId + */ + public Long getSelectedProfileId() { + return selectedProfileId; + } + + /** + * @param selectedProfileId the selectedProfileId to set + */ + public void setSelectedProfileId(Long selectedProfileId) { + this.selectedProfileId = selectedProfileId; + } + + /** + * @return the timeZoneId + */ + public Long getTimeZoneId() { + return timeZoneId; + } + + /** + * @param timeZoneId the timeZoneId to set + */ + public void setTimeZoneId(Long timeZoneId) { + this.timeZoneId = timeZoneId; + } + + /** + * @return the online + */ + public boolean isOnline() { + return online; + } + + /** + * @param online the online to set + */ + public void setOnline(boolean online) { + this.online = online; + } + + /** + * @return the chatId + */ + public String getChatId() { + return chatId; + } + + /** + * @param chatId the chatId to set + */ + public void setChatId(String chatId) { + this.chatId = chatId; + } + + /** + * @return the userApps + */ + public Set getUserApps() { + return userApps; + } + + /** + * @param userApps the userApps to set + */ + public void setUserApps(Set userApps) { + this.userApps = userApps; + } + + /** + * @return the pseudoRoles + */ + public Set getPseudoRoles() { + return pseudoRoles; + } + + /** + * @param pseudoRoles the pseudoRoles to set + */ + public void setPseudoRoles(Set pseudoRoles) { + this.pseudoRoles = pseudoRoles; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + (active ? 1231 : 1237); + result = prime * result + ((address1 == null) ? 0 : address1.hashCode()); + result = prime * result + ((address2 == null) ? 0 : address2.hashCode()); + result = prime * result + ((addressId == null) ? 0 : addressId.hashCode()); + result = prime * result + ((alertMethodCd == null) ? 0 : alertMethodCd.hashCode()); + result = prime * result + ((businessCountryCode == null) ? 0 : businessCountryCode.hashCode()); + result = prime * result + ((businessCountryName == null) ? 0 : businessCountryName.hashCode()); + result = prime * result + ((businessUnit == null) ? 0 : businessUnit.hashCode()); + result = prime * result + ((businessUnitName == null) ? 0 : businessUnitName.hashCode()); + result = prime * result + ((cellular == null) ? 0 : cellular.hashCode()); + result = prime * result + ((chatId == null) ? 0 : chatId.hashCode()); + result = prime * result + ((city == null) ? 0 : city.hashCode()); + result = prime * result + ((commandChain == null) ? 0 : commandChain.hashCode()); + result = prime * result + ((company == null) ? 0 : company.hashCode()); + result = prime * result + ((companyCode == null) ? 0 : companyCode.hashCode()); + result = prime * result + ((costCenter == null) ? 0 : costCenter.hashCode()); + result = prime * result + ((country == null) ? 0 : country.hashCode()); + result = prime * result + ((created == null) ? 0 : created.hashCode()); + result = prime * result + ((createdId == null) ? 0 : createdId.hashCode()); + result = prime * result + ((department == null) ? 0 : department.hashCode()); + result = prime * result + ((departmentName == null) ? 0 : departmentName.hashCode()); + result = prime * result + ((email == null) ? 0 : email.hashCode()); + result = prime * result + ((fax == null) ? 0 : fax.hashCode()); + result = prime * result + ((financialLocCode == null) ? 0 : financialLocCode.hashCode()); + result = prime * result + ((firstName == null) ? 0 : firstName.hashCode()); + result = prime * result + ((hrid == null) ? 0 : hrid.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + (internal ? 1231 : 1237); + result = prime * result + ((jobTitle == null) ? 0 : jobTitle.hashCode()); + result = prime * result + ((lastLoginDate == null) ? 0 : lastLoginDate.hashCode()); + result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); + result = prime * result + ((locationClli == null) ? 0 : locationClli.hashCode()); + result = prime * result + ((loginId == null) ? 0 : loginId.hashCode()); + result = prime * result + ((loginPwd == null) ? 0 : loginPwd.hashCode()); + result = prime * result + ((managerId == null) ? 0 : managerId.hashCode()); + result = prime * result + ((middleInitial == null) ? 0 : middleInitial.hashCode()); + result = prime * result + ((modified == null) ? 0 : modified.hashCode()); + result = prime * result + ((modifiedId == null) ? 0 : modifiedId.hashCode()); + result = prime * result + (online ? 1231 : 1237); + result = prime * result + ((orgCode == null) ? 0 : orgCode.hashCode()); + result = prime * result + ((orgId == null) ? 0 : orgId.hashCode()); + result = prime * result + ((orgManagerUserId == null) ? 0 : orgManagerUserId.hashCode()); + result = prime * result + ((orgUserId == null) ? 0 : orgUserId.hashCode()); + result = prime * result + ((phone == null) ? 0 : phone.hashCode()); + result = prime * result + ((pseudoRoles == null) ? 0 : pseudoRoles.hashCode()); + result = prime * result + ((rowNum == null) ? 0 : rowNum.hashCode()); + result = prime * result + ((selectedProfileId == null) ? 0 : selectedProfileId.hashCode()); + result = prime * result + ((siloStatus == null) ? 0 : siloStatus.hashCode()); + result = prime * result + ((state == null) ? 0 : state.hashCode()); + result = prime * result + ((timeZoneId == null) ? 0 : timeZoneId.hashCode()); + result = prime * result + ((userApps == null) ? 0 : userApps.hashCode()); + result = prime * result + ((zipCode == null) ? 0 : zipCode.hashCode()); + result = prime * result + ((zipCodeSuffix == null) ? 0 : zipCodeSuffix.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + CentralV2User other = (CentralV2User) obj; + if (active != other.active) + return false; + if (address1 == null) { + if (other.address1 != null) + return false; + } else if (!address1.equals(other.address1)) + return false; + if (address2 == null) { + if (other.address2 != null) + return false; + } else if (!address2.equals(other.address2)) + return false; + if (addressId == null) { + if (other.addressId != null) + return false; + } else if (!addressId.equals(other.addressId)) + return false; + if (alertMethodCd == null) { + if (other.alertMethodCd != null) + return false; + } else if (!alertMethodCd.equals(other.alertMethodCd)) + return false; + if (businessCountryCode == null) { + if (other.businessCountryCode != null) + return false; + } else if (!businessCountryCode.equals(other.businessCountryCode)) + return false; + if (businessCountryName == null) { + if (other.businessCountryName != null) + return false; + } else if (!businessCountryName.equals(other.businessCountryName)) + return false; + if (businessUnit == null) { + if (other.businessUnit != null) + return false; + } else if (!businessUnit.equals(other.businessUnit)) + return false; + if (businessUnitName == null) { + if (other.businessUnitName != null) + return false; + } else if (!businessUnitName.equals(other.businessUnitName)) + return false; + if (cellular == null) { + if (other.cellular != null) + return false; + } else if (!cellular.equals(other.cellular)) + return false; + if (chatId == null) { + if (other.chatId != null) + return false; + } else if (!chatId.equals(other.chatId)) + return false; + if (city == null) { + if (other.city != null) + return false; + } else if (!city.equals(other.city)) + return false; + if (commandChain == null) { + if (other.commandChain != null) + return false; + } else if (!commandChain.equals(other.commandChain)) + return false; + if (company == null) { + if (other.company != null) + return false; + } else if (!company.equals(other.company)) + return false; + if (companyCode == null) { + if (other.companyCode != null) + return false; + } else if (!companyCode.equals(other.companyCode)) + return false; + if (costCenter == null) { + if (other.costCenter != null) + return false; + } else if (!costCenter.equals(other.costCenter)) + return false; + if (country == null) { + if (other.country != null) + return false; + } else if (!country.equals(other.country)) + return false; + if (created == null) { + if (other.created != null) + return false; + } else if (!created.equals(other.created)) + return false; + if (createdId == null) { + if (other.createdId != null) + return false; + } else if (!createdId.equals(other.createdId)) + return false; + if (department == null) { + if (other.department != null) + return false; + } else if (!department.equals(other.department)) + return false; + if (departmentName == null) { + if (other.departmentName != null) + return false; + } else if (!departmentName.equals(other.departmentName)) + return false; + if (email == null) { + if (other.email != null) + return false; + } else if (!email.equals(other.email)) + return false; + if (fax == null) { + if (other.fax != null) + return false; + } else if (!fax.equals(other.fax)) + return false; + if (financialLocCode == null) { + if (other.financialLocCode != null) + return false; + } else if (!financialLocCode.equals(other.financialLocCode)) + return false; + if (firstName == null) { + if (other.firstName != null) + return false; + } else if (!firstName.equals(other.firstName)) + return false; + if (hrid == null) { + if (other.hrid != null) + return false; + } else if (!hrid.equals(other.hrid)) + return false; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + if (internal != other.internal) + return false; + if (jobTitle == null) { + if (other.jobTitle != null) + return false; + } else if (!jobTitle.equals(other.jobTitle)) + return false; + if (lastLoginDate == null) { + if (other.lastLoginDate != null) + return false; + } else if (!lastLoginDate.equals(other.lastLoginDate)) + return false; + if (lastName == null) { + if (other.lastName != null) + return false; + } else if (!lastName.equals(other.lastName)) + return false; + if (locationClli == null) { + if (other.locationClli != null) + return false; + } else if (!locationClli.equals(other.locationClli)) + return false; + if (loginId == null) { + if (other.loginId != null) + return false; + } else if (!loginId.equals(other.loginId)) + return false; + if (loginPwd == null) { + if (other.loginPwd != null) + return false; + } else if (!loginPwd.equals(other.loginPwd)) + return false; + if (managerId == null) { + if (other.managerId != null) + return false; + } else if (!managerId.equals(other.managerId)) + return false; + if (middleInitial == null) { + if (other.middleInitial != null) + return false; + } else if (!middleInitial.equals(other.middleInitial)) + return false; + if (modified == null) { + if (other.modified != null) + return false; + } else if (!modified.equals(other.modified)) + return false; + if (modifiedId == null) { + if (other.modifiedId != null) + return false; + } else if (!modifiedId.equals(other.modifiedId)) + return false; + if (online != other.online) + return false; + if (orgCode == null) { + if (other.orgCode != null) + return false; + } else if (!orgCode.equals(other.orgCode)) + return false; + if (orgId == null) { + if (other.orgId != null) + return false; + } else if (!orgId.equals(other.orgId)) + return false; + if (orgManagerUserId == null) { + if (other.orgManagerUserId != null) + return false; + } else if (!orgManagerUserId.equals(other.orgManagerUserId)) + return false; + if (orgUserId == null) { + if (other.orgUserId != null) + return false; + } else if (!orgUserId.equals(other.orgUserId)) + return false; + if (phone == null) { + if (other.phone != null) + return false; + } else if (!phone.equals(other.phone)) + return false; + if (pseudoRoles == null) { + if (other.pseudoRoles != null) + return false; + } else if (!pseudoRoles.equals(other.pseudoRoles)) + return false; + if (rowNum == null) { + if (other.rowNum != null) + return false; + } else if (!rowNum.equals(other.rowNum)) + return false; + if (selectedProfileId == null) { + if (other.selectedProfileId != null) + return false; + } else if (!selectedProfileId.equals(other.selectedProfileId)) + return false; + if (siloStatus == null) { + if (other.siloStatus != null) + return false; + } else if (!siloStatus.equals(other.siloStatus)) + return false; + if (state == null) { + if (other.state != null) + return false; + } else if (!state.equals(other.state)) + return false; + if (timeZoneId == null) { + if (other.timeZoneId != null) + return false; + } else if (!timeZoneId.equals(other.timeZoneId)) + return false; + if (userApps == null) { + if (other.userApps != null) + return false; + } else if (!userApps.equals(other.userApps)) + return false; + if (zipCode == null) { + if (other.zipCode != null) + return false; + } else if (!zipCode.equals(other.zipCode)) + return false; + if (zipCodeSuffix == null) { + if (other.zipCodeSuffix != null) + return false; + } else if (!zipCodeSuffix.equals(other.zipCodeSuffix)) + return false; + return true; + } + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2UserApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2UserApp.java new file mode 100644 index 00000000..a8718574 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CentralV2UserApp.java @@ -0,0 +1,113 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +@SuppressWarnings("rawtypes") +public class CentralV2UserApp implements Serializable, Comparable{ + + /** + * + */ + private static final long serialVersionUID = 4954830080839125389L; + private Long userId; + private CentralApp app; + private CentralV2Role role; + private Short priority; + + + + public Long getUserId() { + return userId; + } + + + + public void setUserId(Long userId) { + this.userId = userId; + } + + + + public CentralApp getApp() { + return app; + } + + + + public void setApp(CentralApp app) { + this.app = app; + } + + + + public CentralV2Role getRole() { + return role; + } + + + + public void setRole(CentralV2Role role) { + this.role = role; + } + + + + public Short getPriority() { + return priority; + } + + + + public void setPriority(Short priority) { + this.priority = priority; + } + + + + public int compareTo(Object other){ + CentralV2UserApp castOther = (CentralV2UserApp) other; + + Long c1 = (this.getUserId()==null ? 0 : this.getUserId()) + (this.priority==null ? 0 : this.priority); + Long c2 = (castOther.getUserId()==null ? 0 : castOther.getUserId()) + (castOther.getApp()==null||castOther.getApp().getId()==null ? 0 : castOther.getApp().getId()) + (castOther.priority==null ? 0 : castOther.priority); + + return c1.compareTo(c2); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CommonWidget.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CommonWidget.java new file mode 100644 index 00000000..18110e1b --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CommonWidget.java @@ -0,0 +1,156 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +import org.onap.portalsdk.core.domain.support.DomainVo; +import com.fasterxml.jackson.annotation.JsonInclude; + +/** + * This is to handle portal admins + */ +@Entity +@Table(name="fn_common_widget_data") +@JsonInclude(JsonInclude.Include.NON_NULL) +public class CommonWidget extends DomainVo{ + + private static final long serialVersionUID = 7897021982887364557L; + + @Id + @GeneratedValue(strategy=GenerationType.AUTO) + @Column(name = "id") + private Long id; + + @Column(name = "category") + public String category; + + @Column(name = "href") + public String href; + + @Column(name = "title") + public String title; + + @Column(name = "content") + public String content; + + @Column(name = "event_date") + public String eventDate; + + @Column(name = "sort_order") + public Integer sortOrder; + + + public CommonWidget(){ + + } + + public CommonWidget(String category, String href, String title, String content, String eventDate, Integer sortOrder){ + this.category = category; + this.href = href; + this.title = title; + this.content = content; + this.eventDate = eventDate; + this.sortOrder = sortOrder; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Integer getSortOrder() { + return sortOrder; + } + + public void setSortOrder(Integer sortOrder) { + this.sortOrder = sortOrder; + } + + public static long getSerialversionuid() { + return serialVersionUID; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getEventDate() { + return eventDate; + } + + public void setEventDate(String eventDate) { + this.eventDate = eventDate; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CommonWidgetMeta.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CommonWidgetMeta.java new file mode 100644 index 00000000..173718ae --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/CommonWidgetMeta.java @@ -0,0 +1,68 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.List; + +public class CommonWidgetMeta { + + private String category; + private List items; + + public CommonWidgetMeta(){ + + } + + public CommonWidgetMeta(String category, List items){ + this.category = category; + this.items = items; + } + + public String getCategory() { + return category; + } + public void setCategory(String category) { + this.category = category; + } + public List getItems() { + return items; + } + public void setItems(List items) { + this.items = items; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPAppsManualPreference.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPAppsManualPreference.java new file mode 100644 index 00000000..e5472061 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPAppsManualPreference.java @@ -0,0 +1,132 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class EPAppsManualPreference { + + private Long appid; + private int col; + private String headerText; + private String imageLink; + private int order; + private boolean restrictedApp; + private int row; + private int sizeX; + private int sizeY; + private String subHeaderText; + private String url; + private boolean addRemoveApps; + + + public boolean isAddRemoveApps() { + return addRemoveApps; + } + public void setAddRemoveApps(boolean addRemoveApps) { + this.addRemoveApps = addRemoveApps; + } + public Long getAppid() { + return appid; + } + public void setAppid(Long appid) { + this.appid = appid; + } + public int getCol() { + return col; + } + public void setCol(int col) { + this.col = col; + } + public String getHeaderText() { + return headerText; + } + public void setHeaderText(String headerText) { + this.headerText = headerText; + } + public String getImageLink() { + return imageLink; + } + public void setImageLink(String imageLink) { + this.imageLink = imageLink; + } + public int getOrder() { + return order; + } + public void setOrder(int order) { + this.order = order; + } + public boolean isRestrictedApp() { + return restrictedApp; + } + public void setRestrictedApp(boolean restrictedApp) { + this.restrictedApp = restrictedApp; + } + public int getRow() { + return row; + } + public void setRow(int row) { + this.row = row; + } + public int getSizeX() { + return sizeX; + } + public void setSizeX(int sizeX) { + this.sizeX = sizeX; + } + public int getSizeY() { + return sizeY; + } + public void setSizeY(int sizeY) { + this.sizeY = sizeY; + } + public String getSubHeaderText() { + return subHeaderText; + } + public void setSubHeaderText(String subHeaderText) { + this.subHeaderText = subHeaderText; + } + public String getUrl() { + return url; + } + public void setUrl(String url) { + this.url = url; + } + + public boolean isValid(){ + return appid != null; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPAppsSortPreference.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPAppsSortPreference.java new file mode 100644 index 00000000..367d1d33 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPAppsSortPreference.java @@ -0,0 +1,65 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class EPAppsSortPreference { + + private int index; + private String value; + private String title; + + public int getIndex() { + return index; + } + public void setIndex(int index) { + this.index = index; + } + public String getValue() { + return value; + } + public void setValue(String value) { + this.value = value; + } + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPDeleteAppsManualSortPref.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPDeleteAppsManualSortPref.java new file mode 100644 index 00000000..12786416 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPDeleteAppsManualSortPref.java @@ -0,0 +1,69 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class EPDeleteAppsManualSortPref { + private Long appId; + private boolean select; + private boolean pending; + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public boolean isSelect() { + return select; + } + + public void setSelect(boolean select) { + this.select = select; + } + + public boolean isPending() { + return pending; + } + + public void setPending(boolean pending) { + this.pending = pending; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPUserAppCurrentRoles.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPUserAppCurrentRoles.java new file mode 100644 index 00000000..ee88bd49 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPUserAppCurrentRoles.java @@ -0,0 +1,135 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@Entity +@JsonInclude(JsonInclude.Include.NON_NULL) +public class EPUserAppCurrentRoles implements Serializable{ + + private static final long serialVersionUID = -8145807875293949759L; + + @Id + @Column(name="role_name") + private String roleName; + @Id + @Column(name="user_id") + private Long userId; + @Id + @Column(name="priority") + private String priority ; + @Id + @Column(name="role_id") + private Long roleId; + public String getRoleName() { + return roleName; + } + public void setRoleName(String roleName) { + this.roleName = roleName; + } + public Long getUserId() { + return userId; + } + public void setUserId(Long userId) { + this.userId = userId; + } + public String getPriority() { + return priority; + } + public void setPriority(String priority) { + this.priority = priority; + } + public Long getRoleId() { + return roleId; + } + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((priority == null) ? 0 : priority.hashCode()); + result = prime * result + ((roleId == null) ? 0 : roleId.hashCode()); + result = prime * result + ((roleName == null) ? 0 : roleName.hashCode()); + result = prime * result + ((userId == null) ? 0 : userId.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + EPUserAppCurrentRoles other = (EPUserAppCurrentRoles) obj; + if (priority == null) { + if (other.priority != null) + return false; + } else if (!priority.equals(other.priority)) + return false; + if (roleId == null) { + if (other.roleId != null) + return false; + } else if (!roleId.equals(other.roleId)) + return false; + if (roleName == null) { + if (other.roleName != null) + return false; + } else if (!roleName.equals(other.roleName)) + return false; + if (userId == null) { + if (other.userId != null) + return false; + } else if (!userId.equals(other.userId)) + return false; + return true; + } + + + +} + \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPWidgetsSortPreference.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPWidgetsSortPreference.java new file mode 100644 index 00000000..072abe78 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EPWidgetsSortPreference.java @@ -0,0 +1,110 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.List; + +public class EPWidgetsSortPreference { + + private int SizeX; + private int SizeY; + private String headerText; + private String url; + private Long widgetid; + private List attrb; + private String widgetIdentifier; + private int row; + private int col; + + public String getWidgetIdentifier() { + return widgetIdentifier; + } + public List getAttrb() { + return attrb; + } + public void setAttrb(List attrb) { + this.attrb = attrb; + } + public void setWidgetIdentifier(String widgetIdentifier) { + this.widgetIdentifier = widgetIdentifier; + } + public int getSizeX() { + return SizeX; + } + public void setSizeX(int sizeX) { + SizeX = sizeX; + } + public int getSizeY() { + return SizeY; + } + public void setSizeY(int sizeY) { + SizeY = sizeY; + } + public String getHeaderText() { + return headerText; + } + public void setHeaderText(String headerText) { + this.headerText = headerText; + } + public String getUrl() { + return url; + } + public void setUrl(String url) { + this.url = url; + } + public Long getWidgetid() { + return widgetid; + } + public void setWidgetid(Long widgetid) { + this.widgetid = widgetid; + } + public int getRow() { + return row; + } + public void setRow(int row) { + this.row = row; + } + public int getCol() { + return col; + } + public void setCol(int col) { + this.col = col; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EcompUserAppRoles.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EcompUserAppRoles.java new file mode 100644 index 00000000..b6caccb3 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EcompUserAppRoles.java @@ -0,0 +1,103 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@Entity +@JsonInclude(JsonInclude.Include.NON_NULL) +public class EcompUserAppRoles implements Serializable { + + private static final long serialVersionUID = -3394219387296578741L; + + @Id + @Column(name="app_id") + private String appId; + @Id + @Column(name="user_id") + private Long userId; + @Id + @Column(name="priority") + private String priority ; + @Id + @Column(name="role_id") + private Long roleId; + @Id + @Column(name="role_name") + private String roleName; + public String getAppId() { + return appId; + } + public void setAppId(String appId) { + this.appId = appId; + } + public Long getUserId() { + return userId; + } + public void setUserId(Long userId) { + this.userId = userId; + } + public String getPriority() { + return priority; + } + public void setPriority(String priority) { + this.priority = priority; + } + public Long getRoleId() { + return roleId; + } + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + public String getRoleName() { + return roleName; + } + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EcompUserRoles.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EcompUserRoles.java new file mode 100644 index 00000000..73409ede --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EcompUserRoles.java @@ -0,0 +1,209 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class EcompUserRoles implements Serializable{ + + private static final long serialVersionUID = 1L; + + @Id + @Column(name = "org_id") + private Long orgId; + @Id + @Column(name = "manager_id") + private String managerId; + @Id + @Column(name = "first_name") + private String firstName; + @Id + @Column(name = "middle_name") + private String middleInitial; + @Id + @Column(name = "last_name") + private String lastName; + @Id + @Column(name = "phone") + private String phone; + @Id + @Column(name = "email") + private String email; + @Id + @Column(name = "hrid") + private String hrid; + @Id + @Column(name = "org_user_id") + private String orgUserId; + @Id + @Column(name = "org_code") + private String orgCode; + @Id + @Column(name = "org_manager_userid") + private String orgManagerUserId; + @Id + @Column(name = "job_title") + private String jobTitle; + @Id + @Column(name = "login_id") + private String loginId; + + @Id + @Column(name = "app_role_id") + private Long roleId; + @Id + @Column(name = "role_name") + private String roleName; + @Id + @Column(name = "active_yn") + private boolean active; + + public Long getOrgId() { + return orgId; + } + public void setOrgId(Long orgId) { + this.orgId = orgId; + } + public String getManagerId() { + return managerId; + } + public void setManagerId(String managerId) { + this.managerId = managerId; + } + public String getFirstName() { + return firstName; + } + public void setFirstName(String firstName) { + this.firstName = firstName; + } + public String getMiddleInitial() { + return middleInitial; + } + public void setMiddleInitial(String middleInitial) { + this.middleInitial = middleInitial; + } + public String getLastName() { + return lastName; + } + public void setLastName(String lastName) { + this.lastName = lastName; + } + public String getPhone() { + return phone; + } + public void setPhone(String phone) { + this.phone = phone; + } + public String getEmail() { + return email; + } + public void setEmail(String email) { + this.email = email; + } + public String getHrid() { + return hrid; + } + public void setHrid(String hrid) { + this.hrid = hrid; + } + public String getOrgUserId() { + return orgUserId; + } + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + public String getOrgCode() { + return orgCode; + } + public void setOrgCode(String orgCode) { + this.orgCode = orgCode; + } + public String getOrgManagerUserId() { + return orgManagerUserId; + } + public void setOrgManagerUserId(String orgManagerUserId) { + this.orgManagerUserId = orgManagerUserId; + } + public String getJobTitle() { + return jobTitle; + } + public void setJobTitle(String jobTitle) { + this.jobTitle = jobTitle; + } + public String getLoginId() { + return loginId; + } + public void setLoginId(String loginId) { + this.loginId = loginId; + } + + public Long getRoleId() { + return roleId; + } + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + public String getRoleName() { + return roleName; + } + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + public boolean isActive() { + return active; + } + public void setActive(boolean active) { + this.active = active; + } + @Override + public String toString() { + return "EcompUserRoles [orgId=" + orgId + ", managerId=" + managerId + ", firstName=" + firstName + + ", middleInitial=" + middleInitial + ", lastName=" + lastName + ", phone=" + phone + ", email=" + + email + ", hrid=" + hrid + ", orgUserId=" + orgUserId + ", orgCode=" + orgCode + ", orgManagerUserId=" + + orgManagerUserId + ", jobTitle=" + jobTitle + ", loginId=" + loginId + ", active=" + active + + ", roleId=" + roleId + ", roleName=" + roleName + "]"; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItem.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItem.java new file mode 100644 index 00000000..ea3e6a72 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItem.java @@ -0,0 +1,357 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.Date; +import java.util.List; +import java.util.Set; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.persistence.Transient; + +import org.onap.portalsdk.core.domain.support.DomainVo; + + +/** + * This is to handle notifications in notification PopUp + */ + + +@Entity +@Table(name = "ep_notification") +public class EpNotificationItem extends DomainVo { + public EpNotificationItem() { + }; + + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "notification_ID") + public Long notificationId; + + @Column(name = "is_for_online_users") + public String isForOnlineUsers; + + @Column(name = "is_for_all_roles") + public String isForAllRoles; + + @Column(name = "active_YN") + public String activeYn; + + @Column(name = "msg_header") + public String msgHeader; + + @Column(name = "msg_description") + public String msgDescription; + + @Column(name = "msg_source") + public String msgSource; + + @Column(name = "start_time") + public Date startTime; + + @Column(name = "end_time") + public Date endTime; + + @Column(name = "priority") + public Long priority; + + @Column(name = "creator_ID") + public Long creatorId; + + @Column(name = "created_date") + public Date createdDate; + + @Column(name = "notification_hyperlink") + public String notificationHyperlink; + + + @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL}, orphanRemoval = true) + @JoinColumn(name="notification_ID") + private Set roles; + + @Transient + private List roleIds; + + public Long getNotificationId() { + return notificationId; + } + + public void setNotificationId(Long notificationId) { + this.notificationId = notificationId; + } + + public String getIsForOnlineUsers() { + return isForOnlineUsers; + } + + public void setIsForOnlineUsers(String isForOnlineUsers) { + this.isForOnlineUsers = isForOnlineUsers; + } + + public String getIsForAllRoles() { + return isForAllRoles; + } + + public void setIsForAllRoles(String isForAllRoles) { + this.isForAllRoles = isForAllRoles; + } + + public String getActiveYn() { + return activeYn; + } + + public void setActiveYn(String activeYn) { + this.activeYn = activeYn; + } + + public String getMsgHeader() { + return msgHeader; + } + + public void setMsgHeader(String msgHeader) { + this.msgHeader = msgHeader; + } + + public String getMsgDescription() { + return msgDescription; + } + + public void setMsgDescription(String msgDescription) { + this.msgDescription = msgDescription; + } + + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Long getPriority() { + return priority; + } + + public void setPriority(Long priority) { + this.priority = priority; + } + + public Long getCreatorId() { + return creatorId; + } + + public void setCreatorId(Long creatorId) { + this.creatorId = creatorId; + } + + public Date getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(Date createdDate) { + this.createdDate = createdDate; + } + + public static long getSerialversionuid() { + return serialVersionUID; + } + + public Set getRoles() { + return roles; + } + + public void setRoles(Set roles) { + this.roles = roles; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public String getMsgSource() { + return msgSource; + } + + public void setMsgSource(String msgSource) { + this.msgSource = msgSource; + } + + public String getNotificationHyperlink() { + return notificationHyperlink; + } + + public void setNotificationHyperlink(String notificationHyperlink) { + this.notificationHyperlink = notificationHyperlink; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((activeYn == null) ? 0 : activeYn.hashCode()); + result = prime * result + ((createdDate == null) ? 0 : createdDate.hashCode()); + result = prime * result + ((creatorId == null) ? 0 : creatorId.hashCode()); + result = prime * result + ((endTime == null) ? 0 : endTime.hashCode()); + result = prime * result + ((isForAllRoles == null) ? 0 : isForAllRoles.hashCode()); + result = prime * result + ((isForOnlineUsers == null) ? 0 : isForOnlineUsers.hashCode()); + result = prime * result + ((msgDescription == null) ? 0 : msgDescription.hashCode()); + result = prime * result + ((msgHeader == null) ? 0 : msgHeader.hashCode()); + result = prime * result + ((msgSource == null) ? 0 : msgSource.hashCode()); + result = prime * result + ((notificationId == null) ? 0 : notificationId.hashCode()); + result = prime * result + ((priority == null) ? 0 : priority.hashCode()); + result = prime * result + ((roleIds == null) ? 0 : roleIds.hashCode()); + result = prime * result + ((roles == null) ? 0 : roles.hashCode()); + result = prime * result + ((startTime == null) ? 0 : startTime.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + EpNotificationItem other = (EpNotificationItem) obj; + if (activeYn == null) { + if (other.activeYn != null) + return false; + } else if (!activeYn.equals(other.activeYn)) + return false; + if (createdDate == null) { + if (other.createdDate != null) + return false; + } else if (!createdDate.equals(other.createdDate)) + return false; + if (creatorId == null) { + if (other.creatorId != null) + return false; + } else if (!creatorId.equals(other.creatorId)) + return false; + if (endTime == null) { + if (other.endTime != null) + return false; + } else if (!endTime.equals(other.endTime)) + return false; + if (isForAllRoles == null) { + if (other.isForAllRoles != null) + return false; + } else if (!isForAllRoles.equals(other.isForAllRoles)) + return false; + if (isForOnlineUsers == null) { + if (other.isForOnlineUsers != null) + return false; + } else if (!isForOnlineUsers.equals(other.isForOnlineUsers)) + return false; + if (msgDescription == null) { + if (other.msgDescription != null) + return false; + } else if (!msgDescription.equals(other.msgDescription)) + return false; + if (msgHeader == null) { + if (other.msgHeader != null) + return false; + } else if (!msgHeader.equals(other.msgHeader)) + return false; + if (msgSource == null) { + if (other.msgSource != null) + return false; + } else if (!msgSource.equals(other.msgSource)) + return false; + if (notificationId == null) { + if (other.notificationId != null) + return false; + } else if (!notificationId.equals(other.notificationId)) + return false; + if (priority == null) { + if (other.priority != null) + return false; + } else if (!priority.equals(other.priority)) + return false; + if (roleIds == null) { + if (other.roleIds != null) + return false; + } else if (!roleIds.equals(other.roleIds)) + return false; + if (roles == null) { + if (other.roles != null) + return false; + } else if (!roles.equals(other.roles)) + return false; + if (startTime == null) { + if (other.startTime != null) + return false; + } else if (!startTime.equals(other.startTime)) + return false; + return true; + } + + @Override + public String toString() { + return "EpNotificationItem [notificationId=" + notificationId + ", isForOnlineUsers=" + isForOnlineUsers + + ", isForAllRoles=" + isForAllRoles + ", activeYn=" + activeYn + ", msgHeader=" + msgHeader + + ", msgDescription=" + msgDescription + ", msgSource=" + msgSource + ", startTime=" + startTime + + ", endTime=" + endTime + ", priority=" + priority + ", creatorId=" + creatorId + ", createdDate=" + + createdDate + ", roles=" + roles + ", roleIds=" + roleIds + "]"; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItemExtVO.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItemExtVO.java new file mode 100644 index 00000000..9a6a58b3 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItemExtVO.java @@ -0,0 +1,137 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class EpNotificationItemExtVO { + + private Character activeYn; + + private String msgHeader; + + private String msgDescription; + + private Date startTime; + + private Date endTime; + + private Integer priority; + + private Integer creatorId; + + private Date createdDate; + + private String loginId; + + public Character getActiveYn() { + return activeYn; + } + + public void setActiveYn(Character activeYn) { + this.activeYn = activeYn; + } + + public String getMsgHeader() { + return msgHeader; + } + + public void setMsgHeader(String msgHeader) { + this.msgHeader = msgHeader; + } + + public String getMsgDescription() { + return msgDescription; + } + + public void setMsgDescription(String msgDescription) { + this.msgDescription = msgDescription; + } + + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Integer getPriority() { + return priority; + } + + public void setPriority(Integer priority) { + this.priority = priority; + } + + public Integer getCreatorId() { + return creatorId; + } + + public void setCreatorId(Integer creatorId) { + this.creatorId = creatorId; + } + + public Date getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(Date createdDate) { + this.createdDate = createdDate; + } + + public String getLoginId() { + return loginId; + } + + public void setLoginId(String loginId) { + this.loginId = loginId; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItemVO.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItemVO.java new file mode 100644 index 00000000..7c2da309 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpNotificationItemVO.java @@ -0,0 +1,221 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.Date; + +import javax.persistence.Entity; +import javax.persistence.Id; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +/** + * This is to handle notifications in user notifications and in notification history + */ + +/** + * POJO that models a single notification with the org user ID (not integer + * user_id). + */ +@Entity +public class EpNotificationItemVO extends DomainVo { + + private static final long serialVersionUID = 9095479701352339201L; + + @Id + private Integer notificationId; + + private Character isForOnlineUsers; + + private Character isForAllRoles; + + private Character activeYn; + + private String msgHeader; + + private String msgDescription; + + private String msgSource; + + private Date startTime; + + private Date endTime; + + private Integer priority; + + private Integer creatorId; + + private Date createdDate; + + private String loginId; + + private String notificationHyperlink; + + + /** + * Answers whether the notification is expired. + * + * @return true if the end time is past the current time, else false. + */ + public boolean isExpired() { + boolean result = false; + if (endTime != null) { + int expired = endTime.compareTo(new Date()); + result = (expired == -1) ? true : false; + } + return result; + } + + public String getLoginId() { + return loginId; + } + + public void setLoginId(String loginId) { + this.loginId = loginId; + } + + public Integer getNotificationId() { + return notificationId; + } + + public void setNotificationId(Integer notificationId) { + this.notificationId = notificationId; + } + + public Character getIsForOnlineUsers() { + return isForOnlineUsers; + } + + public void setIsForOnlineUsers(Character isForOnlineUsers) { + this.isForOnlineUsers = isForOnlineUsers; + } + + public Character getIsForAllRoles() { + return isForAllRoles; + } + + public void setIsForAllRoles(Character isForAllRoles) { + this.isForAllRoles = isForAllRoles; + } + + public Character getActiveYn() { + return activeYn; + } + + public void setActiveYn(Character activeYn) { + this.activeYn = activeYn; + } + + public String getMsgHeader() { + return msgHeader; + } + + public void setMsgHeader(String msgHeader) { + this.msgHeader = msgHeader; + } + + public String getMsgDescription() { + return msgDescription; + } + + public void setMsgDescription(String msgDescription) { + this.msgDescription = msgDescription; + } + + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Integer getPriority() { + return priority; + } + + public void setPriority(Integer priority) { + this.priority = priority; + } + + public Integer getCreatorId() { + return creatorId; + } + + public void setCreatorId(Integer creatorId) { + this.creatorId = creatorId; + } + + public Date getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(Date createdDate) { + this.createdDate = createdDate; + } + + public static long getSerialversionuid() { + return serialVersionUID; + } + + + public String getMsgSource() { + return msgSource; + } + + public void setMsgSource(String msgSource) { + this.msgSource = msgSource; + } + + public String getNotificationHyperlink() { + return notificationHyperlink; + } + + public void setNotificationHyperlink(String notificationHyperlink) { + this.notificationHyperlink = notificationHyperlink; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpRoleNotificationItem.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpRoleNotificationItem.java new file mode 100644 index 00000000..a1b4377b --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EpRoleNotificationItem.java @@ -0,0 +1,108 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +import org.onap.portalsdk.core.domain.support.DomainVo; + +@Entity +@Table(name="ep_role_notification") +public class EpRoleNotificationItem extends DomainVo { + public EpRoleNotificationItem(){}; + + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) + @Column(name = "ID") + public Long id; + + @Column(name = "notification_ID") + public Long notificationId; + + @Column(name = "role_ID") + public Integer roleId; + + @Column(name = "recv_user_id") + public Integer RecvUserId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getNotificationId() { + return notificationId; + } + + public void setNotificationId(Long notificationId) { + this.notificationId = notificationId; + } + + public Integer getRoleId() { + return roleId; + } + + public void setRoleId(Integer roleId) { + this.roleId = roleId; + } + + public static long getSerialversionuid() { + return serialVersionUID; + } + + public Integer getRecvUserId() { + return RecvUserId; + } + + public void setRecvUserId(Integer recvUserId) { + RecvUserId = recvUserId; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EventWidget.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EventWidget.java new file mode 100644 index 00000000..96562399 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EventWidget.java @@ -0,0 +1,156 @@ +package org.onap.portalapp.portal.transport; +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +/*package org.openecomp.portalapp.portal.transport; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +import org.openecomp.portalsdk.core.domain.support.DomainVo; +import com.fasterxml.jackson.annotation.JsonInclude; + +*//** + * This is to handle portal admins + *//* +@Entity +@Table(name="fn_event_widget_data") +@JsonInclude(JsonInclude.Include.NON_NULL) +public class EventWidget extends DomainVo{ + + *//** + * + *//* + private static final long serialVersionUID = -2784849102886421352L; + + + @Id + @GeneratedValue(strategy=GenerationType.AUTO) + @Column(name = "id") + private Long id; + + @Column(name = "category") + private String category; + + @Column(name = "title") + private String title; + + @Column(name = "href") + private String href; + + @Column(name = "content") + private String content; + + @Column(name = "month_val") + private String mon; + + @Column(name = "day_val") + private Integer day; + + @Column(name = "year_val") + private Integer year; + + @Column(name = "sort_order") + private Integer sortOrder; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getMon() { + return mon; + } + + public void setMonth(String mon) { + this.mon = mon; + } + + public Integer getDay() { + return day; + } + + public void setDay(Integer day) { + this.day = day; + } + + public Integer getYear() { + return year; + } + + public void setYear(Integer year) { + this.year = year; + } + + public Integer getSortOrder() { + return sortOrder; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + +} +*/ diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EventWidgetMeta.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EventWidgetMeta.java new file mode 100644 index 00000000..a27aa65e --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/EventWidgetMeta.java @@ -0,0 +1,70 @@ +package org.onap.portalapp.portal.transport; +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +/*package org.openecomp.portalapp.portal.transport; + +import java.util.List; + +public class EventWidgetMeta { + + private String category; + private List items; + + public EventWidgetMeta(){ + + } + + public EventWidgetMeta(String category, List items){ + this.category = category; + this.items = items; + } + + public String getCategory() { + return category; + } + public void setCategory(String category) { + this.category = category; + } + public List getItems() { + return items; + } + public void setItems(List items) { + this.items = items; + } +} +*/ diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessPerms.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessPerms.java new file mode 100644 index 00000000..db9107fe --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessPerms.java @@ -0,0 +1,180 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +public class ExternalAccessPerms implements Serializable, Comparable{ + + /** + * + */ + private static final long serialVersionUID = -200964838466882602L; + public String type; + public String instance; + public String action; + public String description; + + + public ExternalAccessPerms() { + super(); + } + + + + public ExternalAccessPerms(String type, String instance, String action, String description) { + super(); + this.type = type; + this.instance = instance; + this.action = action; + this.description = description; + } + + public ExternalAccessPerms(String type, String instance, String action) { + super(); + this.type = type; + this.instance = instance; + this.action = action; + } + + + /** + * @return the type + */ + public String getType() { + return type; + } + /** + * @param type the type to set + */ + public void setType(String type) { + this.type = type; + } + /** + * @return the instance + */ + public String getInstance() { + return instance; + } + /** + * @param instance the instance to set + */ + public void setInstance(String instance) { + this.instance = instance; + } + /** + * @return the action + */ + public String getAction() { + return action; + } + /** + * @param action the action to set + */ + public void setAction(String action) { + this.action = action; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + + @Override + public int compareTo(Object obj){ + ExternalAccessPerms other = (ExternalAccessPerms)obj; + + String c1 = getInstance(); + String c2 = other.getInstance(); + + return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); + } + + + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((action == null) ? 0 : action.hashCode()); + result = prime * result + ((description == null) ? 0 : description.hashCode()); + result = prime * result + ((instance == null) ? 0 : instance.hashCode()); + result = prime * result + ((type == null) ? 0 : type.hashCode()); + return result; + } + + + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ExternalAccessPerms other = (ExternalAccessPerms) obj; + if (action == null) { + if (other.action != null) + return false; + } else if (!action.equals(other.action)) + return false; + if (description == null) { + if (other.description != null) + return false; + } else if (!description.equals(other.description)) + return false; + if (instance == null) { + if (other.instance != null) + return false; + } else if (!instance.equals(other.instance)) + return false; + if (type == null) { + if (other.type != null) + return false; + } else if (!type.equals(other.type)) + return false; + return true; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessPermsDetail.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessPermsDetail.java new file mode 100644 index 00000000..49167c88 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessPermsDetail.java @@ -0,0 +1,127 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonRootName; + +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonRootName(value="perm") +public class ExternalAccessPermsDetail { + + private String type; + private String instance; + private String action; + private List roles; + private String description; + + + + public ExternalAccessPermsDetail() { + super(); + } + + /** + * @param type + * @param instance + * @param action + * @param roles + * @param description + */ + public ExternalAccessPermsDetail(String type, String instance, String action, List roles, + String description) { + super(); + this.type = type; + this.instance = instance; + this.action = action; + this.roles = roles; + this.description = description; + } + + /** + * @param type + * @param instance + * @param action + * @param description + */ + public ExternalAccessPermsDetail(String type, String instance, String action, + String description) { + super(); + this.type = type; + this.instance = instance; + this.action = action; + this.description = description; + } + + public String getType() { + return type; + } + public void setType(String type) { + this.type = type; + } + public String getInstance() { + return instance; + } + public void setInstance(String instance) { + this.instance = instance; + } + public String getAction() { + return action; + } + public void setAction(String action) { + this.action = action; + } + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } + + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessRole.java new file mode 100644 index 00000000..3a377f32 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessRole.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +public class ExternalAccessRole implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 3439986826362436339L; + public String name; + public String description; + + public ExternalAccessRole() { + + } + + public ExternalAccessRole(String name, String description) { + super(); + this.name = name; + this.description = description; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessRolePerms.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessRolePerms.java new file mode 100644 index 00000000..1235f62d --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessRolePerms.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class ExternalAccessRolePerms { + + private ExternalAccessPerms perm; + private String role; + + + public ExternalAccessRolePerms(ExternalAccessPerms perm, String role) { + super(); + this.perm = perm; + this.role = role; + } + + public ExternalAccessPerms getPerm() { + return perm; + } + public void setPerm(ExternalAccessPerms perm) { + this.perm = perm; + } + public String getRole() { + return role; + } + public void setRole(String role) { + this.role = role; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessUser.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessUser.java new file mode 100644 index 00000000..63d11449 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessUser.java @@ -0,0 +1,65 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class ExternalAccessUser { + + private String user; + private String role; + + public ExternalAccessUser(String user, String role) { + super(); + this.user = user; + this.role = role; + } + + public String getUser() { + return user; + } + public void setUser(String user) { + this.user = user; + } + public String getRole() { + return role; + } + public void setRole(String role) { + this.role = role; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessUserRoleDetail.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessUserRoleDetail.java new file mode 100644 index 00000000..fe92fb4c --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAccessUserRoleDetail.java @@ -0,0 +1,104 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class ExternalAccessUserRoleDetail { + + private String name; + private ExternalRoleDescription description; + + + /** + * + */ + public ExternalAccessUserRoleDetail() { + super(); + } + + public ExternalAccessUserRoleDetail(String name, ExternalRoleDescription description) { + super(); + this.name = name; + this.description = description; + } + + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public ExternalRoleDescription getDescription() { + return description; + } + public void setDescription(ExternalRoleDescription description) { + this.description = description; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((description == null) ? 0 : description.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ExternalAccessUserRoleDetail other = (ExternalAccessUserRoleDetail) obj; + if (description == null) { + if (other.description != null) + return false; + } else if (!description.equals(other.description)) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAuthUserRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAuthUserRole.java new file mode 100644 index 00000000..0b143bd9 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalAuthUserRole.java @@ -0,0 +1,74 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +public class ExternalAuthUserRole implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 5066251837431287376L; + + private String role; + private String user; + private String expiryDate; + + public String getRole() { + return role; + } + public void setRole(String role) { + this.role = role; + } + public String getUser() { + return user; + } + public void setUser(String user) { + this.user = user; + } + public String getExpiryDate() { + return expiryDate; + } + public void setExpiryDate(String expiryDate) { + this.expiryDate = expiryDate; + } + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalRequestFieldsValidator.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalRequestFieldsValidator.java new file mode 100644 index 00000000..75418df5 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalRequestFieldsValidator.java @@ -0,0 +1,65 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class ExternalRequestFieldsValidator { + + private boolean result; + private String detailMessage; + + public ExternalRequestFieldsValidator(boolean result, String detailMessage) { + super(); + this.result = result; + this.detailMessage = detailMessage; + } + public boolean isResult() { + return result; + } + public void setResult(boolean result) { + this.result = result; + } + public String getDetailMessage() { + return detailMessage; + } + public void setDetailMessage(String detailMessage) { + this.detailMessage = detailMessage; + } + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalRoleDescription.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalRoleDescription.java new file mode 100644 index 00000000..262cc8ff --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ExternalRoleDescription.java @@ -0,0 +1,140 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class ExternalRoleDescription { + + private String id; + private String name; + private String active; + private String priority; + private String appId; + private String appRoleId; + + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getActive() { + return active; + } + public void setActive(String active) { + this.active = active; + } + public String getPriority() { + return priority; + } + public void setPriority(String priority) { + this.priority = priority; + } + public String getAppId() { + return appId; + } + public void setAppId(String appId) { + this.appId = appId; + } + public String getAppRoleId() { + return appRoleId; + } + public void setAppRoleId(String appRoleId) { + this.appRoleId = appRoleId; + } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((active == null) ? 0 : active.hashCode()); + result = prime * result + ((appId == null) ? 0 : appId.hashCode()); + result = prime * result + ((appRoleId == null) ? 0 : appRoleId.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((priority == null) ? 0 : priority.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ExternalRoleDescription other = (ExternalRoleDescription) obj; + if (active == null) { + if (other.active != null) + return false; + } else if (!active.equals(other.active)) + return false; + if (appId == null) { + if (other.appId != null) + return false; + } else if (!appId.equals(other.appId)) + return false; + if (appRoleId == null) { + if (other.appRoleId != null) + return false; + } else if (!appRoleId.equals(other.appRoleId)) + return false; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (priority == null) { + if (other.priority != null) + return false; + } else if (!priority.equals(other.priority)) + return false; + return true; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FavoritesFunctionalMenuItem.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FavoritesFunctionalMenuItem.java new file mode 100644 index 00000000..aff15cd3 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FavoritesFunctionalMenuItem.java @@ -0,0 +1,63 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + + +/** + * This is to handle functional menu favorites + */ +@Entity +@Table(name="fn_menu_favorites") +public class FavoritesFunctionalMenuItem implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + @Column(name = "user_id") + public Long userId; + + @Id + @Column(name = "menu_id") + public Long menuId; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FavoritesFunctionalMenuItemJson.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FavoritesFunctionalMenuItemJson.java new file mode 100644 index 00000000..73b01e29 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FavoritesFunctionalMenuItemJson.java @@ -0,0 +1,75 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Transient; + + + +/** + * This is to handle functional menu favorites + */ +@Entity +@Table(name="fn_menu_favorites") +public class FavoritesFunctionalMenuItemJson implements Serializable { + + private static final long serialVersionUID = 1L; + + @Id + @Column(name = "user_id") + public Long userId; + + @Id + @Column(name = "menu_id") + public Long menuId; + + @Column(name = "text") + public String text; + + @Column(name = "url") + public String url; + + @Transient + public Boolean restrictedApp; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FieldsValidator.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FieldsValidator.java new file mode 100644 index 00000000..7c9b6961 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FieldsValidator.java @@ -0,0 +1,143 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletResponse; + +public class FieldsValidator { + + public Long httpStatusCode = new Long(HttpServletResponse.SC_OK); + + public Long errorCode; + + public class FieldName { + + public String name; + + public FieldName(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + } + + + public List fields = new ArrayList(); + + public void addProblematicFieldName(String name) { + fields.add(new FieldName(name)); + } + + public Long getHttpStatusCode() { + return httpStatusCode; + } + + public void setHttpStatusCode(Long httpStatusCode) { + this.httpStatusCode = httpStatusCode; + } + + public Long getErrorCode() { + return errorCode; + } + + public void setErrorCode(Long errorCode) { + this.errorCode = errorCode; + } + + public List getFields() { + return fields; + } + + public void setFields(List fields) { + this.fields = fields; + } + + @Override + public String toString() { + return "FieldsValidator [httpStatusCode=" + httpStatusCode + ", errorCode=" + errorCode + ", fields=" + fields + + "]"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((errorCode == null) ? 0 : errorCode.hashCode()); + result = prime * result + ((fields == null) ? 0 : fields.hashCode()); + result = prime * result + ((httpStatusCode == null) ? 0 : httpStatusCode.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + FieldsValidator other = (FieldsValidator) obj; + if (errorCode == null) { + if (other.errorCode != null) + return false; + } else if (!errorCode.equals(other.errorCode)) + return false; + if (fields == null) { + if (other.fields != null) + return false; + } else if (!fields.equals(other.fields)) + return false; + if (httpStatusCode == null) { + if (other.httpStatusCode != null) + return false; + } else if (!httpStatusCode.equals(other.httpStatusCode)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuItem.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuItem.java new file mode 100644 index 00000000..fcee6207 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuItem.java @@ -0,0 +1,118 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Transient; + +@Entity +@Table(name="fn_menu_functional") +public class FunctionalMenuItem implements Serializable { + public FunctionalMenuItem(){}; + + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) + @Column(name = "MENU_ID") + public Long menuId; + + @Column(name = "COLUMN_NUM") + public Integer column; + + @Column(name = "TEXT") + public String text; + + @Column(name = "PARENT_MENU_ID") + public Integer parentMenuId; + + @Column(name = "URL") + public String url; + + @Column(name="ACTIVE_YN") + public String active_yn; + + @Transient + public Integer appid; + + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } + + @Transient + private List roles; + + @Transient + public Boolean restrictedApp; + + public void normalize() { + if (this.column == null) + this.column = new Integer(1); + this.text = (this.text == null) ? "" : this.text.trim(); + if (this.parentMenuId == null) + this.parentMenuId = new Integer(-1); + this.url = (this.url == null) ? "" : this.url.trim(); + } + + @Override + public String toString() { + return "FunctionalMenuItem [menuId=" + menuId + ", column=" + column + ", text=" + text + ", parentMenuId=" + + parentMenuId + ", url=" + url + ", active_yn=" + active_yn + ", appid=" + appid + ", roles=" + roles + + ", restrictedApp=" + restrictedApp + "]"; + } + + public void setUrl(String url) { + this.url = url; + } + + public void setRestrictedApp(Boolean restrictedApp) { + this.restrictedApp = restrictedApp; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuItemWithRoles.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuItemWithRoles.java new file mode 100644 index 00000000..f1a48aca --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuItemWithRoles.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; +import java.util.List; + +// This type is used to read the Json in from the API call from the Front End +public class FunctionalMenuItemWithRoles implements Serializable { + private static final long serialVersionUID = 1L; + + public Long menuId; + + public Integer column; + + public String text; + + public Integer parentMenuId; + + public String url; + + public Integer appid; + + private List roles; + + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } + + public void normalize() { + if (this.column == null) + this.column = new Integer(1); + this.text = (this.text == null) ? "" : this.text.trim(); + if (this.parentMenuId == null) + this.parentMenuId = new Integer(-1); + this.url = (this.url == null) ? "" : this.url.trim(); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuRole.java new file mode 100644 index 00000000..0f4a6b4f --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/FunctionalMenuRole.java @@ -0,0 +1,133 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name="fn_menu_functional_roles") +public class FunctionalMenuRole implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) + @Column(name = "ID") + public Integer id; + + @Column(name = "MENU_ID") + public Long menuId; + + @Column(name = "APP_ID") + public Integer appId; + + @Column(name = "ROLE_ID") + public Integer roleId; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Long getMenuId() { + return menuId; + } + + public void setMenuId(Long menuId) { + this.menuId = menuId; + } + + public Integer getAppId() { + return appId; + } + + public void setAppId(Integer appId) { + this.appId = appId; + } + + public Integer getRoleId() { + return roleId; + } + + public void setRoleId(Integer roleId) { + this.roleId = roleId; + } + + @Override + public String toString() { + return "FunctionalMenuRole [id=" + id + ", menuId=" + menuId + ", appId=" + appId + ", roleId=" + roleId + "]"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((appId == null) ? 0 : appId.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((menuId == null) ? 0 : menuId.hashCode()); + result = prime * result + ((roleId == null) ? 0 : roleId.hashCode()); + return result; + } + + @Override + public boolean equals(Object o) { + + if (o == this) return true; + if (!(o instanceof FunctionalMenuRole)) { + return false; + } + FunctionalMenuRole functionalMenuRole = (FunctionalMenuRole) o; + System.out.println("test"); + return id.equals(functionalMenuRole.getId()) && + menuId.equals(functionalMenuRole.menuId) && + appId.equals(functionalMenuRole.appId) && + roleId.equals(functionalMenuRole.roleId) ; + } + + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/GlobalRoleWithApplicationRoleFunction.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/GlobalRoleWithApplicationRoleFunction.java new file mode 100644 index 00000000..b872409e --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/GlobalRoleWithApplicationRoleFunction.java @@ -0,0 +1,130 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class GlobalRoleWithApplicationRoleFunction implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + @Id + @Column(name = "role_id") + private Long roleId; + @Id + @Column(name = "role_name") + private String roleName; + @Id + @Column(name = "active_Yn") + private boolean active; + @Id + @Column(name = "priority") + private Integer priority; + @Id + @Column(name = "function_cd") + private String functionCd; + @Id + @Column(name = "function_name") + private String functionName; + @Id + @Column(name = "app_id") + private long appId; + + @Id + @Column(name = "role_app_id") + private long roleAppId; + + public Long getRoleId() { + return roleId; + } + public void setRoleId(long roleId) { + this.roleId = roleId; + } + public String getRoleName() { + return roleName; + } + public void setRoleName(String roleName) { + this.roleName = roleName; + } + public boolean isActive() { + return active; + } + public void setActive(boolean active) { + this.active = active; + } + public Integer getPriority() { + return priority; + } + public void setPriority(Integer priority) { + this.priority = priority; + } + public String getFunctionCd() { + return functionCd; + } + public void setFunctionCd(String functionCd) { + this.functionCd = functionCd; + } + public String getFunctionName() { + return functionName; + } + public void setFunctionName(String functionName) { + this.functionName = functionName; + } + public long getAppId() { + return appId; + } + public void setAppId(long appId) { + this.appId = appId; + } + @Override + public String toString() { + return "GlobalRoleWithApplicationRoleFucnction [roleId=" + roleId + ", roleName=" + roleName + ", active=" + + active + ", priority=" + priority + ", functionCd=" + functionCd + ", functionName=" + functionName + + ", appId=" + appId + "]"; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/LocalRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/LocalRole.java new file mode 100644 index 00000000..3d9ec973 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/LocalRole.java @@ -0,0 +1,77 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class LocalRole implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + @Column(name = "ROLE_ID") + public Integer roleId; + + @Column(name = "ROLE_NAME") + public String rolename; + + public void normalize() { + this.rolename = (this.rolename == null) ? "" : this.rolename.trim(); + } + + public Integer getRoleId() { + return roleId; + } + + public void setRoleId(Integer roleId) { + this.roleId = roleId; + } + + public String getRolename() { + return rolename; + } + + public void setRolename(String rolename) { + this.rolename = rolename; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingApp.java new file mode 100644 index 00000000..8347d4f0 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingApp.java @@ -0,0 +1,123 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +/** + * Model of rows in the fn_app table; serialized as a message add or update an + * on-boarded application. + */ +public class OnboardingApp { + + public Long id; + + public String name; + + public String imageUrl; + + public String imageLink; + + public String description; + + public String notes; + + public String url; + + public String alternateUrl; + + public String restUrl; + + public Boolean isOpen; + + public Boolean isEnabled; + + public Long motsId; + + public String myLoginsAppName; + + public String myLoginsAppOwner; + + public String username; + + public String appPassword; + + public String thumbnail; + + public String uebTopicName; + + public String uebKey; + + public String uebSecret; + + public Boolean restrictedApp; + + public Boolean isCentralAuth; + + public String nameSpace; + + /** + * Sets the name, myLoginsAppName, myLoginsAppOwner, username and + * appPassword fields to the empty string OR trims leading/trailing space, + * as appropriate. + */ + public void normalize() { + this.name = (this.name == null) ? "" : this.name.trim(); + this.myLoginsAppName = (this.myLoginsAppName == null) ? "" : this.myLoginsAppName.trim(); + this.myLoginsAppOwner = (this.myLoginsAppOwner == null) ? "" : this.myLoginsAppOwner.trim(); + this.username = (this.username == null) ? "" : this.username.trim(); + this.appPassword = (this.appPassword == null) ? "" : this.appPassword.trim(); + } + + public void setUebTopicName(String topicName) { + this.uebTopicName = topicName; + } + + public void setUebKey(String key) { + this.uebKey = key; + } + + public void setUebSecret(String secret) { + this.uebSecret = secret; + } + + // Hide the implementation of restricted and normal app from the front end. + // The json sent and received will include restrictedApp but not appType. + + public void setRestrictedApp(Boolean restrictedApp) { + this.restrictedApp = restrictedApp; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingWidget.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingWidget.java new file mode 100644 index 00000000..4205324c --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingWidget.java @@ -0,0 +1,83 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class OnboardingWidget implements Serializable { + + private static final long serialVersionUID = 1L; + + @Id + @Column(name = "WIDGET_ID") + public Long id; + + @Column(name = "WDG_NAME") + public String name; + + @Column(name = "APP_ID") + public Long appId; + + @Column(name = "APP_NAME") + public String appName; + + @Column(name = "WDG_WIDTH") + public Integer width; + + @Column(name = "WDG_HEIGHT") + public Integer height; + + @Column(name = "WDG_URL") + public String url; + + public void normalize() { + this.name = (this.name == null) ? "" : this.name.trim(); + this.appName = (this.appName == null) ? "" : this.appName.trim(); + if (this.width == null) + this.width = new Integer(0); + if (this.height == null) + this.height = new Integer(0); + this.url = (this.url == null) ? "" : this.url.trim(); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/PortalAdmin.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/PortalAdmin.java new file mode 100644 index 00000000..f3ec7794 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/PortalAdmin.java @@ -0,0 +1,103 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + * This is to handle portal admins + */ +@Entity +@Table(name = "fn_user") +public class PortalAdmin implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "user_id") + public Long userId; + + @Column(name = "login_id") + public String loginId; + + @Column(name = "first_name") + public String firstName; + + @Column(name = "last_name") + public String lastName; + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getLoginId() { + return loginId; + } + + public void setLoginId(String loginId) { + this.loginId = loginId; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/PortalAdminUserRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/PortalAdminUserRole.java new file mode 100644 index 00000000..a79075b7 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/PortalAdminUserRole.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + * This is to handle portal admins + */ +@Entity +@Table(name="fn_user_role") +public class PortalAdminUserRole implements Serializable{ + private static final long serialVersionUID = 1L; + + @Id + @Column(name = "user_id") + public Long userId; + + @Id + @Column(name = "role_id") + public Long roleId; + + @Column(name = "app_id") + public Long appId; + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ProfileDetail.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ProfileDetail.java new file mode 100644 index 00000000..d1901899 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/ProfileDetail.java @@ -0,0 +1,97 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class ProfileDetail { + + private String firstName; + private String lastName; + private String middleName; + private String email; + private String loginId; + private String loginPassword; + + public ProfileDetail(){} + public ProfileDetail(String firstName, String lastName, String middleName, String email, String loginId, String loginPassword) { + this.firstName = firstName; + this.lastName = lastName; + this.middleName = middleName; + this.email = email; + this.loginId = loginId; + this.loginPassword = loginPassword; + } + + public String getFirstName() { + return firstName; + } + public void setFirstName(String firstName) { + this.firstName = firstName; + } + public String getLastName() { + return lastName; + } + public void setLastName(String lastName) { + this.lastName = lastName; + } + public String getMiddleName() { + return middleName; + } + public void setMiddleName(String middleName) { + this.middleName = middleName; + } + public String getEmail() { + return email; + } + public void setEmail(String email) { + this.email = email; + } + public String getLoginId() { + return loginId; + } + public void setLoginId(String loginId) { + this.loginId = loginId; + } + public String getLoginPassword() { + return loginPassword; + } + public void setLoginPassword(String loginPassword) { + this.loginPassword = loginPassword; + } + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RemoteRole.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RemoteRole.java new file mode 100644 index 00000000..a86f10fc --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RemoteRole.java @@ -0,0 +1,91 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class RemoteRole { + + private Long id; + private String name; + + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "RemoteRole [id=" + id + ", name=" + name + "]"; + } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RemoteRole other = (RemoteRole) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RemoteUserWithRoles.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RemoteUserWithRoles.java new file mode 100644 index 00000000..39127c12 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RemoteUserWithRoles.java @@ -0,0 +1,214 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.ArrayList; +import java.util.List; + +/** + * User description which we receive in response from request to remote + * application: applicationsRestClientService.get(RemoteUserWithRoles[].class, + * appId, "/users"). It contains the most important info about remote + * application user including his roles in this application. + */ +public class RemoteUserWithRoles { + + private Long orgId; + + private Long managerId; + + private String firstName; + + private String middleInitial; + + private String lastName; + + private String phone; + + private String email; + + private String hrid; + + private String orgUserId; + + private String orgCode; + + private String orgManagerUserId; + + private String jobTitle; + + private String loginId; + + private Boolean active; + + private List roles = new ArrayList(); + + public Long getOrgId() { + return orgId; + } + + public void setOrgId(Long orgId) { + this.orgId = orgId; + } + + public Long getManagerId() { + return managerId; + } + + public void setManagerId(Long managerId) { + this.managerId = managerId; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getMiddleInitial() { + return middleInitial; + } + + public void setMiddleInitial(String middleInitial) { + this.middleInitial = middleInitial; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getHrid() { + return hrid; + } + + public void setHrid(String hrid) { + this.hrid = hrid; + } + + public String getOrgUserId() { + return orgUserId; + } + + public void setOrgUserId(String orgUserId) { + if(this.orgUserId == null) + this.orgUserId = orgUserId; + } + + public String getOrgCode() { + return orgCode; + } + + public void setOrgCode(String orgCode) { + this.orgCode = orgCode; + } + + public String getOrgManagerUserId() { + return orgManagerUserId; + } + + public void setOrgManagerUserId(String orgManagerUserId) { + this.orgManagerUserId = orgManagerUserId; + } + + public String getJobTitle() { + return jobTitle; + } + + public void setJobTitle(String jobTitle) { + this.jobTitle = jobTitle; + } + + public String getLoginId() { + return loginId; + } + + public void setLoginId(String loginId) { + this.loginId = loginId; + } + + public Boolean getActive() { + return active; + } + + public void setActive(Boolean active) { + this.active = active; + } + + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } + + @Override + public String toString() { + return "RemoteUserWithRoles [orgId=" + orgId + ", managerId=" + managerId + ", firstName=" + firstName + + ", middleInitial=" + middleInitial + ", lastName=" + lastName + ", phone=" + phone + ", email=" + + email + ", hrid=" + hrid + ", orgUserId=" + orgUserId + ", orgCode=" + orgCode + ", orgManagerUserId=" + + orgManagerUserId + ", jobTitle=" + jobTitle + ", loginId=" + loginId + ", active=" + active + + ", roles=" + roles + "]"; + } + + + + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RoleInAppForUser.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RoleInAppForUser.java new file mode 100644 index 00000000..12fc0ab0 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RoleInAppForUser.java @@ -0,0 +1,123 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class RoleInAppForUser { + + + public RoleInAppForUser() { + } + + public RoleInAppForUser(Long id, String name) { + this.roleId = id; + this.roleName = name; + } + + public Long roleId; + + public String roleName; + + public Boolean isApplied; + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + public Boolean getIsApplied() { + return isApplied; + } + + public void setIsApplied(Boolean isApplied) { + this.isApplied = isApplied; + } + + @Override + public String toString() { + return "RoleInAppForUser [roleId=" + roleId + ", roleName=" + roleName + ", isApplied=" + isApplied + "]"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((isApplied == null) ? 0 : isApplied.hashCode()); + result = prime * result + ((roleId == null) ? 0 : roleId.hashCode()); + result = prime * result + ((roleName == null) ? 0 : roleName.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RoleInAppForUser other = (RoleInAppForUser) obj; + if (isApplied == null) { + if (other.isApplied != null) + return false; + } else if (!isApplied.equals(other.isApplied)) + return false; + if (roleId == null) { + if (other.roleId != null) + return false; + } else if (!roleId.equals(other.roleId)) + return false; + if (roleName == null) { + if (other.roleName != null) + return false; + } else if (!roleName.equals(other.roleName)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RolesInAppForUser.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RolesInAppForUser.java new file mode 100644 index 00000000..0d79020c --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/RolesInAppForUser.java @@ -0,0 +1,51 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.ArrayList; +import java.util.List; + +public class RolesInAppForUser { + + public String orgUserId; + + public Long appId; + + public List roles = new ArrayList(); + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/UserApplicationRoles.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/UserApplicationRoles.java new file mode 100644 index 00000000..3f88bc0e --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/UserApplicationRoles.java @@ -0,0 +1,104 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.ArrayList; +import java.util.List; + +/** + * A specific application user and his application specific roles. + * + */ +public class UserApplicationRoles { + + private Long appId; + + private String orgUserId; + + private String firstName; + + private String lastName; + + private List roles = new ArrayList(); + + public Long getAppId() { + return appId; + } + + public void setAppId(Long appId) { + this.appId = appId; + } + + public String getOrgUserId() { + return orgUserId; + } + + public void setOrgUserId(String orgUserId) { + this.orgUserId = orgUserId; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } + + @Override + public String toString() { + return "UserApplicationRoles [appId=" + appId + ", orgUserId=" + orgUserId + ", firstName=" + firstName + + ", lastName=" + lastName + ", roles=" + roles + "]"; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/UserWithNameSurnameTitle.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/UserWithNameSurnameTitle.java new file mode 100644 index 00000000..dab2c5fd --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/UserWithNameSurnameTitle.java @@ -0,0 +1,100 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +public class UserWithNameSurnameTitle { + + public String orgUserId; + + public String firstName; + + public String lastName; + + public String jobTitle; + + public UserWithNameSurnameTitle(String orgUserId, String firstName, String lastName, String jobTitle) { + this.orgUserId = orgUserId; + this.firstName = firstName; + this.lastName = lastName; + this.jobTitle = jobTitle; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((firstName == null) ? 0 : firstName.hashCode()); + result = prime * result + ((jobTitle == null) ? 0 : jobTitle.hashCode()); + result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); + result = prime * result + ((orgUserId == null) ? 0 : orgUserId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + UserWithNameSurnameTitle other = (UserWithNameSurnameTitle) obj; + if (firstName == null) { + if (other.firstName != null) + return false; + } else if (!firstName.equals(other.firstName)) + return false; + if (jobTitle == null) { + if (other.jobTitle != null) + return false; + } else if (!jobTitle.equals(other.jobTitle)) + return false; + if (lastName == null) { + if (other.lastName != null) + return false; + } else if (!lastName.equals(other.lastName)) + return false; + if (orgUserId == null) { + if (other.orgUserId != null) + return false; + } else if (!orgUserId.equals(other.orgUserId)) + return false; + return true; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/WidgetCatalogPersonalization.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/WidgetCatalogPersonalization.java new file mode 100644 index 00000000..6ca466aa --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/WidgetCatalogPersonalization.java @@ -0,0 +1,75 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +/** + * Model for the object PUT to the controller when the user takes an action on + * a widget in the catalog. + */ + +public class WidgetCatalogPersonalization { + + public Long widgetId; + public Boolean select; + // not needed as only 'SHOW' and 'HIDE' status_cd is expected from the micro service now + //public Boolean pending; + + public Long getWidgetId() { + return widgetId; + } + + public void setWidgetId(Long widgetId) { + this.widgetId = widgetId; + } + + public Boolean getSelect() { + return select; + } + + public void setSelect(Boolean select) { + this.select = select; + } + + /*public Boolean getPending() { + return pending; + } + + public void setPending(Boolean pending) { + this.pending = pending; + }*/ +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ueb/EPUebHelper.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ueb/EPUebHelper.java new file mode 100644 index 00000000..d006f8ea --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ueb/EPUebHelper.java @@ -0,0 +1,229 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.ueb; + +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.LinkedList; +import java.util.List; + +import javax.annotation.PostConstruct; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EcompApp; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.service.EPAppService; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.ueb.Helper; +import org.onap.portalsdk.core.onboarding.ueb.Publisher; +import org.onap.portalsdk.core.onboarding.ueb.UebException; +import org.onap.portalsdk.core.onboarding.ueb.UebManager; +import org.onap.portalsdk.core.onboarding.ueb.UebMsg; +import org.onap.portalsdk.core.onboarding.util.PortalApiConstants; +import org.onap.portalsdk.core.onboarding.util.PortalApiProperties; +import org.onap.portalapp.portal.ueb.EPUebHelper; +import org.onap.portalapp.portal.ueb.EPUebMsgTypes; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +@Component +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +public class EPUebHelper { + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPUebHelper.class); + + @Autowired + private EPAppService appsService; + + @Autowired + private SessionFactory sessionFactory; + + @SuppressWarnings("unused") + private Publisher epPublisher; + + public EPUebHelper() { + + } + // + // This should only be called by the ECOMP Portal App, other Apps have just one publisher and use appPublisher + // + @SuppressWarnings("unused") + @EPMetricsLog + public void refreshPublisherList() + { + Session localSession = null; + boolean addedPublisher = false; + + try { + localSession = sessionFactory.openSession(); + + List apps = appsService.getEcompAppAppsFullList(); + for (int i = 0; i < apps.size(); i++) + { + if ((apps.get(i).isEnabled()) && + (apps.get(i).getUebTopicName() != null) && + !(apps.get(i).getUebTopicName().toUpperCase().contains("ECOMP-PORTAL-INBOX"))) + { + logger.debug(EELFLoggerDelegate.debugLogger, "UEBManager adding publisher for " + apps.get(i).getUebTopicName()); + UebManager.getInstance().addPublisher(apps.get(i).getUebTopicName()); + addedPublisher = true; + } + else if ((apps.get(i).getId() != 1) && // App may have been disabled, remove the publisher + !(apps.get(i).isEnabled())) + { + if(apps.get(i).getUebTopicName()!=null){ + UebManager.getInstance().removePublisher(apps.get(i).getUebTopicName()); + } + } + } + } + catch (Exception e) + { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebSystemError, e, "add/remove Publisher"); + logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while refreshing the publisher list", e); + } + + //publisherList.print(); + + if (addedPublisher == true) // Give publishers time to initialize + { + Helper.sleep(400); + } + } + + @PostConstruct + @EPMetricsLog + public void initUeb() { + try { + epPublisher = new Publisher(PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), + PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET), + PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "initUeb failed", e); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebConnectionError, e); + } + + Thread thread = new Thread("EPUebManager: postConstructMethod - refreshPublisherList") { + public void run(){ + refreshPublisherList(); + } + }; + thread.start(); + + } + + @EPMetricsLog + public void addPublisher(EPApp app) { + // TODO Auto-generated method stub + try { + UebManager.getInstance().addPublisher(app.getUebTopicName()); + } catch (UebException e) { + logger.error(EELFLoggerDelegate.errorLogger, "addPublisher failed", e); + } + } + + public boolean checkAvailability() { + // + // Test existence of topic at UEB url + // + // (ie http://uebsb91kcdc.it.com:3904/topics/ECOMP-PORTAL-INBOX) + // + boolean available = true; + LinkedList urlList = (LinkedList) Helper.uebUrlList(); + if (!urlList.isEmpty()) { + String url = "http://" + urlList.getFirst() + ":3904/topics/" + PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME); + if (!url.isEmpty()) { + try { + URL siteURL = new URL(url); + HttpURLConnection connection = (HttpURLConnection) siteURL.openConnection(); + connection.setRequestMethod("GET"); + connection.connect(); + + int code = connection.getResponseCode(); + if (code == 200) { + available = true; + } + else { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebConnectionError, url); + available = false; + logger.warn(EELFLoggerDelegate.errorLogger, "Warning! UEB topic existence check failed, topic = " + url ); + logger.debug(EELFLoggerDelegate.debugLogger, "Warning! UEB topic existence check failed, topic = " + url ); + } + } + catch (Exception e) { + available = false; + logger.error(EELFLoggerDelegate.errorLogger, "checkAvailability failed", e); + } + } + } + return available; + } + + public boolean MessageCanBeSentToTopic() { + + boolean sentMsgSuccessfully = false; + + UebMsg msg = new UebMsg(); + msg.putSourceTopicName(PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME)); + msg.putPayload("Pinging topic for health check"); + msg.putMsgType(EPUebMsgTypes.UEB_MSG_TYPE_HEALTH_CHECK); + + try { + // epPublisher.send(msg); + sentMsgSuccessfully = true; + } + catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckUebClusterError, e); + sentMsgSuccessfully = false; + logger.warn(EELFLoggerDelegate.errorLogger, "Warning! could not successfully publish a UEB msg to " + + PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME), e); + } + + return sentMsgSuccessfully; + } + +} + + diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ueb/EPUebMsgTypes.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ueb/EPUebMsgTypes.java new file mode 100644 index 00000000..7e49f8f2 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/ueb/EPUebMsgTypes.java @@ -0,0 +1,45 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.ueb; + +import org.onap.portalsdk.core.onboarding.ueb.UebMsgTypes; + +public interface EPUebMsgTypes extends UebMsgTypes { + + public static final String UEB_MSG_TYPE_HEALTH_CHECK = "uebHealthCheckPing"; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/CustomLoggingFilter.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/CustomLoggingFilter.java new file mode 100644 index 00000000..0b564eec --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/CustomLoggingFilter.java @@ -0,0 +1,72 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.utils; + +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.filter.Filter; +import ch.qos.logback.core.spi.FilterReply; + +/** + * Custom Filter class bind with logback.xml + * configuration file to strip out certain log messages + * coming out of special packages or classes. + * + */ +public class CustomLoggingFilter extends Filter { + + /** + * Custom Filter is added to strip out the continuous U-EB logging messages + * But make sure we log the ERROR & WARNING Level messages. + */ + @Override + public FilterReply decide(ILoggingEvent event) { + try { + if ((event.getLevel() != Level.ERROR || event.getLevel() != Level.WARN) && + (event.getThreadName().equalsIgnoreCase("UEBConsumerThread")) && + (event.getLoggerName().contains("org.openecomp.nsa") || event.getLoggerName().contains("org.apache.http")) + ) { + return FilterReply.DENY; + } else { + return FilterReply.NEUTRAL; + } + } catch(Exception e) { + return FilterReply.NEUTRAL; + } + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EPCommonSystemProperties.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EPCommonSystemProperties.java new file mode 100644 index 00000000..0d3ff519 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EPCommonSystemProperties.java @@ -0,0 +1,95 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.utils; + +import org.onap.portalsdk.core.util.SystemProperties; + +public class EPCommonSystemProperties extends SystemProperties { + + public static final String LOGIN_URL_NO_RET_VAL = "login_url_no_ret_val"; + public static final String ECOMP_APP_ID = "ecomp_app_id"; + public static final String SYS_ADMIN_ROLE_ID = "sys_admin_role_id"; + public static final String DUBLICATED_FIELD_VALUE_ECOMP_ERROR = "1201"; + public static final String ACCOUNT_ADMIN_ROLE_ID = "account_admin_role_id"; + public static final String RESTRICTED_APP_ROLE_ID = "restricted_app_role_id"; + public static final String FE_URL = "frontend_url"; + public static final String HEALTH_POLL_INTERVAL_SECONDS = "health_poll_interval_seconds"; + public static final String HEALTHFAIL_ALERT_EVERY_X_INTERVALS = "health_fail_alert_every_x_intervals"; + public static final String USER_GUIDE_URL = "user_guide_link"; + + public static final String USER_FIRST_NAME = "USER_FIRST_NAME"; + public static final String USER_LAST_NAME = "USER_LAST_NAME"; + public static final String USER_EMAIL = "USER_EMAIL"; + public static final String USER_ORG_USERID = "USER_ORG_USERID"; + + public static final String USH_TICKET_URL = "ush_ticket_url"; + + public static final String EXTERNAL_API_RESPONSE_CODE = "External_API_ResponseCode"; + public static final String COOKIE_DOMAIN = "cookie_domain"; + + public static final String FEEDBACK_EMAIL_ADDRESS = "feedback_email_address"; + public static final String PORTAL_INFO_URL = "portal_info_url"; + + public static final String ONLINE_USER_UPDATE_RATE = "online_user_update_rate"; + public static final String ONLINE_USER_UPDATE_DURATION = "online_user_update_duration"; + + public static final String NOTIFICATION_UPDATE_RATE = "notification_update_rate"; + public static final String NOTIFICATION_UPDATE_DURATION = "notification_update_duration"; + + public static final String WINDOW_WIDTH_THRESHOLD_LEFT_MENU = "window_width_threshold_left_menu"; + public static final String WINDOW_WIDTH_THRESHOLD_RIGHT_MENU = "window_width_threshold_right_menu"; + + public static final String AUDITLOG_DEL_DAY_FROM = "auditlog_del_day_from"; + public static final String AUDITLOG_DELETE_CRON = "auditlog_delete_cron"; + + public static final String AUTH_USER_SERVER = "auth_user_server"; + public static final String EXTERNAL_ACCESS_ENABLE = "external_access_enable"; + + public static final String EXTERNAL_SYSTEM_NOTIFICATION_URL = "external_system_notification_url"; + public static final String EXTERNAL_CENTRAL_AUTH_USER_NAME = "ext_central_access_user_name"; + public static final String EXTERNAL_CENTRAL_AUTH_PASSWORD = "ext_central_access_password"; + public static final String EXTERNAL_CENTRAL_ACCESS_URL = "ext_central_access_url"; + public static final String EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN = "ext_central_access_user_domain"; + public static final String REMOTE_CENTRALISED_SYSTEM_ACCESS = "remote_centralized_system_access"; + + public static final String WIDGET_MS_PROTOCOL = "microservices.widget.protocol"; + public static final String WIDGET_MS_HOSTNAME = "microservices.widget.hostname"; + + public static final String REMOTE_CENTRALIZED_SYSTEM_ACCESS = "remote_centralized_system_access"; + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EcompPortalUtils.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EcompPortalUtils.java new file mode 100644 index 00000000..efd84b90 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EcompPortalUtils.java @@ -0,0 +1,563 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.utils; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.bind.DatatypeConverter; + +import org.apache.commons.lang.StringUtils; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.onboarding.util.PortalApiConstants; +import org.onap.portalsdk.core.util.SystemProperties; +import org.slf4j.MDC; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class EcompPortalUtils { + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EcompPortalUtils.class); + + private static final String FUNCTION_PIPE = "|"; + + // TODO: GLOBAL_LOGIN_URL is the same as in SessionTimeoutInterceptor. + // It should be defined in SystemProperties. + private static final String GLOBAL_LOGIN_URL = "global-login-url"; + + // It is a regular expression used for while creating a External Central Auth Role + public static final String EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS = "([^A-Z^a-z^0-9^\\.^%^(^)^=^:])"; + + /** + * @param orgUserId + * User ID to validate + * @return true if orgUserId is not empty and contains only alphanumeric, false + * otherwise + */ + public static boolean legitimateUserId(String orgUserId) { + return orgUserId.matches("^[a-zA-Z0-9]+$"); + } + + /** + * Splits the string into a list of tokens using the specified regular + * expression + * + * @param source + * String to split + * @param regex + * tokens + * @return List of tokens split from the source + */ + public static List parsingByRegularExpression(String source, String regex) { + List tokens = new ArrayList(); + if (source != null && source.length() > 0) { + String[] parsed = source.split(regex); + for (String token : parsed) { + if (token.length() > 0) { + tokens.add(token); + } + } + } + return tokens; + } + + /** + * Builds a JSON object with error code and message information. + * + * @param errorCode + * error code + * @param errorMessage + * message + * @return JSON object as a String + */ + public static String jsonErrorMessageResponse(int errorCode, String errorMessage) { + return "{\"error\":{\"code\":" + errorCode + "," + "\"message\":\"" + errorMessage + "\"}}"; + } + + /** + * Builds a JSON object with the specified message + * + * @param message + * Message to embed + * @return JSON object as a String + */ + public static String jsonMessageResponse(String message) { + return String.format("{\"message\":\"%s\"}", message); + } + + /** + * Serializes the specified object as JSON and writes the result to the debug + * log. If serialization fails, logs a message to the error logger. + * + * @param logger + * Logger for the class where the object was built; the logger + * carries the class name. + * @param source + * First portion of the log message + * @param msg + * Second portion of the log message + * @param obj + * Object to serialize as JSON + */ + public static void logAndSerializeObject(EELFLoggerDelegate logger, String source, String msg, Object obj) { + try { + String objectAsJson = new ObjectMapper().writeValueAsString(obj); + logger.debug(EELFLoggerDelegate.debugLogger, + String.format("source= [%s]; %s [%s];", source, msg, objectAsJson)); + } catch (JsonProcessingException e) { + logger.warn(EELFLoggerDelegate.errorLogger, "logAndSerializedObject failed to serialize", e); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "logAndSerializedObject failed", e); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); + } + } + + /** + * Serializes the specified object as JSON and writes the result to the debug + * log. If serialization fails, logs a message to the error logger. + * + * @param source + * First portion of the log message + * @param msg + * Second portion of the log message + * @param obj + * Object to serialize as JSON + */ + public static void logAndSerializeObject(String source, String msg, Object obj) { + logAndSerializeObject(logger, source, msg, obj); + } + + public static void rollbackTransaction(Transaction transaction, String errorMessage) { + logger.error(EELFLoggerDelegate.errorLogger, errorMessage); + try { + if (transaction != null) { + transaction.rollback(); + } + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeExecuteRollbackError, e); + logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while performing a rollback transaction", + e); + } + } + + public static void closeLocalSession(Session localSession, String errorMessage) { + logger.error(EELFLoggerDelegate.errorLogger, errorMessage); + try { + if (localSession != null) { + localSession.close(); + } + } catch (Exception e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoCloseSessionError, e); + logger.error(EELFLoggerDelegate.errorLogger, errorMessage + ", closeLocalSession exception", e); + } + } + + /** + * Set response status to Unauthorized if user == null and to Forbidden in all + * (!) other cases. Logging is not performed if invocator == null + * + * @param user + * User object + * @param response + * HttpServletResponse + * @param invocator + * may be null + */ + public static void setBadPermissions(EPUser user, HttpServletResponse response, String invocator) { + if (user == null) { + String loginUrl = SystemProperties.getProperty(EPCommonSystemProperties.LOGIN_URL_NO_RET_VAL); + response.setHeader(GLOBAL_LOGIN_URL, loginUrl); + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + MDC.put(EPCommonSystemProperties.RESPONSE_CODE, Integer.toString(HttpServletResponse.SC_UNAUTHORIZED)); + } else { + response.setStatus(HttpServletResponse.SC_FORBIDDEN); + MDC.put(EPCommonSystemProperties.RESPONSE_CODE, Integer.toString(HttpServletResponse.SC_FORBIDDEN)); + } + if (invocator != null) { + logger.warn(EELFLoggerDelegate.errorLogger, + invocator + ", permissions problem, response status = " + response.getStatus()); + } + } + + public static int getExternalAppResponseCode() { + String responseCode = MDC.get(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE); + int responseCodeInt = 0; + try { + if (responseCode != null && responseCode != "") { + responseCodeInt = Integer.valueOf(responseCode); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getExternalAppResponseCode failed", e); + } + return responseCodeInt; + } + + // This method might be just for testing purposes. + public static void setExternalAppResponseCode(int responseCode) { + try { + String code = String.valueOf(responseCode); + MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE,code ); + code=StringUtils.EMPTY; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "setExternalAppResponseCode failed", e); + } + } + + public static String getHTTPStatusString(int httpStatusCode) { + String httpStatusString = "unknown_error"; + try { + httpStatusString = org.springframework.http.HttpStatus.valueOf(httpStatusCode).name(); + if (httpStatusString != null) { + httpStatusString = httpStatusString.toLowerCase(); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getHTTPStatusString failed", e); + } + return httpStatusString; + } + + public static String getFEErrorString(Boolean internal, int responseCode) { + // Return a String like the following: + // "Internal Ecomp Error: 500 internal_server_error" or + // "External App Error: 404 not_found" + // TODO: create our own Ecomp error codes, starting with 1000 and up. + String internalExternalString = internal ? "Ecomp Error: " : "App Error: "; + String httpStatusString = "unknown_error"; + try { + if (responseCode < 1000) { + httpStatusString = getHTTPStatusString(responseCode); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getFEErrorString failed", e); + } + String responseString = internalExternalString + responseCode + " " + httpStatusString; + return responseString; + } + + public static boolean isProductionBuild() { + boolean productionBuild = true; + String epVersion = EcompVersion.buildNumber; + if (epVersion != null) { + int buildNum = epVersion.lastIndexOf('.'); + if (buildNum > 0) { + int buildNumber = Integer.parseInt(epVersion.substring(buildNum + 1)); + if (buildNumber < 3000) // Production versions are 3000+, (ie + // 1.0.3003) + { + productionBuild = false; + } + } + } + return productionBuild; + } + + public static String getMyIpAdddress() { + InetAddress ip; + String localIp; + try { + ip = InetAddress.getLocalHost(); + localIp = ip.getHostAddress(); + } catch (UnknownHostException e) { + localIp = "unknown"; + logger.error(EELFLoggerDelegate.errorLogger, "getMyIpAdddress failed ", e); + } + return localIp; + } + + public static String getMyHostName() { + InetAddress ip; + String hostName; + try { + ip = InetAddress.getLocalHost(); + hostName = ip.getHostName(); + } catch (UnknownHostException e) { + hostName = "unknown"; + logger.error(EELFLoggerDelegate.errorLogger, "getMyHostName failed", e); + } + return hostName; + } + + /** + * Returns a default property if the expected one is not available + * + * @param property + * Key + * @param defaultValue + * default Value + * @return Default value if property is not defined or yields the empty string; + * else the property value. + */ + public static String getPropertyOrDefault(String property, String defaultValue) { + if (!SystemProperties.containsProperty(property)) + return defaultValue; + String value = SystemProperties.getProperty(property); + if (value == null || "".equals(value)) + return defaultValue; + return value; + } + + /** + * Calculates the time duration of a function call for logging purpose. It + * stores the result by using "MDC.put(SystemProperties.MDC_TIMER, + * timeDifference);" It is important to call + * "MDC.remove(SystemProperties.MDC_TIMER);" after this method call to clean up + * the record in MDC + * + * @param beginDateTime + * the given begin time for the call + * @param endDateTime + * the given end time for the call + * + */ + public static void calculateDateTimeDifferenceForLog(String beginDateTime, String endDateTime) { + if (beginDateTime != null && endDateTime != null) { + try { + SimpleDateFormat ecompLogDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); + + Date beginDate = ecompLogDateFormat.parse(beginDateTime); + Date endDate = ecompLogDateFormat.parse(endDateTime); + String timeDifference = String.format("%d", endDate.getTime() - beginDate.getTime()); + MDC.put(SystemProperties.MDC_TIMER, timeDifference); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "calculateDateTimeDifferenceForLog failed", e); + } + } + } + + /** + * Answers the protocol to use. + * + * @return Protocol name from property file; defaults to https. + */ + public static String widgetMsProtocol() { + return getPropertyOrDefault(EPCommonSystemProperties.WIDGET_MS_PROTOCOL, "https"); + } + + /** + * Answers the host to use. + * + * @return Host name from property file; defaults to localhost. + */ + public static String localOrDockerHost() { + return getPropertyOrDefault(EPCommonSystemProperties.WIDGET_MS_HOSTNAME, "localhost"); + } + + /** + * It returns headers where username and password of external central auth is + * encoded to base64 + * + * @return header which contains external central auth username and password + * base64 encoded + * @throws Exception + * if unable to decrypt the password + */ + public static HttpHeaders base64encodeKeyForAAFBasicAuth() throws Exception { + String userName = ""; + String decryptedPass = ""; + if (EPCommonSystemProperties.containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_USER_NAME) + && EPCommonSystemProperties.containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_PASSWORD)) { + decryptedPass = SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_PASSWORD); + userName = SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_USER_NAME); + } + String decPass = decrypted(decryptedPass); + String usernamePass = userName + ":" + decPass; + String encToBase64 = String.valueOf((DatatypeConverter.printBase64Binary(usernamePass.getBytes()))); + HttpHeaders headers = new HttpHeaders(); + headers.add("Authorization", "Basic " + encToBase64); + headers.setContentType(MediaType.APPLICATION_JSON); + return headers; + } + + private static String decrypted(String encrypted) throws Exception { + String result = ""; + if (encrypted != null && encrypted.length() > 0) { + try { + result = CipherUtil.decryptPKC(encrypted, SystemProperties.getProperty(SystemProperties.Decryption_Key)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword failed", e); + throw e; + } + } + return result; + } + + public static String truncateString(String originString, int size){ + if(originString.length()>=size){ + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(originString); + stringBuilder.setLength(size); + stringBuilder.append("..."); + return stringBuilder.toString(); + } + return originString; + } + + /** + * + * If function code value has any pipes it does pipe filter and + * returns value. + * + * @param functionCode + * @return function instance without pipe + */ + public static String getFunctionCode(String functionCode) { + String finalFunctionCodeVal = ""; + if (functionCode.contains(FUNCTION_PIPE)) { + int count = StringUtils.countMatches(functionCode, FUNCTION_PIPE); + if (count == 2) + finalFunctionCodeVal = functionCode.substring( + functionCode.indexOf(FUNCTION_PIPE) + 1, + functionCode.lastIndexOf(FUNCTION_PIPE)); + else + finalFunctionCodeVal = functionCode + .substring(functionCode.lastIndexOf(FUNCTION_PIPE) + 1); + } else{ + finalFunctionCodeVal = functionCode; + } + return finalFunctionCodeVal; + } + + /** + * + * If function code value has any pipes it does pipe filter and + * returns value. + * + * @param functionCode + * @return function Type without pipe + */ + public static String getFunctionType(String functionCode) { + String finalFunctionCodeVal = ""; + if (functionCode.contains(FUNCTION_PIPE)) { + int count = StringUtils.countMatches(functionCode, FUNCTION_PIPE); + if (count == 2){ + String[] getTypeValue = functionCode.split("\\"+FUNCTION_PIPE); + finalFunctionCodeVal = getTypeValue[0]; + } + } else{ + finalFunctionCodeVal = functionCode; + } + return finalFunctionCodeVal; + } + + /** + * + * If function code value has any pipes it does pipe filter and + * returns value. + * + * @param functionCode + * @return function Action without pipe + */ + public static String getFunctionAction(String functionCode) { + String finalFunctionCodeVal = ""; + if (functionCode.contains(FUNCTION_PIPE)) { + int count = StringUtils.countMatches(functionCode, FUNCTION_PIPE); + if (count == 2) + finalFunctionCodeVal = functionCode.substring( + functionCode.lastIndexOf(FUNCTION_PIPE)+1); + } else{ + finalFunctionCodeVal = functionCode; + } + return finalFunctionCodeVal; + } + + /** + * + * It check whether the external auth namespace is matching with current namepsace exists in local DB + * + * @param permTypeVal + * @param appNamespaceVal + * @return true or false + */ + public static boolean checkNameSpaceMatching(String permTypeVal, String appNamespaceVal) { + String[] typeNamespace = permTypeVal.split("\\."); + String[] appNamespace = appNamespaceVal.split("\\."); + boolean isNamespaceMatching = true; + for (int k = 0; k < appNamespace.length; k++) { + if (!appNamespace[k].equals(typeNamespace[k])) + isNamespaceMatching = false; + } + return isNamespaceMatching; + } + + public static boolean checkIfRemoteCentralAccessAllowed() { + boolean result = false; + String rmtCentralAccess = SystemProperties.getProperty(EPCommonSystemProperties.REMOTE_CENTRALISED_SYSTEM_ACCESS); + if(rmtCentralAccess == null) { + logger.error(EELFLoggerDelegate.errorLogger, "Please check in system.properties whether the property exists or not!"); + return false; + }else if(new Boolean(rmtCentralAccess)){ + logger.debug(EELFLoggerDelegate.debugLogger, "checkIfRemoteCentralAccessAllowed: {}",rmtCentralAccess); + result = true; + } + return result; + } + + /** + * + * It validates whether given string is JSON or not + * + * @param jsonInString + * @return true or false + */ + public static boolean isJSONValid(String jsonInString ) { + try { + final ObjectMapper mapper = new ObjectMapper(); + mapper.readTree(jsonInString); + return true; + } catch (IOException e) { + logger.error(EELFLoggerDelegate.errorLogger, "Failed to parse Json!", e); + return false; + } + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EcompVersion.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EcompVersion.java new file mode 100644 index 00000000..7e05754f --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EcompVersion.java @@ -0,0 +1,51 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.utils; + +// +// Hardcoded for now, wanted to use maven and resource file. Possibly just read +// pom.properties file with version added, but spent several hours already running +// into issues with that and other ideas not working. So, for 1604 deadlines I +// am just putting the version in the code here... for now. +// +public final class EcompVersion { + + // TODO - not used - manifest service reads from manifest + public static final String buildNumber="1610.1.999"; + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/HashMapFromList.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/HashMapFromList.java new file mode 100644 index 00000000..e31c73b5 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/HashMapFromList.java @@ -0,0 +1,115 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.utils; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.List; + +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +/** + * + * @author Vladimir Turovets This class is used to create HashMap + * from the list of T objects. We suppose that + * 1) T object contains field 'parmName' or getter 'getParmName()'. + * The value of object.parmName or object.getParmName() is used as + * a key in created hashMap. + * 2) for all objects in the list 'parmName' or getter + * 'getParmName().toString' has to be unique and not null. + * This class has one function only: + * HashMap hashMap(List list, String name) and returns + * hash map created from list. + * + * @param + * Type + */ +public class HashMapFromList { + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(HashMapFromList.class); + + public HashMap hashMap(List list, String name) { + HashMap result = new HashMap(); + if (list == null || list.size() == 0 || name == null) { + return result; + } + name = name.trim(); + if (name.length() > 0) { + T object = list.get(0); + try { + String parmName = name; + Field field = object.getClass().getField(parmName); + for (T obj : list) { + try { + Object o = field.get(obj); + if (o != null) + result.put(o.toString(), obj); + } catch (Exception e1) { + logger.error(EELFLoggerDelegate.errorLogger, "hashMap failed 1: object of class " + object.getClass().getName() + ", field " + parmName, e1); + return new HashMap(); + } + } + } catch (Exception e) { + String getterName = "get" + (name.length() == 1 ? name.toUpperCase() : (name.substring(0, 1).toUpperCase() + name.substring(1))); + try { + Class[] parmClasses = null; + Method method = object.getClass().getMethod(getterName, parmClasses); + Object[] parmValues = new Object[0]; + for (T obj : list) { + try { + Object o = method.invoke(obj, parmValues); + if (o != null) + result.put(o.toString(), obj); + } catch (Exception e2) { + logger.error(EELFLoggerDelegate.errorLogger, "hashMap failed 2: object of class " + object.getClass().getName() + ", method " + getterName, e2); + return new HashMap(); + } + } + } catch (Exception e3) { + logger.error(EELFLoggerDelegate.errorLogger, "hashMap failed 3: object of class " + object.getClass().getName() + ", bad field '" + name + "' or method '" + getterName + "()", e3); + return new HashMap(); + } + } + } + if (list.size() != result.size()) { + logger.warn(EELFLoggerDelegate.errorLogger, "Duplicated or empty keys were found!!!"); + } + return result; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/ParallelExecutor.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/ParallelExecutor.java new file mode 100644 index 00000000..b4ad9c9f --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/ParallelExecutor.java @@ -0,0 +1,101 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.utils; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +public abstract class ParallelExecutor { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ParallelExecutor.class); + + protected static abstract class ThreadOperation { + public abstract T execute(List parms); + } + + protected abstract ThreadOperation getThreadOperation(); + + private static class CallableOperationThread implements Callable { + + List parms; + + private ThreadOperation operation; + + public CallableOperationThread(ThreadOperation operation, List parms) { + this.parms = parms; + this.operation = operation; + } + + @Override + public T call() throws Exception { + return this.operation.execute(this.parms); + } + + } + + public List performAllOperations(int ThreadPoolSize, List> listOfParms) { + List result = new ArrayList(); + if (ThreadPoolSize > 0 && listOfParms != null) { + ExecutorService executor = Executors.newFixedThreadPool(ThreadPoolSize); + List> list = new ArrayList>(); + for (List parms : listOfParms) { + CallableOperationThread getter = new CallableOperationThread(this.getThreadOperation(), parms); + Future submit = executor.submit(getter); + list.add(submit); + } + for (Future future : list) { + try { + if (future != null) { + result.add(future.get()); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "performAllOperations failed", e); + } + } + executor.shutdown(); + } + return result; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/PortalConstants.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/PortalConstants.java new file mode 100644 index 00000000..7f924834 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/PortalConstants.java @@ -0,0 +1,50 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.utils; + +public interface PortalConstants { + public static final Long PORTAL_APP_ID = 1L; + public static final Long DEFAULT_NOTIFICATION_CREATOR = 1L; + public static final String REST_AUX_API = "/auxapi"; + public static final String PORTAL_AUX_API = "/portalApi"; + public static final Long ACCOUNT_ADMIN_ROLE_ID = 999L; + public static final Long SYS_ADMIN_ROLE_ID = 1L; + public static final String ADMIN_ROLE = "Account Administrator"; + public static final String PORTAL_ADMIN_ROLE = "System Administrator"; + public static final Integer AUDIT_LOG_COMMENT_SIZE = 990; +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/AdminAuthExtension.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/AdminAuthExtension.java new file mode 100644 index 00000000..7f401ff6 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/AdminAuthExtension.java @@ -0,0 +1,53 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.service; + +import org.onap.portalapp.portal.domain.EPUser; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + + +@Service("adminAuthExtension") +@Transactional +public class AdminAuthExtension { + + public void saveUserExtension(EPUser user){ + //app's developer implement their own logic here, like updating app's related tables + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/EPProfileService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/EPProfileService.java new file mode 100644 index 00000000..a08e2748 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/EPProfileService.java @@ -0,0 +1,54 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalsdk.core.domain.Profile; + + +public interface EPProfileService { + List findAll(); + + Profile getProfile(int id); + + EPUser getUser(String id); + + void saveUser(EPUser user); +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/EPProfileServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/EPProfileServiceImpl.java new file mode 100644 index 00000000..35090d94 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/EPProfileServiceImpl.java @@ -0,0 +1,89 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.service; + +import java.util.List; + +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.dao.ProfileDao; +import org.onap.portalsdk.core.domain.Profile; +import org.onap.portalsdk.core.service.DataAccessService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service("epProfileService") +@Transactional +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class EPProfileServiceImpl implements EPProfileService { + + @Autowired + private ProfileDao profileDao; + + @Autowired + private DataAccessService dataAccessService; + + @SuppressWarnings("unchecked") + public List findAll() { + return getDataAccessService().getList(Profile.class, null); + } + + public EPUser getUser(String userId) { + return (EPUser) getDataAccessService().getDomainObject(EPUser.class, Long.parseLong(userId), null); + } + + public void saveUser(EPUser user) { + getDataAccessService().saveDomainObject(user, null); + } + + public Profile getProfile(int id) { + return profileDao.getProfile(id); + } + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/RemoteWebServiceCallService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/RemoteWebServiceCallService.java new file mode 100644 index 00000000..91b9e0cf --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/RemoteWebServiceCallService.java @@ -0,0 +1,72 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.service; + +public interface RemoteWebServiceCallService { + + /** + * Answers whether the specified credentials match application information + * in the database. + * + * @param secretKey + * Key used to decrypt passwords; ignored if null. + * @param requestUebKey + * UEB key that identifies the application + * @param requestUserName + * User name for the application + * @param requestPassword + * Password for the application + * @return True if the UEB key and the credentials match the database + * entries; else false. + * @throws Exception + * If decryption fails. + */ + public boolean verifyRESTCredential(String secretKey, String requestUebKey, String requestUserName, + String requestPassword) throws Exception; + + /** + * + * @param requestUebKey + * UEB key + * @return boolean + * @throws Exception + * on error + */ + public boolean verifyAppKeyCredential(String requestUebKey) throws Exception; + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/CoreTimeoutHandler.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/CoreTimeoutHandler.java new file mode 100644 index 00000000..03bc7296 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/CoreTimeoutHandler.java @@ -0,0 +1,183 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.service.sessionmgt; + +import java.util.Calendar; +import java.util.Hashtable; +import java.util.Map; + +import javax.servlet.http.HttpSession; + +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalsdk.core.domain.sessionmgt.TimeoutVO; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.util.PortalApiConstants; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; + +@Service +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class CoreTimeoutHandler { + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(CoreTimeoutHandler.class); + + public static final Map sessionMap = new Hashtable(); + public static final Integer repeatInterval = 15 * 60; // 15 minutes + ObjectMapper mapper = new ObjectMapper(); + + public static void sessionCreated(String portalJSessionId, String jSessionId, HttpSession session) { + + storeMaxInactiveTime(session); + + // this key is a combination of portal jsession id and app session id + session.setAttribute(PortalApiConstants.PORTAL_JSESSION_ID, jSessionKey(jSessionId, portalJSessionId)); + sessionMap.put((String) session.getAttribute(PortalApiConstants.PORTAL_JSESSION_ID), session); + + } + + protected static void storeMaxInactiveTime(HttpSession session) { + + if (session.getAttribute(PortalApiConstants.GLOBAL_SESSION_MAX_IDLE_TIME) == null) + session.setAttribute(PortalApiConstants.GLOBAL_SESSION_MAX_IDLE_TIME, session.getMaxInactiveInterval()); + } + + public static void sessionDestroyed(HttpSession session) { + + try { + sessionMap.remove((String) session.getAttribute(PortalApiConstants.PORTAL_JSESSION_ID)); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "sessionDestroyed failed on session " + session.getId(), e); + } + + } + + public String gatherSessionExtenstions() { + + Map sessionTimeoutMap = new Hashtable(); + String jsonMap = ""; + + for (String jSessionKey : sessionMap.keySet()) { + + try { + // get the expirytime in seconds + HttpSession session = sessionMap.get(jSessionKey); + + Long lastAccessedTimeMilliSec = session.getLastAccessedTime(); + Long maxIntervalMilliSec = session.getMaxInactiveInterval() * 1000L; + // Long currentTimeMilliSec = Calendar.getInstance().getTimeInMillis() ; + // (maxIntervalMilliSec - (currentTimeMilliSec - lastAccessedTimeMilliSec) + ; + Calendar instance = Calendar.getInstance(); + instance.setTimeInMillis(session.getLastAccessedTime()); + logger.info(EELFLoggerDelegate.errorLogger, + "gatherSessionExtenstions: Session Management: Last Accessed time for " + jSessionKey + ": " + + instance.getTime()); + + Long sessionTimOutMilliSec = maxIntervalMilliSec + lastAccessedTimeMilliSec; + + sessionTimeoutMap.put(portalJSessionId(jSessionKey), + new TimeoutVO(jSessionId(jSessionKey), sessionTimOutMilliSec)); + + jsonMap = mapper.writeValueAsString(sessionTimeoutMap); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "gatherSessionExtenstions failed", e); + } + } + + return jsonMap; + + } + + public void updateSessionExtensions(String sessionTimeoutMapStr) throws Exception { + + Map sessionTimeoutMap; + try { + TypeReference> typeRef = new TypeReference>() { + }; + + sessionTimeoutMap = mapper.readValue(sessionTimeoutMapStr, typeRef); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "updateSessionExtensions failed 1", e); + return; + } + for (String jPortalSessionId : sessionTimeoutMap.keySet()) { + try { + + TimeoutVO extendedTimeoutVO = mapper + .readValue(mapper.writeValueAsString(sessionTimeoutMap.get(jPortalSessionId)), TimeoutVO.class); + HttpSession session = sessionMap.get(jSessionKey(extendedTimeoutVO.getjSessionId(), jPortalSessionId)); + + if (session == null) { + continue; + } + + Long lastAccessedTimeMilliSec = session.getLastAccessedTime(); + Long maxIntervalMilliSec = session.getMaxInactiveInterval() * 1000L; + Long sessionTimOutMilliSec = maxIntervalMilliSec + lastAccessedTimeMilliSec; + + Long maxTimeoutTimeMilliSec = extendedTimeoutVO.getSessionTimOutMilliSec(); + if (maxTimeoutTimeMilliSec > sessionTimOutMilliSec) { + logger.debug(EELFLoggerDelegate.debugLogger, + "updateSessionExtensions: Session Management: updated session max idle time"); + session.setMaxInactiveInterval((int) (maxTimeoutTimeMilliSec - lastAccessedTimeMilliSec) / 1000); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, + "updateSessionExtensions failed", e); + } + + } + + } + + protected static String jSessionKey(String jSessionId, String portalJSessionId) { + return portalJSessionId + "-" + jSessionId; + } + + protected String portalJSessionId(String jSessionKey) { + return jSessionKey.split("-")[0]; + } + + protected String jSessionId(String jSessionKey) { + return jSessionKey.split("-")[1]; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/ManageService.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/ManageService.java new file mode 100644 index 00000000..3c08f910 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/ManageService.java @@ -0,0 +1,125 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.service.sessionmgt; + +import java.text.ParseException; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.service.EPAppService; +import org.onap.portalapp.portal.transport.OnboardingApp; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.listener.PortalTimeoutHandler; +import org.onap.portalsdk.core.util.SystemProperties; +import org.quartz.CronExpression; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +@Service("manageService") +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class ManageService implements PortalTimeoutHandler.SessionCommInf { + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ManageService.class); + + @Autowired + private EPAppService appService; + + @Autowired + private SessionCommunication sessionCommunication; + + public Integer fetchSessionSlotCheckInterval(String... params) { + + String defaultCronExpressionStr = "0 0/5 * * * ? *"; + String cronExpressionStr = SystemProperties.getProperty(SystemProperties.SESSIONTIMEOUT_FEED_CRON); + + if (cronExpressionStr == null) { + cronExpressionStr = defaultCronExpressionStr; + } + + CronExpression cal = null; + try { + cal = new CronExpression(cronExpressionStr); + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + final Date nowTime = Calendar.getInstance().getTime(); + Date nextTime = cal.getNextValidTimeAfter(nowTime); + Date nextNextTime = cal.getNextValidTimeAfter(nextTime); + + final int timeDiff = (int)(nextNextTime.getTime()-nextTime.getTime()); + logger.debug(EELFLoggerDelegate.debugLogger, "Time interval between subsequent session checks " + timeDiff); + + return timeDiff; + } + + public void extendSessionTimeOuts(String... params) { + try { + String sessionMap = params[3]; + + logger.debug(EELFLoggerDelegate.debugLogger, "Extending the App sessions for last minute request: " + sessionMap); + + if (StringUtils.isEmpty(sessionMap)) { + logger.error(EELFLoggerDelegate.errorLogger, "extendSessionTimeOuts: Skipping session updates since the portal session value is empty."); + } else { + List appList = appService.getEnabledNonOpenOnboardingApps(); + for (OnboardingApp onApp : appList) { + sessionCommunication.pingSession(onApp, sessionMap); + } + updateSessionExtensions(sessionMap); + sessionCommunication.clear(false); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "extendSessionTimeOuts failed", e); + } + } + + public String gatherSessionExtenstions() { + return PortalTimeoutHandler.gatherSessionExtensions(); + } + + public void updateSessionExtensions(String sessionTimeoutMapStr) throws Exception { + PortalTimeoutHandler.updateSessionExtensions(sessionTimeoutMapStr); + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/SessionCommunication.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/SessionCommunication.java new file mode 100644 index 00000000..ee525796 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/SessionCommunication.java @@ -0,0 +1,290 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.service.sessionmgt; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.UUID; + +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.portal.logging.aop.EPAuditLog; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.transport.OnboardingApp; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.exception.UrlAccessRestrictedException; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.slf4j.MDC; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import com.att.eelf.configuration.Configuration; + +@Service("sessionCommunication") +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +public class SessionCommunication { + EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SessionCommunication.class); + + @EPAuditLog + public String sendGet(OnboardingApp app) throws Exception { + String appResponse = ""; + String appName = ""; + int responseCode = 0; + if (app != null && app.name != null && app.name != "") { + try { + appName = app.name; + String url = app.restUrl + "/sessionTimeOuts"; + String encriptedPwdDB = app.appPassword; + String appUserName = app.username; + + setLocalMDCContext(app, "/sessionTimeOuts", url); + + URL obj = new URL(url); + + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + + // optional default is GET + con.setRequestMethod("GET"); + con.setConnectTimeout(3000); + con.setReadTimeout(8000); + // add request header + con.setRequestProperty("username", appUserName); + con.setRequestProperty("password", encriptedPwdDB); + + // con.set + responseCode = con.getResponseCode(); + logger.debug(EELFLoggerDelegate.debugLogger, "Response Code : " + responseCode); + + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + + in.close(); + appResponse = response.toString(); + } catch (UrlAccessRestrictedException e) { + responseCode = HttpServletResponse.SC_UNAUTHORIZED; + logger.error(EELFLoggerDelegate.errorLogger, String.format( + "SessionCommunication.sendGet received an un-authorized exception. AppName: %s", appName)); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError, e); + } catch (Exception e) { + responseCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; + String message = String.format( + "SessionCommunication.sendGet encountered an Exception. AppName: %s, Details: %s", appName, + e.toString()); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHttpConnectionError, e); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + } finally { + EcompPortalUtils.setExternalAppResponseCode(responseCode); + } + } else { + logger.error(EELFLoggerDelegate.errorLogger, "SessionCommunication sendGet: app is null"); + } + return appResponse; + } + + @EPAuditLog + public Boolean pingSession(OnboardingApp app, String sessionTimeoutMap) throws Exception { + String appName = ""; + int responseCode = 0; + try { + if (app == null) + throw new Exception("SessionCommunication.pingSession: app is null"); + if (app != null && app.name != null && app.name != "") { + appName = app.name; + } + String url = app.restUrl + "/updateSessionTimeOuts"; + String encriptedPwdDB = app.appPassword; + String appUserName = app.username; + + setLocalMDCContext(app, "/updateSessionTimeOuts", url); + + URL obj = new URL(url); + + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + + // optional default is GET + con.setRequestMethod("POST"); + con.setConnectTimeout(3000); + con.setReadTimeout(15000); + + // add request header + con.setRequestProperty("username", appUserName); + con.setRequestProperty("password", encriptedPwdDB); + + con.setRequestProperty("sessionMap", sessionTimeoutMap); + con.setDoInput(true); + con.setDoOutput(true); + con.getOutputStream().write(sessionTimeoutMap.getBytes()); + con.getOutputStream().flush(); + con.getOutputStream().close(); + + responseCode = con.getResponseCode(); + logger.debug(EELFLoggerDelegate.debugLogger, "Response Code : " + responseCode); + } catch (UrlAccessRestrictedException e) { + responseCode = HttpServletResponse.SC_UNAUTHORIZED; + String message = String.format( + "SessionCommunication.pingSession received an un-authorized exception. AppName: %s", appName); + logger.error(EELFLoggerDelegate.errorLogger, message); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError, e); + } catch (Exception e) { + responseCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; + String message = String.format( + "SessionCommunication.pingSession encountered an Exception. AppName: %s, Details: %s", appName, e.toString()); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHttpConnectionError, e); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + } finally { + EcompPortalUtils.setExternalAppResponseCode(responseCode); + } + + return true; + } + + @EPAuditLog + public Boolean timeoutSession(OnboardingApp app, String portalJSessionId) throws Exception { + String appName = "Unknwon"; + int responseCode = 0; + if (app != null && app.name != null && app.name != "") { + try { + appName = app.name; + String url = app.restUrl + "/timeoutSession" + "?portalJSessionId=" + portalJSessionId; + + String encriptedPwdDB = app.appPassword; + String appUserName = app.username; + // String decreptedPwd = CipherUtil.decrypt(encriptedPwdDB, + // SystemProperties.getProperty(SystemProperties.Decryption_Key)); + + setLocalMDCContext(app, "/timeoutSession", url); + + URL obj = new URL(url); + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + + // optional default is GET + con.setRequestMethod("POST"); + con.setConnectTimeout(3000); + con.setReadTimeout(15000); + + // add request header + con.setRequestProperty("username", appUserName); + con.setRequestProperty("password", encriptedPwdDB); + + // con.setRequestProperty("portalJSessionId", portalJSessionId); + con.setDoInput(true); + con.setDoOutput(true); + con.getOutputStream().flush(); + con.getOutputStream().close(); + + responseCode = con.getResponseCode(); + logger.debug(EELFLoggerDelegate.debugLogger, "Response Code : " + responseCode); + } catch (UrlAccessRestrictedException e) { + responseCode = HttpServletResponse.SC_UNAUTHORIZED; + String message = String.format( + "SessionCommunication.timeoutSession received an un-authorized exception. AppName: %s", + appName); + logger.error(EELFLoggerDelegate.errorLogger, message); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError, e); + } catch (Exception e) { + responseCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; + String message = String.format( + "SessionCommunication.timeoutSession encountered an Exception. AppName: %s, Details: %s", + appName, e.toString()); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHttpConnectionError, e); + logger.error(EELFLoggerDelegate.errorLogger, message, e); + } finally { + EcompPortalUtils.setExternalAppResponseCode(responseCode); + } + } else { + logger.error(EELFLoggerDelegate.errorLogger, "SessionCommunication pingSession: app is null"); + } + return true; + } + + @EPMetricsLog + private void setLocalMDCContext(OnboardingApp app, String restPath, String url) { + setRequestId(); + MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTP); + if (url != null && url.contains("https")) { + MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTPS); + } + MDC.put(EPCommonSystemProperties.FULL_URL, url); + MDC.put(EPCommonSystemProperties.TARGET_ENTITY, app.myLoginsAppName); + MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, restPath); + } + + /** + * Generates request id, service name fields and loads them into MDC, as these + * values could be empty as these session timeout requests are generated at + * scheduled intervals using quartz scheduler. + */ + @EPMetricsLog + public void setRequestId() { + String requestId = MDC.get(Configuration.MDC_KEY_REQUEST_ID); + if (StringUtils.isEmpty(requestId)) { + MDC.put(Configuration.MDC_KEY_REQUEST_ID, UUID.randomUUID().toString()); + } + + MDC.put(Configuration.MDC_SERVICE_NAME, "/quartz/keepSessionAlive"); + MDC.put(EPCommonSystemProperties.PARTNER_NAME, EPCommonSystemProperties.ECOMP_PORTAL_BE); + } + + /** + * Remove the values from MDC as these requests are executed at regular + * intervals based on quartz rather incoming REST API requests. + * + * @param bAll + */ + @EPMetricsLog + public void clear(Boolean bAll) { + MDC.remove(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE); + if (bAll) { + MDC.remove(Configuration.MDC_KEY_REQUEST_ID); + MDC.remove(Configuration.MDC_SERVICE_NAME); + MDC.remove(EPCommonSystemProperties.PARTNER_NAME); + } + } +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/TimeoutHandler.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/TimeoutHandler.java new file mode 100644 index 00000000..e795e98a --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/service/sessionmgt/TimeoutHandler.java @@ -0,0 +1,269 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.service.sessionmgt; + +import java.util.Hashtable; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpSession; + +import org.quartz.DisallowConcurrentExecution; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.PersistJobDataAfterExecution; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.scheduling.quartz.QuartzJobBean; +import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.logging.format.EPAppMessagesEnum; +import org.onap.portalapp.portal.logging.logic.EPLogUtil; +import org.onap.portalapp.portal.service.EPAppService; +import org.onap.portalapp.portal.transport.OnboardingApp; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.domain.sessionmgt.TimeoutVO; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.onboarding.util.PortalApiConstants; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +/** + * Executed periodically by Quartz to discover remote application sessions and + * update timeouts suitably. + */ +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +@EPMetricsLog +public class TimeoutHandler extends QuartzJobBean { + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(TimeoutHandler.class); + + private ObjectMapper mapper = new ObjectMapper(); + + /** + * Supports static call {@link #timeoutSessions(HttpSession)} + */ + private static List onboardedAppList = null; + + @Autowired + private SessionCommunication sessionCommunication; + + @Override + protected void executeInternal(JobExecutionContext context) throws JobExecutionException { + try { + //Create a request id if there is none available, + //and which will internally be used when making + //session extended timeout calls to the partner applications. + if (getSessionCommunication()!=null) { + getSessionCommunication().setRequestId(); + } + logger.info(EELFLoggerDelegate.debugLogger, "Quartz Cronjob for Session Management begins"); + + ManageService manageService = (ManageService) applicationContext.getBean("manageService"); + EPAppService appService = (EPAppService) applicationContext.getBean("epAppService"); + + List appList = appService.getEnabledNonOpenOnboardingApps(); + onboardedAppList = appList; + TypeReference> typeRef = new TypeReference>() { + }; + String portalJsonSessionStr; + Map portalSessionTimeoutMap = null; + + portalJsonSessionStr = manageService.gatherSessionExtenstions(); + if (portalJsonSessionStr == null || portalJsonSessionStr == "") { + logger.error(EELFLoggerDelegate.errorLogger, "Session Management: Portal session information is empty."); + return; + } + + try { + portalSessionTimeoutMap = mapper.readValue(portalJsonSessionStr, typeRef); + } catch (JsonMappingException | JsonParseException je) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, je); + logger.error(EELFLoggerDelegate.errorLogger, "Session Management: JSON Mapping Exception occurred while gathering the Session", je); + return; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "Session Management: Error while gather Session from portal", e); + return; + } + + Map> appSessionTimeOutMap = new Hashtable>(); + // determine the Max TimeOut Time for each of the managed sessions + for (OnboardingApp app : appList) { + if (app.restUrl == null) { + logger.info(EELFLoggerDelegate.debugLogger, "Session Management: null restUrl, not fetching from app " + app.name); + continue; + } + logger.info(EELFLoggerDelegate.debugLogger, "Session Management: Calling App " + app.name + " at URL " + app.restUrl); + String jsonSessionStr = fetchAppSessions(app); + logger.info(EELFLoggerDelegate.debugLogger, "Session Management: App " + app.name + " returned " + jsonSessionStr); + if (jsonSessionStr == null || jsonSessionStr.isEmpty()) + continue; + + try { + Map sessionTimeoutMap = mapper.readValue(jsonSessionStr, typeRef); + appSessionTimeOutMap.put(app.id, sessionTimeoutMap); + for (String portalJSessionId : sessionTimeoutMap.keySet()) { + final TimeoutVO maxTimeoutVO = portalSessionTimeoutMap.get(portalJSessionId); + final TimeoutVO compareTimeoutVO = sessionTimeoutMap.get(portalJSessionId); + if (maxTimeoutVO != null && compareTimeoutVO != null) { + if (maxTimeoutVO.compareTo(compareTimeoutVO) < 0) + portalSessionTimeoutMap.get(portalJSessionId) + .setSessionTimOutMilliSec(compareTimeoutVO.getSessionTimOutMilliSec()); + } + } + } catch (JsonParseException | JsonMappingException e) { + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); + logger.error(EELFLoggerDelegate.errorLogger, + "JSON Mapping/Processing Exception occurred while mapping/parsing the jsonSessionStr", e); + continue; + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while mapping/parsing the jsonSessionStr", e); + continue; + } + + } + + // post the updated session timeouts back to the Apps + for (OnboardingApp app : appList) { + if (app.restUrl == null) { + logger.warn(EELFLoggerDelegate.errorLogger, "Session Management: null restUrl, not posting back to app " + app.name); + continue; + } + + Map sessionTimeoutMap = appSessionTimeOutMap.get(app.id); + if (sessionTimeoutMap == null || sessionTimeoutMap.isEmpty()) + continue; + + for (String portalJSessionId : sessionTimeoutMap.keySet()) { + try { + final TimeoutVO maxTimeoutVO = portalSessionTimeoutMap.get(portalJSessionId); + final TimeoutVO setTimeoutVO = sessionTimeoutMap.get(portalJSessionId); + if (maxTimeoutVO == null || setTimeoutVO == null) { + String message = String.format( + "Session Management: Failed to update the session timeouts for the app: %s and the sessionId: %s.", + app.name, portalJSessionId); + logger.warn(EELFLoggerDelegate.errorLogger, message); + continue; + } + setTimeoutVO.setSessionTimOutMilliSec(maxTimeoutVO.getSessionTimOutMilliSec()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "Session Management: error while updating the session timeout map", e); + continue; + } + } + logger.info(EELFLoggerDelegate.debugLogger, "Session Management: Updating App " + app.restUrl); + String sessionTimeoutMapStr = ""; + try { + sessionTimeoutMapStr = mapper.writeValueAsString(sessionTimeoutMap); + } catch (JsonProcessingException je) { + logger.error(EELFLoggerDelegate.errorLogger, "executeInternal failed while processing sessionTimeOutMap object to a String", je); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, je); + } + pingAppSessions(app, sessionTimeoutMapStr); + } + String portalSessionTimeoutMapStr = ""; + try { + portalSessionTimeoutMapStr = mapper.writeValueAsString(portalSessionTimeoutMap); + } catch (JsonProcessingException je) { + logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while processing portalSessionTimeOutMap object to a String", je); + EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, je); + } + manageService.updateSessionExtensions(portalSessionTimeoutMapStr); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "************************ Session Management: error in managing session timeouts", e); + } finally { + getSessionCommunication().clear(true); + } + } + + private String fetchAppSessions(OnboardingApp app) throws Exception { + String jsonSessionValue = getSessionCommunication().sendGet(app); + getSessionCommunication().clear(false); + return jsonSessionValue; + } + + private void pingAppSessions(OnboardingApp app, String sessionTimeoutMapStr) throws Exception { + getSessionCommunication().pingSession(app, sessionTimeoutMapStr); + getSessionCommunication().clear(false); + } + + public void timeoutSessions(HttpSession session) throws Exception { + String portalJSessionId = portalJSessionId(session); + if (onboardedAppList == null) + return; + + for (OnboardingApp app : onboardedAppList) { + getSessionCommunication().timeoutSession(app, portalJSessionId); + getSessionCommunication().clear(false); + } + } + + protected static String portalJSessionId(HttpSession session) { + final Object attribute = session.getAttribute(PortalApiConstants.PORTAL_JSESSION_ID); + if (attribute == null) + return ""; + String jSessionKey = (String) attribute; + return jSessionKey.split("-")[0]; + } + + private static ApplicationContext applicationContext; + + public static void setApplicationContext(ApplicationContext _applicationContext) { + applicationContext = _applicationContext; + } + + public SessionCommunication getSessionCommunication() { + if(sessionCommunication == null){ + if (applicationContext != null) + sessionCommunication = (SessionCommunication)applicationContext.getBean("sessionCommunication"); + } + + return sessionCommunication; + } + + public void setSessionCommunication(SessionCommunication sessionCommunication) { + this.sessionCommunication = sessionCommunication; + } + +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/util/EPUserUtils.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/util/EPUserUtils.java new file mode 100644 index 00000000..2292934b --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/util/EPUserUtils.java @@ -0,0 +1,401 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.util; + +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import java.util.UUID; +import java.util.regex.Pattern; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.binary.Hex; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserApp; +import org.onap.portalapp.portal.exceptions.RoleFunctionException; +import org.onap.portalapp.portal.service.EPRoleFunctionService; +import org.onap.portalsdk.core.domain.RoleFunction; +import org.onap.portalsdk.core.exception.SessionExpiredException; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.menu.MenuBuilder; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.AppUtils; +import org.springframework.beans.factory.annotation.Autowired; + +public class EPUserUtils { + + private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPUserUtils.class); + + private final static Long ACCOUNT_ADMIN_ROLE_ID = 999L; + + public static final String ALL_ROLE_FUNCTIONS = "allRoleFunctions"; + + // These decode values are based on HexDecoder + private static final String decodeValueOfForwardSlash = "2f"; + private static final String decodeValueOfHyphen = "2d"; + private static final String decodeValueOfAsterisk = "2a"; + + private static DataAccessService dataAccessService; + + /** + * Gets the EPUser object from the session. + * + * @param request + * HttpServletRequest + * @return EPUser object that was created upon login + * @throws SessionExpiredException + * if no session exists. + */ + public static EPUser getUserSession(HttpServletRequest request) { + HttpSession session = AppUtils.getSession(request); + if (session == null) + throw new SessionExpiredException(); + return (EPUser) session.getAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME)); + } + + /** + * Establishes the user's portal session + * + * @param request + * HttpServletRequest + * @param user + * EPUser + * @param applicationMenuData + * Menu data + * @param businessDirectMenuData + * Menu data + * @param loginMethod_ignored + * How the user authenticated; ignored + * @param ePRoleFunctionService + * role function service + * @throws DecoderException + */ + @SuppressWarnings("rawtypes") + public static void setUserSession(HttpServletRequest request, EPUser user, Set applicationMenuData, + Set businessDirectMenuData, String loginMethod_ignored, EPRoleFunctionService ePRoleFunctionService) throws RoleFunctionException { + HttpSession session = request.getSession(true); + + // clear the current user session to avoid any conflicts + EPUserUtils.clearUserSession(request); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); + + setAllRoleFunctions(ePRoleFunctionService.getRoleFunctions(), session); + + ePRoleFunctionService.getRoleFunctions(request, user); + + // truncate the role (and therefore the role function) data to save + // memory in the session + user.setEPRoles(null); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_NAME), user.getFullName()); + + ServletContext context = session.getServletContext(); + int licenseVerificationFlag = 3; + try { + licenseVerificationFlag = (Integer) context.getAttribute("licenseVerification"); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "setUserSession failed to get licenseVerification attribute", + e); + } + session.setAttribute(SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME), "My Portal"); + session.setAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME), + MenuBuilder.filterMenu(applicationMenuData, request)); + session.setAttribute(SystemProperties.getProperty(SystemProperties.BUSINESS_DIRECT_MENU_ATTRIBUTE_NAME), + MenuBuilder.filterMenu(businessDirectMenuData, request)); + } + + /** + * Creates a set of role function names and stores the set as a session + * attribute. + * + * @param allRoleFunctions + * List of role functions. + * @param session + * HttpSession + * @throws DecoderException + */ + private static void setAllRoleFunctions(List allRoleFunctions, HttpSession session) throws RoleFunctionException { + if (allRoleFunctions == null) + return; + Set roleFnSet = new HashSet(); + for (RoleFunction roleFn : allRoleFunctions){ + roleFnSet.add(decodeFunctionCode(roleFn.getCode())); + } + session.setAttribute(ALL_ROLE_FUNCTIONS, roleFnSet); + } + + + public static String decodeFunctionCode(String str) throws RoleFunctionException{ + String decodedString = str; + List decodingList = new ArrayList<>(); + decodingList.add(Pattern.compile(decodeValueOfForwardSlash)); + decodingList.add(Pattern.compile(decodeValueOfHyphen)); + decodingList.add(Pattern.compile(decodeValueOfAsterisk)); + for (Pattern xssInputPattern : decodingList) { + try { + decodedString = decodedString.replaceAll("%" + xssInputPattern, + new String(Hex.decodeHex(xssInputPattern.toString().toCharArray()))); + } catch (DecoderException e) { + logger.error(EELFLoggerDelegate.errorLogger, "Failed to decode the Rolefunction: "+ str, + e); + throw new RoleFunctionException("decode failed", e); + } + } + + return decodedString; + } + + /** + * Removes all stored attributes from the user's session + * + * @param request + * HttpServletRequest + * @throws SessionExpiredException + * if no session exists + */ + private static void clearUserSession(HttpServletRequest request) { + HttpSession session = AppUtils.getSession(request); + if (session == null) + throw new SessionExpiredException(); + + // removes all stored attributes from the current user's session + session.removeAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME)); + session.removeAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME)); + session.removeAttribute(SystemProperties.getProperty(SystemProperties.BUSINESS_DIRECT_MENU_ATTRIBUTE_NAME)); + session.removeAttribute(SystemProperties.getProperty(SystemProperties.ROLES_ATTRIBUTE_NAME)); + session.removeAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME)); + } + + /** + * Gets role information from the user session, in the cached user object. As a + * side effect sets a session variable with the roles. + * + * @param request + * HttpServletRequest + * @return Map of role ID to role object + */ + @SuppressWarnings("rawtypes") + public static HashMap getRoles(HttpServletRequest request) { + HashMap roles = null; + + HttpSession session = AppUtils.getSession(request); + roles = (HashMap) session.getAttribute(SystemProperties.getProperty(SystemProperties.ROLES_ATTRIBUTE_NAME)); + + // if roles are not already cached, let's grab them from the user + // session + if (roles == null) { + EPUser user = getUserSession(request); + + // get all user roles (including the tree of child roles) + roles = getAllUserRoles(user); + + session.setAttribute(SystemProperties.getProperty(SystemProperties.ROLES_ATTRIBUTE_NAME), roles); + } + + return roles; + } + + /** + * Builds a map of role ID to role object. + * + * @param user + * EPUser + * @return Map of role ID to role object + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + private static HashMap getAllUserRoles(EPUser user) { + HashMap roles = new HashMap(); + Iterator i = user.getEPRoles().iterator(); + + while (i.hasNext()) { + EPRole role = (EPRole) i.next(); + + if (role.getActive()) { + roles.put(role.getId(), role); + + // let's take a recursive trip down the tree to add all child + // roles + addChildRoles(role, roles); + } + } + + // Additionally; the account admin role is overloaded between ecomp + // portal and partners; lets also include that + Iterator appRolesIterator = user.getEPUserApps().iterator(); + while (appRolesIterator.hasNext()) { + EPRole role = (EPRole) appRolesIterator.next().getRole(); + + if (role.getActive() && role.getId().equals(ACCOUNT_ADMIN_ROLE_ID)) { + roles.put(role.getId(), role); + + // let's take a recursive trip down the tree to add all child + // roles + addChildRoles(role, roles); + } + } + + return roles; + } + + /** + * Adds all child roles of the specified role to the map of roles. + * + * @param role + * EPRole + * @param roles + * Maps role id to role object + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + private static void addChildRoles(EPRole role, HashMap roles) { + Set childRoles = role.getChildRoles(); + + if (childRoles != null && childRoles.size() > 0) { + Iterator j = childRoles.iterator(); + while (j.hasNext()) { + EPRole childRole = (EPRole) j.next(); + + if (childRole.getActive()) { + roles.put(childRole.getId(), childRole); + + addChildRoles(childRole, roles); + } + } + } + + } + + public static boolean hasRole(EPUser user, String roleKey) { + return getAllUserRoles(user).keySet().contains(new Long(roleKey)); + } + + public static DataAccessService getDataAccessService() { + return dataAccessService; + } + + @Autowired + public void setDataAccessService(DataAccessService dataAccessService) { + EPUserUtils.dataAccessService = dataAccessService; + } + + /** + * Gets the user's ID from the user object in the session + * + * @param request + * HttpServletRequest + * @return Integer ID of current user + */ + public static int getUserId(HttpServletRequest request) { + return getUserIdAsLong(request).intValue(); + } + + /** + * Gets the user's ID from the user object in the session + * + * @param request + * HttpServletREquest + * @return Long ID of current user + */ + public static Long getUserIdAsLong(HttpServletRequest request) { + Long userId = new Long(SystemProperties.getProperty(SystemProperties.APPLICATION_USER_ID)); + if (request != null) { + if (getUserSession(request) != null) { + userId = getUserSession(request).getId(); + } + } + return userId; + } + + /** + * Gets the request ID from the request. + * + * @param request + * HttpServletRequest + * @return Request ID + */ + public static String getRequestId(HttpServletRequest request) { + Enumeration headerNames = request.getHeaderNames(); + + String requestId = ""; + try { + while (headerNames.hasMoreElements()) { + String headerName = (String) headerNames.nextElement(); + logger.debug(EELFLoggerDelegate.debugLogger, + "One header is " + headerName + " : " + request.getHeader(headerName)); + if (headerName.equalsIgnoreCase(SystemProperties.ECOMP_REQUEST_ID)) { + requestId = request.getHeader(headerName); + break; + } + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getRequestId failed", e); + } + + return (requestId.isEmpty() ? UUID.randomUUID().toString() : requestId); + } + + /** + * Gets the full URL from the request. + * + * @param request + * HttpServletRequest + * @return Full URL + */ + public static String getFullURL(HttpServletRequest request) { + if (request != null) { + StringBuffer requestURL = request.getRequestURL(); + String queryString = request.getQueryString(); + + if (queryString == null) { + return requestURL.toString(); + } else { + return requestURL.append('?').append(queryString).toString(); + } + } + return ""; + } + +} diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/util/SystemType.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/util/SystemType.java new file mode 100644 index 00000000..bf277491 --- /dev/null +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/util/SystemType.java @@ -0,0 +1,44 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.util; + +public enum SystemType { + + APPLICATION, +// SYSTEM +} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/command/EPLoginBean.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/command/EPLoginBean.java deleted file mode 100644 index 54a17fc2..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/command/EPLoginBean.java +++ /dev/null @@ -1,204 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.command; - -import java.util.Set; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalsdk.core.domain.support.FusionCommand; - -public class EPLoginBean extends FusionCommand { - private String loginId; - private String loginPwd; - private String hrid; - private String orgUserId; - private String siteAccess; - private String loginErrorMessage; - - private EPUser user; - private Set menu; - private Set businessDirectMenu; - - /** - * getLoginId - * - * @return String - */ - public String getLoginId() { - return loginId; - } - - /** - * getLoginPwd - * - * @return String - */ - public String getLoginPwd() { - return loginPwd; - } - - /** - * getMenu - * - * @return Set - */ - public Set getMenu() { - return menu; - } - - /** - * getUser - * - * @return User - */ - public EPUser getUser() { - return user; - } - - /** - * getHrid - * - * @return String - */ - public String getHrid() { - return hrid; - } - - /** - * getSiteAccess - * - * @return String - */ - public String getSiteAccess() { - return siteAccess; - } - - /** - * getBusinessDirectMenu - * - * @return Set - */ - public Set getBusinessDirectMenu() { - return businessDirectMenu; - } - - /** - * getLoginErrorMessage - * - * @return String - */ - public String getLoginErrorMessage() { - return loginErrorMessage; - } - - public String getOrgUserId() { - return orgUserId; - } - - /** - * setLoginId - * - * @param loginId String - */ - public void setLoginId(String loginId) { - this.loginId = loginId; - } - - /** - * setLoginPwd - * - * @param loginPwd String - */ - public void setLoginPwd(String loginPwd) { - this.loginPwd = loginPwd; - } - - public void setMenu(Set menu) { - this.menu = menu; - } - - /** - * setUser - * - * @param user User - */ - public void setUser(EPUser user) { - this.user = user; - } - - /** - * setHrid - * - * @param hrid String - */ - public void setHrid(String hrid) { - this.hrid = hrid; - } - - /** - * setSiteAccess - * - * @param siteAccess String - */ - public void setSiteAccess(String siteAccess) { - this.siteAccess = siteAccess; - } - - /** - * setBusinessDirectMenu - * - * @param businessDirectMenu Set - */ - public void setBusinessDirectMenu(Set businessDirectMenu) { - this.businessDirectMenu = businessDirectMenu; - } - - /** - * setLoginErrorMessage - * - * @param loginErrorMessage String - */ - public void setLoginErrorMessage(String loginErrorMessage) { - this.loginErrorMessage = loginErrorMessage; - } - - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } -} - diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/command/PostSearchBean.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/command/PostSearchBean.java deleted file mode 100644 index 38aae80f..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/command/PostSearchBean.java +++ /dev/null @@ -1,391 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.command; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalsdk.core.command.support.SearchBase; - -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - -@JsonSerialize -public class PostSearchBean extends SearchBase { - - private EPUser user = null; - private EPUser userOrig = null; - private String[] selected; - private String[] postHrid; - private String[] postOrgUserId; - private String[] postFirstName; - private String[] postLastName; - private String[] postOrgCode; - private String[] postPhone; - private String[] postEmail; - private String[] postAddress1; - private String[] postAddress2; - private String[] postCity; - private String[] postState; - private String[] postZipCode; - private String[] postLocationClli; - private String[] postBusinessCountryCode; - private String[] postBusinessCountryName; - private String[] postDepartment; - private String[] postDepartmentName; - private String[] postBusinessUnit; - private String[] postBusinessUnitName; - private String[] postJobTitle; - private String[] postOrgManagerUserId; - private String[] postCommandChain; - private String[] postCompanyCode; - private String[] postCompany; - private String[] postCostCenter; - private String[] postSiloStatus; - private String[] postFinancialLocCode; - - - public PostSearchBean() { - this(null); - } // PostSearchBean - - public PostSearchBean(List items) { - super(items); - - user = new EPUser(); - userOrig = new EPUser(); - - setSortBy1(""); - setSortBy1Orig(""); - - //setSortByList(...); - } // PostSearchBean - - - public String getFirstName() { return user.getFirstName(); } - public String getLastName() { return user.getLastName(); } - public String getHrid() { return user.getHrid(); } - public String getOrgUserId() { return user.getOrgUserId(); } - public String getOrgCode() { return user.getOrgCode(); } - public String getEmail() { return user.getEmail(); } - public String getOrgManagerUserId() { return user.getOrgManagerUserId(); } - - public String getFirstNameOrig() { return user.getFirstName(); } - public String getLastNameOrig() { return user.getLastName(); } - public String getHridOrig() { return user.getHrid(); } - public String getOrgUserIdOrig() { return user.getOrgUserId(); } - public String getOrgCodeOrig() { return user.getOrgCode(); } - public String getEmailOrig() { return user.getEmail(); } - public String getOrgManagerUserIdOrig() { return user.getOrgManagerUserId(); } - - - public EPUser getUser() { return user; } - - public String[] getPostEmail() { - return postEmail; - } - - public String[] getPostFirstName() { - return postFirstName; - } - - public String[] getPostHrid() { - return postHrid; - } - - public String[] getPostLastName() { - return postLastName; - } - - public String[] getPostOrgCode() { - return postOrgCode; - } - - public String[] getPostPhone() { - return postPhone; - } - - public String[] getPostOrgUserId() { - return postOrgUserId; - } - - public String[] getSelected() { - return selected; - } - - public String[] getPostAddress1() { - return postAddress1; - } - - public String[] getPostBusinessCountryCode() { - return postBusinessCountryCode; - } - - public String[] getPostCity() { - return postCity; - } - - public String[] getPostCommandChain() { - return postCommandChain; - } - - public String[] getPostCompany() { - return postCompany; - } - - public String[] getPostCompanyCode() { - return postCompanyCode; - } - - public String[] getPostDepartment() { - return postDepartment; - } - - public String[] getPostDepartmentName() { - return postDepartmentName; - } - - public String[] getPostBusinessCountryName() { - return postBusinessCountryName; - } - - public String[] getPostJobTitle() { - return postJobTitle; - } - - public String[] getPostLocationClli() { - return postLocationClli; - } - - public String[] getPostManagerUserId() { - return postOrgManagerUserId; - } - - public String[] getPostState() { - return postState; - } - - public String[] getPostZipCode() { - return postZipCode; - } - - public void setFirstName(String value) { user.setFirstName(value); } - public void setLastName(String value) { user.setLastName(value); } - public void setHrid(String value) { user.setHrid(value); } - public void setOrgUserId(String value) { user.setOrgUserId(value); } - public void setOrgCode(String value) { user.setOrgCode(value); } - public void setEmail(String value) { user.setEmail(value); } - public void setOrgManagerUserId(String value) { user.setOrgManagerUserId(value); } - - public void setFirstNameOrig(String value) { userOrig.setFirstName(value); } - public void setLastNameOrig(String value) { userOrig.setLastName(value); } - public void setHridOrig(String value) { userOrig.setHrid(value); } - public void setOrgUserIdOrig(String value) { userOrig.setOrgUserId(value); } - public void setOrgCodeOrig(String value) { userOrig.setOrgCode(value); } - public void setEmailOrig(String value) { userOrig.setEmail(value); } - public void setOrgManagerUserIdOrig(String value) { userOrig.setOrgManagerUserId(value); } - - public void setUser(EPUser value) { this.user = value; } - - public void setPostEmail(String[] postEmail) { - this.postEmail = postEmail; - } - - public void setPostFirstName(String[] postFirstName) { - this.postFirstName = postFirstName; - } - - public void setPostHrid(String[] postHrid) { - this.postHrid = postHrid; - } - - public void setPostLastName(String[] postLastName) { - this.postLastName = postLastName; - } - - public void setPostOrgCode(String[] postOrgCode) { - this.postOrgCode = postOrgCode; - } - - public void setPostPhone(String[] postPhone) { - this.postPhone = postPhone; - } - - public void setPostUserId(String[] postOrgUserId) { - this.postOrgUserId = postOrgUserId; - } - - public void setSelected(String[] selected) { - this.selected = selected; - } - - public void setPostAddress1(String[] postAddress1) { - this.postAddress1 = postAddress1; - } - - public void setPostBusinessCountryCode(String[] postBusinessCountryCode) { - this.postBusinessCountryCode = postBusinessCountryCode; - } - - public void setPostCity(String[] postCity) { - this.postCity = postCity; - } - - public void setPostCommandChain(String[] postCommandChain) { - this.postCommandChain = postCommandChain; - } - - public void setPostCompany(String[] postCompany) { - this.postCompany = postCompany; - } - - public void setPostCompanyCode(String[] postCompanyCode) { - this.postCompanyCode = postCompanyCode; - } - - public void setPostDepartment(String[] postDepartment) { - this.postDepartment = postDepartment; - } - - public void setPostDepartmentName(String[] postDepartmentName) { - this.postDepartmentName = postDepartmentName; - } - - public void setPostBusinessCountryName(String[] postBusinessCountryName) { - this.postBusinessCountryName = postBusinessCountryName; - } - - public void setPostJobTitle(String[] postJobTitle) { - this.postJobTitle = postJobTitle; - } - - public void setPostLocationClli(String[] postLocationClli) { - this.postLocationClli = postLocationClli; - } - - public void setPostManagerUserId(String[] postOrgManagerUserId) { - this.postOrgManagerUserId = postOrgManagerUserId; - } - - public void setPostState(String[] postState) { - this.postState = postState; - } - - public void setPostZipCode(String[] postZipCode) { - this.postZipCode = postZipCode; - } - - public String[] getPostAddress2() { - return postAddress2; - } - - public void setPostAddress2(String[] postAddress2) { - this.postAddress2 = postAddress2; - } - - public EPUser getUserOrig() { - return userOrig; - } - - public void setUserOrig(EPUser userOrig) { - this.userOrig = userOrig; - } - - public String[] getPostBusinessUnit() { - return postBusinessUnit; - } - - public void setPostBusinessUnit(String[] postBusinessUnit) { - this.postBusinessUnit = postBusinessUnit; - } - - public String[] getPostBusinessUnitName() { - return postBusinessUnitName; - } - - public void setPostBusinessUnitName(String[] postBusinessUnitName) { - this.postBusinessUnitName = postBusinessUnitName; - } - - public String[] getPostCostCenter() { - return postCostCenter; - } - - public void setPostCostCenter(String[] postCostCenter) { - this.postCostCenter = postCostCenter; - } - - public String[] getPostSiloStatus() { - return postSiloStatus; - } - - public void setPostSiloStatus(String[] postSiloStatus) { - this.postSiloStatus = postSiloStatus; - } - - public String[] getPostFinancialLocCode() { - return postFinancialLocCode; - } - - public void setPostFinancialLocCode(String[] postFinancialLocCode) { - this.postFinancialLocCode = postFinancialLocCode; - } - - public void resetSearch() { - super.resetSearch(); - setUser(new EPUser()); - } // resetSearch - - - public boolean isCriteriaUpdated() { - if(user==null&&userOrig==null) - return false; - else if(user==null||userOrig==null) - return true; - else - return (! ( - Utilities.nvl(user.getFirstName()).equals(Utilities.nvl(userOrig.getFirstName()))&& - Utilities.nvl(user.getLastName()).equals(Utilities.nvl(userOrig.getLastName()))&& - //Utilities.nvl(user.getHrid()).equals(Utilities.nvl(userOrig.getHrid()))&& - Utilities.nvl(user.getOrgUserId()).equals(Utilities.nvl(userOrig.getOrgUserId()))&& - Utilities.nvl(user.getOrgCode()).equals(Utilities.nvl(userOrig.getOrgCode()))&& - Utilities.nvl(user.getEmail()).equals(Utilities.nvl(userOrig.getEmail()))&& - Utilities.nvl(user.getOrgManagerUserId()).equals(Utilities.nvl(userOrig.getOrgManagerUserId()))&& - true)); - } // isCriteriaUpdated - -} // PostSearchBean diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/NotificationCleanup.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/NotificationCleanup.java deleted file mode 100644 index 2c11824a..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/NotificationCleanup.java +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.config; - -import java.util.TimerTask; - -import org.openecomp.portalapp.portal.service.UserNotificationService; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -public class NotificationCleanup extends TimerTask { - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(NotificationCleanup.class); - - @Override - public void run() { - logger.debug(EELFLoggerDelegate.debugLogger, "run: cleaning the ep-notification table"); - UserNotificationService notificationService = NotificationCleanupConfig.getApplicationContext() - .getBean(UserNotificationService.class); - notificationService.deleteNotificationsFromEpUserNotificationTable(); - notificationService.deleteNotificationsFromEpRoleNotificationTable(); - notificationService.deleteNotificationsFromEpNotificationTable(); - } - -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/NotificationCleanupConfig.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/NotificationCleanupConfig.java deleted file mode 100644 index 016a55e0..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/NotificationCleanupConfig.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.config; - -import java.util.Timer; -import java.util.TimerTask; - -import javax.annotation.PostConstruct; - -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class NotificationCleanupConfig implements ApplicationContextAware { - - // Once every 10 minutes should be adequate - public final static int CLEANUP_PERIOD_MINUTES = 10; - - private static ApplicationContext applicationContext; - - public void setApplicationContext(ApplicationContext context) throws BeansException { - applicationContext = context; - } - - public static ApplicationContext getApplicationContext() { - return applicationContext; - - } - - @PostConstruct - public void StartSchedular() { - TimerTask task = new NotificationCleanup(); - Timer timer = new Timer(); - timer.schedule(task, 1000, CLEANUP_PERIOD_MINUTES * 60 * 1000); - } - - @Bean - public NotificationCleanupConfig getConfig() { - return new NotificationCleanupConfig(); - } - -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/PortalCentralAccessConfiguration.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/PortalCentralAccessConfiguration.java deleted file mode 100644 index 0b701a29..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/PortalCentralAccessConfiguration.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.config; - -import org.openecomp.portalapp.portal.service.EPRoleFunctionService; -import org.openecomp.portalapp.portal.service.EPRoleFunctionServiceCentralizedImpl; -import org.openecomp.portalapp.portal.service.EPRoleFunctionServiceImpl; -import org.openecomp.portalsdk.core.service.CentralAccessCondition; -import org.openecomp.portalsdk.core.service.LocalAccessCondition; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Conditional; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class PortalCentralAccessConfiguration { - - - @Bean - @Conditional(LocalAccessCondition.class) - public EPRoleFunctionService ePRoleFunctionServiceImpl() { - return new EPRoleFunctionServiceImpl(); - } - - - @Bean - @Conditional(CentralAccessCondition.class) - public EPRoleFunctionService ePRoleFunctionServiceCentralizedImpl() { - return new EPRoleFunctionServiceCentralizedImpl(); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/SwaggerConfig.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/SwaggerConfig.java deleted file mode 100644 index 94659d71..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/SwaggerConfig.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -@Configuration -@EnableSwagger2 -public class SwaggerConfig { - - @Bean - public Docket api(){ - return new Docket(DocumentationType.SWAGGER_2) - .select() - .apis(RequestHandlerSelectors.any()) - .paths(PathSelectors.regex("/auxapi/.*")) - .build() - .apiInfo(apiInfo()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("ECOMP Portal API Documentation") - .description("ECOMP Portal API Documentation") - .version("1.2.6") - .termsOfServiceUrl("http://terms-of-services.url") - .license("LICENSE") - .licenseUrl("http://url-to-license.com") - .build(); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/SwaggerMVCConfig.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/SwaggerMVCConfig.java deleted file mode 100644 index 399d5863..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/config/SwaggerMVCConfig.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; - -@Configuration -@EnableWebMvc -public class SwaggerMVCConfig extends WebMvcConfigurerAdapter { - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPFusionBaseController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPFusionBaseController.java deleted file mode 100644 index fb84bf62..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPFusionBaseController.java +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.controller; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.controller.FusionBaseController; -import org.openecomp.portalsdk.core.domain.MenuData; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.ModelAttribute; - -import com.fasterxml.jackson.databind.ObjectMapper; - -@Controller -public abstract class EPFusionBaseController extends FusionBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPFusionBaseController.class); - - @Override - public boolean isAccessible() { - return true; - } - - public boolean isRESTfulCall() { - return true; - } - - @ModelAttribute("menu") - public Map messages(HttpServletRequest request) { - HttpSession session = null; - Map model = new HashMap(); - session = request.getSession(); - EPUser user = EPUserUtils.getUserSession(request); - if (session != null && user != null) { - @SuppressWarnings("unchecked") - Set menuResult = (Set) session - .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME)); - try { - model = setMenu(menuResult); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "messages failed", e); - } - } - - return model; - } - - public Map setMenu(Set menuResult) throws Exception { - ObjectMapper mapper = new ObjectMapper(); - List> childItemList = new ArrayList>(); - - List parentList = new ArrayList(); - - Map model = new HashMap(); - for (MenuData menu : menuResult) { - MenuData parentData = new MenuData(); - parentData.setLabel(menu.getLabel()); - parentData.setAction(menu.getAction()); - parentData.setImageSrc(menu.getImageSrc()); - parentList.add(parentData); - List tempList = new ArrayList(); - for (Object o : menu.getChildMenus()) { - MenuData m = (MenuData) o; - MenuData data = new MenuData(); - data.setLabel(m.getLabel()); - data.setAction(m.getAction()); - data.setImageSrc(m.getImageSrc()); - tempList.add(data); - } - childItemList.add(tempList); - } - model.put("childItemList", mapper.writeValueAsString(childItemList)); - model.put("parentList", mapper.writeValueAsString(parentList)); - return model; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPRestrictedBaseController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPRestrictedBaseController.java deleted file mode 100644 index 0d81b50b..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPRestrictedBaseController.java +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.controller; - -public class EPRestrictedBaseController extends EPFusionBaseController{ - - protected String viewName; - private String exceptionView; - - @Override - public boolean isAccessible() { - return false; - } - - @Override - public boolean isRESTfulCall(){ - return false; - } - - protected String getViewName() { - return viewName; - } - - protected void setViewName(String viewName) { - this.viewName = viewName; - } - - public String getExceptionView() { - return (exceptionView == null) ? "runtime_error_handler" : exceptionView; - } - - public void setExceptionView(String exceptionView) { - this.exceptionView = exceptionView; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPRestrictedRESTfulBaseController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPRestrictedRESTfulBaseController.java deleted file mode 100644 index af88055b..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPRestrictedRESTfulBaseController.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.controller; - -public class EPRestrictedRESTfulBaseController extends EPFusionBaseController{ - - protected String viewName; - private String exceptionView; - - @Override - public boolean isAccessible() { - return false; - } - - @Override - public boolean isRESTfulCall(){ - return true; - } - - protected String getViewName() { - return viewName; - } - - protected void setViewName(String viewName) { - this.viewName = viewName; - } - - public String getExceptionView() { - return (exceptionView == null) ? "runtime_error_handler" : exceptionView; - } - - public void setExceptionView(String exceptionView) { - this.exceptionView = exceptionView; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPUnRestrictedBaseController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPUnRestrictedBaseController.java deleted file mode 100644 index f6ba65c9..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/EPUnRestrictedBaseController.java +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.controller; - -public class EPUnRestrictedBaseController extends EPFusionBaseController{ - protected String viewName; - - @Override - public boolean isAccessible() { - return true; - } - - @Override - public boolean isRESTfulCall(){ - return false; - } - - protected String getViewName() { - return viewName; - } - - protected void setViewName(String viewName) { - this.viewName = viewName; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/sessionmgt/SessionCommunicationController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/sessionmgt/SessionCommunicationController.java deleted file mode 100644 index 4ce72b0b..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/controller/sessionmgt/SessionCommunicationController.java +++ /dev/null @@ -1,90 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.controller.sessionmgt; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPRestrictedRESTfulBaseController; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalapp.service.sessionmgt.ManageService; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import io.swagger.annotations.ApiOperation; - - -@RestController -@RequestMapping(PortalConstants.REST_AUX_API) -@Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class SessionCommunicationController extends EPRestrictedRESTfulBaseController { - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SessionCommunicationController.class); - - @Autowired - private ManageService manageService; - - protected boolean isAuxRESTfulCall(){ - return true; - } - - @ApiOperation(value = "Gets session slot-check interval, a duration in milliseconds.", - response = Integer.class) - @RequestMapping(value={"/getSessionSlotCheckInterval"}, method = RequestMethod.GET, produces = "application/json") - public Integer getSessionSlotCheckInterval(HttpServletRequest request, HttpServletResponse response) throws Exception { - return manageService.fetchSessionSlotCheckInterval(); - } - - @ApiOperation(value = "Extends session timeout values for all on-boarded applications.", - response = Boolean.class) - @RequestMapping(value={"/extendSessionTimeOuts"}, method = RequestMethod.POST) - public Boolean extendSessionTimeOuts(HttpServletRequest request, HttpServletResponse response, @RequestParam String sessionMap) throws Exception { - manageService.extendSessionTimeOuts(sessionMap); - - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/externalsystemapproval/model/ExternalSystemRoleApproval.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/externalsystemapproval/model/ExternalSystemRoleApproval.java deleted file mode 100644 index 9309dbe5..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/externalsystemapproval/model/ExternalSystemRoleApproval.java +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.externalsystemapproval.model; - -import java.io.Serializable; - -public class ExternalSystemRoleApproval implements Serializable { - - private static final long serialVersionUID = 6048830318039958615L; - - private String roleName; - - public String getRoleName() { - return roleName; - } - - public void setRoleName(String roleName) { - this.roleName = roleName; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/externalsystemapproval/model/ExternalSystemUser.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/externalsystemapproval/model/ExternalSystemUser.java deleted file mode 100644 index 660af6a4..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/externalsystemapproval/model/ExternalSystemUser.java +++ /dev/null @@ -1,92 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.externalsystemapproval.model; - - -import java.util.ArrayList; -import java.util.List; - -public class ExternalSystemUser { - - private String loginId; - - private String applicationName; - - private String myloginrequestId; - - private List roles; - - public ExternalSystemUser() { - roles = new ArrayList(); - } - - public String getApplicationName() { - return applicationName; - } - - public void setApplicationName(String applicationName) { - this.applicationName = applicationName; - } - - public String getLoginId() { - return loginId; - } - - public void setLoginId(String loginId) { - this.loginId = loginId; - } - - public List getRoles() { - return roles; - } - - public void setRoles(List roles) { - this.roles = roles; - } - - public String getMyloginrequestId() { - return myloginrequestId; - } - - public void setMyloginrequestId(String myloginrequestId) { - this.myloginrequestId = myloginrequestId; - } - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java deleted file mode 100644 index 1bba3c2f..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.lm; - -import java.util.Date; -import java.util.List; -import java.util.Map; - -import javax.servlet.ServletContext; - -import org.openecomp.portalsdk.core.lm.FusionLicenseManager; -import org.springframework.stereotype.Component; - -/* - * Please note that this class is not being used; its a dummy stub to have a qualifying bean for the interface. - */ - -@Component -public class FusionLicenseManagerImpl implements FusionLicenseManager { - - @Override - public void initKeyStoreParam() { - - } - - @Override - public void initCipherParam() { - - } - - @Override - public void initLicenseParam() { - - } - - @Override - public void doInitWork() { - - } - - @Override - public int installLicense() { - return 0; - } - - @Override - public synchronized int verifyLicense(ServletContext context) { - return 0; - } - - @Override - public void generateLicense(Map clientInfoMap, List ipAddressList) throws Exception { - - } - - @Override - public String nvl(String s) { - return null; - } - - @Override - public Date getExpiredDate() { - return null; - } - - @Override - public void setExpiredDate(Date expiredDate) { - - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java deleted file mode 100644 index 1cb882eb..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.lm; - -import java.io.FileNotFoundException; -import java.io.InputStream; - -import org.openecomp.portalsdk.core.lm.LicenseableClass; - -/* - * Please note that this class is not being used; its a dummy stub to have a qualifying bean for the interface. - */ - -public class LicenseableClassImpl implements LicenseableClass { - - public String getApplicationName() { - return ""; - } - - public InputStream getPublicKeystoreAsInputStream() throws FileNotFoundException { - return null; - } - - public String getAlias() { - return ""; - } - - public String getKeyPasswd() { - return ""; - } - - public String getPublicKeystorePassword() { - return ""; - } - - public String getCipherParamPassword() { - return ""; - } - - @SuppressWarnings("rawtypes") - public Class getClassToLicense() { - return this.getClass(); - } -} - diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/model/Result.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/model/Result.java deleted file mode 100644 index 55d55996..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/model/Result.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.model; - -public class Result { - private String result; - - public Result(String result) { - this.result = result; - } - - public String getResult() { - return result; - } - - public void setResult(String result) { - this.result = result; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppCatalogController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppCatalogController.java deleted file mode 100644 index 35390b19..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppCatalogController.java +++ /dev/null @@ -1,148 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.io.IOException; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.AppCatalogItem; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.EPAppService; -import org.openecomp.portalapp.portal.service.PersUserAppService; -import org.openecomp.portalapp.portal.transport.AppCatalogPersonalization; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class AppCatalogController extends EPRestrictedBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppCatalogController.class); - - @Autowired - private AdminRolesService adminRolesService; - @Autowired - private EPAppService appService; - @Autowired - private PersUserAppService persUserAppService; - - /** - * RESTful service method to fetch all enabled applications, with details - * about which are accessible to the current user, selected by the current - * user. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @throws IOException If sendError fails - * @return List of items suitable for display - */ - @RequestMapping(value = { "/portalApi/appCatalog" }, method = RequestMethod.GET, produces = "application/json") - public List getAppCatalog(HttpServletRequest request, HttpServletResponse response) - throws IOException { - EPUser user = EPUserUtils.getUserSession(request); - List appCatalog = null; - try { - if (user == null) { - EcompPortalUtils.setBadPermissions(user, response, "getAppCatalog"); - } else { - if (adminRolesService.isSuperAdmin(user)) - appCatalog = appService.getAdminAppCatalog(user); - else - appCatalog = appService.getUserAppCatalog(user); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/getAppCatalog", "GET result =", appCatalog); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppCatalog failed", e); - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString()); - } - return appCatalog; - } - - /** - * RESTful service to accept a user's action made on the application - * catalog. - * - * @param request - * HttpServletRequest - * @param persRequest - * JSON with data including application ID - * @param response - * HttpServletResponse - * @return FieldsValidator - * @throws IOException If sendError fails - */ - @RequestMapping(value = { "/portalApi/appCatalog" }, method = RequestMethod.PUT, produces = "application/json") - public FieldsValidator putAppCatalogSelection(HttpServletRequest request, - @RequestBody AppCatalogPersonalization persRequest, HttpServletResponse response) throws IOException { - FieldsValidator result = new FieldsValidator(); - EPApp app = appService.getApp(persRequest.getAppId()); - EPUser user = EPUserUtils.getUserSession(request); - try { - if (app == null || user == null) { - EcompPortalUtils.setBadPermissions(user, response, "putAppCatalogSelection"); - } else { - persUserAppService.setPersUserAppValue(user, app, persRequest.getSelect(), persRequest.getPending()); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "putAppCatalogSelection failed", e); - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString()); - } - result.httpStatusCode = new Long(HttpServletResponse.SC_OK); - return result; - } - -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppContactUsController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppContactUsController.java deleted file mode 100644 index 611e1bb0..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppContactUsController.java +++ /dev/null @@ -1,242 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import org.json.JSONObject; -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; -import org.openecomp.portalapp.portal.ecomp.model.AppContactUsItem; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.AppContactUsService; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/portalApi/contactus") -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class AppContactUsController extends EPRestrictedBaseController { - - static final String FAILURE = "failure"; - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppContactUsController.class); - - @Autowired - private AppContactUsService contactUsService; - - /** - * Answers a JSON object with three items from the system.properties file: - * user self-help ticket URL, email for feedback, and Portal info link. - * - * @param request HttpServletRequest - * @return PortalRestResponse - */ - @RequestMapping(value = "/feedback", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse getPortalDetails(HttpServletRequest request) { - PortalRestResponse portalRestResponse = null; - try { - final String ticketUrl = SystemProperties.getProperty(EPCommonSystemProperties.USH_TICKET_URL); - final String portalInfoUrl = SystemProperties.getProperty(EPCommonSystemProperties.PORTAL_INFO_URL); - final String feedbackEmail = SystemProperties.getProperty(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS); - HashMap map = new HashMap(); - map.put(EPCommonSystemProperties.USH_TICKET_URL, ticketUrl); - map.put(EPCommonSystemProperties.PORTAL_INFO_URL, portalInfoUrl); - map.put(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS, feedbackEmail); - JSONObject j = new JSONObject(map); - String contactUsPortalResponse = j.toString(); - portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.OK, "success", - contactUsPortalResponse); - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, FAILURE, e.getMessage()); - } - return portalRestResponse; - } - - /** - * Answers the contents of the contact-us table, extended with the - * application name. - * - * @param request HttpServletRequest - * @return PortalRestResponse> - */ - @RequestMapping(value = "/list", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> getAppContactUsList(HttpServletRequest request) { - PortalRestResponse> portalRestResponse = null; - try { - List contents = contactUsService.getAppContactUs(); - portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.OK, "success", - contents); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppContactUsList failed", e); - portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.ERROR, - e.getMessage(), null); - } - return portalRestResponse; - } - - /** - * Answers a list of objects, one per application, extended with available - * data on how to contact that app's organization (possibly none). - * - * @param request HttpServletRequest - * @return PortalRestResponse> - */ - @RequestMapping(value = "/allapps", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> getAppsAndContacts(HttpServletRequest request) { - PortalRestResponse> portalRestResponse = null; - try { - List contents = contactUsService.getAppsAndContacts(); - portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.OK, "success", - contents); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAllAppsAndContacts failed", e); - portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.ERROR, - e.getMessage(), null); - } - return portalRestResponse; - } - - /** - * Sorts by category name. - */ - private Comparator appCategoryFunctionsItemComparator = new Comparator() { - @Override - public int compare(AppCategoryFunctionsItem o1, AppCategoryFunctionsItem o2) { - return o1.getCategory().compareTo(o2.getCategory()); - } - }; - - /** - * Answers a list of objects with category-application-function details. Not - * all applications participate in the functional menu. - * - * @param request HttpServletRequest - * @return PortalRestResponse> - */ - @RequestMapping(value = "/functions", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> getAppCategoryFunctions(HttpServletRequest request) { - PortalRestResponse> portalRestResponse = null; - try { - List contents = contactUsService.getAppCategoryFunctions(); - // logger.debug(EELFLoggerDelegate.debugLogger, - // "getAppCategoryFunctions: result list size is " + - // contents.size()); - Collections.sort(contents, appCategoryFunctionsItemComparator); - portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.OK, - "success", contents); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppCategoryFunctions failed", e); - // TODO build JSON error - portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.ERROR, - e.getMessage(), null); - } - return portalRestResponse; - } - - /** - * Accepts a new application's contact us details. - * - * @param contactUs AppContactUsItem - * @return PortalRestResponse - */ - @RequestMapping(value = "/save", method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse save(@RequestBody AppContactUsItem contactUs) { - - if (contactUs == null || contactUs.getAppName() == null) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, FAILURE, - "AppName cannot be null or empty"); - - String saveAppContactUs = FAILURE; - try { - saveAppContactUs = contactUsService.saveAppContactUs(contactUs); - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.OK, saveAppContactUs, e.getMessage()); - } - return new PortalRestResponse(PortalRestStatusEnum.ERROR, saveAppContactUs, ""); - } - - @RequestMapping(value = "/saveAll", method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse save(@RequestBody List contactUsList) { - - String saveAppContactUs = FAILURE; - try { - saveAppContactUs = contactUsService.saveAppContactUs(contactUsList); - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.OK, saveAppContactUs, e.getMessage()); - } - return new PortalRestResponse(PortalRestStatusEnum.ERROR, saveAppContactUs, ""); - } - - /** - * Deletes the specified application's contact-us details entry from the - * table. - * - * @param id app ID - * @return PortalRestResponse - */ - @RequestMapping(value = "/delete/{appid}", method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse delete(@PathVariable("appid") Long id) { - - String saveAppContactUs = FAILURE; - try { - saveAppContactUs = contactUsService.deleteContactUs(id); - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.OK, saveAppContactUs, e.getMessage()); - } - return new PortalRestResponse(PortalRestStatusEnum.ERROR, saveAppContactUs, ""); - } - -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppsController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppsController.java deleted file mode 100644 index e9a1a951..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppsController.java +++ /dev/null @@ -1,740 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.io.IOException; -import java.util.List; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.AdminUserApplications; -import org.openecomp.portalapp.portal.domain.AppIdAndNameTransportModel; -import org.openecomp.portalapp.portal.domain.AppsResponse; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EcompApp; -import org.openecomp.portalapp.portal.domain.UserRoles; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.EPAppService; -import org.openecomp.portalapp.portal.service.EPLeftMenuService; -import org.openecomp.portalapp.portal.transport.EPAppsManualPreference; -import org.openecomp.portalapp.portal.transport.EPAppsSortPreference; -import org.openecomp.portalapp.portal.transport.EPDeleteAppsManualSortPref; -import org.openecomp.portalapp.portal.transport.EPWidgetsSortPreference; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.LocalRole; -import org.openecomp.portalapp.portal.transport.OnboardingApp; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.web.support.AppUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@EnableAspectJAutoProxy -@EPAuditLog -public class AppsController extends EPRestrictedBaseController { - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsController.class); - - @Autowired - private AdminRolesService adminRolesService; - - @Autowired - private EPAppService appService; - - @Autowired - private EPLeftMenuService leftMenuService; - - /** - * RESTful service method to fetch all Applications available to current - * user - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return List - */ - @RequestMapping(value = { "/portalApi/userApps" }, method = RequestMethod.GET, produces = "application/json") - public List getUserApps(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List ecompApps = null; - - try { - if (user == null) { - EcompPortalUtils.setBadPermissions(user, response, "getUserApps"); - } else { - ecompApps = appService.transformAppsToEcompApps(appService.getUserApps(user)); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userApps", "GET result =", ecompApps); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUserApps failed", e); - } - - return ecompApps; - } - - /** - * RESTful service method to fetch all applications accessible to the - * current user, with personalizations. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return List - * @throws IOException - * if sendError fails - */ - @RequestMapping(value = { "/portalApi/persUserApps" }, method = RequestMethod.GET, produces = "application/json") - public List getPersUserApps(HttpServletRequest request, HttpServletResponse response) throws IOException { - EPUser user = EPUserUtils.getUserSession(request); - List ecompApps = null; - try { - if (user == null) { - EcompPortalUtils.setBadPermissions(user, response, "getPersUserApps"); - } else { - List apps = null; - if (adminRolesService.isSuperAdmin(user)) - apps = appService.getPersAdminApps(user); - else - apps = appService.getPersUserApps(user); - ecompApps = appService.transformAppsToEcompApps(apps); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userPersApps", "GET result =", ecompApps); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getPersUserApps failed", e); - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString()); - } - return ecompApps; - } - - /** - * RESTful service method to fetch applications for which the current user - * is an Administrator - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return List - */ - @RequestMapping(value = { "/portalApi/adminApps" }, method = RequestMethod.GET, produces = "application/json") - public List getAdminApps(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List adminApps = null; - - try { - if (!adminRolesService.isAccountAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "getAdminApps"); - } else { - adminApps = appService.getAdminApps(user); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/adminApps", "GET result =", adminApps); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAdminApps failed", e); - } - - return adminApps; - } - - /** - * RESTful service method to fetch Applications for user who is super admin - * and/or app admin. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return List - */ - @RequestMapping(value = { - "/portalApi/appsForSuperAdminAndAccountAdmin" }, method = RequestMethod.GET, produces = "application/json") - public List getAppsForSuperAdminAndAccountAdmin(HttpServletRequest request, - HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List adminApps = null; - - try { - if (!adminRolesService.isSuperAdmin(user) && !adminRolesService.isAccountAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "getAdminApps"); - } else { - adminApps = appService.getAppsForSuperAdminAndAccountAdmin(user); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appsForSuperAdminAndAccountAdmin", - "GET result =", adminApps); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppsForSuperAdminAndAccountAdmin failed", e); - } - - return adminApps; - } - - /** - * RESTful service method to fetch left menu items from the user's session. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return JSON with left menu - */ - @SuppressWarnings({ "rawtypes", "unchecked" }) - @RequestMapping(value = { "/portalApi/leftmenuItems" }, method = RequestMethod.GET, produces = "application/json") - public String getLeftMenuItems(HttpServletRequest request, HttpServletResponse response) { - String menuList = null; - Set menuSet = (Set) AppUtils.getSession(request) - .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME)); - - Set roleFunctionSet = (Set) AppUtils.getSession(request) - .getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME)); - - EPUser user = EPUserUtils.getUserSession(request); - - try { - menuList = leftMenuService.getLeftMenuItems(user, menuSet, roleFunctionSet); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/leftmenuItems", "GET result =", menuList); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getLeftMenuItems failed", e); - } - return menuList; - } - - @RequestMapping(value = { - "/portalApi/userAppsOrderBySortPref" }, method = RequestMethod.GET, produces = "application/json") - public List getUserAppsOrderBySortPref(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List ecompApps = null; - try { - if (user == null) { - EcompPortalUtils.setBadPermissions(user, response, "getUserAppsOrderBySortPref"); - } else { - String usrSortPref = request.getParameter("mparams"); - if (usrSortPref.equals("")) { - usrSortPref = "N"; - } - switch (usrSortPref) { - case "N": - ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByName(user)); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =", - ecompApps); - break; - case "L": - ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByLastUsed(user)); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =", - ecompApps); - break; - case "F": - ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByMostUsed(user)); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =", - ecompApps); - break; - case "M": - ecompApps = appService.transformAppsToEcompApps(appService.getAppsOrderByManual(user)); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsOrderBySortPref", "GET result =", - ecompApps); - break; - default: - logger.error(EELFLoggerDelegate.errorLogger, - "getUserAppsOrderBySortPref failed: no match for " + usrSortPref); - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUserAppsOrderBySortPref failed", e); - } - return ecompApps; - } - - /** - * Sets the user apps manual sort preference - * - * @param request - * HTTP servlet request - * @param response - * HTTP servlet response - * @param epAppsManualPref - * sort pref - * @return FieldsValidator - */ - @RequestMapping(value = { - "/portalApi/saveUserAppsSortingManual" }, method = RequestMethod.PUT, produces = "application/json") - public FieldsValidator putUserAppsSortingManual(HttpServletRequest request, - @RequestBody List epAppsManualPref, HttpServletResponse response) { - FieldsValidator fieldsValidator = null; - try { - EPUser user = EPUserUtils.getUserSession(request); - fieldsValidator = appService.saveAppsSortManual(epAppsManualPref, user); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "putUserAppsSortingManual failed", e); - } - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/saveUserAppsSortingManual", "PUT result =", - response.getStatus()); - return fieldsValidator; - } - - @RequestMapping(value = { - "/portalApi/saveUserWidgetsSortManual" }, method = RequestMethod.PUT, produces = "application/json") - public FieldsValidator putUserWidgetsSortManual(HttpServletRequest request, - @RequestBody List saveManualWidgetSData, HttpServletResponse response) { - FieldsValidator fieldsValidator = null; - try { - EPUser user = EPUserUtils.getUserSession(request); - fieldsValidator = appService.saveWidgetsSortManual(saveManualWidgetSData, user); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "putUserWidgetsSortManual failed", e); - } - // return fieldsValidator; - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserWidgetsSortManual", "PUT result =", - response.getStatus()); - return fieldsValidator; - } - - @RequestMapping(value = { - "/portalApi/updateWidgetsSortPref" }, method = RequestMethod.PUT, produces = "application/json") - public FieldsValidator putUserWidgetsSortPref(HttpServletRequest request, - @RequestBody List delManualWidgetData, HttpServletResponse response) { - FieldsValidator fieldsValidator = null; - try { - EPUser user = EPUserUtils.getUserSession(request); - fieldsValidator = appService.deleteUserWidgetSortPref(delManualWidgetData, user); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "putUserWidgetsSortPref failed", e); - - } - // return fieldsValidator; - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserWidgetsSortPref", "PUT result =", - response.getStatus()); - return fieldsValidator; - } - - /** - * Deletes the user app manual sort preference record - * - * @param request - * HTTP servlet request - * @param response - * HTTP servlet response - * @param delManualAppData - * data to delete - * @return FieldsValidator - */ - @RequestMapping(value = { - "/portalApi/UpdateUserAppsSortManual" }, method = RequestMethod.PUT, produces = "application/json") - public FieldsValidator deleteUserAppSortManual(HttpServletRequest request, - @RequestBody EPDeleteAppsManualSortPref delManualAppData, HttpServletResponse response) { - FieldsValidator fieldsValidator = null; - try { - EPUser user = EPUserUtils.getUserSession(request); - fieldsValidator = appService.deleteUserAppSortManual(delManualAppData, user); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "deleteUserAppSortManual failed", e); - - } - // return fieldsValidator; - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/deleteUserAppSortManual", "PUT result =", - response.getStatus()); - return fieldsValidator; - } - - @RequestMapping(value = { - "/portalApi/saveUserAppsSortingPreference" }, method = RequestMethod.PUT, produces = "application/json") - public FieldsValidator putUserAppsSortingPreference(HttpServletRequest request, - @RequestBody EPAppsSortPreference userAppsValue, HttpServletResponse response) { - FieldsValidator fieldsValidator = null; - try { - EPUser user = EPUserUtils.getUserSession(request); - fieldsValidator = appService.saveAppsSortPreference(userAppsValue, user); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "putUserAppsSortingPreference failed", e); - - } - - // return fieldsValidator; - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/putUserAppsSortingPreference", "PUT result =", - response.getStatus()); - return fieldsValidator; - } - - @RequestMapping(value = { - "/portalApi/userAppsSortTypePreference" }, method = RequestMethod.GET, produces = "application/String") - public String getUserAppsSortTypePreference(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - String userSortPreference = null; - - try { - if (user == null) { - EcompPortalUtils.setBadPermissions(user, response, "userAppsSortTypePreference"); - } else { - userSortPreference = appService.getUserAppsSortTypePreference(user); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppsSortTypePreference", "GET result =", - userSortPreference); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUserAppsSortTypePreference failed", e); - } - - return userSortPreference; - } - - /** - * RESTful service method to fetch Application Administrators to Super - * Administrator user. Attention: Users which have Super Administrator roles - * only are not included! - * - * @param request - * HTTP servlet request - * @param response - * HTTP servlet response - * @return List - */ - @RequestMapping(value = { "/portalApi/accountAdmins" }, method = RequestMethod.GET, produces = "application/json") - public List getAppsAdministrators(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List admins = null; - try { - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "getAppsAdministrators"); - } else { - admins = appService.getAppsAdmins(); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/accountAdmins", "GET result =", admins); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppsAdministrators failed", e); - } - - return admins; - } - - @RequestMapping(value = { "/portalApi/availableApps" }, method = RequestMethod.GET, produces = "application/json") - public List getApps(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List apps = null; - try { - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "getApps"); - } else { - apps = appService.getAllApps(false); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/availableApps", "GET result =", apps); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getApps failed", e); - } - - return apps; - } - - /** - * Gets all apps, both active and inactive; i.e., all on-boarded apps, - * regardless of enabled status. - * - * @param request - * HTTP servlet request - * @param response - * HTTP servlet response - * @return List of applications - */ - @RequestMapping(value = { - "/portalApi/allAvailableApps" }, method = RequestMethod.GET, produces = "application/json") - public List getAllApps(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List apps = null; - try { - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "getApps"); - } else { - apps = appService.getAllApps(true); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/availableApps", "GET result =", apps); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAllApps failed", e); - } - - return apps; - } - - /** - * - * @param request - * HTTP servlet request - * @param response - * HTTP servlet response - * @return List of applications - */ - @RequestMapping(value = { "/portalApi/appsFullList" }, method = RequestMethod.GET, produces = "application/json") - public List getAppsFullList(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List ecompApps = null; - if (user == null) { - EcompPortalUtils.setBadPermissions(user, response, "getAppsFullList"); - } else { - ecompApps = appService.getEcompAppAppsFullList(); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appsFullList", "GET result =", ecompApps); - } - return ecompApps; - } - - /** - * - * @param request - * HTTP servlet request - * @param response - * HTTP servlet response - * @return UserRoles - */ - @RequestMapping(value = { "/portalApi/userProfile" }, method = RequestMethod.GET, produces = "application/json") - public UserRoles getUserProfile(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - UserRoles userAndRoles = null; - try { - if (user == null) { - EcompPortalUtils.setBadPermissions(user, response, "getUserProfile"); - } else { - userAndRoles = appService.getUserProfileNormalized(user); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUserProfile failed", e); - } - - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userProfile", "getUserProfile result =", - userAndRoles); - return userAndRoles; - } - - /** - * - * @param request - * HTTP servlet request - * @param appId - * application ID - * @return List - */ - @RequestMapping(value = { "/portalApi/appRoles/{appId}" }, method = { - RequestMethod.GET }, produces = "application/json") - public List getAppRoles(HttpServletRequest request, @PathVariable("appId") Long appId) { - List roleList = null; - try { - roleList = appService.getAppRoles(appId); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/appRoles/" + appId, "GET result =", roleList); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppRoles failed", e); - } - - return roleList; - } - - /** - * - * @param request - * HTTP servlet request - * @param response - * HTTP servlet response - * @return List - */ - @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.GET, produces = "application/json") - public List getOnboardingApps(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List onboardingApps = null; - try { - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "getOnboardingApps"); - } else { - onboardingApps = appService.getOnboardingApps(); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "GET result =", - "onboardingApps of size " + onboardingApps.size()); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getOnboardingApps failed", e); - } - - return onboardingApps; - } - - /** - * - * @param request - * HTTP servlet request - * @param response - * HTTP servlet response - * @param modifiedOnboardingApp - * app to update - * @return FieldsValidator - */ - @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.PUT, produces = "application/json") - public FieldsValidator putOnboardingApp(HttpServletRequest request, - @RequestBody OnboardingApp modifiedOnboardingApp, HttpServletResponse response) { - FieldsValidator fieldsValidator = null; - try { - EPUser user = EPUserUtils.getUserSession(request); - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "putOnboardingApp"); - } else { - modifiedOnboardingApp.normalize(); - fieldsValidator = appService.modifyOnboardingApp(modifiedOnboardingApp, user); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "putOnboardingApps failed", e); - } - - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "PUT result =", - response.getStatus()); - return fieldsValidator; - } - - /** - * - * @param request - * HTTP servlet request - * @param response - * HTTP servlet response - * @param newOnboardingApp - * app to add - * @return FieldsValidator - */ - @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.POST, produces = "application/json") - public FieldsValidator postOnboardingApp(HttpServletRequest request, @RequestBody OnboardingApp newOnboardingApp, - HttpServletResponse response) { - FieldsValidator fieldsValidator = null; - try { - EPUser user = EPUserUtils.getUserSession(request); - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "postOnboardingApps"); - } else { - newOnboardingApp.normalize(); - fieldsValidator = appService.addOnboardingApp(newOnboardingApp, user); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "postOnboardingApp failed", e); - } - - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps", "POST result =", - response.getStatus()); - return fieldsValidator; - } - - /** - * REST endpoint to process a request to delete an on-boarded application. - * - * @param request - * HTTP servlet request - * @param response - * HTTP servlet response - * @param appId - * ID of app to delete - * @return FieldsValidator - */ - @RequestMapping(value = { "/portalApi/onboardingApps/{appId}" }, method = { - RequestMethod.DELETE }, produces = "application/json") - public FieldsValidator deleteOnboardingApp(HttpServletRequest request, @PathVariable("appId") Long appId, - HttpServletResponse response) { - FieldsValidator fieldsValidator = null; - try { - EPUser user = EPUserUtils.getUserSession(request); - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "deleteOnboardingApps"); - } else { - fieldsValidator = appService.deleteOnboardingApp(user, appId); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "deleteOnboardingApp failed", e); - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/onboardingApps" + appId, "DELETE result =", - response.getStatus()); - return fieldsValidator; - } - - /** - * Gets the application thumbnail image; sets status 404 if none exists. - * - * @param request - * HTTP servlet request - * @param response - * HTTP servlet response - * @param appId - * Application ID - * @return Bytes with the app thumbnail image; null if not available. - */ - @RequestMapping(value = { "/portalApi/appThumbnail/{appId}" }, method = { RequestMethod.GET }) - public HttpEntity getAppThumbnail(HttpServletRequest request, @PathVariable("appId") Long appId, - HttpServletResponse response) { - EPApp app = appService.getApp(appId); - if (app == null || app.getImageUrl() == null || app.getThumbnail() == null || app.getThumbnail().length == 0) { - logger.debug(EELFLoggerDelegate.debugLogger, - "getAppThumbnail: no app and/or no thumbnail for app " + appId); - response.setStatus(HttpServletResponse.SC_NOT_FOUND); - return null; - } - String url = app.getImageUrl(); - int indexOfDot = url.lastIndexOf('.'); - String urlSuffix = indexOfDot > 0 ? url.substring(indexOfDot + 1).toLowerCase() : "UNK"; - // Default to JPG if no usable suffix. - MediaType mediaType = MediaType.IMAGE_JPEG; - if ("png".equals(urlSuffix)) - mediaType = MediaType.IMAGE_PNG; - else if ("gif".equals(urlSuffix)) - mediaType = MediaType.IMAGE_GIF; - HttpHeaders header = new HttpHeaders(); - header.setContentType(mediaType); - header.setContentLength(app.getThumbnail().length); - return new HttpEntity(app.getThumbnail(), header); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppsControllerExternalRequest.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppsControllerExternalRequest.java deleted file mode 100644 index d7295041..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AppsControllerExternalRequest.java +++ /dev/null @@ -1,392 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.EPAppService; -import org.openecomp.portalapp.portal.service.PortalAdminService; -import org.openecomp.portalapp.portal.service.UserService; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.OnboardingApp; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -import io.swagger.annotations.ApiOperation; - -/** - * Processes requests from external systems (i.e., not the front-end web UI). - * First use case is ECOMP Controller, which has to create an admin and onboard - * itself upon launch of a fresh Portal. - * - * Listens on the "auxapi" path prefix. Provides alternate implementations of - * methods in several existing controllers because an EPUser object is not - * available in the session for these requests. - * - * Checks credentials sent via HTTP Basic Authentication. The Portal's basic - * HTTP authentication system requires that the user names and endpoints are - * registered together. - */ -@RestController -@RequestMapping(PortalConstants.REST_AUX_API) -@Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class AppsControllerExternalRequest implements BasicAuthenticationController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsControllerExternalRequest.class); - - private static final String ONBOARD_APP = "/onboardApp"; - - // Where is this used? - public boolean isAuxRESTfulCall() { - return true; - } - - /** - * For testing whether a user is a superadmin. - */ - @Autowired - private AdminRolesService adminRolesService; - - /** - * For onboarding or updating an app - */ - @Autowired - private EPAppService appService; - - /** - * For promoting a user to Portal admin - */ - @Autowired - private PortalAdminService portalAdminService; - - /** - * For creating a new user - */ - @Autowired - private UserService userService; - - /** - * Creates a new user as a Portal administrator. - * - *
-	 { 
-		"loginId" : "abc123",
-		"loginPwd": "",
-		"email":"ecomp@controller" 
-	 }
-	 * 
- * - * @param request - * HttpServletRequest - * @param epUser - * User details; the email and orgUserId fields are mandatory - * @param response - * HttpServletResponse - * @return PortalRestResponse with success or failure - */ - @ApiOperation(value = "Creates a new user as a Portal administrator.", response = PortalRestResponse.class) - @RequestMapping(value = "/portalAdmin", method = RequestMethod.POST, produces = "application/json") - @ResponseBody - public PortalRestResponse postPortalAdmin(HttpServletRequest request, HttpServletResponse response, - @RequestBody EPUser epUser) { - EcompPortalUtils.logAndSerializeObject(logger, "postPortalAdmin", "request", epUser); - PortalRestResponse portalResponse = new PortalRestResponse<>(); - - // Check mandatory fields. - if (epUser.getEmail() == null || epUser.getEmail().trim().length() == 0 // - || epUser.getLoginId() == null || epUser.getLoginId().trim().length() == 0 // - || epUser.getLoginPwd() == null) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage("Missing required field: email, loginId, or loginPwd"); - return portalResponse; - } - - try { - // Check for existing user; create if not found. - List userList = userService.getUserByUserId(epUser.getOrgUserId()); - if (userList == null || userList.size() == 0) { - // Create user with first, last names etc.; do check for - // duplicates. - String userCreateResult = userService.saveNewUser(epUser, "Yes"); - if (!"success".equals(userCreateResult)) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage(userCreateResult); - return portalResponse; - } - } - - // Check for Portal admin status; promote if not. - if (adminRolesService.isSuperAdmin(epUser)) { - portalResponse.setStatus(PortalRestStatusEnum.OK); - } else { - FieldsValidator fv = portalAdminService.createPortalAdmin(epUser.getOrgUserId()); - if (fv.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { - portalResponse.setStatus(PortalRestStatusEnum.OK); - } else { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage(fv.toString()); - } - } - } catch (Exception ex) { - // Uncaught exceptions yield 404 and an empty error page - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage(ex.toString()); - } - - EcompPortalUtils.logAndSerializeObject(logger, "postPortalAdmin", "response", portalResponse); - return portalResponse; - } - - /** - * Gets the specified application that is on-boarded in Portal. - * - * @param request - * HttpServletRequest - * @param appId - * Application ID to get - * @param response - * httpServletResponse - * @return OnboardingApp objects - */ - @ApiOperation(value = "Gets the specified application that is on-boarded in Portal.", response = OnboardingApp.class) - @RequestMapping(value = { ONBOARD_APP + "/{appId}" }, method = RequestMethod.GET, produces = "application/json") - @ResponseBody - public OnboardingApp getOnboardAppExternal(HttpServletRequest request, HttpServletResponse response, - @PathVariable("appId") Long appId) { - EPApp epApp = appService.getApp(appId); - OnboardingApp obApp = new OnboardingApp(); - appService.createOnboardingFromApp(epApp, obApp); - EcompPortalUtils.logAndSerializeObject(logger, "getOnboardAppExternal", "response", obApp); - return obApp; - } - - /** - * Adds a new application to Portal. The My Logins App Owner in the request - * must be the organization user ID of a person who is a Portal - * administrator. - * - *
-	 * { 
-		"myLoginsAppOwner" : "abc123",
-		"name": "dashboard",
-		"url": "http://k8s/something",
-		"restUrl" : "http://targeturl.com",
-		"restrictedApp" : true,
-		"isOpen" : true,
-		"isEnabled": false
-		}
-	 * 
- * - * @param request - * HttpServletRequest - * @param response - * httpServletResponse - * @param newOnboardApp - * Message with details about the app to add - * @return PortalRestResponse - */ - @ApiOperation(value = "Adds a new application to Portal.", response = PortalRestResponse.class) - @RequestMapping(value = { ONBOARD_APP }, method = RequestMethod.POST, produces = "application/json") - @ResponseBody - public PortalRestResponse postOnboardAppExternal(HttpServletRequest request, HttpServletResponse response, - @RequestBody OnboardingApp newOnboardApp) { - EcompPortalUtils.logAndSerializeObject(logger, "postOnboardAppExternal", "request", newOnboardApp); - PortalRestResponse portalResponse = new PortalRestResponse<>(); - - // Validate fields - if (newOnboardApp.id != null) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage("Unexpected field: id"); - return portalResponse; - } - if (newOnboardApp.name == null || newOnboardApp.name.trim().length() == 0 // - || newOnboardApp.url == null || newOnboardApp.url.trim().length() == 0 // - || newOnboardApp.restUrl == null || newOnboardApp.restUrl.trim().length() == 0 - || newOnboardApp.myLoginsAppOwner == null || newOnboardApp.myLoginsAppOwner.trim().length() == 0 - || newOnboardApp.restrictedApp == null // - || newOnboardApp.isOpen == null // - || newOnboardApp.isEnabled == null) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage( - "Missing required field: name, url, restUrl, restrictedApp, isOpen, isEnabled, myLoginsAppOwner"); - return portalResponse; - } - - try { - List userList = userService.getUserByUserId(newOnboardApp.myLoginsAppOwner); - if (userList == null || userList.size() != 1) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage("Failed to find user: " + newOnboardApp.myLoginsAppOwner); - return portalResponse; - } - - EPUser epUser = userList.get(0); - // Check for Portal admin status - if (! adminRolesService.isSuperAdmin(epUser)) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage("User lacks Portal admin role: " + epUser.getLoginId()); - return portalResponse; - } - - newOnboardApp.normalize(); - FieldsValidator fv = appService.addOnboardingApp(newOnboardApp, epUser); - if (fv.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { - portalResponse.setStatus(PortalRestStatusEnum.OK); - } else { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage(fv.toString()); - } - } catch (Exception ex) { - // Uncaught exceptions yield 404 and an empty error page - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage(ex.toString()); - } - EcompPortalUtils.logAndSerializeObject(logger, "postOnboardAppExternal", "response", portalResponse); - return portalResponse; - } - - /** - * Updates information about an on-boarded application in Portal. The My - * Logins App Owner in the request must be the organization user ID of a - * person who is a Portal administrator. - *
-	   { 
-		"id" : 123,
-		"myLoginsAppOwner" : "abc123",
-		"name": "dashboard",
-		"url": "http://k8s/something",
-		"restUrl" : "http://targeturl.com",
-		"restrictedApp" : true,
-		"isOpen" : true,
-		"isEnabled": false
-		}
-		
- * @param request - * HttpServletRequest - * @param response - * httpServletResponse - * @param appId - * application id - * @param oldOnboardApp - * Message with details about the app to add - * @return PortalRestResponse - */ - @ApiOperation(value = "Updates information about an on-boarded application in Portal.", response = PortalRestResponse.class) - @RequestMapping(value = { ONBOARD_APP + "/{appId}" }, method = RequestMethod.PUT, produces = "application/json") - @ResponseBody - public PortalRestResponse putOnboardAppExternal(HttpServletRequest request, HttpServletResponse response, - @PathVariable("appId") Long appId, @RequestBody OnboardingApp oldOnboardApp) { - EcompPortalUtils.logAndSerializeObject(logger, "putOnboardAppExternal", "request", oldOnboardApp); - PortalRestResponse portalResponse = new PortalRestResponse<>(); - // Validate fields. - if (oldOnboardApp.id == null || !appId.equals(oldOnboardApp.id)) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage("Unexpected value for field: id"); - return portalResponse; - } - if (oldOnboardApp.name == null || oldOnboardApp.name.trim().length() == 0 // - || oldOnboardApp.url == null || oldOnboardApp.url.trim().length() == 0 // - || oldOnboardApp.restUrl == null || oldOnboardApp.restUrl.trim().length() == 0 - || oldOnboardApp.myLoginsAppOwner == null || oldOnboardApp.myLoginsAppOwner.trim().length() == 0 - || oldOnboardApp.restrictedApp == null // - || oldOnboardApp.isOpen == null // - || oldOnboardApp.isEnabled == null) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage( - "Missing required field: name, url, restUrl, restrictedApp, isOpen, isEnabled, myLoginsAppOwner"); - return portalResponse; - } - - try { - List userList = userService.getUserByUserId(oldOnboardApp.myLoginsAppOwner); - if (userList == null || userList.size() != 1) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage("Failed to find user: " + oldOnboardApp.myLoginsAppOwner); - return portalResponse; - } - - EPUser epUser = userList.get(0); - // Check for Portal admin status - if (! adminRolesService.isSuperAdmin(epUser)) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage("User lacks Portal admin role: " + epUser.getLoginId()); - return portalResponse; - } - - oldOnboardApp.normalize(); - FieldsValidator fv = appService.modifyOnboardingApp(oldOnboardApp, epUser); - if (fv.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { - portalResponse.setStatus(PortalRestStatusEnum.OK); - } else { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage(fv.toString()); - } - } catch (Exception ex) { - // Uncaught exceptions yield 404 and an empty error page - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage(ex.toString()); - } - EcompPortalUtils.logAndSerializeObject(logger, "putOnboardAppExternal", "response", portalResponse); - return portalResponse; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AuditLogController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AuditLogController.java deleted file mode 100644 index aa8d7bfd..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/AuditLogController.java +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import javax.servlet.http.HttpServletRequest; - -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import org.openecomp.portalsdk.core.domain.AuditLog; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.AuditService; -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.logging.aop.EPEELFLoggerAdvice; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalapp.util.EPUserUtils; - -@RestController -@RequestMapping("/portalApi/auditLog") -public class AuditLogController extends EPRestrictedBaseController { - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(DashboardController.class); - - @Autowired - private AuditService auditService; - - /** - * Store audit log of the specified access type. - * - * @param request - * HttpServletRequest - * @param affectedAppId - * App ID - * @param type - * Access type - * @param comment - * Comment - */ - @RequestMapping(value = "/store", method = RequestMethod.GET, produces = "application/json") - public void auditLog(HttpServletRequest request, @RequestParam String affectedAppId, @RequestParam String type, - @RequestParam String comment) { - logger.debug(EELFLoggerDelegate.debugLogger, "auditLog: appId {}, type {], comment {}", affectedAppId, type, - comment); - String cd_type = null; - try { - EPUser user = EPUserUtils.getUserSession(request); - /* Check type of Activity CD */ - if (type.equals("app")) { - cd_type = AuditLog.CD_ACTIVITY_APP_ACCESS; - } else if (type.equals("tab")) { - cd_type = AuditLog.CD_ACTIVITY_TAB_ACCESS; - } else if (type.equals("functional")) { - cd_type = AuditLog.CD_ACTIVITY_FUNCTIONAL_ACCESS; - } else if (type.equals("leftMenu")) { - cd_type = AuditLog.CD_ACTIVITY_LEFT_MENU_ACCESS; - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "Storing auditLog failed! Activity CD type is not correct."); - } - /* Store the audit log only if it contains valid Activity CD */ - if (cd_type != null) { - AuditLog auditLog = new AuditLog(); - auditLog.setActivityCode(cd_type); - /* - * Check affectedAppId and comment and see if these two values are valid - */ - if (comment != null && !comment.equals("") && !comment.equals("undefined")) - auditLog.setComments(EcompPortalUtils.truncateString(comment, PortalConstants.AUDIT_LOG_COMMENT_SIZE)); - if (affectedAppId != null && !affectedAppId.equals("") && !affectedAppId.equals("undefined")) - auditLog.setAffectedRecordId(affectedAppId); - long userId = EPUserUtils.getUserId(request); - auditLog.setUserId(userId); - auditService.logActivity(auditLog, null); - - // Log file - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - logger.info(EELFLoggerDelegate.auditLogger, EPLogUtil.formatAuditLogMessage( - "AuditLogController.auditLog", cd_type, user.getOrgUserId(), affectedAppId, comment)); - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "auditLog failed", e); - } - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BEPropertyReaderController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BEPropertyReaderController.java deleted file mode 100644 index 2d8fd182..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BEPropertyReaderController.java +++ /dev/null @@ -1,64 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import javax.servlet.http.HttpServletRequest; - -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import org.openecomp.portalsdk.core.controller.FusionBaseController; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalapp.portal.domain.BEProperty; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; - -@RestController -@RequestMapping("/portalApi/properties") -public class BEPropertyReaderController extends FusionBaseController{ - @RequestMapping(value = "/readProperty", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse readProperty(HttpServletRequest request, @RequestParam String key) { - try { - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", new BEProperty(key, SystemProperties.getProperty(key))); - } catch (Exception e) { - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); - } - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BasicAuthAccountController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BasicAuthAccountController.java deleted file mode 100644 index 6004d698..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BasicAuthAccountController.java +++ /dev/null @@ -1,215 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.BasicAuthCredentials; -import org.openecomp.portalapp.portal.domain.EPEndpoint; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.BasicAuthAccountService; -import org.openecomp.portalapp.util.EPUserUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class BasicAuthAccountController extends EPRestrictedBaseController { - - @Autowired - private BasicAuthAccountService basicAuthAccountService; - - @Autowired - private AdminRolesService adminRolesService; - - /** - * Saves Basic Authentication account for external systems - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @param newBasicAuthAccount - * BasicAuthCredentials - * @return Id of the newly created account - * @throws Exception - * on failure - */ - @RequestMapping(value = { "/portalApi/basicAuthAccount" }, method = RequestMethod.POST) - public PortalRestResponse createBasicAuthAccount(HttpServletRequest request, HttpServletResponse response, - @RequestBody BasicAuthCredentials newBasicAuthAccount) throws Exception { - - EPUser user = EPUserUtils.getUserSession(request); - if (!adminRolesService.isSuperAdmin(user)) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Authorization Required", - "Admin Only Operation! "); - } - - if (newBasicAuthAccount == null) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", - "newBasicAuthAccount cannot be null or empty"); - } - long accountId = basicAuthAccountService.saveBasicAuthAccount(newBasicAuthAccount); - - List endpointIdList = new ArrayList<>(); - try { - for (EPEndpoint ep : newBasicAuthAccount.getEndpoints()) { - endpointIdList.add(basicAuthAccountService.saveEndpoints(ep)); - } - for (Long endpointId : endpointIdList) { - basicAuthAccountService.saveEndpointAccount(accountId, endpointId); - } - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); - } - - return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); - } - - /** - * Returns list of all BasicAuthCredentials in the system - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return List - * @throws Exception - * on failure - */ - - @RequestMapping(value = { "/portalApi/basicAuthAccount" }, method = RequestMethod.GET) - public PortalRestResponse> getBasicAuthAccount(HttpServletRequest request, - HttpServletResponse response) throws Exception { - - EPUser user = EPUserUtils.getUserSession(request); - if (!adminRolesService.isSuperAdmin(user)) { - return new PortalRestResponse>(PortalRestStatusEnum.ERROR, - "UnAuthorized! Admin Only Operation", new ArrayList<>()); - } - - return new PortalRestResponse>(PortalRestStatusEnum.OK, "Success", - basicAuthAccountService.getAccountData()); - } - - /** - * Updates an existing BasicAuthCredentials account - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @param accountId - * account ID - * @param newBasicAuthAccount - * BasicAuthCredentials - * @return PortalRestResponse - * @throws Exception - * on failure - */ - @RequestMapping(value = { "/portalApi/basicAuthAccount/{accountId}" }, method = RequestMethod.PUT) - public PortalRestResponse updateAccount(HttpServletRequest request, HttpServletResponse response, - @PathVariable("accountId") long accountId, @RequestBody BasicAuthCredentials newBasicAuthAccount) - throws Exception { - - EPUser user = EPUserUtils.getUserSession(request); - if (!adminRolesService.isSuperAdmin(user)) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Authorization Required", - "Admin Only Operation! "); - } - - if (newBasicAuthAccount == null) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", - "BasicAuthCredentials cannot be null or empty"); - } - try { - basicAuthAccountService.updateBasicAuthAccount(accountId, newBasicAuthAccount); - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); - } - - /** - * deletes an existing BasicAuthCredentials account - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @param accountId - * account ID - * @return PortalRestResponse - * @throws Exception - * on failure - */ - @RequestMapping(value = { "/portalApi/basicAuthAccount/{accountId}" }, method = RequestMethod.DELETE) - public PortalRestResponse deleteAccount(HttpServletRequest request, HttpServletResponse response, - @PathVariable("accountId") long accountId) throws Exception { - - EPUser user = EPUserUtils.getUserSession(request); - if (!adminRolesService.isSuperAdmin(user)) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Authorization Required", - "Admin Only Operation! "); - } - - try { - basicAuthAccountService.deleteEndpointAccout(accountId); - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BasicAuthenticationController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BasicAuthenticationController.java deleted file mode 100644 index ad0829f3..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/BasicAuthenticationController.java +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -/** - * Marker interface to indicate that requests to this controller present HTTP - * Basic Authentication credentials. - */ -public interface BasicAuthenticationController { - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/CommonWidgetController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/CommonWidgetController.java deleted file mode 100644 index 9d046cb4..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/CommonWidgetController.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.controller.DashboardController.WidgetCategory; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.DashboardSearchService; -import org.openecomp.portalapp.portal.transport.CommonWidgetMeta; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class CommonWidgetController extends EPRestrictedBaseController implements BasicAuthenticationController{ - - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(CommonWidgetController.class); - @Autowired - private DashboardSearchService searchService; - - /** - * Validates the resource type parameter. - * - * @param resourceType - * @return True if known in the enum WidgetCategory, else false. - */ - private boolean isValidResourceType(String resourceType) { - if (resourceType == null) - return false; - for (WidgetCategory wc : WidgetCategory.values()) - if (wc.name().equals(resourceType)) - return true; - return false; - } - - /** - * Gets all widgets of the specified resource type. - * - * @param request - * @param resourceType - * Request parameter. - * @return Rest response wrapped around a CommonWidgetMeta object. - */ - @RequestMapping(value = "/commonWidgets", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse getWidgetData(HttpServletRequest request, - @RequestParam String resourceType) { - if (!isValidResourceType(resourceType)){ - logger.debug(EELFLoggerDelegate.debugLogger, "Unexpected resource type {}", resourceType); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - "Unexpected resource type " + resourceType, null); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "success", - searchService.getWidgetData(resourceType)); - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ConsulClientController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ConsulClientController.java deleted file mode 100644 index e1b39f38..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ConsulClientController.java +++ /dev/null @@ -1,113 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.ConsulHealthService; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import com.orbitz.consul.ConsulException; -import com.orbitz.consul.model.health.ServiceHealth; - -import io.searchbox.client.config.exception.NoServerConfiguredException; - -@RestController -@RequestMapping("/portalApi/consul") -public class ConsulClientController extends EPRestrictedBaseController { - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ConsulClientController.class); - - @Autowired - private ConsulHealthService consulHealthService; - - // Get location of a healthy node running our service - @RequestMapping(value = { "/service/{service}" }, method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse getServiceLocation(HttpServletRequest request, HttpServletResponse response, - @PathVariable("service") String service) { - - try { - return new PortalRestResponse(PortalRestStatusEnum.OK, "Success!", - consulHealthService.getServiceLocation(service, null)); - } catch (NoServerConfiguredException e) { - logger.error(logger.errorLogger, "No healthy service exception!"); - return new PortalRestResponse(PortalRestStatusEnum.WARN, "Warning!", - "No healthy service exception!"); - } catch (ConsulException e) { - logger.error(logger.errorLogger, "Couldn't connect ot consul - Is consul running?"); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Error!", - "Couldn't connect ot consul - Is consul running?"); - } - } - - @RequestMapping(value = { "/service/healthy/{service}" }, method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> getAllHealthyNodes(HttpServletRequest request, - HttpServletResponse response, @PathVariable("service") String service) { - try { - return new PortalRestResponse>(PortalRestStatusEnum.OK, "Success!", - consulHealthService.getAllHealthyNodes(service)); - } catch (ConsulException e) { - logger.error(logger.errorLogger, "Couldn't connect to consul - shouldn't break anything."); - return new PortalRestResponse>(PortalRestStatusEnum.ERROR, "Error!", new ArrayList<>()); - } - } - - @RequestMapping(value = { "/service/all/{service}" }, method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> getAllNodes(HttpServletRequest request, HttpServletResponse response, - @PathVariable("service") String service) { - try { - return new PortalRestResponse>(PortalRestStatusEnum.OK, "Success!", - consulHealthService.getAllNodes(service)); - } catch (ConsulException e) { - logger.error(logger.errorLogger, "Couldn't connect to consul - shouldn't break anything."); - return new PortalRestResponse>(PortalRestStatusEnum.ERROR, "Error!", new ArrayList<>()); - } - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/DashboardController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/DashboardController.java deleted file mode 100644 index aaeea44c..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/DashboardController.java +++ /dev/null @@ -1,404 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EcompAuditLog; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.ecomp.model.SearchResultItem; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.logging.aop.EPEELFLoggerAdvice; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.service.DashboardSearchService; -import org.openecomp.portalapp.portal.transport.CommonWidget; -import org.openecomp.portalapp.portal.transport.CommonWidgetMeta; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.domain.AuditLog; -import org.openecomp.portalsdk.core.domain.support.CollaborateList; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.AuditService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -/** - * Controller supplies data to Angular services on the dashboard page. - */ -@Configuration -@RestController -@RequestMapping("/portalApi/dashboard") -public class DashboardController extends EPRestrictedBaseController { - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(DashboardController.class); - - @Autowired - private DashboardSearchService searchService; - @Autowired - private AuditService auditService; - - public enum WidgetCategory { - EVENTS, NEWS, IMPORTANTRESOURCES; - } - - /** - * Validates the resource type parameter. - * - * @param resourceType - * @return True if known in the enum WidgetCategory, else false. - */ - private boolean isValidResourceType(String resourceType) { - if (resourceType == null) - return false; - for (WidgetCategory wc : WidgetCategory.values()) - if (wc.name().equals(resourceType)) - return true; - return false; - } - - /** - * Gets all widgets of the specified resource type. - * In iteration 41 (when widget will utilized service onboarding), this method can be removed, instead we will use CommonWidgetController.java (basic auth based) - * - * @param request - * @param resourceType - * Request parameter. - * @return Rest response wrapped around a CommonWidgetMeta object. - */ - @RequestMapping(value = "/widgetData", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse getWidgetData(HttpServletRequest request, - @RequestParam String resourceType) { - if (!isValidResourceType(resourceType)) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - "Unexpected resource type " + resourceType, null); - return new PortalRestResponse(PortalRestStatusEnum.OK, "success", - searchService.getWidgetData(resourceType)); - } - - - /** - * Saves a batch of events, news or resources. - * - * @param commonWidgetMeta - * read from POST body. - * @return Rest response wrapped around a String; e.g., "success" or "ERROR" - */ - @RequestMapping(value = "/widgetDataBulk", method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse saveWidgetDataBulk(@RequestBody CommonWidgetMeta commonWidgetMeta) { - logger.debug(EELFLoggerDelegate.debugLogger, "saveWidgetDataBulk: argument is {}", commonWidgetMeta); - if (commonWidgetMeta.getCategory() == null || commonWidgetMeta.getCategory().trim().equals("")) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "ERROR", - "Category cannot be null or empty"); - if (!isValidResourceType(commonWidgetMeta.getCategory())) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - "Unexpected resource type " + commonWidgetMeta.getCategory(), null); - // validate dates - for (CommonWidget cw : commonWidgetMeta.getItems()) { - String err = validateCommonWidget(cw); - if (err != null) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, err, null); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "success", - searchService.saveWidgetDataBulk(commonWidgetMeta)); - } - - /** - * Saves one: event, news or resource - * - * @param commonWidget - * read from POST body - * @return Rest response wrapped around a String; e.g., "success" or "ERROR" - */ - @RequestMapping(value = "/widgetData", method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse saveWidgetData(@RequestBody CommonWidget commonWidget) { - logger.debug(EELFLoggerDelegate.debugLogger, "saveWidgetData: argument is {}", commonWidget); - if (commonWidget.getCategory() == null || commonWidget.getCategory().trim().equals("")) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "ERROR", - "Category cannot be null or empty"); - String err = validateCommonWidget(commonWidget); - if (err != null) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, err, null); - return new PortalRestResponse(PortalRestStatusEnum.OK, "success", - searchService.saveWidgetData(commonWidget)); - } - - /** - * Used by the validate function - */ - private final SimpleDateFormat yearMonthDayFormat = new SimpleDateFormat("yyyy-MM-dd"); - - /** - * Validates the content of a common widget. - * - * @param cw - * @return null on success; an error message if validation fails. - * @throws Exception - */ - private String validateCommonWidget(CommonWidget cw) { - if (!isValidResourceType(cw.getCategory())) - return "Invalid category: " + cw.getCategory(); - if (cw.getTitle() == null || cw.getTitle().trim().length() == 0) - return "Title is missing"; - if (cw.getHref() == null || cw.getHref().trim().length() == 0) - return "HREF is missing"; - if (!cw.getHref().toLowerCase().startsWith("http")) - return "HREF does not start with http"; - if (cw.getSortOrder() == null) - return "Sort order is null"; - if (WidgetCategory.EVENTS.name().equals(cw.getCategory())) { - if (cw.getEventDate() == null || cw.getEventDate().trim().length() == 0) - return "Date is missing"; - try { - yearMonthDayFormat.setLenient(false); - Date date = yearMonthDayFormat.parse(cw.getEventDate()); - if (date == null) - return "Failed to parse date " + cw.getEventDate(); - } catch (ParseException ex) { - return ex.toString(); - } - } - return null; - } - - /** - * Deletes one: event, news or resource - * - * @param commonWidget - * read from POST body - * @return Rest response wrapped around a String; e.g., "success" or "ERROR" - */ - @RequestMapping(value = "/deleteData", method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse deleteWidgetData(@RequestBody CommonWidget commonWidget) { - logger.debug(EELFLoggerDelegate.debugLogger, "deleteWidgetData: argument is {}", commonWidget); - return new PortalRestResponse(PortalRestStatusEnum.OK, "success", - searchService.deleteWidgetData(commonWidget)); - } - - /** - * Searches all portal for the input string. - * - * @param request - * @param searchString - * @return Rest response wrapped around a Map of String to List of Search - * Result Item. - */ - @EPAuditLog - @RequestMapping(value = "/search", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse>> searchPortal(HttpServletRequest request, - @RequestParam String searchString) { - - if (searchString != null) - searchString = searchString.trim(); - EPUser user = EPUserUtils.getUserSession(request); - try { - if (user == null) { - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, - "searchPortal: User object is null? - check logs", - new HashMap>()); - } else if (searchString == null || searchString.length() == 0) { - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "searchPortal: String string is null", - new HashMap>()); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "searchPortal: user {}, search string '{}'", - user.getLoginId(), searchString); - Map> results = searchService.searchResults(user.getLoginId(), - searchString); - /*Audit log the search*/ - AuditLog auditLog = new AuditLog(); - auditLog.setUserId(user.getId()); - auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_SEARCH); - auditLog.setComments(EcompPortalUtils.truncateString(searchString, PortalConstants.AUDIT_LOG_COMMENT_SIZE)); - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP,EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - auditService.logActivity(auditLog, null); - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP,EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - EcompPortalUtils.calculateDateTimeDifferenceForLog(MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP),MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); - logger.info(EELFLoggerDelegate.auditLogger, EPLogUtil.formatAuditLogMessage("DashboardController.PortalRestResponse", - EcompAuditLog.CD_ACTIVITY_SEARCH, user.getOrgUserId(), null, searchString)); - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - MDC.remove(SystemProperties.MDC_TIMER); - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "searchPortal failed", e); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage() + " - check logs.", - new HashMap>()); - } - } - - /** - * Gets all active users. - * - * TODO: should only the superuser be allowed to use this API? - * - * @param request - * @return Rest response wrapped around a list of String - */ - @RequestMapping(value = "/activeUsers", method = RequestMethod.GET, produces = "application/json") - public List getActiveUsers(HttpServletRequest request) { - List activeUsers = null; - List onlineUsers = new ArrayList<>(); - try { - EPUser user = EPUserUtils.getUserSession(request); - String userId = user.getOrgUserId(); - - activeUsers = searchService.getRelatedUsers(userId); - HashSet usersSet = CollaborateList.getInstance().getAllUserName(); - for (String users : activeUsers) { - if (usersSet.contains(users)) { - onlineUsers.add(users); - } - } - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getActiveUsers failed", e); - } - return onlineUsers; - } - - /** - * Gets the refresh interval and duration of a cycle of continuous refreshing for the online users side panel, both in milliseconds. - * - * @param request - * @return Rest response wrapped around a number that is the number of milliseconds. - */ - @RequestMapping(value = "/onlineUserUpdateRate", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> getOnlineUserUpdateRate(HttpServletRequest request) { - try { - String updateRate = SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_RATE); - String updateDuration = SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_DURATION); - Integer rateInMiliSec = Integer.valueOf(updateRate)*1000; - Integer durationInMiliSec = Integer.valueOf(updateDuration)*1000; - Map results = new HashMap(); - results.put("onlineUserUpdateRate", String.valueOf(rateInMiliSec)); - results.put("onlineUserUpdateDuration", String.valueOf(durationInMiliSec)); - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getOnlineUserUpdateRate failed", e); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); - } - } - - /** - * Gets the window width threshold for collapsing right menu from system.properties. - * - * @param request - * @return Rest response wrapped around a number that is the window width threshold to collapse right menu. - */ - @RequestMapping(value = "/windowWidthThresholdRightMenu", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> getWindowWidthThresholdForRightMenu(HttpServletRequest request) { - try { - String windowWidthString = SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_RIGHT_MENU); - Integer windowWidth = Integer.valueOf(windowWidthString); - Map results = new HashMap(); - results.put("windowWidth", String.valueOf(windowWidth)); - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getWindowWidthThresholdForRightMenu failed", e); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); - } - } - - - /** - * Gets the window width threshold for collapsing left menu from system.properties. - * - * @param request - * @return Rest response wrapped around a number that is the window width threshold to collapse the left menu. - */ - @RequestMapping(value = "/windowWidthThresholdLeftMenu", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> getWindowWidthThresholdForLeftMenu(HttpServletRequest request) { - try { - String windowWidthString = SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_LEFT_MENU); - Integer windowWidth = Integer.valueOf(windowWidthString); - Map results = new HashMap(); - results.put("windowWidth", String.valueOf(windowWidth)); - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getWindowWidthThresholdForLeftMenu failed", e); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); - } - } - - /** - * Gets only those users that are 'related' to the currently logged-in user. - * - * @param request - * @return Rest response wrapped around a List of String - */ - @RequestMapping(value = "/relatedUsers", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> activeUsers(HttpServletRequest request) { - EPUser user = EPUserUtils.getUserSession(request); - try { - if (user == null) { - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "User object is null? - check logs", - new ArrayList<>()); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "activeUsers: searching for user {}", user.getLoginId()); - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", - searchService.getRelatedUsers(user.getLoginId())); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "activeUsers failed", e); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage() + " - check logs.", - new ArrayList<>()); - } - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/DashboardSearchResultController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/DashboardSearchResultController.java deleted file mode 100644 index 313ae683..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/DashboardSearchResultController.java +++ /dev/null @@ -1,261 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.ecomp.model.SearchResultItem; -import org.openecomp.portalapp.portal.service.DashboardSearchService; -import org.openecomp.portalapp.portal.transport.CommonWidget; -import org.openecomp.portalapp.portal.transport.CommonWidgetMeta; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.domain.support.CollaborateList; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/portalApi/search") -public class DashboardSearchResultController extends EPRestrictedBaseController { - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(DashboardSearchResultController.class); - - @Autowired - private DashboardSearchService searchService; - - /** - * Gets all widgets by type: NEW or RESOURCE - * - * @param request - * @param resourceType - * Request parameter. - * @return Rest response wrapped around a CommonWidgetMeta object. - */ - @RequestMapping(value = "/widgetData", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse getWidgetData(HttpServletRequest request, - @RequestParam String resourceType) { - return new PortalRestResponse(PortalRestStatusEnum.OK, "success", - searchService.getWidgetData(resourceType)); - } - - /** - * Saves all: news and resources - * - * @param commonWidgetMeta - * read from POST body. - * @return Rest response wrapped around a String; e.g., "success" or "ERROR" - */ - @RequestMapping(value = "/widgetDataBulk", method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse saveWidgetDataBulk(@RequestBody CommonWidgetMeta commonWidgetMeta) { - logger.debug(EELFLoggerDelegate.debugLogger, "saveWidgetDataBulk: argument is {}", commonWidgetMeta); - if (commonWidgetMeta.getCategory() == null || commonWidgetMeta.getCategory().trim().equals("")) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "ERROR", - "Category cannot be null or empty"); - // validate dates - for (CommonWidget cw : commonWidgetMeta.getItems()) { - String err = validateCommonWidget(cw); - if (err != null) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, err, null); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "success", - searchService.saveWidgetDataBulk(commonWidgetMeta)); - } - - /** - * Saves one: news or resource - * - * @param commonWidget - * read from POST body - * @return Rest response wrapped around a String; e.g., "success" or "ERROR" - */ - @RequestMapping(value = "/widgetData", method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse saveWidgetData(@RequestBody CommonWidget commonWidget) { - logger.debug(EELFLoggerDelegate.debugLogger, "saveWidgetData: argument is {}", commonWidget); - if (commonWidget.getCategory() == null || commonWidget.getCategory().trim().equals("")) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "ERROR", - "Cateogry cannot be null or empty"); - String err = validateCommonWidget(commonWidget); - if (err != null) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, err, null); - return new PortalRestResponse(PortalRestStatusEnum.OK, "success", - searchService.saveWidgetData(commonWidget)); - } - - /** - * Used by the validate function - */ - private final SimpleDateFormat yearMonthDayFormat = new SimpleDateFormat("yyyy-MM-dd"); - - /** - * Validates the content of a common widget. - * - * @param cw - * @return null on success; an error message if validation fails. - * @throws Exception - */ - private String validateCommonWidget(CommonWidget cw) { - try { - if (cw.getEventDate() != null && cw.getEventDate().trim().length() > 0) - yearMonthDayFormat.parse(cw.getEventDate()); - } catch (ParseException ex) { - return ex.toString(); - } - return null; - } - - /** - * Deletes one: news or resource - * - * @param commonWidget - * read from POST body - * @return Rest response wrapped around a String; e.g., "success" or "ERROR" - */ - @RequestMapping(value = "/deleteData", method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse deleteWidgetData(@RequestBody CommonWidget commonWidget) { - logger.debug(EELFLoggerDelegate.debugLogger, "deleteWidgetData: argument is {}", commonWidget); - return new PortalRestResponse(PortalRestStatusEnum.OK, "success", - searchService.deleteWidgetData(commonWidget)); - } - - /** - * Searches all portal for the input string. - * - * @param request - * @param searchString - * @return Rest response wrapped around a Map of String to List of Search - * Result Item. - */ - @RequestMapping(value = "/allPortal", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse>> searchPortal(HttpServletRequest request, - @RequestParam String searchString) { - - EPUser user = EPUserUtils.getUserSession(request); - try { - if (user == null) { - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, - "searchPortal: User object is null? - check logs", - new HashMap>()); - } else if (searchString == null || searchString.trim().length() == 0) { - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "searchPortal: String string is null", - new HashMap>()); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "searchPortal: user {}, search string '{}'", - user.getLoginId(), searchString); - Map> results = searchService.searchResults(user.getLoginId(), - searchString); - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "searchPortal failed", e); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage() + " - check logs.", - new HashMap>()); - } - } - - /** - * Gets all active users. - * - * TODO: should only the superuser be allowed to use this API? - * - * @param request - * @return Rest response wrapped around a list of String - */ - @RequestMapping(value = "/activeUsers", method = RequestMethod.GET, produces = "application/json") - public List getActiveUsers(HttpServletRequest request) { - List activeUsers = null; - List onlineUsers = new ArrayList<>(); - try { - EPUser user = EPUserUtils.getUserSession(request); - String userId = user.getOrgUserId(); - - activeUsers = searchService.getRelatedUsers(userId); - HashSet usersSet = CollaborateList.getInstance().getAllUserName(); - for (String users : activeUsers) { - if (usersSet.contains(users)) { - onlineUsers.add(users); - } - } - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getActiveUsers failed", e); - } - return onlineUsers; - } - - /** - * Gets only those users that are 'related' to the currently logged-in user. - * - * @param request - * @return Rest response wrapped around a List of String - */ - @RequestMapping(value = "/relatedUsers", method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> activeUsers(HttpServletRequest request) { - EPUser user = EPUserUtils.getUserSession(request); - try { - if (user == null) { - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "User object is null? - check logs", - new ArrayList<>()); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "activeUsers: searching for user {}", user.getLoginId()); - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", - searchService.getRelatedUsers(user.getLoginId())); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "activeUsers failed", e); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage() + " - check logs.", - new ArrayList<>()); - } - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ExternalAccessRolesController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ExternalAccessRolesController.java deleted file mode 100644 index 5770d163..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ExternalAccessRolesController.java +++ /dev/null @@ -1,551 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.portal.domain.CentralRoleFunction; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EcompAuditLog; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.logging.aop.EPEELFLoggerAdvice; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.service.ExternalAccessRolesService; -import org.openecomp.portalapp.portal.transport.CentralRole; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.domain.AuditLog; -import org.openecomp.portalsdk.core.domain.Role; -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.restful.domain.EcompUser; -import org.openecomp.portalsdk.core.service.AuditService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.client.HttpClientErrorException; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import io.swagger.annotations.ApiOperation; - -@RestController -@RequestMapping("/auxapi") -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class ExternalAccessRolesController implements BasicAuthenticationController { - - private static final String LOGIN_ID = "LoginId"; - - @Autowired - private AuditService auditService; - - private static final String UEBKEY = "uebkey"; - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ExternalAccessRolesController.class); - - @Autowired - private ExternalAccessRolesService externalAccessRolesService; - - @ApiOperation(value = "Gets user role for an application.", response = String.class, responseContainer = "List") - @RequestMapping(value = { "/user/{loginId}" }, method = RequestMethod.GET, produces = "application/json") - public String getUser(HttpServletRequest request, HttpServletResponse response, - @PathVariable("loginId") String loginId) throws Exception { - - String answer = null; - try { - answer = externalAccessRolesService.getUserWithRoles(loginId, request.getHeader(UEBKEY)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUser failed", e); - } - return answer; - } - - @ApiOperation(value = "Gets roles for an application.", response = CentralRole.class, responseContainer = "Json") - @RequestMapping(value = { "/roles" }, method = RequestMethod.GET, produces = "application/json") - public List getRolesForApp(HttpServletRequest request, HttpServletResponse response) throws Exception { - logger.debug(EELFLoggerDelegate.debugLogger, "Request received for getRolesForApp"); - List applicationList = new ArrayList<>(); - applicationList = externalAccessRolesService.getApp(request.getHeader(UEBKEY)); - EPApp app = applicationList.get(0); - externalAccessRolesService.syncApplicationRolesWithEcompDB(app); - List answer = null; - try { - answer = externalAccessRolesService.getRolesForApp(request.getHeader(UEBKEY)); - } catch (HttpClientErrorException e) { - if ("Application not found".equalsIgnoreCase(e.getMessage())) { - response.setStatus(HttpServletResponse.SC_NOT_FOUND); - } - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "getRolesForApp failed", e); - } - logger.debug(EELFLoggerDelegate.debugLogger, "Request completed for getRolesForApp"); - return answer; - } - - @ApiOperation(value = "Gets all role functions for an application.", response = CentralRoleFunction.class, responseContainer = "Json") - @RequestMapping(value = { "/functions" }, method = RequestMethod.GET, produces = "application/json") - public List getRoleFunctionsList(HttpServletRequest request, HttpServletResponse response) - throws Exception { - List answer = null; - logger.debug(EELFLoggerDelegate.debugLogger, "Request received for getRoleFunctionsList"); - try { - answer = externalAccessRolesService.getRoleFuncList(request.getHeader(UEBKEY)); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "getRoleFunctionsList failed", e); - } - logger.debug(EELFLoggerDelegate.debugLogger, "Request completed for getRoleFunctionsList"); - return answer; - } - - @ApiOperation(value = "Gets role information for an application.", response = CentralRole.class, responseContainer = "Json") - @RequestMapping(value = { "/role/{role_id}" }, method = RequestMethod.GET, produces = "application/json") - public CentralRole getRoleInfo(HttpServletRequest request, HttpServletResponse response, - @PathVariable("role_id") Long roleId) throws Exception { - CentralRole answer = null; - logger.debug(EELFLoggerDelegate.debugLogger, "Request received for getRoleInfo"); - - try { - answer = externalAccessRolesService.getRoleInfo(roleId, request.getHeader(UEBKEY)); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "getRoleInfo failed", e); - } - logger.debug(EELFLoggerDelegate.debugLogger, "Request completed for getRoleInfo"); - return answer; - } - - @ApiOperation(value = "Gets role information for an application provided by function code.", response = CentralRoleFunction.class, responseContainer = "Json") - @RequestMapping(value = { "/function/{code}" }, method = RequestMethod.GET, produces = "application/json") - public CentralRoleFunction getRoleFunction(HttpServletRequest request, HttpServletResponse response, - @PathVariable("code") String code) throws Exception { - CentralRoleFunction centralRoleFunction = null; - try { - centralRoleFunction = externalAccessRolesService.getRoleFunction(code, request.getHeader(UEBKEY)); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "getRoleInfo failed", e); - } - return centralRoleFunction; - } - - @ApiOperation(value = "Saves role function for an application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { "/roleFunction" }, method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse saveRoleFunction(HttpServletRequest request, HttpServletResponse response, - @RequestBody String roleFunc) throws Exception { - - ObjectMapper mapper = new ObjectMapper(); - List applicationList = externalAccessRolesService.getApp(request.getHeader(UEBKEY)); - EPApp requestedApp = applicationList.get(0); - Long appId = requestedApp.getId(); - try { - String data = roleFunc; - CentralRoleFunction availableRoleFunction = mapper.readValue(data, CentralRoleFunction.class); - availableRoleFunction.setAppId(appId); - boolean saveOrUpdateResponse = externalAccessRolesService.saveCentralRoleFunction(availableRoleFunction, - requestedApp); - if (saveOrUpdateResponse) { - EPUser user = externalAccessRolesService.getUser(request.getHeader(LOGIN_ID)).get(0); - EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); - CentralRoleFunction function = externalAccessRolesService - .getRoleFunction(availableRoleFunction.getCode(), request.getHeader(UEBKEY)); - String activityCode = (function.getCode() == null) - ? EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_ADD_FUNCTION - : EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_FUNCTION; - logger.info(EELFLoggerDelegate.applicationLogger, "saveRoleFunction: succeeded for app {}, function {}", - app.getId(), availableRoleFunction.getCode()); - AuditLog auditLog = new AuditLog(); - auditLog.setUserId(user.getId()); - auditLog.setActivityCode(activityCode); - auditLog.setComments( - EcompPortalUtils.truncateString( - "saveRoleFunction role for app:" + app.getId() + " and function:'" - + availableRoleFunction.getCode() + "'", - PortalConstants.AUDIT_LOG_COMMENT_SIZE)); - auditLog.setAffectedRecordId(user.getOrgUserId()); - auditService.logActivity(auditLog, null); - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - EcompPortalUtils.calculateDateTimeDifferenceForLog( - MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), - MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); - logger.info(EELFLoggerDelegate.auditLogger, - EPLogUtil.formatAuditLogMessage("ExternalAccessRolesController.saveRoleFunction", activityCode, - String.valueOf(user.getId()), user.getOrgUserId(), availableRoleFunction.getCode())); - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - MDC.remove(SystemProperties.MDC_TIMER); - } else { - logger.error(EELFLoggerDelegate.errorLogger, "saveRoleFunction failed"); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - "Failed to saveRoleFunction for '" + availableRoleFunction.getCode() + "'", "Failed"); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "saveRoleFunction failed", e); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), "Failed"); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully Saved", "Success"); - } - - @ApiOperation(value = "Deletes role function for an application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { "/roleFunction/{code}" }, method = RequestMethod.DELETE, produces = "application/json") - public PortalRestResponse deleteRoleFunction(HttpServletRequest request, HttpServletResponse response, - @PathVariable("code") String code) throws Exception { - try { - EPUser user = externalAccessRolesService.getUser(request.getHeader(LOGIN_ID)).get(0); - EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); - boolean getDelFuncResponse = externalAccessRolesService.deleteCentralRoleFunction(code, app); - if (getDelFuncResponse) { - logger.info(EELFLoggerDelegate.applicationLogger, "deleteRoleFunction: succeeded for app {}, role {}", - app.getId(), code); - AuditLog auditLog = new AuditLog(); - auditLog.setUserId(user.getId()); - auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_FUNCTION); - auditLog.setComments(EcompPortalUtils.truncateString( - "Deleted function for app:" + app.getId() + " and function code:'" + code + "'", - PortalConstants.AUDIT_LOG_COMMENT_SIZE)); - auditLog.setAffectedRecordId(user.getOrgUserId()); - auditService.logActivity(auditLog, null); - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - EcompPortalUtils.calculateDateTimeDifferenceForLog( - MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), - MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); - logger.info(EELFLoggerDelegate.auditLogger, - EPLogUtil.formatAuditLogMessage("ExternalAccessRolesController.deleteRoleFunction", - EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_FUNCTION, String.valueOf(user.getId()), - user.getOrgUserId(), code)); - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - MDC.remove(SystemProperties.MDC_TIMER); - } else { - logger.error(EELFLoggerDelegate.errorLogger, "deleteRoleFunction failed"); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - "Failed to deleteRoleFunction for '" + code + "'", "Failed"); - } - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - logger.error(EELFLoggerDelegate.errorLogger, "deleteRoleFunction failed", e); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, - "Failed to deleteRoleFunction for '" + code + "'", "Failed"); - } - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "Successfully Deleted", "Success"); - - } - - @ApiOperation(value = "Saves role for an application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { "/role" }, method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse saveRole(HttpServletRequest request, HttpServletResponse response, - @RequestBody Role role) throws Exception { - try { - EPUser user = externalAccessRolesService.getUser(request.getHeader(LOGIN_ID)).get(0); - EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); - boolean getAddResponse = externalAccessRolesService.saveRoleForApplication(role, request.getHeader(UEBKEY)); - if (getAddResponse) { - String activityCode = (role.getId() == null) ? EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_ADD_ROLE - : EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_ROLE_AND_FUNCTION; - logger.info(EELFLoggerDelegate.applicationLogger, "saveRole: succeeded for app {}, role {}", - app.getId(), role.getName()); - AuditLog auditLog = new AuditLog(); - auditLog.setUserId(user.getId()); - auditLog.setActivityCode(activityCode); - auditLog.setComments(EcompPortalUtils.truncateString( - "saveRole role for app:" + app.getId() + " and role:'" + role.getName() + "'", - PortalConstants.AUDIT_LOG_COMMENT_SIZE)); - auditLog.setAffectedRecordId(user.getOrgUserId()); - auditService.logActivity(auditLog, null); - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - EcompPortalUtils.calculateDateTimeDifferenceForLog( - MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), - MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); - logger.info(EELFLoggerDelegate.auditLogger, - EPLogUtil.formatAuditLogMessage("ExternalAccessRolesController.saveRole", activityCode, - String.valueOf(user.getId()), user.getOrgUserId(), role.getName())); - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - MDC.remove(SystemProperties.MDC_TIMER); - } else { - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, - "Failed to saveRole for '" + role.getName() + "'", "Failed"); - - } - } catch (Exception e) { - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - logger.error(EELFLoggerDelegate.errorLogger, "saveRole failed", e); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to saveRole", "Failed"); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully Saved", "Success"); - } - - @ApiOperation(value = "Deletes role for an application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { "/deleteRole/{code}" }, method = RequestMethod.DELETE, produces = "application/json") - public PortalRestResponse deleteRole(HttpServletRequest request, HttpServletResponse response, - @PathVariable String code) throws Exception { - try { - boolean deleteResponse = externalAccessRolesService.deleteRoleForApplication(code, - request.getHeader(UEBKEY)); - if (deleteResponse) { - EPUser user = externalAccessRolesService.getUser(request.getHeader(LOGIN_ID)).get(0); - EPApp app = externalAccessRolesService.getApp(request.getHeader(UEBKEY)).get(0); - logger.info(EELFLoggerDelegate.applicationLogger, "deleteRole: succeeded for app {}, role {}", - app.getId(), code); - AuditLog auditLog = new AuditLog(); - auditLog.setUserId(user.getId()); - auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_ROLE); - auditLog.setComments(EcompPortalUtils.truncateString( - "Deleted role for app:" + app.getId() + " and role:'" + code + "'", - PortalConstants.AUDIT_LOG_COMMENT_SIZE)); - auditLog.setAffectedRecordId(user.getOrgUserId()); - auditService.logActivity(auditLog, null); - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - EcompPortalUtils.calculateDateTimeDifferenceForLog( - MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), - MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); - logger.info(EELFLoggerDelegate.auditLogger, - EPLogUtil.formatAuditLogMessage("ExternalAccessRolesController.deleteRole", - EcompAuditLog.CD_ACTIVITY_EXTERNAL_AUTH_DELETE_ROLE, String.valueOf(user.getId()), - user.getOrgUserId(), code)); - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - MDC.remove(SystemProperties.MDC_TIMER); - } else { - logger.error(EELFLoggerDelegate.errorLogger, "deleteRole failed"); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - "Failed to deleteRole for '" + code + "'", "Failed"); - } - } catch (Exception e) { - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - logger.error(EELFLoggerDelegate.errorLogger, "deleteRole failed", e); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to deleteRole", "Failed"); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully Deleted", "Success"); - - } - - @ApiOperation(value = "Gets active roles for an application.", response = CentralRole.class, responseContainer = "Json") - @RequestMapping(value = { "/activeRoles" }, method = RequestMethod.GET, produces = "application/json") - public List getActiveRoles(HttpServletRequest request, HttpServletResponse response) throws Exception { - List cenRole = null; - try { - cenRole = externalAccessRolesService.getActiveRoles(request.getHeader(UEBKEY)); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - logger.error(EELFLoggerDelegate.errorLogger, "getActiveRoles failed", e); - } - return cenRole; - - } - - @ApiOperation(value = "deletes user roles for an application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { - "/deleteDependcyRoleRecord/{roleId}" }, method = RequestMethod.DELETE, produces = "application/json") - public PortalRestResponse deleteDependencyRoleRecord(HttpServletRequest request, - HttpServletResponse response, @PathVariable("roleId") Long roleId) throws Exception { - try { - boolean deleteResponse = externalAccessRolesService.deleteDependencyRoleRecord(roleId, - request.getHeader(UEBKEY), request.getHeader(LOGIN_ID)); - if (!deleteResponse) { - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "Failed to deleteDependencyRoleRecord", - "Failed"); - } - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - logger.error(EELFLoggerDelegate.errorLogger, "deleteDependencyRoleRecord failed", e); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "Failed to deleteDependencyRoleRecord", - "Failed"); - } - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "Successfully Deleted", "Success"); - } - - @ApiOperation(value = "Bulk upload functions for an application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { "/upload/portal/functions" }, method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse bulkUploadFunctions(HttpServletRequest request, HttpServletResponse response) - throws Exception { - Integer result = 0; - try { - result = externalAccessRolesService.bulkUploadFunctions(request.getHeader(UEBKEY)); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadFunctions failed", e); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadFunctions", - "Failed"); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added: " + result, "Success"); - } - - @ApiOperation(value = "Bulk upload roles for an application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { "/upload/portal/roles" }, method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse bulkUploadRoles(HttpServletRequest request, HttpServletResponse response) - throws Exception { - Integer result = 0; - try { - result = externalAccessRolesService.bulkUploadRoles(request.getHeader(UEBKEY)); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRoles failed", e); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadRoles", "Failed"); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added: " + result, "Success"); - } - - @ApiOperation(value = "Bulk upload role functions for an application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { - "/upload/portal/roleFunctions" }, method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse bulkUploadRoleFunctions(HttpServletRequest request, HttpServletResponse response) - throws Exception { - Integer result = 0; - try { - result = externalAccessRolesService.bulkUploadRolesFunctions(request.getHeader(UEBKEY)); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRoleFunctions failed", e); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadRoleFunctions", - "Failed"); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added: " + result, "Success"); - } - - @ApiOperation(value = "Bulk upload user roles for an application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { "/upload/portal/userRoles" }, method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse bulkUploadUserRoles(HttpServletRequest request, HttpServletResponse response) - throws Exception { - Integer result = 0; - try { - result = externalAccessRolesService.bulkUploadUserRoles(request.getHeader(UEBKEY)); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadUserRoles failed", e); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadUserRoles", - "Failed"); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added: " + result, "Success"); - } - - @ApiOperation(value = "Bulk upload functions for an partner application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { "/upload/partner/functions" }, method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse bulkUploadPartnerFunctions(HttpServletRequest request, - HttpServletResponse response, @RequestBody List upload) throws Exception { - try { - externalAccessRolesService.bulkUploadPartnerFunctions(request.getHeader(UEBKEY), upload); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadFunctions failed", e); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadFunctions", - "Failed"); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added", "Success"); - } - - @ApiOperation(value = "Bulk upload roles for an partner application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { "/upload/partner/roles" }, method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse bulkUploadPartnerRoles(HttpServletRequest request, HttpServletResponse response, - @RequestBody List upload) throws Exception { - try { - externalAccessRolesService.bulkUploadPartnerRoles(request.getHeader(UEBKEY), upload); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRoles failed", e); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "Failed to bulkUploadRoles", "Failed"); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added", "Success"); - } - - @ApiOperation(value = "Bulk upload role functions for an partner application.", response = PortalRestResponse.class, responseContainer = "Json") - @RequestMapping(value = { - "/upload/partner/roleFunctions" }, method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse bulkUploadPartnerRoleFunctions(HttpServletRequest request, - HttpServletResponse response, @RequestBody List upload) throws Exception { - try { - externalAccessRolesService.bulkUploadPartnerRoleFunctions(request.getHeader(UEBKEY), upload); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRoles failed", e); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - "Failed to bulkUploadPartnerRoleFunctions", "Failed"); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "Successfully added", "Success"); - } - - @ApiOperation(value = "Gets all functions along with global functions", response = List.class, responseContainer = "Json") - @RequestMapping(value = { "/menuFunctions" }, method = RequestMethod.GET, produces = "application/json") - public List getMenuFunctions(HttpServletRequest request, HttpServletResponse response) throws Exception { - List functionsList = null; - try { - functionsList = externalAccessRolesService.getMenuFunctionsList(request.getHeader(UEBKEY)); - } catch (HttpClientErrorException e) { - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - logger.error(EELFLoggerDelegate.errorLogger, "getMenuFunctions failed", e); - } - return functionsList; - } - - @ApiOperation(value = "Gets all active Users of application", response = String.class, responseContainer = "Json") - @RequestMapping(value = { "/users" }, method = RequestMethod.GET, produces = "application/json") - public List getUsersOfApplication(HttpServletRequest request, HttpServletResponse response) - throws Exception { - List users = null; - try { - users = externalAccessRolesService.getAllAppUsers(request.getHeader(UEBKEY)); - } catch (Exception e) { - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - logger.error(EELFLoggerDelegate.errorLogger, "getUsersOfApplication failed", e); - throw new Exception(e.getMessage()); - } - return users; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ExternalAppsRestfulController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ExternalAppsRestfulController.java deleted file mode 100644 index c30b41a7..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ExternalAppsRestfulController.java +++ /dev/null @@ -1,224 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPRestrictedRESTfulBaseController; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.EPLoginService; -import org.openecomp.portalapp.portal.service.EPRoleService; -import org.openecomp.portalapp.portal.service.FunctionalMenuService; -import org.openecomp.portalapp.portal.service.UserNotificationService; -import org.openecomp.portalapp.portal.transport.EpNotificationItem; -import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItem; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.crossapi.PortalAPIResponse; -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -import io.swagger.annotations.ApiOperation; - -@RestController -@RequestMapping(PortalConstants.REST_AUX_API) -@Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class ExternalAppsRestfulController extends EPRestrictedRESTfulBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ExternalAppsRestfulController.class); - - @Autowired - private FunctionalMenuService functionalMenuService; - - @Autowired - private EPLoginService epLoginService; - - @Autowired - private AdminRolesService adminRolesService; - - @Autowired - private UserNotificationService userNotificationService; - - @Autowired - private EPRoleService epRoleService; - - @ApiOperation(value = "Creates a Portal user notification for roles identified in the content from an external application.", response = PortalAPIResponse.class) - @RequestMapping(value = { "/publishNotification" }, method = RequestMethod.POST, produces = "application/json") - @ResponseBody - public PortalAPIResponse publishNotification(HttpServletRequest request, - @RequestBody EpNotificationItem notificationItem) throws Exception { - String appKey = request.getHeader("uebkey"); - EPApp app = findEpApp(appKey); - List postRoleIds = new ArrayList(); - for (Long roleId : notificationItem.getRoleIds()) { - EPRole role = epRoleService.getRole(app.getId(), roleId); - if (role != null) - postRoleIds.add(role.getId()); - } - - // --- recreate the user notification object with the POrtal Role Ids - EpNotificationItem postItem = new EpNotificationItem(); - postItem.setRoleIds(postRoleIds); - postItem.setIsForAllRoles("N"); - postItem.setIsForOnlineUsers("N"); - postItem.setActiveYn("Y"); - postItem.setPriority(notificationItem.getPriority()); - postItem.setMsgHeader(notificationItem.getMsgHeader()); - postItem.setMsgDescription(notificationItem.getMsgDescription()); - postItem.setStartTime(notificationItem.getStartTime()); - postItem.setEndTime(notificationItem.getEndTime()); - postItem.setCreatedDate(Calendar.getInstance().getTime()); - // default creator to 1 for now - postItem.setCreatorId(PortalConstants.DEFAULT_NOTIFICATION_CREATOR); - // ---- - - try { - userNotificationService.saveNotification(postItem); - } catch (Exception e) { - return new PortalAPIResponse(false, e.getMessage()); - } - - PortalAPIResponse response = new PortalAPIResponse(true, "success"); - return response; - } - - private EPApp findEpApp(String uebKey) { - List list = null; - StringBuffer criteria = new StringBuffer(); - criteria.append(" where ueb_key = '" + uebKey + "'"); - list = getDataAccessService().getList(EPApp.class, criteria.toString(), null, null); - return (list == null || list.size() == 0) ? null : (EPApp) list.get(0); - } - - @ApiOperation(value = "Gets favorite items within the functional menu for the current user.", response = FavoritesFunctionalMenuItemJson.class, responseContainer="List") - @RequestMapping(value = { "/getFavorites" }, method = RequestMethod.GET, produces = "application/json") - public List getFavoritesForUser(HttpServletRequest request, - HttpServletResponse response) throws Exception { - String loginId = ""; - String userAgent = ""; - List favorites = null; - - loginId = request.getHeader(EPCommonSystemProperties.MDC_LOGIN_ID); - userAgent = MDC.get(EPCommonSystemProperties.PARTNER_NAME); - - EPUser epUser = epLoginService.findUserWithoutPwd(loginId); - logger.info(EELFLoggerDelegate.errorLogger, - "getFavorites request was received from " + userAgent + " for the user " + loginId + "."); - if (epUser == null || epUser.getId() == null) { - logger.error(EELFLoggerDelegate.errorLogger, - "No User record found for the LoginId '" + loginId + "' in the database."); - throw new Exception("Received null for Login-Id."); - } else { - favorites = functionalMenuService.getFavoriteItems(epUser.getId()); - FieldsValidator fieldsValidator = new FieldsValidator(); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - - EcompPortalUtils.logAndSerializeObject(logger, "/getFavorites", "result = ", favorites); - } - - return favorites; - } - - @ApiOperation(value = "Gets functional menu items appropriate for the current user.", response = FunctionalMenuItem.class, responseContainer="List") - @RequestMapping(value = { - "/functionalMenuItemsForUser" }, method = RequestMethod.GET, produces = "application/json") - public List getFunctionalMenuItemsForUser(HttpServletRequest request, - HttpServletResponse response) throws Exception { - String loginId = ""; - String userAgent = ""; - List fnMenuItems = null; - - loginId = request.getHeader("LoginId"); - userAgent = MDC.get(EPCommonSystemProperties.PARTNER_NAME); - - EPUser epUser = epLoginService.findUserWithoutPwd(loginId); - logger.info(EELFLoggerDelegate.errorLogger, "getFunctionalMenuItemsForUser request was received from " - + userAgent + " for the user " + loginId + "."); - if (epUser == null || epUser.getId() == null) { - logger.error(EELFLoggerDelegate.errorLogger, - "No User record found for the LoginId '" + loginId + "' in the database."); - throw new Exception("Received null for Login-Id."); - } else if (adminRolesService.isSuperAdmin(epUser)) { - logger.debug(EELFLoggerDelegate.debugLogger, - "FunctionalMenuHandler: SuperUser, about to call getFunctionalMenuItems()"); - fnMenuItems = functionalMenuService.getFunctionalMenuItems(); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, - "getMenuItemsForAuthUser: about to call getFunctionalMenuItemsForUser()"); - fnMenuItems = functionalMenuService.getFunctionalMenuItemsForUser(epUser.getOrgUserId()); - } - - FieldsValidator fieldsValidator = new FieldsValidator(); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - - EcompPortalUtils.logAndSerializeObject(logger, "/functionalMenuItemsForUser", "result = ", fnMenuItems); - - return fnMenuItems; - } - - @ExceptionHandler(Exception.class) - protected void handleBadRequests(Exception e, HttpServletResponse response) throws IOException { - logger.warn(EELFLoggerDelegate.errorLogger, "Handling bad request", e); - response.sendError(HttpStatus.BAD_REQUEST.value(), e.getMessage()); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/FunctionalMenuController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/FunctionalMenuController.java deleted file mode 100644 index 5243cad3..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/FunctionalMenuController.java +++ /dev/null @@ -1,666 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.json.JSONObject; -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.SharedContext; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.FunctionalMenuService; -import org.openecomp.portalapp.portal.service.SearchService; -import org.openecomp.portalapp.portal.service.SharedContextService; -import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRole; -import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRolesList; -import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItem; -import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItem; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItemWithRoles; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -/** - * Supports menus at the top of the Portal app landing page. - */ -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class FunctionalMenuController extends EPRestrictedBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FunctionalMenuController.class); - - @Autowired - private AdminRolesService adminRolesService; - @Autowired - private FunctionalMenuService functionalMenuService; - @Autowired - private SharedContextService sharedContextService; - @Autowired - private SearchService searchService; - - /** - * RESTful service method to fetch all the FunctionalMenuItems. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return List of FunctionalMenuItem objects - */ - @RequestMapping(value = { "/portalApi/functionalMenu" }, method = RequestMethod.GET, produces = "application/json") - public List getMenuItems(HttpServletRequest request, HttpServletResponse response) { - // TODO: should only the superuser be allowed to use this API? - List menuItems = null; - try { - menuItems = functionalMenuService.getFunctionalMenuItems(); - functionalMenuService.assignHelpURLs(menuItems); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenu", "result =", menuItems); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getMenuItems failed", e); - } - return menuItems; - } - - /** - * RESTful service method to get ECOMP Portal Title. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return PortalRestResponse of ECOMP portal title - */ - @RequestMapping(value = { "/portalApi/ecompTitle" }, method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse getECOMPTitle(HttpServletRequest request, HttpServletResponse response) { - PortalRestResponse portalRestResponse = null; - try { - String ecompTitle = SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME); - portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.OK, "success", ecompTitle); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/ecompTitle", "result =", ecompTitle); - } catch (Exception e) { - portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), null); - logger.error(EELFLoggerDelegate.errorLogger, "getEcompTitle failed", e); - } - return portalRestResponse; - } - - /** - * RESTful service method to fetch all the FunctionalMenuItems, both active and - * inactive, for the EditFunctionalMenu feature. Can only be accessed by the - * portal admin. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return List of FunctionalMenuItem objects - */ - @RequestMapping(value = { - "/portalApi/functionalMenuForEditing" }, method = RequestMethod.GET, produces = "application/json") - public List getMenuItemsForEditing(HttpServletRequest request, HttpServletResponse response) { - // TODO: should only the superuser be allowed to use this API? - EPUser user = EPUserUtils.getUserSession(request); - List menuItems = null; - try { - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "getFunctionalMenuItemDetails"); - } else { - menuItems = functionalMenuService.getFunctionalMenuItems(true); - } - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuForEditing", "result =", - menuItems); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getMenuItemsForEditing failed", e); - } - return menuItems; - } - - /** - * RESTful service method to fetch all the FunctionalMenuItems, active , for the - * Functional menu in notification Tree feature. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return List of FunctionalMenuItem objects - */ - @RequestMapping(value = { - "/portalApi/functionalMenuForNotificationTree" }, method = RequestMethod.GET, produces = "application/json") - public List getMenuItemsForNotifications(HttpServletRequest request, - HttpServletResponse response) { - // TODO: should only the superuser be allowed to use this API? - // EPUser user = EPUserUtils.getUserSession(request); - List menuItems = null; - try { - menuItems = functionalMenuService.getFunctionalMenuItemsForNotificationTree(true); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuForNotificationTree", "result =", - menuItems); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getMenuItemsForNotifications failed", e); - } - return menuItems; - } - - /** - * RESTful service method to fetch all FunctionalMenuItems associated with an - * application. - * - * @param request - * HttpServletRequest - * @param appId - * application ID - * @return List of FunctionalMenuItem objects - */ - @RequestMapping(value = { - "/portalApi/functionalMenuForApp/{appId}" }, method = RequestMethod.GET, produces = "application/json") - public List getMenuItemsForApp(HttpServletRequest request, - @PathVariable("appId") Integer appId) { - // TODO: should only the superuser be allowed to use this API? - List menuItems = null; - try { - menuItems = functionalMenuService.getFunctionalMenuItemsForApp(appId); - functionalMenuService.assignHelpURLs(menuItems); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuForApp/" + appId, "result =", - menuItems); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getMenuItemsForApp failed", e); - } - return menuItems; - } - - /** - * RESTful service method to fetch all FunctionalMenuItems associated with the - * applications and roles that a user has access to. - * - * @param request - * HttpServletRequest - * @param orgUserId - * user ID - * @return List of FunctionalMenuItem objects - */ - @RequestMapping(value = { - "/portalApi/functionalMenuForUser/{orgUserId}" }, method = RequestMethod.GET, produces = "application/json") - public List getMenuItemsForUser(HttpServletRequest request, - @PathVariable("orgUserId") String orgUserId) { - // TODO: should only the superuser be allowed to use this API? - List menuItems = null; - try { - menuItems = functionalMenuService.getFunctionalMenuItemsForUser(orgUserId); - functionalMenuService.assignHelpURLs(menuItems); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuForUser/" + orgUserId, "result =", - menuItems); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getMenuItemsForUser failed", e); - } - - return menuItems; - } - - /** - * RESTful service method to fetch all FunctionalMenuItems associated with the - * applications and roles that the authenticated user has access to. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return List of FunctionalMenuItem objects - */ - @RequestMapping(value = { - "/portalApi/functionalMenuForAuthUser" }, method = RequestMethod.GET, produces = "application/json") - public List getMenuItemsForAuthUser(HttpServletRequest request, HttpServletResponse response) { - - EPUser user = EPUserUtils.getUserSession(request); - List menuItems = null; - try { - if (user == null) { - EcompPortalUtils.setBadPermissions(user, response, "getMenuItemsForAuthUser"); - } else if (adminRolesService.isSuperAdmin(user)) { - menuItems = functionalMenuService.getFunctionalMenuItems(); - } else { - // calculate the menu items - String orgUserId = user.getOrgUserId(); - menuItems = functionalMenuService.getFunctionalMenuItemsForUser(orgUserId); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuForUser/" + orgUserId, - "result =", menuItems); - } - functionalMenuService.assignHelpURLs(menuItems); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getMenuItemsForAuthUser failed", e); - } - return menuItems; - } - - /** - * RESTful service method to fetch the details for a functional menu item. - * Requirement: you must be the Ecomp portal super admin user. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @param menuId - * menu ID - * @return FunctionalMenuItem object - */ - @RequestMapping(value = { - "/portalApi/functionalMenuItemDetails/{menuId}" }, method = RequestMethod.GET, produces = "application/json") - public FunctionalMenuItem getFunctionalMenuItemDetails(HttpServletRequest request, - @PathVariable("menuId") Integer menuId, HttpServletResponse response) { - // TODO: return FunctionalMenuItemJson - // TODO: modify FunctionalMenuItem to not include the transient fields - FunctionalMenuItem menuItem = null; - try { - EPUser user = EPUserUtils.getUserSession(request); - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "getFunctionalMenuItemDetails"); - } else { - menuItem = functionalMenuService.getFunctionalMenuItemDetails(menuId); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuItemDetails/" + menuId, - "result =", menuItem); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getFunctionalMenuItemDetails failed", e); - } - - return menuItem; - } - - /** - * RESTful service method to create a new menu item. - * - * Requirement: you must be the Ecomp portal super admin user. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @param menuItemJson - * FunctionalMenuItemWithRoles - * @return FieldsValidator - */ - @RequestMapping(value = { "/portalApi/functionalMenuItem" }, method = RequestMethod.POST) - public FieldsValidator createFunctionalMenuItem(HttpServletRequest request, - @RequestBody FunctionalMenuItemWithRoles menuItemJson, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - FieldsValidator fieldsValidator = null; - if (!adminRolesService.isSuperAdmin(user)) { - logger.debug(EELFLoggerDelegate.debugLogger, - "FunctionalMenuController.createFunctionalMenuItem bad permissions"); - EcompPortalUtils.setBadPermissions(user, response, "createFunctionalMenuItem"); - } else { - fieldsValidator = functionalMenuService.createFunctionalMenuItem(menuItemJson); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuItem", "POST result =", - response.getStatus()); - } - - return fieldsValidator; - } - - /** - * RESTful service method to update an existing menu item - * - * Requirement: you must be the Ecomp portal super admin user. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @param menuItemJson - * FunctionalMenuItemWithRoles - * @return FieldsValidator - */ - @RequestMapping(value = { "/portalApi/functionalMenuItem" }, method = RequestMethod.PUT) - public FieldsValidator editFunctionalMenuItem(HttpServletRequest request, - @RequestBody FunctionalMenuItemWithRoles menuItemJson, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - FieldsValidator fieldsValidator = null; - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "editFunctionalMenuItem"); - } else { - fieldsValidator = functionalMenuService.editFunctionalMenuItem(menuItemJson); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuItem", "PUT result =", - response.getStatus()); - } - - return fieldsValidator; - } - - /** - * RESTful service method to delete a menu item - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @param menuId - * menu identifier - * @return FieldsValidator - */ - @RequestMapping(value = { "/portalApi/functionalMenuItem/{menuId}" }, method = RequestMethod.DELETE) - public FieldsValidator deleteFunctionalMenuItem(HttpServletRequest request, @PathVariable("menuId") Long menuId, - HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - FieldsValidator fieldsValidator = null; - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "deleteFunctionalMenuItem"); - } else { - fieldsValidator = functionalMenuService.deleteFunctionalMenuItem(menuId); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuItem", "DELETE result =", - response.getStatus()); - } - - return fieldsValidator; - } - - /** - * RESTful service to regenerate table - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return FieldsValidator - */ - @RequestMapping(value = { "/portalApi/regenerateFunctionalMenuAncestors" }, method = RequestMethod.GET) - public FieldsValidator regenerateAncestorTable(HttpServletRequest request, HttpServletResponse response) { - // TODO: should only the superuser be allowed to use this API? - EPUser user = EPUserUtils.getUserSession(request); - FieldsValidator fieldsValidator = null; - - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "deleteFunctionalMenuItem"); - } else { - fieldsValidator = functionalMenuService.regenerateAncestorTable(); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/regenerateAncestorTable", "GET result =", - response.getStatus()); - } - - return fieldsValidator; - } - - /** - * RESful service to set a favorite item. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @param menuItemJson - * FunctionalMenuItemWithRoles - * @return FieldsValidator - */ - @RequestMapping(value = { "/portalApi/setFavoriteItem" }, method = RequestMethod.POST) - public FieldsValidator addFavoriteItem(HttpServletRequest request, - @RequestBody FavoritesFunctionalMenuItem menuItemJson, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - FieldsValidator fieldsValidator = null; - menuItemJson.userId = user.getId(); - fieldsValidator = functionalMenuService.setFavoriteItem(menuItemJson); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/setFavoriteItem", "Post result =", - response.getStatus()); - - return fieldsValidator; - } - - /** - * RESTful service to get favorites for the current user as identified in the - * session - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return List of FavoritesFunctionalMenuItemJson - */ - @RequestMapping(value = { - "/portalApi/getFavoriteItems" }, method = RequestMethod.GET, produces = "application/json") - public List getFavoritesForUser(HttpServletRequest request, - HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List favorites = functionalMenuService.getFavoriteItems(user.getId()); - FieldsValidator fieldsValidator = new FieldsValidator(); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/getFavoriteItems", "GET result =", - response.getStatus()); - return favorites; - } - - /** - * RESTful service to delete a favorite menu item for the current user as - * identified in the session. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @param menuId - * menu identifier - * @return FieldsValidator - */ - @RequestMapping(value = { "/portalApi/removeFavoriteItem/{menuId}" }, method = RequestMethod.DELETE) - public FieldsValidator deleteFavoriteItem(HttpServletRequest request, @PathVariable("menuId") Long menuId, - HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - FieldsValidator fieldsValidator = null; - Long userId = user.getId(); - fieldsValidator = functionalMenuService.removeFavoriteItem(userId, menuId); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - EcompPortalUtils.logAndSerializeObject(logger, "/deleteFavoriteItem", "DELETE result =", response.getStatus()); - - return fieldsValidator; - } - - /** - * RESTful service to get user information: user's first and last names, org - * user ID, email and last-login. (Actually has nothing to do with the real - * functional menu.) First attempts to get the information from the Tomcat - * session (i.e., the CSP cookie); if that fails, calls the shared context - * service to read the information from the database. Gives back what it found, - * any of which may be null, as a JSON collection. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return JSON collection of key-value pairs shown below. - */ - @RequestMapping(value = { - "/portalApi/functionalMenuStaticInfo" }, method = RequestMethod.GET, produces = "application/json") - public String getFunctionalMenuStaticInfo(HttpServletRequest request, HttpServletResponse response) { - - // Get user details from session - logger.debug(EELFLoggerDelegate.debugLogger, "getFunctionalMenuStaticInfo: getting user info"); - String fnMenuStaticResponse = null; - try { - String orgUserIdStr = null, firstNameStr = null, lastNameStr = null, emailStr = null, lastLogin = null; - EPUser user = EPUserUtils.getUserSession(request); - firstNameStr = user.getFirstName(); - lastNameStr = user.getLastName(); - orgUserIdStr = user.getOrgUserId(); - emailStr = user.getEmail(); - if (emailStr == null || emailStr.equals("")) { - EPUser userResult = searchService.searchUserByUserId(orgUserIdStr); - emailStr = userResult.getEmail(); - } - SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ssZ"); - Date lastLoginDate = user.getLastLoginDate(); - if (lastLoginDate == null) { - // should never happen - logger.error(EELFLoggerDelegate.errorLogger, "getFunctionalMenuStaticInfo: no last login in session"); - lastLogin = "no last login available"; - } else { - lastLogin = sdf.format(lastLoginDate); - } - - // If any item is missing from session, try the Shared Context - // service. - SharedContext orgUserIdSC = null, firstNameSC = null, lastNameSC = null, emailSC = null; - String sessionId = request.getSession().getId(); - if (firstNameStr == null) - firstNameSC = sharedContextService.getSharedContext(sessionId, - EPCommonSystemProperties.USER_FIRST_NAME); - if (lastNameStr == null) - lastNameSC = sharedContextService.getSharedContext(sessionId, EPCommonSystemProperties.USER_LAST_NAME); - if (emailStr == null) - emailSC = sharedContextService.getSharedContext(sessionId, EPCommonSystemProperties.USER_EMAIL); - if (orgUserIdStr == null) - orgUserIdSC = sharedContextService.getSharedContext(sessionId, - EPCommonSystemProperties.USER_ORG_USERID); - - // Build the response - Map map = new HashMap(); - map.put("firstName", - firstNameStr != null ? firstNameStr : (firstNameSC != null ? firstNameSC.getCvalue() : null)); - map.put("lastName", - lastNameStr != null ? lastNameStr : (lastNameSC != null ? lastNameSC.getCvalue() : null)); - map.put("email", emailStr != null ? emailStr : (emailSC != null ? emailSC.getCvalue() : null)); - map.put("userId", - orgUserIdStr != null ? orgUserIdStr : (orgUserIdSC != null ? orgUserIdSC.getCvalue() : null)); - map.put("last_login", lastLogin); - JSONObject j = new JSONObject(map); - fnMenuStaticResponse = j.toString(); - // Be chatty in the log - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/functionalMenuStaticInfo", "GET result =", - fnMenuStaticResponse); - } catch (Exception e) { - // Should never happen. - logger.error(EELFLoggerDelegate.errorLogger, "getFunctionalMenuStaticInfo failed", e); - // Return a real error? - // fnMenuStaticResponse = "{ \"status\": \"error\", \"message\": \"" - // + e.toString() + "\" }"; - // But the angular controller expects null on error. - } - return fnMenuStaticResponse; - } - - private Comparator getUserAppRolesComparator = new Comparator() { - public int compare(BusinessCardApplicationRole o1, BusinessCardApplicationRole o2) { - return o1.getAppName().compareTo(o2.getAppName()); - } - }; - - /** - * - * @param request - * HttpServletRequest - * @param userId - * user ID - * @return List - * @throws IOException - * on error - */ - @RequestMapping(value = { - "/portalApi/userApplicationRoles" }, method = RequestMethod.GET, produces = "application/json") - public List getAppList(HttpServletRequest request, - @RequestParam("userId") String userId) throws IOException { - - List AppRoles = null; - try { - List userAppRoleList = functionalMenuService.getUserAppRolesList(userId); - - Collections.sort(userAppRoleList, getUserAppRolesComparator); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userApplicationRoles", "result =", - userAppRoleList); - - AppRoles = new ArrayList(); - for (BusinessCardApplicationRole userAppRole : userAppRoleList) { - boolean found = false; - List roles = null; - - for (BusinessCardApplicationRolesList app : AppRoles) { - if (app.getAppName().equals(userAppRole.getAppName())) { - roles = app.getRoleNames(); - roles.add(userAppRole.getRoleName()); - app.setRoleNames(roles); - found = true; - break; - } - } - - if (!found) { - roles = new ArrayList(); - roles.add(userAppRole.getRoleName()); - AppRoles.add(new BusinessCardApplicationRolesList(userAppRole.getAppName(), roles)); - } - - Collections.sort(roles); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppList failed", e); - } - - return AppRoles; - - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/GetAccessController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/GetAccessController.java deleted file mode 100644 index 71f745a9..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/GetAccessController.java +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.io.IOException; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalapp.controller.EPUnRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.GetAccessResult; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.GetAccessService; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.util.EPUserUtils; - -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class GetAccessController extends EPUnRestrictedBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(GetAccessController.class); - - @Autowired - private GetAccessService getAccessService; - - /** - * Sorts the list by ECOMP function name. - */ - private Comparator getAccessComparator = new Comparator() { - public int compare(GetAccessResult o1, GetAccessResult o2) { - return o1.getAppName().compareTo(o2.getAppName()); - } - }; - - @RequestMapping(value = { "/portalApi/getAppList" }, method = RequestMethod.GET, produces = "application/json") - public List getAppList(HttpServletRequest request) throws IOException { - List appsList = null; - EPUser user = EPUserUtils.getUserSession(request); - appsList = getAccessService.getAppAccessList(user); - Collections.sort(appsList, getAccessComparator); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/getAppList", "result =", appsList); - return appsList; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/HealthCheckController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/HealthCheckController.java deleted file mode 100644 index ddb3a315..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/HealthCheckController.java +++ /dev/null @@ -1,249 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.slf4j.MDC; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalapp.controller.EPUnRestrictedBaseController; -import org.openecomp.portalapp.portal.listener.HealthMonitor; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import com.google.gson.Gson; - -/** - * This controller processes requests for the health-check feature implemented - * in the HealthMonitor, which runs in its own thread. These requests do not - * require any authentication nor an active user session. - */ -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class HealthCheckController extends EPUnRestrictedBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(HealthCheckController.class); - - private class HealthStatus { - public int statusCode; - @SuppressWarnings("unused") - public String body; - - public HealthStatus(int code, String body) { - this.statusCode = code; - this.body = body; - } - } - - private class HealthStatusInfo { - HealthStatusInfo(String healthCheckComponent) { - this.healthCheckComponent = healthCheckComponent; - this.healthCheckStatus = statusUp; // Default value - this.version = ""; - this.description = statusOk; // Default value - this.hostName = ""; - this.ipAddress = ""; - this.dbClusterStatus = ""; - this.dbPermissions = ""; - } - - @SuppressWarnings("unused") - public String healthCheckComponent; - @SuppressWarnings("unused") - public String healthCheckStatus; - @SuppressWarnings("unused") - public String version; - @SuppressWarnings("unused") - public String description; - @SuppressWarnings("unused") - public String hostName; - @SuppressWarnings("unused") - public String ipAddress; - @SuppressWarnings("unused") - public String dbClusterStatus; - @SuppressWarnings("unused") - public String dbPermissions; - } - - private final String statusUp = "UP"; - private final String statusDown = "DOWN"; - private final String statusOk = "OK"; - - @RequestMapping(value = { "/portalApi/healthCheck" }, method = RequestMethod.GET, produces = "application/json") - public HealthStatus healthCheck(HttpServletRequest request, HttpServletResponse response) { - HealthStatus healthStatus = new HealthStatus(500, ""); - - // Return the status as 500 if it suspended due to manual fail over - if (HealthMonitor.isSuspended) { - healthStatus.body = "Suspended"; - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - MDC.put(EPCommonSystemProperties.RESPONSE_CODE, - Integer.toString(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); - return healthStatus; - } - - try { - boolean overallStatus = true; - - List statusCollection = new ArrayList(); - - HealthStatusInfo beInfo = new HealthStatusInfo("BE"); - beInfo.hostName = EcompPortalUtils.getMyHostName(); - beInfo.ipAddress = EcompPortalUtils.getMyIpAdddress(); - if (!HealthMonitor.isBackEndUp()) { - overallStatus = false; - beInfo.healthCheckStatus = statusDown; - beInfo.description = "Check the logs for more details"; - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckError); - } - statusCollection.add(beInfo); - - HealthStatusInfo feInfo = new HealthStatusInfo("FE"); - if (!HealthMonitor.isFrontEndUp()) { - overallStatus = false; - feInfo.healthCheckStatus = statusDown; - feInfo.description = "Check the logs for more details"; - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.FeHealthCheckError); - } - statusCollection.add(feInfo); - - HealthStatusInfo dbInfo = new HealthStatusInfo("DB"); - if (!HealthMonitor.isDatabaseUp()) { - overallStatus = false; - dbInfo.healthCheckStatus = statusDown; - dbInfo.description = "Check the logs for more details"; - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError); - } - - if (!HealthMonitor.isClusterStatusOk()) { - dbInfo.dbClusterStatus = "Problem, check the logs for more details"; - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError); - } else { - dbInfo.dbClusterStatus = statusOk; - } - - if (!HealthMonitor.isDatabasePermissionsOk()) { - dbInfo.dbPermissions = "Problem, check the logs for more details"; - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError); - } else { - dbInfo.dbPermissions = statusOk; - } - statusCollection.add(dbInfo); - - HealthStatusInfo uebInfo = new HealthStatusInfo("UEB"); - if (!HealthMonitor.isUebUp()) { - // As per test case review meeting, UEB is considered as - // critical as DB. Hence commenting - // overallStatus = false; - uebInfo.healthCheckStatus = statusDown; - uebInfo.description = "Check the logs for more details"; - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebConnectionError); - } - statusCollection.add(uebInfo); - - String json = ""; - try { - json = new Gson().toJson(statusCollection); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput); - } - logger.info(EELFLoggerDelegate.debugLogger, json); - - if (overallStatus) { - healthStatus = new HealthStatus(200, json); - } else { - healthStatus = new HealthStatus(500, json); - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - MDC.put(EPCommonSystemProperties.RESPONSE_CODE, Integer.toString(healthStatus.statusCode)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "healthCheck failed", e); - } - - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/healthCheck", "GET result =", response.getStatus()); - - return healthStatus; - } - - @RequestMapping(value = { - "/portalApi/healthCheckSuspend" }, method = RequestMethod.GET, produces = "application/json") - public HealthStatus healthCheckSuspend(HttpServletRequest request, HttpServletResponse response) { - HealthStatus healthStatus = new HealthStatus(500, "Suspended for manual failover mechanism"); - - HealthMonitor.isSuspended = true; - healthStatus.statusCode = 200; - - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/healthCheckSuspend", "GET result =", - response.getStatus()); - - return healthStatus; - } - - @RequestMapping(value = { - "/portalApi/healthCheckResume" }, method = RequestMethod.GET, produces = "application/json") - public HealthStatus healthCheckResume(HttpServletRequest request, HttpServletResponse response) { - HealthStatus healthStatus = new HealthStatus(500, "Resumed from manual failover mechanism"); - - HealthMonitor.isSuspended = false; - healthStatus.statusCode = 200; - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/healthCheckResume", "GET result =", - response.getStatus()); - return healthStatus; - } - - @RequestMapping(value = { "/portalApi/ping" }, method = RequestMethod.GET, produces = "application/json") - public HealthStatus ping(HttpServletRequest request, HttpServletResponse response) { - HealthStatus healthStatus = new HealthStatus(200, "OK"); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/ping", "GET result =", response.getStatus()); - - return healthStatus; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ManifestController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ManifestController.java deleted file mode 100644 index a40c3dc0..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/ManifestController.java +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.HashMap; -import java.util.Map; -import java.util.jar.Attributes; - -import javax.servlet.http.HttpServletRequest; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -import org.openecomp.portalsdk.core.controller.RestrictedBaseController; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.ManifestService; - -/** - * This controller responds to a request for the web application manifest, - * returning a JSON with the information that was created at build time. - * - * Manifest entries have names with hyphens, which means Javascript code can't - * simply use the shorthand object.key; instead use object['key']. - */ -@RestController -@Configuration("manifestPortalController") -@EnableAspectJAutoProxy -@RequestMapping("/") -@EPAuditLog -public class ManifestController extends RestrictedBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ManifestController.class); - - @Autowired - private ManifestService manifestService; - - /** - * Gets the webapp manifest contents as a JSON object. - * - * @param request - * HttpServletRequest - * @return A map of key-value pairs. On success: - * - *
-	 * { "manifest" : { "key1": "value1", "key2": "value2" } }
-	 *         
- * - * On failure: - * - *
-	 * { "error": "message" }
-	 *         
- */ - @RequestMapping(value = { "/portalApi/manifest" }, method = RequestMethod.GET, produces = "application/json") - @ResponseBody - public Map getManifest(HttpServletRequest request) { - Map response = new HashMap(); - try { - Attributes attributes = manifestService.getWebappManifest(); - response.put("manifest", attributes); - } catch (Exception ex) { - logger.error(EELFLoggerDelegate.errorLogger, "getManifest: failed to read manifest", ex); - response.put("error", "failed to get manifest: " + ex.toString()); - } - return response; - } - -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/MicroserviceController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/MicroserviceController.java deleted file mode 100644 index 44e3223e..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/MicroserviceController.java +++ /dev/null @@ -1,156 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.MicroserviceData; -import org.openecomp.portalapp.portal.domain.WidgetCatalog; -import org.openecomp.portalapp.portal.domain.WidgetServiceHeaders; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.ConsulHealthService; -import org.openecomp.portalapp.portal.service.MicroserviceService; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.core.ParameterizedTypeReference; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.client.RestTemplate; - -@SuppressWarnings("unchecked") -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class MicroserviceController extends EPRestrictedBaseController { - - String whatService = "widgets-service"; - RestTemplate template = new RestTemplate(); - - @Autowired - private ConsulHealthService consulHealthService; - - @Autowired - private MicroserviceService microserviceService; - - @RequestMapping(value = { "/portalApi/microservices" }, method = RequestMethod.POST) - public PortalRestResponse createMicroservice(HttpServletRequest request, HttpServletResponse response, - @RequestBody MicroserviceData newServiceData) throws Exception { - if (newServiceData == null) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", - "MicroserviceData cannot be null or empty"); - } - long serviceId = microserviceService.saveMicroservice(newServiceData); - - try { - microserviceService.saveServiceParameters(serviceId, newServiceData.getParameterList()); - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); - } - - return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); - } - - @RequestMapping(value = { "/portalApi/microservices" }, method = RequestMethod.GET) - public List getMicroservice(HttpServletRequest request, HttpServletResponse response) - throws Exception { - List list = microserviceService.getMicroserviceData(); - return list; - } - - @RequestMapping(value = { "/portalApi/microservices/{serviceId}" }, method = RequestMethod.PUT) - public PortalRestResponse updateMicroservice(HttpServletRequest request, HttpServletResponse response, - @PathVariable("serviceId") long serviceId, @RequestBody MicroserviceData newServiceData) throws Exception { - - if (newServiceData == null) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", - "MicroserviceData cannot be null or empty"); - } - try { - microserviceService.updateMicroservice(serviceId, newServiceData); - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); - } - - @RequestMapping(value = { "/portalApi/microservices/{serviceId}" }, method = RequestMethod.DELETE) - public PortalRestResponse deleteMicroservice(HttpServletRequest request, HttpServletResponse response, - @PathVariable("serviceId") long serviceId) throws Exception { - try { - ParameterizedTypeReference> typeRef = new ParameterizedTypeReference>() { - }; - // If this service is assoicated with widgets, cannnot be deleted - ResponseEntity> ans = (ResponseEntity>) template.exchange( - EcompPortalUtils.widgetMsProtocol() + "://" + consulHealthService.getServiceLocation(whatService, SystemProperties.getProperty("microservices.widget.local.port")) - + "/widget/microservices/widgetCatalog/service/" + serviceId, - HttpMethod.GET, new HttpEntity(WidgetServiceHeaders.getInstance()), typeRef); - List widgets = ans.getBody(); - if(widgets.size() == 0) - microserviceService.deleteMicroservice(serviceId); - else{ - StringBuilder sb = new StringBuilder(); - for(int i = 0; i < widgets.size(); i++){ - sb.append("'" + widgets.get(i).getName() + "' "); - if(i < (widgets.size()-1)){ - sb.append(","); - } - } - return new PortalRestResponse(PortalRestStatusEnum.WARN, "SOME WIDGETS ASSOICATE WITH THIS SERVICE", sb.toString()); - } - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/MicroserviceProxyController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/MicroserviceProxyController.java deleted file mode 100644 index 8655deb0..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/MicroserviceProxyController.java +++ /dev/null @@ -1,115 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.io.IOException; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPUnRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.MicroserviceProxyService; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.client.HttpClientErrorException; - -import com.fasterxml.jackson.databind.ObjectMapper; - -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class MicroserviceProxyController extends EPUnRestrictedBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MicroserviceProxyController.class); - - @Autowired - private MicroserviceProxyService microserviceProxyService; - - @RequestMapping(value = { "/portalApi/microservice/proxy/{serviceId}" }, method = { - RequestMethod.GET }, produces = "application/json") - public String getMicroserviceProxy(HttpServletRequest request, HttpServletResponse response, - @PathVariable("serviceId") long serviceId) throws Exception { - EPUser user = EPUserUtils.getUserSession(request); - String answer = ""; - try { - answer = microserviceProxyService.proxyToDestination(serviceId, user, request); - } catch (HttpClientErrorException e) { - answer = e.getResponseBodyAsString(); - } - return isValidJSON(answer) ? answer : "{\"error\":\"" + answer.replace(System.getProperty("line.separator"), "") + "\"}"; - } - - @RequestMapping(value = { "/portalApi/microservice/proxy/parameter/{widgetId}" }, method = { - RequestMethod.GET }, produces = "application/json") - public String getMicroserviceProxyByWidgetId(HttpServletRequest request, HttpServletResponse response, - @PathVariable("widgetId") long widgetId) throws Exception { - EPUser user = EPUserUtils.getUserSession(request); - String answer = ""; - try { - answer = microserviceProxyService.proxyToDestinationByWidgetId(widgetId, user, request); - } catch (HttpClientErrorException e) { - answer = e.getResponseBodyAsString(); - } - return isValidJSON(answer) ? answer : "{\"error\":\"" + answer.replace(System.getProperty("line.separator"), "") + "\"}"; - } - - /** - * Check whether the response is a valid JSON - * @param response - * @return true if the response is valid JSON, otherwise, false - */ - private boolean isValidJSON(String response) { - try { - final ObjectMapper mapper = new ObjectMapper(); - mapper.readTree(response); - return true; - } catch (IOException e) { - logger.debug(EELFLoggerDelegate.debugLogger, "isValidJSON failed", e); - return false; - } - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/PolicyController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/PolicyController.java deleted file mode 100644 index 2fb5e9ad..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/PolicyController.java +++ /dev/null @@ -1,121 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.controller; - -import java.util.UUID; - -import javax.servlet.http.HttpServletRequest; - -import org.json.simple.JSONObject; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.scheduler.policy.PolicyProperties; -import org.openecomp.portalapp.portal.scheduler.policy.PolicyResponseWrapper; -import org.openecomp.portalapp.portal.scheduler.policy.PolicyRestInterfaceFactory; -import org.openecomp.portalapp.portal.scheduler.policy.PolicyRestInterfaceIfc; -import org.openecomp.portalapp.portal.scheduler.policy.PolicyUtil; -import org.openecomp.portalapp.portal.scheduler.policy.RestObject; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -/** - * Controller to handle Policy requests. - */ - -@RestController -@RequestMapping(PortalConstants.REST_AUX_API) -@Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class PolicyController implements BasicAuthenticationController { - - /** The logger. */ - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PolicyController.class); - - @RequestMapping(value = "/get_policy", method = RequestMethod.POST) - public ResponseEntity getPolicyInfo(HttpServletRequest request, @RequestBody JSONObject policy_request) - throws Exception { - - logger.debug(EELFLoggerDelegate.debugLogger, "#####################POLICY API CALL STARTED ###############" - + PolicyProperties.POLICY_GET_CONFIG_VAL); - logger.debug(EELFLoggerDelegate.debugLogger, - "#####################Policy Request ###############" + policy_request.toString()); - - String path = SystemProperties.getProperty(PolicyProperties.POLICY_GET_CONFIG_VAL); - PolicyResponseWrapper policyResWrapper = getPolicyConfig(policy_request, path); - - logger.debug(EELFLoggerDelegate.debugLogger, "$$$$$$$$$$$$$$$$$$$$$$ " - + new ResponseEntity(policyResWrapper.getResponse(), HttpStatus.OK).toString()); - - return (new ResponseEntity(policyResWrapper.getResponse(), - HttpStatus.valueOf(policyResWrapper.getStatus()))); - } - - protected static PolicyResponseWrapper getPolicyConfig(JSONObject request, String path) throws Exception { - String methodName = "getPolicyConfig"; - String uuid = UUID.randomUUID().toString(); - logger.debug(EELFLoggerDelegate.debugLogger, "starting getPolicyConfig "); - - try { - // STARTING REST API CALL AS AN FACTORY INSTACE - PolicyRestInterfaceIfc policyRestController = PolicyRestInterfaceFactory.getInstance(); - - RestObject restObjStr = new RestObject(); - String str = new String(); - restObjStr.set(str); - policyRestController.Post(str, request, uuid, path, restObjStr); - PolicyResponseWrapper policyRespWrapper = PolicyUtil.wrapResponse(restObjStr); - logger.debug(EELFLoggerDelegate.debugLogger, "<== " + methodName + " w=" + policyRespWrapper.getResponse()); - return policyRespWrapper; - } catch (Exception e) { - logger.debug(EELFLoggerDelegate.debugLogger, - "EXCEPTION in getPolicyConfig <== " + "." + methodName + e.toString()); - - throw e; - } - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/PortalAdminController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/PortalAdminController.java deleted file mode 100644 index 29c3aed4..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/PortalAdminController.java +++ /dev/null @@ -1,230 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EcompAuditLog; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.logging.aop.EPEELFLoggerAdvice; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.PortalAdminService; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.PortalAdmin; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.domain.AuditLog; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.AuditService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class PortalAdminController extends EPRestrictedBaseController { - @Autowired - PortalAdminService portalAdminService; - @Autowired - AdminRolesService adminRolesService; - @Autowired - AuditService auditService; - - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PortalAdminController.class); - - @RequestMapping(value = { "/portalApi/portalAdmins" }, method = RequestMethod.GET, produces = "application/json") - public List getPortalAdmins(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List portalAdmins = null; - if (user == null) { - logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.getPortalAdmins, null user"); - EcompPortalUtils.setBadPermissions(user, response, "getPortalAdmins"); - } else if (!adminRolesService.isSuperAdmin(user)) { - logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.getPortalAdmins, bad permissions"); - EcompPortalUtils.setBadPermissions(user, response, "createPortalAdmin"); - } else { - // return the list of portal admins - portalAdmins = portalAdminService.getPortalAdmins(); - logger.debug(EELFLoggerDelegate.debugLogger, "portalAdmins: called getPortalAdmins()"); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/getPortalAdmins", "result =", portalAdmins); - } - - return portalAdmins; - } - - /** - * RESTful service method to create a new portal admin. Requirement: you - * must be the Ecomp portal super admin user. - * @param request - * @param userId - * @param response - * @return FieldsValidator - */ - @RequestMapping(value = { "/portalApi/portalAdmin" }, method = RequestMethod.POST) - public FieldsValidator createPortalAdmin(HttpServletRequest request, @RequestBody String userId, - HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - FieldsValidator fieldsValidator = null; - if (user == null) { - logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.createPortalAdmin, null user"); - EcompPortalUtils.setBadPermissions(user, response, "createPortalAdmin"); - } else if (!adminRolesService.isSuperAdmin(user)) { - logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.createPortalAdmin bad permissions"); - EcompPortalUtils.setBadPermissions(user, response, "createPortalAdmin"); - } else { - fieldsValidator = portalAdminService.createPortalAdmin(userId); - int statusCode = fieldsValidator.httpStatusCode.intValue(); - response.setStatus(statusCode); - if (statusCode == 200) { - AuditLog auditLog = new AuditLog(); - auditLog.setUserId(user.getId()); - auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_ADD_PORTAL_ADMIN); - auditLog.setAffectedRecordId(userId); - try { - auditService.logActivity(auditLog, null); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "createPortalAdmin: failed for save audit log", e); - } - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - EcompPortalUtils.calculateDateTimeDifferenceForLog( - MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), - MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); - logger.info(EELFLoggerDelegate.auditLogger, - EPLogUtil.formatAuditLogMessage("PortalAdminController.createPortalAdmin", - EcompAuditLog.CD_ACTIVITY_ADD_PORTAL_ADMIN, user.getOrgUserId(), userId, - "A new Portal Admin has been added")); - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - MDC.remove(SystemProperties.MDC_TIMER); - } - } - EcompPortalUtils.logAndSerializeObject(logger, "/portalAdmin", "POST result =", response.getStatus()); - - return fieldsValidator; - } - - @RequestMapping(value = { "/portalApi/portalAdmin/{userInfo}" }, method = RequestMethod.DELETE) - public FieldsValidator deletePortalAdmin(HttpServletRequest request, @PathVariable("userInfo") String userInfo, - HttpServletResponse response) { - int userIdIdx = userInfo.indexOf("-"); - Long userId = null; - String sbcid = null; - FieldsValidator fieldsValidator = null; - try { - if (userIdIdx == -1) { - logger.error(EELFLoggerDelegate.errorLogger, "deletePortalAdmin missing userId"); - return fieldsValidator; - } else { - String userIdStr = userInfo.substring(0, userIdIdx); - userId = Long.valueOf(userIdStr); - sbcid = userInfo.substring(userIdIdx + 1, userInfo.length()); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "deletePortalAdmin error while parsing the userInfo", e); - } - EPUser user = EPUserUtils.getUserSession(request); - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "deletePortalAdmin"); - } else { - fieldsValidator = portalAdminService.deletePortalAdmin(userId); - int statusCode = fieldsValidator.httpStatusCode.intValue(); - response.setStatus(statusCode); - if (statusCode == 200) { - AuditLog auditLog = new AuditLog(); - auditLog.setUserId(user.getId()); - auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_DELETE_PORTAL_ADMIN); - auditLog.setAffectedRecordId(sbcid); - auditService.logActivity(auditLog, null); - - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - EcompPortalUtils.calculateDateTimeDifferenceForLog( - MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), - MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); - logger.info(EELFLoggerDelegate.auditLogger, - EPLogUtil.formatAuditLogMessage("PortalAdminController.deletePortalAdmin", - EcompAuditLog.CD_ACTIVITY_DELETE_PORTAL_ADMIN, user.getOrgUserId(), sbcid, - "A Portal Admin has been deleted")); - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - MDC.remove(SystemProperties.MDC_TIMER); - } - } - EcompPortalUtils.logAndSerializeObject(logger, "/portalAdmin", "DELETE result =", response.getStatus()); - - return fieldsValidator; - } - - @RequestMapping(value = { - "/portalApi/adminAppsRoles/{appId}" }, method = RequestMethod.GET, produces = "application/json") - public List getRolesByApp(HttpServletRequest request, @PathVariable("appId") Long appId, - HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List rolesByApp = null; - - try { - if (user == null) { - EcompPortalUtils.setBadPermissions(user, response, "getUserApps"); - } else { - rolesByApp = adminRolesService.getRolesByApp(user, appId); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getRolesByApp failed", e); - } - - return rolesByApp; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/RoleManageController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/RoleManageController.java deleted file mode 100644 index 7c4a4e8d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/RoleManageController.java +++ /dev/null @@ -1,201 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.controller.core.RoleController; -import org.openecomp.portalapp.controller.core.RoleFunctionListController; -import org.openecomp.portalapp.controller.core.RoleListController; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.ExternalAccessRolesService; -import org.openecomp.portalapp.portal.service.ExternalAccessRolesServiceImpl; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.servlet.ModelAndView; - -/** - * Proxies REST calls to role-management functions that arrive on paths - * /portalApi/* over to controller methods provided by the SDK-Core library. - * Those controller methods are mounted on paths not exposed by the Portal FE. - */ -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class RoleManageController extends EPRestrictedBaseController { - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RoleManageController.class); - - @Autowired - private RoleController roleController; - - @Autowired - private RoleListController roleListController; - - @Autowired - private RoleFunctionListController roleFunctionListController; - - - @Autowired - ExternalAccessRolesService externalAccessRolesService; - /** - * Calls an SDK-Core library method that gets the available roles and writes - * them to the request object. Portal specifies a Hibernate mappings from - * the Role class to the fn_role_v view, which ensures that only Portal - * (app_id is null) roles are fetched. - * - * Any method declared void (no return value) or returning null causes the - * audit log aspect method to declare failure. TODO: should return a JSON - * string. - * - * @param request - * @param response - */ - @RequestMapping(value = { "/portalApi/get_roles" }, method = RequestMethod.GET) - public void getRoles(HttpServletRequest request, HttpServletResponse response) { - getRoleListController().getRoles(request, response); - } - - @RequestMapping(value = { "/portalApi/role_list/toggleRole" }, method = RequestMethod.POST) - public PortalRestResponse toggleRole(HttpServletRequest request, HttpServletResponse response) { - PortalRestResponse portalRestResponse = null; - try{ - getRoleListController().toggleRole(request, response); - portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.OK, "success", null); - }catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "failure", e.getMessage()); - } - return portalRestResponse; - } - - @RequestMapping(value = { "/portalApi/role_list/removeRole" }, method = RequestMethod.POST) - public ModelAndView removeRole(HttpServletRequest request, HttpServletResponse response) throws Exception { - return getRoleListController().removeRole(request, response); - } - - @RequestMapping(value = { "/portalApi/role/saveRole" }, method = RequestMethod.POST) - public ModelAndView saveRole(HttpServletRequest request, HttpServletResponse response) throws Exception { - return getRoleController().saveRole(request, response); - } - - @RequestMapping(value = { "/portalApi/role/removeRoleFunction" }, method = RequestMethod.POST) - public ModelAndView removeRoleRoleFunction(HttpServletRequest request, HttpServletResponse response) - throws Exception { - return getRoleController().removeRoleFunction(request, response); - } - - @RequestMapping(value = { "/portalApi/role/addRoleFunction" }, method = RequestMethod.POST) - public ModelAndView addRoleRoRoleFunction(HttpServletRequest request, HttpServletResponse response) - throws Exception { - return getRoleController().addRoleFunction(request, response); - } - - @RequestMapping(value = { "/portalApi/role/removeChildRole" }, method = RequestMethod.POST) - public ModelAndView removeChildRole(HttpServletRequest request, HttpServletResponse response) throws Exception { - return getRoleController().removeChildRole(request, response); - } - - @RequestMapping(value = { "/portalApi/role/addChildRole" }, method = RequestMethod.POST) - public ModelAndView addChildRole(HttpServletRequest request, HttpServletResponse response) throws Exception { - return getRoleController().addChildRole(request, response); - } - - @RequestMapping(value = { "/portalApi/get_role" }, method = RequestMethod.GET) - public void getRole(HttpServletRequest request, HttpServletResponse response) throws Exception{ - getRoleController().getRole(request, response); - } - - @RequestMapping(value = { "/portalApi/get_role_functions" }, method = RequestMethod.GET) - public void getRoleFunctionList(HttpServletRequest request, HttpServletResponse response) { - getRoleFunctionListController().getRoleFunctionList(request, response); - } - - @RequestMapping(value = { "/portalApi/role_function_list/saveRoleFunction" }, method = RequestMethod.POST) - public void saveRoleFunction(HttpServletRequest request, HttpServletResponse response, @RequestBody String roleFunc) throws Exception { - getRoleFunctionListController().saveRoleFunction(request, response, roleFunc); - } - - @RequestMapping(value = { "/portalApi/role_function_list/removeRoleFunction" }, method = RequestMethod.POST) - public void removeRoleFunction(HttpServletRequest request, HttpServletResponse response, @RequestBody String roleFunc) throws Exception { - getRoleFunctionListController().removeRoleFunction(request, response, roleFunc); - } - - public RoleListController getRoleListController() { - return roleListController; - } - - public void setRoleListController(RoleListController roleListController) { - this.roleListController = roleListController; - } - - public RoleController getRoleController() { - return roleController; - } - - public void setRoleController(RoleController roleController) { - this.roleController = roleController; - } - - public RoleFunctionListController getRoleFunctionListController() { - return roleFunctionListController; - } - - public void setRoleFunctionListController(RoleFunctionListController roleFunctionListController) { - this.roleFunctionListController = roleFunctionListController; - } - - @RequestMapping(value = { "/portalApi/syncRoles" }, method = RequestMethod.GET) - public void syncRoles(EPApp app) - { - try { - externalAccessRolesService.syncApplicationRolesWithEcompDB(app); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.debugLogger, "failed syncRoles"); - } - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/RolesApprovalSystemController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/RolesApprovalSystemController.java deleted file mode 100644 index c9abc3b0..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/RolesApprovalSystemController.java +++ /dev/null @@ -1,224 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.controller; - -import java.util.ArrayList; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.externalsystemapproval.model.ExternalSystemRoleApproval; -import org.openecomp.portalapp.externalsystemapproval.model.ExternalSystemUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.UserRolesService; -import org.openecomp.portalapp.portal.transport.ExternalRequestFieldsValidator; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import io.swagger.annotations.ApiOperation; - -@RestController -@RequestMapping("/auxapi") -@Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class RolesApprovalSystemController implements BasicAuthenticationController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RolesApprovalSystemController.class); - - @Autowired - private UserRolesService userRolesService; - - /** - * Creates an application user with the specified roles. - * - * @param request - * @param extSysUser - * @return PortalRestResponse with appropriate status value and message - */ - @ApiOperation(value = "Creates an application user with the specified roles.", response = PortalRestResponse.class) - @RequestMapping(value = { "/userProfile" }, method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse postUserProfile(HttpServletRequest request, - @RequestBody ExternalSystemUser extSysUser, HttpServletResponse response) { - ExternalRequestFieldsValidator reqResult = null; - try { - logger.info(EELFLoggerDelegate.debugLogger, "postUserProfile: request received for app {}, user {}", - extSysUser.getApplicationName(), extSysUser.getLoginId()); - - validateExtSystemUser(extSysUser, true); - reqResult = userRolesService.setExternalRequestUserAppRole(extSysUser, "POST"); - if (!reqResult.isResult()) - throw new Exception(reqResult.getDetailMessage()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "postUserProfile: failed for app {}, user {}", - extSysUser.getApplicationName(), extSysUser.getLoginId(), e); - if(reqResult == null || (!reqResult.isResult() && !e.getMessage().contains("404") && !e.getMessage().contains("405"))){ - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - e.getMessage(), "save user profile failed"); - } else if(e.getMessage().contains("404")){ - response.setStatus(HttpServletResponse.SC_NOT_FOUND); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - e.getMessage(), "save user profile failed"); - } else if (e.getMessage().contains("405")) { - response.setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), - "save user profile failed"); - } else { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), - "save user profile failed"); - } - } - return new PortalRestResponse(PortalRestStatusEnum.OK, reqResult.getDetailMessage(), "Success"); - } - - /** - * Updates an application user to have only the specified roles. - * - * @param request - * @param extSysUser - * @return PortalRestResponse with appropriate status value and message - */ - @ApiOperation(value = "Updates an application user to have only the specified roles.", response = PortalRestResponse.class) - @RequestMapping(value = { "/userProfile" }, method = RequestMethod.PUT, produces = "application/json") - public PortalRestResponse putUserProfile(HttpServletRequest request, - @RequestBody ExternalSystemUser extSysUser, HttpServletResponse response) { - ExternalRequestFieldsValidator reqResult = null; - try { - logger.info(EELFLoggerDelegate.debugLogger, "putUserProfile: request received for app {}, user {}", - extSysUser.getApplicationName(), extSysUser.getLoginId()); - validateExtSystemUser(extSysUser, true); - reqResult = userRolesService.setExternalRequestUserAppRole(extSysUser, "PUT"); - if (!reqResult.isResult()) - throw new Exception(reqResult.getDetailMessage()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "putUserProfile: failed for app {}, user {}", - extSysUser.getApplicationName(), extSysUser.getLoginId(), e); - if(reqResult == null || (!reqResult.isResult() && !e.getMessage().contains("404") && !e.getMessage().contains("405"))){ - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - e.getMessage(), "save user profile failed"); - } else if(e.getMessage().contains("404")){ - response.setStatus(HttpServletResponse.SC_NOT_FOUND); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - e.getMessage(), "save user profile failed"); - } else if (e.getMessage().contains("405")) { - response.setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), "save user profile failed"); - } else{ - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - e.getMessage(), "save user profile failed"); - } - } - return new PortalRestResponse(PortalRestStatusEnum.OK, reqResult.getDetailMessage() , "Success"); - } - - /** - * Deletes an application user by removing all assigned roles. - * - * @param request - * @param extSysUser - * This object must have zero roles. - * @return PortalRestResponse with appropriate status value and message - */ - @ApiOperation(value = "Processes a request to delete one or more application roles for one specified user who has roles.", response = PortalRestResponse.class) - @RequestMapping(value = { "/userProfile" }, method = RequestMethod.DELETE, produces = "application/json") - public PortalRestResponse deleteUserProfile(HttpServletRequest request, - @RequestBody ExternalSystemUser extSysUser, HttpServletResponse response) { - ExternalRequestFieldsValidator reqResult = null; - try { - logger.info(EELFLoggerDelegate.debugLogger, "deleteUserProfile: request received for app {}, user {}", - extSysUser.getApplicationName(), extSysUser.getLoginId()); - validateExtSystemUser(extSysUser, false); - // Ignore any roles that might be mistakenly present in the request - extSysUser.setRoles(new ArrayList()); - reqResult = userRolesService.setExternalRequestUserAppRole(extSysUser, "DELETE"); - if (!reqResult.isResult()) - throw new Exception(reqResult.getDetailMessage()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "deleteUserProfile: failed for app {}, user {}", - extSysUser.getApplicationName(), extSysUser.getLoginId(), e); - if(reqResult == null || (!reqResult.isResult() && !e.getMessage().contains("404"))){ - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - e.getMessage(), "delete user profile failed"); - }else if(e.getMessage().contains("404")){ - response.setStatus(HttpServletResponse.SC_NOT_FOUND); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - e.getMessage(), "delete user profile failed"); - } else{ - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, - e.getMessage(), "delete user profile failed"); - } - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "Deleted Successfully", "Success"); - } - - /** - * Checks for presence of required fields. - * - * @param extSysUser - * @param rolesRequired - * If true, checks whether roles are present - * @throws Exception - * If any field is missing. - */ - private void validateExtSystemUser(ExternalSystemUser extSysUser, boolean rolesRequired) throws Exception { - if (extSysUser.getLoginId() == null || extSysUser.getLoginId() == "") - throw new Exception("Request has no login ID"); - if (extSysUser.getApplicationName() == null || extSysUser.getApplicationName() == "") - throw new Exception("Request has no application name"); - if (extSysUser.getMyloginrequestId() == null) - throw new Exception("Request has no request ID"); - if (rolesRequired && (extSysUser.getRoles() == null || extSysUser.getRoles().size() == 0)) - throw new Exception("Request has no roles"); - } - -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/SchedulerController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/SchedulerController.java deleted file mode 100644 index c2d54c6b..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/SchedulerController.java +++ /dev/null @@ -1,266 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.UUID; - -import javax.servlet.http.HttpServletRequest; - -import org.json.simple.JSONObject; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.scheduler.SchedulerProperties; -import org.openecomp.portalapp.portal.scheduler.SchedulerRestInterface; -import org.openecomp.portalapp.portal.scheduler.SchedulerUtil; -import org.openecomp.portalapp.portal.scheduler.restobjects.GetTimeSlotsRestObject; -import org.openecomp.portalapp.portal.scheduler.restobjects.PostCreateNewVnfRestObject; -import org.openecomp.portalapp.portal.scheduler.restobjects.PostSubmitVnfChangeRestObject; -import org.openecomp.portalapp.portal.scheduler.wrapper.GetTimeSlotsWrapper; -import org.openecomp.portalapp.portal.scheduler.wrapper.PostCreateNewVnfWrapper; -import org.openecomp.portalapp.portal.scheduler.wrapper.PostSubmitVnfChangeTimeSlotsWrapper; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping(PortalConstants.REST_AUX_API) -@Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class SchedulerController implements BasicAuthenticationController { - - @Autowired - private SchedulerRestInterface schedulerRestController; - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerController.class); - - /** The request date format. */ - public DateFormat requestDateFormat = new SimpleDateFormat("EEE, dd MMM YYYY HH:mm:ss z"); - - @RequestMapping(value = "/get_time_slots/{scheduler_request}", method = RequestMethod.GET) - public ResponseEntity getTimeSlots(HttpServletRequest request, - @PathVariable("scheduler_request") String scheduler_request) throws Exception { - - Date startingTime = new Date(); - String startTimeRequest = requestDateFormat.format(startingTime); - - System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); - System.out.println(startTimeRequest + " | Controller Scheduler GET : /get_time_slots/{scheduler_request} \n"); - System.out.println("Original Request : \n " + scheduler_request + '\n'); - - String path = SystemProperties.getProperty(SchedulerProperties.SCHEDULER_GET_TIME_SLOTS) + scheduler_request; - - GetTimeSlotsWrapper schedulerResWrapper = getTimeSlots(scheduler_request, path, scheduler_request); - - Date endTime = new Date(); - String endTimeRequest = requestDateFormat.format(endTime); - System.out.println(endTimeRequest + " | Controller Scheduler - GET\n"); - - return (new ResponseEntity(schedulerResWrapper.getResponse(), HttpStatus.OK)); - - } - - protected GetTimeSlotsWrapper getTimeSlots(String request, String path, String uuid) throws Exception { - - try { - // STARTING REST API CALL AS AN FACTORY INSTACE - System.out.println("<== Get Time Slots Request START \n"); - - GetTimeSlotsRestObject restObjStr = new GetTimeSlotsRestObject(); - String str = new String(); - - restObjStr.set(str); - - schedulerRestController.Get(str, uuid, path, restObjStr); - GetTimeSlotsWrapper schedulerRespWrapper = SchedulerUtil.getTimeSlotsWrapResponse(restObjStr); - - System.out.println( - "<== Get Time Slots Request END : Response = " + schedulerRespWrapper.getResponse() + '\n'); - - return schedulerRespWrapper; - - } catch (Exception e) { - System.out.println("<== Get Time Slots Request ERROR : " + e.toString() + '\n'); - logger.error(EELFLoggerDelegate.errorLogger, "Get Time Slots Request failed", e); - throw e; - } - } - - @SuppressWarnings("unchecked") - @RequestMapping(value = "/post_create_new_vnf_change", method = RequestMethod.POST) - public ResponseEntity postCreateNewVNFChange(HttpServletRequest request, - @RequestBody JSONObject scheduler_request) throws Exception { - - Date startingTime = new Date(); - String startTimeRequest = requestDateFormat.format(startingTime); - - System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); - System.out.println(startTimeRequest + " | Controller Scheduler POST : post_create_new_vnf_change \n"); - - // Generating uuid - String uuid = UUID.randomUUID().toString(); - - scheduler_request.put("scheduleId", uuid); - System.out.println("<== UUID : " + uuid + '\n'); - - // adding uuid to the request payload - scheduler_request.put("scheduleId", uuid); - - System.out.println("<== UUID : " + uuid + '\n'); - System.out.println("Original Request : \n " + scheduler_request.toString() + '\n'); - - String path = SystemProperties.getProperty(SchedulerProperties.SCHEDULER_CREATE_NEW_VNF_CHANGE_INSTANCE_VAL) - + uuid; - - PostCreateNewVnfWrapper responseWrapper = postSchedulingRequest(scheduler_request, path, uuid); - - Date endTime = new Date(); - String endTimeRequest = requestDateFormat.format(endTime); - System.out.println(endTimeRequest + " | Controller Scheduler - POST\n"); - - return (new ResponseEntity(responseWrapper.getResponse(), HttpStatus.OK)); - } - - protected PostCreateNewVnfWrapper postSchedulingRequest(JSONObject request, String path, String uuid) - throws Exception { - - try { - // STARTING REST API CALL AS AN FACTORY INSTACE - System.out.println("<== Post Create New Vnf Scheduling Request START \n"); - - PostCreateNewVnfRestObject restObjStr = new PostCreateNewVnfRestObject(); - String str = new String(); - - restObjStr.set(str); - schedulerRestController.Post(str, request, path, restObjStr); - - int status = restObjStr.getStatusCode(); - if (status >= 200 && status <= 299) { - restObjStr.setUUID(uuid); - } - - PostCreateNewVnfWrapper responseWrapper = SchedulerUtil.postCreateNewVnfWrapResponse(restObjStr); - - System.out.println("<== Post Create New Vnf Scheduling Request END : Response = " - + responseWrapper.getResponse() + '\n'); - - return responseWrapper; - - } catch (Exception e) { - System.out.println("<== Post Create New Vnf Scheduling Request ERROR : " + e.toString() + '\n'); - logger.error(EELFLoggerDelegate.errorLogger, "Post Create New Vnf Scheduling Request failed", e); - throw e; - } - } - - @RequestMapping(value = "/submit_vnf_change_timeslots", method = RequestMethod.POST) - public ResponseEntity postSubmitVnfChangeTimeslots(HttpServletRequest request, - @RequestBody JSONObject scheduler_request) throws Exception { - - Date startingTime = new Date(); - String startTimeRequest = requestDateFormat.format(startingTime); - - System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); - System.out.println(startTimeRequest + " | Controller Scheduler POST : submit_vnf_change_timeslots \n"); - - // Generating uuid - String uuid = (String) scheduler_request.get("scheduleId"); - scheduler_request.remove("scheduleId"); - - System.out.println("<== UUID : " + uuid + '\n'); - System.out.println("Original Request : \n " + scheduler_request.toString() + '\n'); - - String path = SystemProperties.getProperty(SchedulerProperties.SCHEDULER_SUBMIT_NEW_VNF_CHANGE) - .replace("{scheduleId}", uuid); - - PostSubmitVnfChangeTimeSlotsWrapper responseWrapper = postSubmitSchedulingRequest(scheduler_request, path, - uuid); - - Date endTime = new Date(); - String endTimeRequest = requestDateFormat.format(endTime); - System.out.println(endTimeRequest + " | Controller Scheduler - POST Submit\n"); - - return (new ResponseEntity(responseWrapper.getResponse(), HttpStatus.OK)); - } - - protected PostSubmitVnfChangeTimeSlotsWrapper postSubmitSchedulingRequest(JSONObject request, String path, - String uuid) throws Exception { - - try { - // STARTING REST API CALL AS AN FACTORY INSTACE - System.out.println("<== Post Submit Scheduling Request START \n"); - - PostSubmitVnfChangeRestObject restObjStr = new PostSubmitVnfChangeRestObject(); - String str = new String(); - - restObjStr.set(str); - schedulerRestController.Post(str, request, path, restObjStr); - - int status = restObjStr.getStatusCode(); - if (status >= 200 && status <= 299) { - restObjStr.setUUID(uuid); - } - - PostSubmitVnfChangeTimeSlotsWrapper responseWrapper = SchedulerUtil - .postSubmitNewVnfWrapResponse(restObjStr); - - System.out.println( - "<== Post Submit Scheduling Request END : Response = " + responseWrapper.getResponse() + '\n'); - - return responseWrapper; - - } catch (Exception e) { - System.out.println("<== Post Submit Scheduling Request ERROR : " + e.toString() + '\n'); - logger.error(EELFLoggerDelegate.errorLogger, "Post Submit Scheduling Request failed", e); - throw e; - } - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/SharedContextRestController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/SharedContextRestController.java deleted file mode 100644 index 352912aa..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/SharedContextRestController.java +++ /dev/null @@ -1,384 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPRestrictedRESTfulBaseController; -import org.openecomp.portalapp.portal.domain.SharedContext; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.SharedContextService; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -import io.swagger.annotations.ApiOperation; - -/** - * The shared-context feature allows onboarded applications to share data among - * themselves easily for a given session. It basically implements a Java map: - * put or get a key-value pair within a map identified by a session ID. - * - * This REST endpoint listens on the Portal app server and answers requests made - * by back-end application servers. Reads and writes values to the database - * using a Hibernate service to ensure all servers in a high-availability - * cluster see the same data. - */ -@Configuration -@RestController -@RequestMapping(PortalConstants.REST_AUX_API + "/context") -@EnableAspectJAutoProxy -@EPAuditLog -public class SharedContextRestController extends EPRestrictedRESTfulBaseController { - - /** - * Model for a one-element JSON object returned by many methods. - */ - class SharedContextJsonResponse { - String response; - } - - /** - * Access to the database - */ - @Autowired - private SharedContextService contextService; - - /** - * Logger for debug etc. - */ - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SharedContextRestController.class); - - /** - * Reusable JSON (de)serializer - */ - private final ObjectMapper mapper = new ObjectMapper(); - - /** - * Gets a value for the specified context and key (RESTful service method). - * - * @param request - * HTTP servlet request - * @param context_id - * ID that identifies the context, usually the ECOMP Portal - * session key. - * @param ckey - * Key for the key-value pair to fetch - * @return JSON with shared context object; response=null if not found. - * @throws Exception - * on bad arguments - */ - @ApiOperation(value = "Gets a value for the specified context and key.", response = SharedContext.class) - @RequestMapping(value = { "/get" }, method = RequestMethod.GET, produces = "application/json") - public String getContext(HttpServletRequest request, @RequestParam String context_id, @RequestParam String ckey) - throws Exception { - - logger.debug(EELFLoggerDelegate.debugLogger, "getContext for ID " + context_id + ", key " + ckey); - if (context_id == null || ckey == null) - throw new Exception("Received null for context_id and/or ckey"); - - SharedContext context = contextService.getSharedContext(context_id, ckey); - String jsonResponse = ""; - if (context == null) - jsonResponse = convertResponseToJSON(context); - else - jsonResponse = mapper.writeValueAsString(context); - - return jsonResponse; - } - - /** - * Gets user information for the specified context (RESTful service method). - * - * @param request - * HTTP servlet request - * @param context_id - * ID that identifies the context, usually the ECOMP Portal - * session key. - * @return List of shared-context objects as JSON; should have user's first - * name, last name and email address; null if none found - * @throws Exception - * on bad arguments - */ - @ApiOperation(value = "Gets user information for the specified context.", response = SharedContext.class, responseContainer = "List") - @RequestMapping(value = { "/get_user" }, method = RequestMethod.GET, produces = "application/json") - public String getUserContext(HttpServletRequest request, @RequestParam String context_id) throws Exception { - - logger.debug(EELFLoggerDelegate.debugLogger, "getUserContext for ID " + context_id); - if (context_id == null) - throw new Exception("Received null for context_id"); - - List listSharedContext = new ArrayList(); - SharedContext firstNameContext = contextService.getSharedContext(context_id, - EPCommonSystemProperties.USER_FIRST_NAME); - SharedContext lastNameContext = contextService.getSharedContext(context_id, - EPCommonSystemProperties.USER_LAST_NAME); - SharedContext emailContext = contextService.getSharedContext(context_id, EPCommonSystemProperties.USER_EMAIL); - SharedContext orgUserIdContext = contextService.getSharedContext(context_id, - EPCommonSystemProperties.USER_ORG_USERID); - if (firstNameContext != null) - listSharedContext.add(firstNameContext); - if (lastNameContext != null) - listSharedContext.add(lastNameContext); - if (emailContext != null) - listSharedContext.add(emailContext); - if (orgUserIdContext != null) - listSharedContext.add(orgUserIdContext); - String jsonResponse = convertResponseToJSON(listSharedContext); - return jsonResponse; - } - - /** - * Tests for presence of the specified key in the specified context (RESTful - * service method). - * - * @param request - * HTTP servlet request - * @param context_id - * ID that identifies the context, usually the ECOMP Portal - * session key. - * @param ckey - * Key for the key-value pair to test - * @return JSON with result indicating whether the context and key were - * found. - * @throws Exception - * on bad arguments - */ - @ApiOperation(value = "Tests for presence of the specified key in the specified context.", response = SharedContextJsonResponse.class) - @RequestMapping(value = { "/check" }, method = RequestMethod.GET, produces = "application/json") - public String checkContext(HttpServletRequest request, @RequestParam String context_id, @RequestParam String ckey) - throws Exception { - - logger.debug(EELFLoggerDelegate.debugLogger, "checkContext for " + context_id + ", key " + ckey); - if (context_id == null || ckey == null) - throw new Exception("Received null for contextId and/or key"); - - String response = null; - SharedContext context = contextService.getSharedContext(context_id, ckey); - if (context != null) - response = "exists"; - - String jsonResponse = convertResponseToJSON(response); - return jsonResponse; - } - - /** - * Removes the specified key in the specified context (RESTful service - * method). - * - * @param request - * HTTP servlet request - * @param context_id - * ID that identifies the context, usually the ECOMP Portal - * session key. - * @param ckey - * Key for the key-value pair to remove - * @return JSON with result indicating whether the context and key were - * found. - * @throws Exception - * on bad arguments - */ - @ApiOperation(value = "Removes the specified key in the specified context.", response = SharedContextJsonResponse.class) - @RequestMapping(value = { "/remove" }, method = RequestMethod.GET, produces = "application/json") - public String removeContext(HttpServletRequest request, @RequestParam String context_id, @RequestParam String ckey) - throws Exception { - - logger.debug(EELFLoggerDelegate.debugLogger, "removeContext for " + context_id + ", key " + ckey); - if (context_id == null || ckey == null) - throw new Exception("Received null for contextId and/or key"); - - SharedContext context = contextService.getSharedContext(context_id, ckey); - String response = null; - if (context != null) { - contextService.deleteSharedContext(context); - response = "removed"; - } - - String jsonResponse = convertResponseToJSON(response); - return jsonResponse; - } - - /** - * Clears all key-value pairs in the specified context (RESTful service - * method). - * - * @param request - * HTTP servlet request - * @param context_id - * ID that identifies the context, usually the ECOMP Portal - * session key. - * @return JSON with result indicating the number of key-value pairs - * removed. - * @throws Exception - * on bad arguments - */ - @ApiOperation(value = "Clears all key-value pairs in the specified context.", response = SharedContextJsonResponse.class) - @RequestMapping(value = { "/clear" }, method = RequestMethod.GET, produces = "application/json") - public String clearContext(HttpServletRequest request, @RequestParam String context_id) throws Exception { - - logger.debug(EELFLoggerDelegate.debugLogger, "clearContext for " + context_id); - if (context_id == null) - throw new Exception("clearContext: Received null for contextId"); - - int count = contextService.deleteSharedContexts(context_id); - String jsonResponse = convertResponseToJSON(Integer.toString(count)); - return jsonResponse; - } - - /** - * Sets a context value for the specified context and key (RESTful service - * method). Creates the context if no context with the specified ID-key pair - * exists, overwrites the value if it exists already. - * - * @param request - * HTTP servlet request - * @param userJson - * JSON block with these tag-value pairs: - *
    - *
  • context_id: ID that identifies the context - *
  • ckey: Key for the key-value pair to store - *
  • cvalue: Value to store - *
- * @return JSON with result indicating whether the value was added (key not - * previously known) or replaced (key previously known). - * @throws Exception - * on bad arguments - */ - @ApiOperation(value = "Sets a context value for the specified context and key. Creates the context if no context with the specified ID-key pair exists, overwrites the value if it exists already.", response = SharedContextJsonResponse.class) - @RequestMapping(value = { "/set" }, method = RequestMethod.POST, produces = "application/json") - public String setContext(HttpServletRequest request, @RequestBody String userJson) throws Exception { - - @SuppressWarnings("unchecked") - Map userData = mapper.readValue(userJson, Map.class); - // Use column names as JSON tags - final String contextId = (String) userData.get("context_id"); - final String key = (String) userData.get("ckey"); - final String value = (String) userData.get("cvalue"); - if (contextId == null || key == null) - throw new Exception("setContext: received null for contextId and/or key"); - - logger.debug(EELFLoggerDelegate.debugLogger, "setContext: ID " + contextId + ", key " + key + "->" + value); - String response = null; - SharedContext existing = contextService.getSharedContext(contextId, key); - if (existing == null) { - contextService.addSharedContext(contextId, key, value); - } else { - existing.setCvalue(value); - contextService.saveSharedContext(existing); - } - response = existing == null ? "added" : "replaced"; - String jsonResponse = convertResponseToJSON(response); - return jsonResponse; - } - - /** - * Creates a two-element JSON object tagged "response". - * - * @param responseBody - * @return JSON object as String - * @throws JsonProcessingException - */ - private String convertResponseToJSON(String responseBody) throws JsonProcessingException { - Map responseMap = new HashMap(); - responseMap.put("response", responseBody); - String response = mapper.writeValueAsString(responseMap); - return response; - } - - /** - * Converts a list of SharedContext objects to a JSON array. - * - * @param contextList - * @return JSON array as String - * @throws JsonProcessingException - */ - private String convertResponseToJSON(List contextList) throws JsonProcessingException { - String jsonArray = mapper.writeValueAsString(contextList); - return jsonArray; - } - - /** - * Creates a JSON object with the content of the shared context; null is ok. - * - * @param context - * @return tag "response" with collection of context object's fields - * @throws JsonProcessingException - */ - private String convertResponseToJSON(SharedContext context) throws JsonProcessingException { - Map responseMap = new HashMap(); - responseMap.put("response", context); - String responseBody = mapper.writeValueAsString(responseMap); - return responseBody; - } - - /** - * Handles any exception thrown by a method in this controller. - * - * @param e - * Exception - * @param response - * HttpServletResponse - * @throws IOException - */ - @ExceptionHandler(Exception.class) - protected void handleBadRequests(Exception e, HttpServletResponse response) throws IOException { - logger.error(EELFLoggerDelegate.errorLogger, "handleBadRequest caught exception", e); - response.sendError(HttpStatus.BAD_REQUEST.value(), e.getMessage()); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/TicketEventController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/TicketEventController.java deleted file mode 100644 index 76154c6a..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/TicketEventController.java +++ /dev/null @@ -1,229 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.Arrays; -import java.util.Calendar; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.TicketEventService; -import org.openecomp.portalapp.portal.service.UserNotificationService; -import org.openecomp.portalapp.portal.transport.EpNotificationItem; -import org.openecomp.portalapp.portal.transport.EpRoleNotificationItem; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; - -import io.swagger.annotations.ApiOperation; - -/** - * Receives messages from the Collaboration Bus (C-BUS) notification and event - * brokering tool. Creates notifications for ECOMP Portal users. - */ -@RestController -@RequestMapping(PortalConstants.REST_AUX_API) -@Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class TicketEventController implements BasicAuthenticationController { - - - @Autowired - private UserNotificationService userNotificationService; - - @Autowired - private TicketEventService ticketEventService; - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(TicketEventController.class); - - public boolean isAuxRESTfulCall() { - return true; - } - - private final ObjectMapper mapper = new ObjectMapper(); - - - - @ApiOperation(value = "Accepts messages from external ticketing systems and creates notifications for Portal users.", response = PortalRestResponse.class) - @RequestMapping(value = { "/ticketevent" }, method = RequestMethod.POST) - public PortalRestResponse handleRequest(HttpServletRequest request, HttpServletResponse response, - @RequestBody String ticketEventJson) throws Exception { - - logger.debug(EELFLoggerDelegate.debugLogger, "Ticket Event notification" + ticketEventJson); - PortalRestResponse portalResponse = new PortalRestResponse<>(); - try { - JsonNode ticketEventNotif = mapper.readTree(ticketEventJson); - - // Reject request if required fields are missing. - String error = validateTicketEventMessage(ticketEventNotif); - if (error != null) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - portalResponse.setMessage(error); - response.setStatus(400); - return portalResponse; - } - - EpNotificationItem epItem = new EpNotificationItem(); - epItem.setCreatedDate(new Date()); - epItem.setIsForOnlineUsers("Y"); - epItem.setIsForAllRoles("N"); - epItem.setActiveYn("Y"); - - JsonNode event = ticketEventNotif.get("event"); - JsonNode header = event.get("header"); - JsonNode body = event.get("body"); - JsonNode application = ticketEventNotif.get("application"); - epItem.setMsgDescription(body.toString()); - Long eventDate = System.currentTimeMillis(); - if (body.get("eventDate") != null) { - eventDate = body.get("eventDate").asLong(); - } - String eventSource = header.get("eventSource").asText(); - epItem.setMsgSource(eventSource); - String ticket = body.get("ticketNum").asText(); - String hyperlink = ticketEventService.getNotificationHyperLink(application, ticket, eventSource); - if(body.get("notificationHyperlink")!=null){ - hyperlink=body.get("notificationHyperlink").asText(); - } - epItem.setNotificationHyperlink(hyperlink); - epItem.setStartTime(new Date(eventDate)); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(epItem.getStartTime()); - int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); - calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth + 30); - epItem.setEndTime(calendar.getTime()); - String severityString = "1"; - if (body.get("severity") != null) { - severityString = (body.get("severity").toString()).substring(1, 2); - } - Long severity = Long.parseLong(severityString); - epItem.setPriority(severity); - epItem.setCreatorId(null); - Set roles = new HashSet<>(); - JsonNode SubscriberInfo = ticketEventNotif.get("SubscriberInfo"); - JsonNode userList = SubscriberInfo.get("UserList"); - String UserIds[] = userList.toString().replace("[", "").replace("]", "").trim().replace("\"", "") - .split(","); - String assetID = eventSource + ' ' - + userList.toString().replace("[", "").replace("]", "").trim().replace("\"", "") + ' ' - + new Date(eventDate); - if (body.get("assetID") != null) { - assetID = body.get("assetID").asText(); - } - epItem.setMsgHeader(assetID); - List users = userNotificationService.getUsersByOrgIds(Arrays.asList(UserIds)); - for (String userId : UserIds) { - EpRoleNotificationItem roleNotifItem = new EpRoleNotificationItem(); - for (EPUser user : users) { - if (user.getOrgUserId().equals(userId)) { - roleNotifItem.setRecvUserId(user.getId().intValue()); - roles.add(roleNotifItem); - break; - } - } - - } - epItem.setRoles(roles); - userNotificationService.saveNotification(epItem); - - portalResponse.setStatus(PortalRestStatusEnum.OK); - portalResponse.setMessage("processEventNotification: notification created"); - portalResponse.setResponse("NotificationId is :" + epItem.notificationId); - } catch (Exception ex) { - portalResponse.setStatus(PortalRestStatusEnum.ERROR); - response.setStatus(400); - portalResponse.setMessage(ex.toString()); - } - return portalResponse; - } - - /** - * Validates that mandatory fields are present. - * - * @param ticketEventNotif - * @return Error message if a problem is found; null if all is well. - */ - private String validateTicketEventMessage(JsonNode ticketEventNotif) { - JsonNode application = ticketEventNotif.get("application"); - JsonNode event = ticketEventNotif.get("event"); - JsonNode header = event.get("header"); - JsonNode eventSource=header.get("eventSource"); - JsonNode body = event.get("body"); - JsonNode SubscriberInfo = ticketEventNotif.get("SubscriberInfo"); - JsonNode userList = SubscriberInfo.get("UserList"); - - if (application == null||application.asText().length()==0||application.asText().equalsIgnoreCase("null")) - return "Application is mandatory"; - if (body == null) - return "body is mandatory"; - if (eventSource == null||eventSource.asText().trim().length()==0||eventSource.asText().equalsIgnoreCase("null")) - return "Message Source is mandatory"; - if (userList == null) - return "At least one user Id is mandatory"; - JsonNode eventDate=body.get("eventDate"); - - if(eventDate!=null&&eventDate.asText().length()==8) - return "EventDate is invalid"; - String UserIds[] = userList.toString().replace("[", "").replace("]", "").trim().replace("\"", "") - .split(","); - List users = userNotificationService.getUsersByOrgIds(Arrays.asList(UserIds)); - if(users==null||users.size()==0) - return "Invalid Org User ID"; - return null; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserController.java deleted file mode 100644 index 0db19e1c..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserController.java +++ /dev/null @@ -1,141 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.UserService; -import org.openecomp.portalapp.portal.transport.ProfileDetail; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class UserController extends EPRestrictedBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserController.class); - - @Autowired - private UserService userService; - - /** - * RESTful service method to get ECOMP Logged in User details. - * - * @param request - * HttpServletRequest - * - * @return PortalRestResponse of EPUser - */ - @RequestMapping(value = { "/portalApi/loggedinUser" }, method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse getLoggedinUser(HttpServletRequest request) { - PortalRestResponse portalRestResponse = null; - try { - EPUser user = EPUserUtils.getUserSession(request); - ProfileDetail profileDetail = new ProfileDetail(user.getFirstName(), user.getLastName(), - user.getMiddleInitial(), user.getEmail(), user.getLoginId(), CipherUtil.decrypt(user.getLoginPwd())); - portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.OK, "success", - profileDetail); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/loggedinUser", "result =", profileDetail); - } catch (Exception e) { - portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.ERROR, e.getMessage(), - null); - logger.error(EELFLoggerDelegate.errorLogger, "getLoggedinUser failed", e); - } - return portalRestResponse; - } - - /** - * RESTful service method to update ECOMP Logged in User in DB. - * - * @param request - * HttpServletRequest - * @param profileDetail - * Body with user information - * @return PortalRestResponse of String - */ - @RequestMapping(value = { - "/portalApi/modifyLoggedinUser" }, method = RequestMethod.PUT, produces = "application/json") - public PortalRestResponse modifyLoggedinUser(HttpServletRequest request, - @RequestBody ProfileDetail profileDetail) { - PortalRestResponse portalRestResponse = null; - try { - String errorMsg = ""; - if (profileDetail.getFirstName().equals("") || profileDetail.getLastName().equals("") - || profileDetail.getEmail().equals("") || profileDetail.getLoginId().equals("") - || profileDetail.getLoginPassword().equals("")) { - errorMsg = "Required field(s) is missing"; - portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.ERROR, errorMsg, null); - logger.error(EELFLoggerDelegate.errorLogger, "modifyLoggedinUser failed", errorMsg); - } else { - EPUser user = EPUserUtils.getUserSession(request); - user.setFirstName(profileDetail.getFirstName()); - user.setLastName(profileDetail.getLastName()); - user.setEmail(profileDetail.getEmail()); - user.setMiddleInitial(profileDetail.getMiddleName()); - user.setLoginId(profileDetail.getLoginId()); - user.setLoginPwd(CipherUtil.encrypt(profileDetail.getLoginPassword())); - userService.saveUser(user); - // Update user info in the session - request.getSession().setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), - user); - portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.OK, "success", null); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/modifyLoggedinUser", "result =", user); - } - } catch (Exception e) { - portalRestResponse = new PortalRestResponse(PortalRestStatusEnum.ERROR, e.toString(), null); - logger.error(EELFLoggerDelegate.errorLogger, "modifyLoggedinUser failed", e); - } - return portalRestResponse; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserNotificationController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserNotificationController.java deleted file mode 100644 index 3b5ba0c7..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserNotificationController.java +++ /dev/null @@ -1,235 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.web.support.UserUtils; -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EcompAppRole; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.FunctionalMenuService; -import org.openecomp.portalapp.portal.service.UserNotificationService; -import org.openecomp.portalapp.portal.transport.EpNotificationItem; -import org.openecomp.portalapp.portal.transport.EpNotificationItemVO; -import org.openecomp.portalapp.portal.transport.EpRoleNotificationItem; -import org.openecomp.portalapp.portal.transport.FunctionalMenuRole; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.util.EPUserUtils; - -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class UserNotificationController extends EPRestrictedBaseController { - - @Autowired - FunctionalMenuService functionalMenuService; - - @Autowired - UserNotificationService userNotificationService; - - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserNotificationController.class); - - @RequestMapping(value = { - "/portalApi/getFunctionalMenuRole" }, method = RequestMethod.GET, produces = "application/json") - public List getMenuIdRoleId(HttpServletRequest request, HttpServletResponse response) { - // EPUser user = EPUserUtils.getUserSession(request); - List menuRoleList = null; - menuRoleList = functionalMenuService.getFunctionalMenuRole(); - return menuRoleList; - } - - @RequestMapping(value = { - "/portalApi/getNotifications" }, method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> getNotifications(HttpServletRequest request, - HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - PortalRestResponse> portalRestResponse = null; - try { - List notificationList = userNotificationService.getNotifications(user.getId()); - portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.OK, "success", - notificationList); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAllAppsAndContacts failed", e); - portalRestResponse = new PortalRestResponse>(PortalRestStatusEnum.ERROR, - e.getMessage(), null); - } - return portalRestResponse; - } - - @RequestMapping(value = { - "/portalApi/getAdminNotifications" }, method = RequestMethod.GET, produces = "application/json") - public List getAdminNotifications(HttpServletRequest request, HttpServletResponse response) { - List adminNotificationList = null; - EPUser user = EPUserUtils.getUserSession(request); - adminNotificationList = userNotificationService.getAdminNotificationVOS(user.getId()); - return adminNotificationList; - } - - @RequestMapping(value = "/portalApi/saveNotification", method = RequestMethod.POST, produces = "application/json") - public PortalRestResponse save(HttpServletRequest request, HttpServletResponse response, - @RequestBody EpNotificationItem notificationItem) { - - if (notificationItem == null || notificationItem.getMsgHeader() == null) - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", - "Notification Header cannot be null or empty"); - if (notificationItem.getEndTime().compareTo(notificationItem.getStartTime()) < 0) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", - "End Time should be greater than start time"); - } - - if ((notificationItem.getIsForAllRoles() == "N") && notificationItem.getRoleIds().isEmpty()) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", - "No Roles Ids Exist for the selected Roles"); - } - - Long creatorId = UserUtils.getUserIdAsLong(request); - notificationItem.setCreatorId(creatorId); - - // Front-end date picker does not accept a time value, so all - // values are the start of the chosen day in the local time zone. - // Move the end time value to the very end of the chosen day. - // Avoid Calendar.getDefault() which uses the server's locale. - Long endTime = notificationItem.getEndTime().getTime(); - endTime += (23 * 3600 + 59 * 60 + 59) * 1000; - notificationItem.getEndTime().setTime(endTime); - - try { - userNotificationService.saveNotification(notificationItem); - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); - } - - @RequestMapping(value = { - "/portalApi/notificationUpdateRate" }, method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> getNotificationUpdateRate(HttpServletRequest request) { - try { - String updateRate = SystemProperties.getProperty(EPCommonSystemProperties.NOTIFICATION_UPDATE_RATE); - String updateDuration = SystemProperties.getProperty(EPCommonSystemProperties.NOTIFICATION_UPDATE_DURATION); - Integer rateInMiliSec = Integer.valueOf(updateRate) * 1000; - Integer durationInMiliSec = Integer.valueOf(updateDuration) * 1000; - Map results = new HashMap(); - results.put("updateRate", String.valueOf(rateInMiliSec)); - results.put("updateDuration", String.valueOf(durationInMiliSec)); - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", results); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getNotificationUpdateRate failed", e); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); - } - } - - @RequestMapping(value = { - "/portalApi/notificationRead" }, method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse> notificationRead( - @RequestParam("notificationId") String notificationID, HttpServletRequest request) { - try { - userNotificationService.setNotificationRead(Long.parseLong(notificationID), UserUtils.getUserId(request)); - return new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", null); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "notificationRead failed", e); - return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); - } - } - - @RequestMapping(value = { - "/portalApi/getNotificationHistory" }, method = RequestMethod.GET, produces = "application/json") - public List getNotificationHistory(HttpServletRequest request, HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List notificationList = null; - notificationList = userNotificationService.getNotificationHistoryVO(user.getId()); - return notificationList; - } - - @RequestMapping(value = { "/portalApi/notificationRole/{notificationId}/roles" }, method = { - RequestMethod.GET }, produces = "application/json") - public List testGetRoles(HttpServletRequest request, @PathVariable("notificationId") Long notificationId) { - List NotifRoles = userNotificationService.getNotificationRoles(notificationId); - ArrayList rolesList = new ArrayList(); - for (EpRoleNotificationItem notifRole : NotifRoles) { - rolesList.add(notifRole.roleId); - } - return rolesList; - } - - @RequestMapping(value = { "/portalApi/getNotificationAppRoles" }, method = { - RequestMethod.GET }, produces = "application/json") - public List getNotificationAppRoles(HttpServletRequest request, HttpServletResponse response) { - List epAppRoleList = null; - try { - epAppRoleList = userNotificationService.getAppRoleList(); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - "Exception occurred while performing UserNofiticationController.getNotificationAppRoles. Details: ", - e); - } - return epAppRoleList; - } - - @RequestMapping(value = { - "/portalApi/getMessageRecipients" }, method = RequestMethod.GET, produces = "application/json") - public List getMessageRecipients(@RequestParam("notificationId") Long notificationID) { - // EPUser user = EPUserUtils.getUserSession(request); - List messageUserRecipients = null; - messageUserRecipients = userNotificationService.getMessageRecipients(notificationID); - return messageUserRecipients; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserRolesController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserRolesController.java deleted file mode 100644 index b907909e..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/UserRolesController.java +++ /dev/null @@ -1,546 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal SDK - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.cxf.transport.http.HTTPException; -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EPUserAppCatalogRoles; -import org.openecomp.portalapp.portal.domain.EcompAuditLog; -import org.openecomp.portalapp.portal.domain.ExternalSystemAccess; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.logging.aop.EPEELFLoggerAdvice; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.ApplicationsRestClientService; -import org.openecomp.portalapp.portal.service.SearchService; -import org.openecomp.portalapp.portal.service.UserRolesService; -import org.openecomp.portalapp.portal.transport.AppNameIdIsAdmin; -import org.openecomp.portalapp.portal.transport.AppWithRolesForUser; -import org.openecomp.portalapp.portal.transport.AppsListWithAdminRole; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.RoleInAppForUser; -import org.openecomp.portalapp.portal.transport.UserApplicationRoles; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.domain.AuditLog; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.restful.domain.EcompRole; -import org.openecomp.portalsdk.core.service.AuditService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class UserRolesController extends EPRestrictedBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserRolesController.class); - - @Autowired - private SearchService searchService; - @Autowired - private AdminRolesService adminRolesService; - private @Autowired UserRolesService userRolesService; - @Autowired - private ApplicationsRestClientService applicationsRestClientService; - @Autowired - private AuditService auditService; - - private static final String FAILURE = "failure"; - - /** - * RESTful service method to fetch users in the WebPhone external service - * - * @param request - * HttpServletRequest - * @param searchString - * search string - * @param response - * HttpServletResponse - * @return array of found users as json - */ - @RequestMapping(value = { "/portalApi/queryUsers" }, method = RequestMethod.GET, produces = "application/json") - public String getPhoneBookSearchResult(HttpServletRequest request, @RequestParam("search") String searchString, - HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - String searchResult = null; - if (!adminRolesService.isSuperAdmin(user) && !adminRolesService.isAccountAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "getPhoneBookSearchResult"); - } else { - searchString = searchString.trim(); - if (searchString.length() > 2) { - searchResult = searchService.searchUsersInPhoneBook(searchString); - } else { - logger.info(EELFLoggerDelegate.errorLogger, - "getPhoneBookSearchResult - too short search string: " + searchString); - } - } - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/queryUsers", "result =", searchResult); - - return searchResult; - } - - /** - * RESTful service method to fetch applications where user is admin - * - * @param request - * HttpServletRequest - * @param orgUserId - * search string - * @param response - * HttpServletResponse - * @return for GET: array of all applications with boolean - * isAdmin=true/false for each application - */ - @RequestMapping(value = { "/portalApi/adminAppsRoles" }, method = { - RequestMethod.GET }, produces = "application/json") - public AppsListWithAdminRole getAppsWithAdminRoleStateForUser(HttpServletRequest request, - @RequestParam("user") String orgUserId, HttpServletResponse response) { - - EPUser user = EPUserUtils.getUserSession(request); - AppsListWithAdminRole result = null; - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "getAppsWithAdminRoleStateForUser"); - } else { - if (EcompPortalUtils.legitimateUserId(orgUserId)) { - result = adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId); - } else { - logger.info(EELFLoggerDelegate.errorLogger, - "getAppsWithAdminRoleStateForUser - parms error, no Organization User ID"); - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - } - } - - StringBuilder adminAppRoles = new StringBuilder(); - if(result != null){ - if ( result.appsRoles.size() >= 1) { - adminAppRoles.append("User '" + result.orgUserId + "' has admin role to the apps = {"); - for (AppNameIdIsAdmin adminAppRole : result.appsRoles) { - if (adminAppRole.isAdmin) { - adminAppRoles.append(adminAppRole.appName + ", "); - } - } - adminAppRoles.append("}."); - } else { - adminAppRoles.append("User '" + result.orgUserId + "' has no Apps with Admin Role."); - } - }else{ - logger.error(EELFLoggerDelegate.errorLogger, "putAppWithUserRoleStateForUser: getAppsWithAdminRoleStateForUser result is null"); - } - - logger.info(EELFLoggerDelegate.errorLogger, adminAppRoles.toString()); - - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/adminAppsRoles", "get result =", result); - - return result; - } - - /** - * - * @param request - * HttpServletRequest - * @param newAppsListWithAdminRoles - * new apps - * @param response - * HttpServletResponse - * @return FieldsValidator - */ - @RequestMapping(value = { "/portalApi/adminAppsRoles" }, method = { - RequestMethod.PUT }, produces = "application/json") - public FieldsValidator putAppsWithAdminRoleStateForUser(HttpServletRequest request, - @RequestBody AppsListWithAdminRole newAppsListWithAdminRoles, HttpServletResponse response) { - - // newAppsListWithAdminRoles.appsRoles - FieldsValidator fieldsValidator = new FieldsValidator(); - StringBuilder newAppRoles = new StringBuilder(); - if(newAppsListWithAdminRoles != null ){ - if (newAppsListWithAdminRoles.appsRoles.size() >= 1) { - newAppRoles.append("User '" + newAppsListWithAdminRoles.orgUserId + "' has admin role to the apps = { "); - for (AppNameIdIsAdmin adminAppRole : newAppsListWithAdminRoles.appsRoles) { - if (adminAppRole.isAdmin) { - newAppRoles.append(adminAppRole.appName + " ,"); - } - } - newAppRoles.deleteCharAt(newAppRoles.length() - 1); - newAppRoles.append("}."); - } else { - newAppRoles.append("User '" + newAppsListWithAdminRoles.orgUserId + "' has no Apps with Admin Role."); - } - }else{ - logger.error(EELFLoggerDelegate.errorLogger, "putAppWithUserRoleStateForUser: putAppsWithAdminRoleStateForUser result is null"); - } - - logger.info(EELFLoggerDelegate.errorLogger, newAppRoles.toString()); - - EPUser user = EPUserUtils.getUserSession(request); - boolean changesApplied = false; - - if (!adminRolesService.isSuperAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "putAppsWithAdminRoleStateForUser"); - } else { - changesApplied = adminRolesService.setAppsWithAdminRoleStateForUser(newAppsListWithAdminRoles); - AuditLog auditLog = new AuditLog(); - auditLog.setUserId(user.getId()); - auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN); - auditLog.setAffectedRecordId(newAppsListWithAdminRoles.orgUserId); - auditLog.setComments(EcompPortalUtils.truncateString(newAppRoles.toString(), PortalConstants.AUDIT_LOG_COMMENT_SIZE)); - auditService.logActivity(auditLog, null); - - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - EcompPortalUtils.calculateDateTimeDifferenceForLog( - MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), - MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); - logger.info(EELFLoggerDelegate.auditLogger, - EPLogUtil.formatAuditLogMessage("UserRolesController.putAppsWithAdminRoleStateForUser", - EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN, user.getOrgUserId(), - newAppsListWithAdminRoles.orgUserId, newAppRoles.toString())); - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - MDC.remove(SystemProperties.MDC_TIMER); - } - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/adminAppsRoles", "put result =", changesApplied); - - return fieldsValidator; - } - - /** - * It returns a list of user app roles for single app - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @param orgUserId - * user ID - * @param appid - * application ID - * @param extRequestValue - * set to false if request is from users page otherwise true - * @return List - */ - @RequestMapping(value = { "/portalApi/userAppRoles" }, method = { - RequestMethod.GET }, produces = "application/json") - public List getAppRolesForUser(HttpServletRequest request, @RequestParam("user") String orgUserId, - @RequestParam("app") Long appid, @RequestParam("externalRequest") Boolean extRequestValue, - HttpServletResponse response) { - EPUser user = EPUserUtils.getUserSession(request); - List result = null; - String feErrorString = ""; - if (!adminRolesService.isAccountAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "getAppRolesForUser"); - feErrorString = EcompPortalUtils.getFEErrorString(true, response.getStatus()); - } else { - if (EcompPortalUtils.legitimateUserId(orgUserId)) { - result = userRolesService.getAppRolesForUser(appid, orgUserId, extRequestValue); - int responseCode = EcompPortalUtils.getExternalAppResponseCode(); - if (responseCode != 0 && responseCode != 200) { - // external error - response.setStatus(responseCode); - feErrorString = EcompPortalUtils.getFEErrorString(false, responseCode); - } else if (result == null) { - // If the result is null, there was an internal ecomp error - // in the service call. - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - feErrorString = EcompPortalUtils.getFEErrorString(true, - HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - } else { - logger.info(EELFLoggerDelegate.errorLogger, "getAppRolesForUser - no Organization User ID"); - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - feErrorString = EcompPortalUtils.getFEErrorString(true, HttpServletResponse.SC_BAD_REQUEST); - } - } - - StringBuilder sbUserApps = new StringBuilder(); - if (result != null && result.size() >= 1) { - sbUserApps.append("User '" + orgUserId + "' has Roles={"); - for (RoleInAppForUser appRole : result) { - if (appRole.isApplied) { - sbUserApps.append(appRole.roleName + ", "); - } - } - sbUserApps.append("} assigned to the appId '" + appid + "'."); - } else { - // Not sure creating an empty object will make any difference - // but would like to give it a shot for defect #DE221057 - if (result == null) { - result = new ArrayList(); - } - sbUserApps.append("User '" + orgUserId + "' and appid " + appid + " has no roles"); - } - logger.info(EELFLoggerDelegate.errorLogger, sbUserApps.toString()); - - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppRoles", "get result =", result); - if (feErrorString != "") { - logger.debug(EELFLoggerDelegate.debugLogger, "LR: FEErrorString to header: " + feErrorString); - - response.addHeader("FEErrorString", feErrorString); - response.addHeader("Access-Control-Expose-Headers", "FEErrorString"); - } - return result; - } - - @RequestMapping(value = { "/portalApi/userAppRoles" }, method = { - RequestMethod.PUT }, produces = "application/json") - public FieldsValidator putAppWithUserRoleStateForUser(HttpServletRequest request, - @RequestBody AppWithRolesForUser newAppRolesForUser, HttpServletResponse response) { - FieldsValidator fieldsValidator = new FieldsValidator(); - StringBuilder sbUserApps = new StringBuilder(); - if (newAppRolesForUser != null) { - sbUserApps.append("User '" + newAppRolesForUser.orgUserId); - if (newAppRolesForUser.appRoles != null && newAppRolesForUser.appRoles.size() >= 1) { - sbUserApps.append("' has roles = { "); - for (RoleInAppForUser appRole : newAppRolesForUser.appRoles) { - if (appRole.isApplied) { - sbUserApps.append(appRole.roleName + " ,"); - } - } - sbUserApps.deleteCharAt(sbUserApps.length() - 1); - sbUserApps.append("} assigned for the app " + newAppRolesForUser.appId); - } else { - sbUserApps.append("' has no roles assigned for app " + newAppRolesForUser.appId); - } - } - logger.info(EELFLoggerDelegate.applicationLogger, "putAppWithUserRoleStateForUser: {}", sbUserApps.toString()); - - EPUser user = EPUserUtils.getUserSession(request); - boolean changesApplied = false; - if (!adminRolesService.isAccountAdmin(user)) { - EcompPortalUtils.setBadPermissions(user, response, "putAppWithUserRoleStateForUser"); - } else if(newAppRolesForUser==null){ - logger.error(EELFLoggerDelegate.errorLogger, "putAppWithUserRoleStateForUser: newAppRolesForUser is null"); - } else{ - changesApplied = userRolesService.setAppWithUserRoleStateForUser(user, newAppRolesForUser); - if (changesApplied) { - logger.info(EELFLoggerDelegate.applicationLogger, - "putAppWithUserRoleStateForUser: succeeded for app {}, user {}", newAppRolesForUser.appId, - newAppRolesForUser.orgUserId); - - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - AuditLog auditLog = new AuditLog(); - auditLog.setUserId(user.getId()); - auditLog.setActivityCode(EcompAuditLog.CD_ACTIVITY_UPDATE_USER); - auditLog.setAffectedRecordId(newAppRolesForUser.orgUserId); - auditLog.setComments(EcompPortalUtils.truncateString(sbUserApps.toString(), PortalConstants.AUDIT_LOG_COMMENT_SIZE)); - auditService.logActivity(auditLog, null); - - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - EcompPortalUtils.calculateDateTimeDifferenceForLog( - MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), - MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); - logger.info(EELFLoggerDelegate.auditLogger, - EPLogUtil.formatAuditLogMessage("UserRolesController.putAppWithUserRoleStateForUser", - EcompAuditLog.CD_ACTIVITY_UPDATE_USER, user.getOrgUserId(), - newAppRolesForUser.orgUserId, sbUserApps.toString())); - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - MDC.remove(SystemProperties.MDC_TIMER); - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "putAppWithUserRoleStateForUser: failed for app {}, user {}", newAppRolesForUser.appId, - newAppRolesForUser.orgUserId); - } - } - - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userAppRoles", "put result =", changesApplied); - return fieldsValidator; - } - - @RequestMapping(value = { "/portalApi/updateRemoteUserProfile" }, method = { - RequestMethod.GET }, produces = "application/json") - public PortalRestResponse updateRemoteUserProfile(HttpServletRequest request, - HttpServletResponse response) { - - String updateRemoteUserFlag = FAILURE; - try { - // saveNewUser = userService.saveNewUser(newUser); - String orgUserId = request.getParameter("loginId"); - Long appId = Long.parseLong(request.getParameter("appId")); - userRolesService.updateRemoteUserProfile(orgUserId, appId); - - } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.OK, updateRemoteUserFlag, e.getMessage()); - } - return new PortalRestResponse(PortalRestStatusEnum.ERROR, updateRemoteUserFlag, ""); - - } - - @RequestMapping(value = { "/portalApi/app/{appId}/users" }, method = { - RequestMethod.GET }, produces = "application/json") - public List getUsersFromAppEndpoint(HttpServletRequest request, - @PathVariable("appId") Long appId) throws HTTPException { - try { - logger.debug(EELFLoggerDelegate.debugLogger, "/portalApi/app/{}/users was invoked", appId); - List appUsers = userRolesService.getUsersFromAppEndpoint(appId); - return appUsers; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUsersFromAppEndpoint failed", e); - return new ArrayList(); - } - } - - @RequestMapping(value = { "/portalApi/app/{appId}/roles" }, method = { - RequestMethod.GET }, produces = "application/json") - public List testGetRoles(HttpServletRequest request, @PathVariable("appId") Long appId) - throws HTTPException { - EcompRole[] appRoles = applicationsRestClientService.get(EcompRole[].class, appId, "/roles"); - List rolesList = Arrays.asList(appRoles); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/app/{appId}/roles", "response for appId=" + appId, - rolesList); - - return rolesList; - } - - @RequestMapping(value = { "/portalApi/admin/import/app/{appId}/roles" }, method = { - RequestMethod.GET }, produces = "application/json") - public List importRolesFromRemoteApplication(HttpServletRequest request, @PathVariable("appId") Long appId) - throws HTTPException { - List rolesList = userRolesService.importRolesFromRemoteApplication(appId); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/admin/import/app/{appId}/roles", - "response for appId=" + appId, rolesList); - - return rolesList; - } - - @RequestMapping(value = { "/portalApi/app/{appId}/user/{orgUserId}/roles" }, method = { - RequestMethod.GET }, produces = "application/json") - public EcompRole testGetRoles(HttpServletRequest request, @PathVariable("appId") Long appId, - @PathVariable("orgUserId") String orgUserId) throws Exception { - if (!EcompPortalUtils.legitimateUserId(orgUserId)) { - String msg = "Error /user//roles not legitimate orgUserId = " + orgUserId; - logger.error(EELFLoggerDelegate.errorLogger, msg); - throw new Exception(msg); - } - EcompRole[] roles = applicationsRestClientService.get(EcompRole[].class, appId, - String.format("/user/%s/roles", orgUserId)); - if (roles.length != 1) { - String msg = "Error /user//roles returned array. expected size 1 recieved size = " + roles.length; - logger.error(EELFLoggerDelegate.errorLogger, msg); - throw new Exception(msg); - } - - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/app/{appId}/user/{orgUserId}/roles", - "response for appId='" + appId + "' and orgUserId='" + orgUserId + "'", roles[0]); - return roles[0]; - } - - @RequestMapping(value = { "/portalApi/saveUserAppRoles" }, method = { - RequestMethod.PUT }, produces = "application/json") - public FieldsValidator putAppWithUserRoleRequest(HttpServletRequest request, - @RequestBody AppWithRolesForUser newAppRolesForUser, HttpServletResponse response) { - FieldsValidator fieldsValidator = null; - try { - - EPUser user = EPUserUtils.getUserSession(request); - fieldsValidator = userRolesService.putUserAppRolesRequest(newAppRolesForUser, user); - response.setStatus(fieldsValidator.httpStatusCode.intValue()); - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "putAppWithUserRoleRequest failed", e); - - } - // return fieldsValidator; - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/saveUserAppRoles", "PUT result =", - response.getStatus()); - return fieldsValidator; - } - - @RequestMapping(value = { "/portalApi/appCatalogRoles" }, method = { - RequestMethod.GET }, produces = "application/json") - public List getUserAppCatalogRoles(HttpServletRequest request, - @RequestParam("appName") String appName) { - EPUser user = EPUserUtils.getUserSession(request); - List userAppRoleList = null; - try { - userAppRoleList = userRolesService.getUserAppCatalogRoles(user, appName); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "putUserWidgetsSortPref failed", e); - - } - Collections.sort(userAppRoleList, getUserAppCatalogRolesComparator); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/userApplicationRoles", "result =", userAppRoleList); - - return userAppRoleList; - - } - - private Comparator getUserAppCatalogRolesComparator = new Comparator() { - public int compare(EPUserAppCatalogRoles o1, EPUserAppCatalogRoles o2) { - return o1.getRolename().compareTo(o2.getRolename()); - } - }; - - @RequestMapping(value = "/portalApi/externalRequestAccessSystem", method = RequestMethod.GET, produces = "application/json") - public ExternalSystemAccess readExternalRequestAccess(HttpServletRequest request) { - ExternalSystemAccess result = null; - try { - result = userRolesService.getExternalRequestAccess(); - EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/externalRequestAccessSystem", "GET result =", - result); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "readExternalRequestAccess failed: " + e.getMessage()); - } - return result; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WebAnalyticsExtAppController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WebAnalyticsExtAppController.java deleted file mode 100644 index 23b0e49e..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WebAnalyticsExtAppController.java +++ /dev/null @@ -1,257 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.io.InputStream; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -import org.apache.commons.io.IOUtils; -import org.openecomp.portalapp.controller.EPRestrictedRESTfulBaseController; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EcompAuditLog; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.logging.aop.EPEELFLoggerAdvice; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.service.AppsCacheService; -import org.openecomp.portalapp.portal.service.ConsulHealthService; -import org.openecomp.portalapp.portal.transport.Analytics; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.crossapi.PortalAPIResponse; -import org.openecomp.portalsdk.core.service.AuditService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.util.concurrent.FailureCallback; -import org.springframework.util.concurrent.ListenableFuture; -import org.springframework.util.concurrent.SuccessCallback; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.client.AsyncRestTemplate; - -import io.swagger.annotations.ApiOperation; - -@RestController -@RequestMapping(PortalConstants.REST_AUX_API) -@Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class WebAnalyticsExtAppController extends EPRestrictedRESTfulBaseController { - - @Autowired - private ConsulHealthService consulHealthService; - - private static final String MACHINE_LEARNING_SERVICE_CTX = "/ml_api"; - private static final String REGISTER_ACTION = MACHINE_LEARNING_SERVICE_CTX + "/" + "registerAction"; - private static final String CONSUL_ML_SERVICE_ID = "machine-learning"; - private static final String APP_KEY = "uebkey"; - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WebAnalyticsExtAppController.class); - private AsyncRestTemplate restTemplate = new AsyncRestTemplate(); - - - @Autowired - AuditService auditService; - - @Autowired - AppsCacheService appCacheService; - - SuccessCallback> successCallback = new SuccessCallback>() { - @Override - public void onSuccess(ResponseEntity arg) { - logger.info(EELFLoggerDelegate.debugLogger, arg.getBody()); - } - }; - - FailureCallback failureCallback = new FailureCallback() { - @Override - public void onFailure(Throwable arg) { - logger.error(EELFLoggerDelegate.errorLogger, "storeAuxAnalytics failed", arg); - } - }; - - protected boolean isAuxRESTfulCall() { - return true; - } - - /** - * Answers requests from partner applications for a file that is expected to - * contain javascript to support web analytics. - * - * @param request - * HttpServletRequest - * @return String - * @throws Exception - * on failure - */ - @ApiOperation(value = "Gets javascript with functions that support gathering and reporting web analytics.", response = String.class) - @RequestMapping(value = { "/analytics" }, method = RequestMethod.GET, produces = "application/javascript") - public String getAnalyticsScript(HttpServletRequest request) throws Exception { - String responseText = ""; - final String fileName = "analytics.txt"; - InputStream analyticsFileStream = null; - try { - analyticsFileStream = this.getClass().getClassLoader().getResourceAsStream(fileName); - responseText = IOUtils.toString(analyticsFileStream, StandardCharsets.UTF_8.name()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "Error reading contents of the file " + fileName, e); - } finally { - if (analyticsFileStream != null) - analyticsFileStream.close(); - } - - String feURLContext = SystemProperties.getProperty("frontend_url"); - String feURL = feURLContext.substring(0, feURLContext.lastIndexOf('/')); - - responseText = responseText.replace("PORTAL_ENV_URL", feURL); - return responseText; - } - - /** - * Accepts data from partner applications with web analytics data. - * - * @param request - * HttpServletRequest - * @param analyticsMap - * Analytics - * @return PortalAPIResponse - * @throws Exception - * on failure - */ - @RequestMapping(value = { "/storeAnalytics" }, method = RequestMethod.POST, produces = "application/json") - @ResponseBody - @ApiOperation(value = "Accepts data from partner applications with web analytics data.", response = PortalAPIResponse.class) - public PortalAPIResponse storeAnalyticsScript(HttpServletRequest request, @RequestBody Analytics analyticsMap) - throws Exception { - try { - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - String appName = ""; - try { - appName = getAppName(request, appName); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - " Error retrieving Application to capture app name for analytics; Proceeding with empty app name"); - } - - try { - storeAuxAnalytics(analyticsMap, appName); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - " Error retrieving Application to capture app name for analytics; Proceeding with empty app name"); - } - - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC()); - - EcompPortalUtils.calculateDateTimeDifferenceForLog( - MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), - MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); - logger.info(EELFLoggerDelegate.auditLogger, - EPLogUtil.formatStoreAnalyticsAuditLogMessage(analyticsMap.getUserid(), appName, - "WebAnalyticsExtAppController.postWebAnalyticsData", - EcompAuditLog.CD_ACTIVITY_STORE_ANALYTICS, analyticsMap.getAction(), analyticsMap.getPage(), - analyticsMap.getFunction(), analyticsMap.getType())); - - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - MDC.remove(SystemProperties.MDC_TIMER); - - PortalAPIResponse response = new PortalAPIResponse(true, "success"); - return response; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "storeAnalytics failed", e); - PortalAPIResponse response = new PortalAPIResponse(true, "error"); - return response; - } - } - - protected String getAppName(HttpServletRequest request, String appName) { - String appKeyValue = request.getHeader(APP_KEY); - if (appKeyValue == null || appKeyValue.equals("")) { - logger.error(EELFLoggerDelegate.errorLogger, " App Key unavailable; Proceeding with null app name"); - } else { - EPApp appRecord = appCacheService.getAppForAnalytics(appKeyValue); - if (appRecord == null) { - logger.error(EELFLoggerDelegate.errorLogger, " App could not be found for the key " + appKeyValue); - } else - appName = appRecord.getName(); - - } - return appName; - } - - protected void storeAuxAnalytics(Analytics analyticsMap, String appName) { - logger.info(EELFLoggerDelegate.debugLogger, - " Registering an action for recommendation: AppName/Function/UserId " + appName + "/" - + analyticsMap.getFunction() + "/" + analyticsMap.getUserid()); - - Map requestMapping = new HashMap(); - requestMapping.put("id", analyticsMap.getUserid()); - requestMapping.put("action", appName + "|" + analyticsMap.getFunction()); - - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON); - - // set your entity to send - HttpEntity> entity = new HttpEntity>(requestMapping, headers); - - // send it! - ListenableFuture> out = restTemplate.exchange( - EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(CONSUL_ML_SERVICE_ID, - SystemProperties.getProperty("microservices.m-learn.local.port")) - + REGISTER_ACTION, - HttpMethod.POST, entity, String.class); - out.addCallback(successCallback, failureCallback); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogController.java deleted file mode 100644 index 229ef1f3..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogController.java +++ /dev/null @@ -1,417 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.MicroserviceParameter; -import org.openecomp.portalapp.portal.domain.WidgetCatalog; -import org.openecomp.portalapp.portal.domain.WidgetCatalogParameter; -import org.openecomp.portalapp.portal.domain.WidgetParameterResult; -import org.openecomp.portalapp.portal.domain.WidgetServiceHeaders; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.ConsulHealthService; -import org.openecomp.portalapp.portal.service.MicroserviceService; -import org.openecomp.portalapp.portal.service.WidgetParameterService; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.core.io.FileSystemResource; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MultiValueMap; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.client.RestClientException; -import org.springframework.web.client.RestTemplate; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.multipart.commons.CommonsMultipartResolver; - -@SuppressWarnings("unchecked") -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class WidgetsCatalogController extends EPRestrictedBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetsCatalogController.class); - - private static final String MS_WIDGET_LOCAL_PORT = "microservices.widget.local.port"; - - private RestTemplate template = new RestTemplate(); - - private String whatService = "widgets-service"; - - @Autowired - private ConsulHealthService consulHealthService; - - @Autowired - private MicroserviceService microserviceService; - - @Autowired - private WidgetParameterService widgetParameterService; - - @Bean - public CommonsMultipartResolver multipartResolver() { - return new CommonsMultipartResolver(); - } - - static { - // for localhost testing only - javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(new javax.net.ssl.HostnameVerifier() { - public boolean verify(String hostname, javax.net.ssl.SSLSession sslSession) { - if ("localhost".equals(hostname)) - return true; - return false; - } - }); - } - - @RequestMapping(value = { "/portalApi/microservices/widgetCatalog/{loginName}" }, method = RequestMethod.GET) - public List getUserWidgetCatalog(@PathVariable("loginName") String loginName) { - List widgets = new ArrayList<>(); - try { - ResponseEntity ans = template.exchange( - EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) - + "/widget/microservices/widgetCatalog/" + loginName, - HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), List.class); - widgets = ans.getBody(); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUserWidgetCatalog failed", e); - // returning null because null help check on the UI if there was a - // communication problem with Microservice. - return null; - } - return widgets; - } - - @RequestMapping(value = { "/portalApi/microservices/widgetCatalog" }, method = RequestMethod.GET) - public List getWidgetCatalog() { - List widgets = new ArrayList<>(); - try { - ResponseEntity ans = template.exchange( - EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) - + "/widget/microservices/widgetCatalog", - HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), List.class); - widgets = ans.getBody(); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getWidgetCatalog failed", e); - // returning null because null help check on the UI if there was a - // communication problem with Microservice. - return null; - } - return widgets; - } - - @RequestMapping(value = { - "/portalApi/microservices/widgetCatalog/{widgetId}" }, method = RequestMethod.PUT, produces = "application/json") - public void updateWidgetCatalog(@RequestBody WidgetCatalog newWidgetCatalog, @PathVariable("widgetId") long widgetId) throws Exception { - template.exchange( - EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) - + "/widget/microservices/widgetCatalog/" + widgetId, - HttpMethod.PUT, new HttpEntity<>(newWidgetCatalog, WidgetServiceHeaders.getInstance()), String.class); - } - - @RequestMapping(value = { "/portalApi/microservices/widgetCatalog/{widgetId}" }, method = RequestMethod.DELETE) - public void deleteOnboardingWidget(@PathVariable("widgetId") long widgetId) throws Exception { - template.exchange( - EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) - + "/widget/microservices/widgetCatalog/" + widgetId, - HttpMethod.DELETE, new HttpEntity<>(WidgetServiceHeaders.getInstance()), String.class); - } - - @RequestMapping(value = { "/portalApi/microservices/widgetCatalog/{widgetId}" }, method = RequestMethod.POST) - public String updateWidgetCatalogWithFiles(HttpServletRequest request, - @PathVariable("widgetId") long widgetId) throws RestClientException, Exception { - MultipartHttpServletRequest mRequest; - MultiValueMap multipartRequest = new LinkedMultiValueMap<>(); - String fileName; - String tmpFolderName = "/tmp/"; - String respond = null; - FileOutputStream fo = null; - try { - mRequest = (MultipartHttpServletRequest) request; - MultipartFile mFile = mRequest.getFile("file"); - fileName = mFile.getOriginalFilename(); - fo = new FileOutputStream(tmpFolderName + fileName); - fo.write(mFile.getBytes()); - // silence sonar scan by calling close here - fo.close(); - fo = null; - - HttpHeaders header = new HttpHeaders(); - header.setContentType(MediaType.MULTIPART_FORM_DATA); - multipartRequest.add("file", new FileSystemResource(tmpFolderName + fileName)); - multipartRequest.add("widget", request.getParameter("newWidget")); - respond = template.postForObject( - EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) - + "/widget/microservices/widgetCatalog/" + widgetId, - new HttpEntity<>(multipartRequest, WidgetServiceHeaders.getInstance()), String.class); - File f = new File(tmpFolderName + fileName); - f.delete(); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "updateWidgetCatalogWithFiles failed", e); - } finally { - try { - if (fo != null) - fo.close(); - } catch (IOException e) { - logger.error(EELFLoggerDelegate.errorLogger, "updateWidgetCatalogWithFiles failed 2", e); - } - } - return respond; - } - - @RequestMapping(value = { "/portalApi/microservices/widgetCatalog" }, method = RequestMethod.POST) - public String createWidgetCatalog(HttpServletRequest request) - throws Exception { - MultipartHttpServletRequest mRequest; - MultiValueMap multipartRequest = new LinkedMultiValueMap<>(); - String fileName; - String tmpFolderName = "/tmp/"; - String respond = null; - FileOutputStream fo = null; - try { - mRequest = (MultipartHttpServletRequest) request; - MultipartFile mFile = mRequest.getFile("file"); - fileName = mFile.getOriginalFilename(); - fo = new FileOutputStream(tmpFolderName + fileName); - fo.write(mFile.getBytes()); - // silence sonar scan by calling close here - fo.close(); - fo = null; - - HttpHeaders header = new HttpHeaders(); - header.setContentType(MediaType.MULTIPART_FORM_DATA); - multipartRequest.add("file", new FileSystemResource(tmpFolderName + fileName)); - multipartRequest.add("widget", request.getParameter("newWidget")); - - respond = template.postForObject( - EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) - + "/widget/microservices/widgetCatalog", - new HttpEntity<>(multipartRequest, WidgetServiceHeaders.getInstance()), String.class); - File f = new File(tmpFolderName + fileName); - f.delete(); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "createWidgetCatalog failed", e); - } finally { - try { - if (fo != null) - fo.close(); - } catch (IOException e) { - logger.error(EELFLoggerDelegate.errorLogger, "createWidgetCatalog failed 2", e); - } - } - return respond; - } - - @RequestMapping(value = "/portalApi/microservices/{widgetId}/framework.js", method = RequestMethod.GET) - public String getWidgetFramework(@PathVariable("widgetId") long widgetId) throws Exception { - return template.getForObject(EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) - + "/widget/microservices/" + widgetId + "/framework.js", String.class, - WidgetServiceHeaders.getInstance()); - } - - @RequestMapping(value = "/portalApi/microservices/{widgetId}/controller.js", method = RequestMethod.GET) - public String getWidgetController(@PathVariable("widgetId") long widgetId) throws Exception { - return template.getForObject(EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) - + "/widget/microservices/" + widgetId + "/controller.js", String.class, - WidgetServiceHeaders.getInstance()); - } - - @RequestMapping(value = "/portalApi/microservices/{widgetId}/style.css", method = RequestMethod.GET) - public String getWidgetCSS(@PathVariable("widgetId") long widgetId) throws Exception { - return template.getForObject(EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) - + "/widget/microservices/" + widgetId + "/styles.css", String.class, - WidgetServiceHeaders.getInstance()); - } - - @RequestMapping(value = { "/portalApi/microservices/parameters/{widgetId}" }, method = RequestMethod.GET) - public PortalRestResponse> getWidgetParameterResult(HttpServletRequest request, - @PathVariable("widgetId") long widgetId) throws Exception { - EPUser user = EPUserUtils.getUserSession(request); - - List list = new ArrayList<>(); - Long serviceId = template.exchange( - EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) - + "/widget/microservices/widgetCatalog/parameters/" + widgetId, - HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), Long.class).getBody(); - if (serviceId == null) { - // return ok/sucess and no service parameter for this widget - return new PortalRestResponse>(PortalRestStatusEnum.WARN, - "No service parameters for this widget", list); - } else { - List defaultParam = microserviceService.getParametersById(serviceId); - for (MicroserviceParameter param : defaultParam) { - WidgetParameterResult userResult = new WidgetParameterResult(); - userResult.setParam_id(param.getId()); - userResult.setDefault_value(param.getPara_value()); - userResult.setParam_key(param.getPara_key()); - WidgetCatalogParameter userValue = widgetParameterService.getUserParamById(widgetId, user.getId(), - param.getId()); - if (userValue == null) - userResult.setUser_value(param.getPara_value()); - else { - userResult.setUser_value(userValue.getUser_value()); - } - list.add(userResult); - } - } - return new PortalRestResponse>(PortalRestStatusEnum.OK, "SUCCESS", list); - } - - @RequestMapping(value = { "/portalApi/microservices/services/{paramId}" }, method = RequestMethod.GET) - public List getUserParameterById( @PathVariable("paramId") long paramId) { - List list = widgetParameterService.getUserParameterById(paramId); - return list; - } - - @RequestMapping(value = { "/portalApi/microservices/services/{paramId}" }, method = RequestMethod.DELETE) - public void deleteUserParameterById(@PathVariable("paramId") long paramId) { - widgetParameterService.deleteUserParameterById(paramId); - } - - @RequestMapping(value = { "/portalApi/microservices/download/{widgetId}" }, method = RequestMethod.GET) - public void doDownload(HttpServletRequest request, HttpServletResponse response, - @PathVariable("widgetId") long widgetId) throws Exception { - - ServletContext context = request.getServletContext(); - byte[] byteFile = template - .exchange( - EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT)) - + "/widget/microservices/download/" + widgetId, - HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), byte[].class) - .getBody(); - - File downloadFile = File.createTempFile("temp", ".zip"); - FileOutputStream stream = new FileOutputStream(downloadFile.getPath()); - stream.write(byteFile); - stream.close(); - - FileInputStream inputStream = new FileInputStream(downloadFile); - String mimeType = context.getMimeType(downloadFile.getPath()); - if (mimeType == null) { - mimeType = "application/octet-stream"; - } - - response.setContentType(mimeType); - response.setContentLength((int) downloadFile.length()); - String headerKey = "Content-Disposition"; - String headerValue = String.format("attachment; filename=\"%s\"", downloadFile.getName()); - downloadFile.delete(); - response.setHeader(headerKey, headerValue); - - OutputStream outStream = response.getOutputStream(); - byte[] buffer = new byte[32 * 1024]; - int bytesRead; - while ((bytesRead = inputStream.read(buffer)) != -1) { - outStream.write(buffer, 0, bytesRead); - } - - inputStream.close(); - outStream.close(); - } - - @RequestMapping(value = { "/portalApi/microservices/parameters" }, method = RequestMethod.POST) - public PortalRestResponse saveWidgetParameter(HttpServletRequest request, - @RequestBody WidgetCatalogParameter widgetParameters) { - EPUser user = EPUserUtils.getUserSession(request); - widgetParameters.setUserId(user.getId()); - try { - WidgetCatalogParameter oldParam = widgetParameterService.getUserParamById(widgetParameters.getWidgetId(), - widgetParameters.getUserId(), widgetParameters.getParamId()); - if (oldParam != null) { - widgetParameters.setId(oldParam.getId()); - } - widgetParameterService.saveUserParameter(widgetParameters); - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "saveWidgetParameter failed", e); - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); - } - return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogMarkupController.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogMarkupController.java deleted file mode 100644 index aefc3d07..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogMarkupController.java +++ /dev/null @@ -1,103 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.EPUnRestrictedBaseController; -import org.openecomp.portalapp.portal.domain.WidgetServiceHeaders; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.service.ConsulHealthService; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.client.RestClientException; -import org.springframework.web.client.RestTemplate; -import org.springframework.web.multipart.commons.CommonsMultipartResolver; - -@RestController -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class WidgetsCatalogMarkupController extends EPUnRestrictedBaseController { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetsCatalogMarkupController.class); - private RestTemplate template = new RestTemplate(); - private final String whatService = "widgets-service"; - - @Autowired - private ConsulHealthService consulHealthService; - - @Bean - public CommonsMultipartResolver multipartResolver() { - return new CommonsMultipartResolver(); - } - - static { - // for localhost testing only - javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(new javax.net.ssl.HostnameVerifier() { - - public boolean verify(String hostname, javax.net.ssl.SSLSession sslSession) { - if (hostname.equals("localhost")) { - return true; - } - return false; - } - }); - } - - @RequestMapping(value = "/portalApi/microservices/markup/{widgetId}", method = RequestMethod.GET) - public String getWidgetMarkup(HttpServletRequest request, HttpServletResponse response, - @PathVariable("widgetId") long widgetId) throws RestClientException, Exception { - return template - .getForObject( - EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty("microservices.widget.local.port")) - + "/widget/microservices/markup/" + widgetId, - String.class, WidgetServiceHeaders.getInstance()); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AdminUserApp.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AdminUserApp.java deleted file mode 100644 index ed172f6c..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AdminUserApp.java +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -public class AdminUserApp implements Serializable{ - private static final long serialVersionUID = 1L; - - @Id - @Column(name="USER_ID") - private Long user_Id; - - @Column(name="FIRST_NAME") - private String firstName; - - @Column(name="LAST_NAME") - private String lastName; - - @Column(name="ORG_USER_ID") - private String orgUserId; - - @Id - @Column(name="APP_ID") - private Long appId; - - @Column(name="APP_NAME") - private String appName; - - public Long getAppId() { - return appId; - } - public void setAppId(Long appId) { - this.appId = appId; - } - public Long getUser_Id() { - return user_Id; - } - public void setUserId(Long user_Id) { - this.user_Id = user_Id; - } - public String getFirstName() { - return firstName; - } - public void setFirstName(String firstName) { - this.firstName = firstName; - } - public String getLastName() { - return lastName; - } - public void setLastName(String lastName) { - this.lastName = lastName; - } - public String getOrgUserId() { - return orgUserId; - } - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } - public String getAppName() { - return appName; - } - public void setAppName(String appName) { - this.appName = appName; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AdminUserApplications.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AdminUserApplications.java deleted file mode 100644 index de0d406a..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AdminUserApplications.java +++ /dev/null @@ -1,114 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.ArrayList; -import java.util.List; - -public class AdminUserApplications { - private List apps = new ArrayList(); - - private Long user_Id; - private String firstName; - private String lastName; - private String orgUserId; - - public AdminUserApplications(AdminUserApp app) { - setUser_Id(app.getUser_Id()); - setOrgUserId(app.getOrgUserId()); - setFirstName(app.getFirstName()); - setLastName(app.getLastName()); - - addApp(app.getAppId(), app.getAppName()); - } - public Long getUser_Id() { - return user_Id; - } - public void setUser_Id(Long user_Id) { - this.user_Id = user_Id; - } - public String getFirstName() { - return firstName; - } - public void setFirstName(String firstName) { - this.firstName = firstName; - } - public String getLastName() { - return lastName; - } - public void setLastName(String lastName) { - this.lastName = lastName; - } - public String getOrgUserId() { - return orgUserId; - } - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } - public List getApps() { - return apps; - } - public void setApps(List apps) { - this.apps = apps; - } - public void addApp(Long otherAppId, String otherAppName) { - apps.add(new Application(otherAppId, otherAppName)); - } - - public class Application { - private Long appId; - private String appName; - - public Application(Long otherAppId, String otherAppName) { - setAppId(otherAppId); - setAppName(otherAppName); - } - public Long getAppId() { - return appId; - } - public void setAppId(Long appId) { - this.appId = appId; - } - public String getAppName() { - return appName; - } - public void setAppName(String appName) { - this.appName = appName; - } - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/App.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/App.java deleted file mode 100644 index 8e4bf490..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/App.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; - -//@Entity -//@Table(name = "FN_APP") -public class App implements Serializable{ - - private static final long serialVersionUID = 1L; - - //@Id - //@Column(name = "APP_ID") - //@GeneratedValue(strategy=GenerationType.AUTO) - private Long appId; - - //@Column(name = "APP_Name") - private String appName; - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public String getAppName() { - return appName; - } - - public void setAppName(String appName) { - this.appName = appName; - } - - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppContactUs.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppContactUs.java deleted file mode 100644 index b816ff98..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppContactUs.java +++ /dev/null @@ -1,104 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -/** - * Models rows in the fn_app_contact_us table added for 1610.1. - */ -public class AppContactUs extends DomainVo { - - private static final long serialVersionUID = -2742197830465055134L; - - private EPApp app; - private String description; - private String contactEmail; - private String contactName; - private String url; - private String activeYN; - - public EPApp getApp() { - return app; - } - - public void setApp(EPApp app) { - this.app = app; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getContactEmail() { - return contactEmail; - } - - public void setContactEmail(String contactEmail) { - this.contactEmail = contactEmail; - } - - public String getContactName() { - return contactName; - } - - public void setContactName(String contactName) { - this.contactName = contactName; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getActiveYN() { - return activeYN; - } - - public void setActiveYN(String activeYN) { - this.activeYN = activeYN; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppIdAndNameTransportModel.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppIdAndNameTransportModel.java deleted file mode 100644 index 00463f72..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppIdAndNameTransportModel.java +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -public class AppIdAndNameTransportModel implements Serializable{ - private static final long serialVersionUID = 1L; - - @Id - @Column(name="APP_ID") - private Long id; - - @Column(name="APP_NAME") - private String name; - - @Column(name="APP_TYPE") - private Integer appType; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Boolean isRestrictedApp() { - return (this.appType == 2 ? true : false); - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppsResponse.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppsResponse.java deleted file mode 100644 index d3a940ea..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/AppsResponse.java +++ /dev/null @@ -1,94 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -public class AppsResponse { - - public AppsResponse(Long id, String name, Boolean restrictedApp, Boolean enabled) { - this.index = id; - this.title = this.value = name; - this.restrictedApp = restrictedApp; - this.enabled = enabled; - } - - public Long getIndex() { - return index; - } - - public void setIndex(Long index) { - this.index = index; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - // Hide the implementation of restricted and normal app from the front end. - // The json sent and received will include restrictedApp but not appType. - - public void setRestrictedApp(Boolean restrictedApp) { - this.restrictedApp = restrictedApp; - } - - public Boolean getEnabled() { - return enabled; - } - - public void setEnabled(Boolean enabled) { - this.enabled = enabled; - } - - private Long index; - private String title; - private String value; - public Boolean restrictedApp; - public Boolean enabled; - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/BEProperty.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/BEProperty.java deleted file mode 100644 index 8147903e..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/BEProperty.java +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -public class BEProperty { - private String key; - private String value; - - public BEProperty(String key, String value) { - this.key = key; - this.value = value; - } - - public String getKey() { - return key; - } - - public void setKey(String key) { - this.key = key; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((key == null) ? 0 : key.hashCode()); - result = prime * result + ((value == null) ? 0 : value.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BEProperty other = (BEProperty) obj; - if (key == null) { - if (other.key != null) - return false; - } else if (!key.equals(other.key)) - return false; - if (value == null) { - if (other.value != null) - return false; - } else if (!value.equals(other.value)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/BasicAuthCredentials.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/BasicAuthCredentials.java deleted file mode 100644 index 83cf21d8..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/BasicAuthCredentials.java +++ /dev/null @@ -1,113 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.List; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class BasicAuthCredentials extends DomainVo { - - private static final long serialVersionUID = 1L; - - public BasicAuthCredentials() { - - } - - private Long id; - private String applicationName; - private String username; - private String password; - private String isActive; - private List endpoints; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getApplicationName() { - return applicationName; - } - - public void setApplicationName(String applicationName) { - this.applicationName = applicationName; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getIsActive() { - return isActive; - } - - public void setIsActive(String isActive) { - this.isActive = isActive; - } - - public List getEndpoints() { - return endpoints; - } - - public void setEndpoints(List endpoints) { - this.endpoints = endpoints; - } - - @Override - public String toString() { - return "BasicAuthCredentials [id=" + id + ", applicationName=" + applicationName + ", username=" + username - + ", password=" + password + ", isActive=" + isActive + "]"; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/CentralRoleFunction.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/CentralRoleFunction.java deleted file mode 100644 index 49e4228c..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/CentralRoleFunction.java +++ /dev/null @@ -1,145 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -@SuppressWarnings("rawtypes") -public class CentralRoleFunction extends DomainVo implements java.io.Serializable, Comparable { - - /** - * - */ - private static final long serialVersionUID = -4018975640065252688L; - private String code; - private String name; - @JsonIgnore - private Long appId; - @JsonIgnore - private Long roleId; - private String editUrl; - - public CentralRoleFunction() { - - } - - public CentralRoleFunction(Long id, String code, String name, Long appId, String editUrl) { - super(); - this.id = id; - this.code = code; - this.name = name; - this.appId = appId; - this.editUrl = editUrl; - } - - public CentralRoleFunction(String code, String name) { - super(); - this.code = code; - this.name = name; - } - - /** - * @return the code - */ - public String getCode() { - return code; - } - - /** - * @param code - * the code to set - */ - public void setCode(String code) { - this.code = code; - } - - /** - * @return the name - */ - public String getName() { - return name; - } - - /** - * @param name - * the name to set - */ - public void setName(String name) { - this.name = name; - } - - /** - * @return the appId - */ - public Long getAppId() { - return appId; - } - - /** - * @param appId - * the appId to set - */ - public void setAppId(Long appId) { - this.appId = appId; - } - - /** - * @return the editUrl - */ - public String getEditUrl() { - return editUrl; - } - - /** - * @param editUrl - * the editUrl to set - */ - public void setEditUrl(String editUrl) { - this.editUrl = editUrl; - } - - public int compareTo(Object obj) { - String c1 = getName(); - String c2 = ((CentralRoleFunction) obj).getName(); - - return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPApp.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPApp.java deleted file mode 100644 index c27a9ad1..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPApp.java +++ /dev/null @@ -1,484 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.Arrays; - -import javax.persistence.Lob; - -import org.apache.commons.lang.StringUtils; -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -/** - * Model for all columns in the fn_app table. - */ -public class EPApp extends DomainVo { - - private static final long serialVersionUID = 1L; - - private String name; - private String imageUrl; - private String description; - private String notes; - private String url; - private String alternateUrl; - private String appRestEndpoint; - private String mlAppName; - private String mlAppAdminId; - private Long motsId; - private String username; - private String appPassword; - @Lob - private byte[] thumbnail; - private Boolean open; - private Boolean enabled; - private String uebTopicName; - private String uebKey; - private String uebSecret; - private Integer appType; - private AppContactUs contactUs; - private Boolean centralAuth; - private String nameSpace; - - public EPApp() { - // Attention!!! - // We set here all default values. We also place protection - // into setters for fields with default values. - // If we don't use such protection we are able to place null - // to these fields and save such fields into DB even if DB has - // default values for these fields. - this.name = ""; - this.mlAppName = ""; - this.mlAppAdminId = ""; - this.username = ""; - this.appPassword = ""; - this.open = new Boolean(false); - this.enabled = new Boolean(true); - this.uebTopicName = ""; - this.uebKey = ""; - this.uebSecret = ""; - this.appType = 1; - } - - public String getName() { - return name; - } - - public void setName(String name) { - if (StringUtils.isEmpty(name)) { - name = ""; - } - this.name = name; - } - - public String getImageUrl() { - return imageUrl; - } - - public void setImageUrl(String imageUrl) { - this.imageUrl = imageUrl; - } - - - - public byte[] getThumbnail() { - return this.thumbnail; - } - - public void setThumbnail(byte[] thumbnail) { - this.thumbnail = thumbnail; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getNotes() { - return notes; - } - - public void setNotes(String notes) { - this.notes = notes; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getAlternateUrl() { - return alternateUrl; - } - - public void setAlternateUrl(String alternateUrl) { - this.alternateUrl = alternateUrl; - } - - public String getAppRestEndpoint() { - return appRestEndpoint; - } - - public void setAppRestEndpoint(String appRestEndpoint) { - this.appRestEndpoint = appRestEndpoint; - } - - public String getMlAppName() { - return mlAppName; - } - - public void setMlAppName(String mlAppName) { - if (StringUtils.isEmpty(mlAppName)) { - mlAppName = ""; - } - this.mlAppName = mlAppName; - } - - public String getMlAppAdminId() { - return mlAppAdminId; - } - - public void setMlAppAdminId(String mlAppAdminId) { - if (StringUtils.isEmpty(mlAppAdminId)) { - mlAppAdminId = ""; - } - this.mlAppAdminId = mlAppAdminId; - } - - public Long getMotsId() { - return motsId; - } - - public void setMotsId(Long motsId) { - this.motsId = motsId; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getAppPassword() { - return appPassword; - } - - public void setAppPassword(String appPassword) { - if (StringUtils.isEmpty(appPassword)) { - appPassword = ""; - } - this.appPassword = appPassword; - } - - public Boolean getOpen() { - return open; - } - - public void setOpen(Boolean open) { - if (open == null) { - open = new Boolean(false); - } - this.open = open; - } - - public Boolean getEnabled() { - return enabled; - } - - public void setEnabled(Boolean enabled) { - if (enabled == null) { - enabled = new Boolean(true); - } - this.enabled = enabled; - } - - public Integer getAppType() { - return appType; - } - - public void setAppType(Integer appType) { - if (appType == null) { - appType = new Integer(1); - } - this.appType = appType; - } - - public void setRestrictedApp(Boolean restrictedApp) { - Integer result = 1; - if (restrictedApp) { - result = 2; - } - this.appType = result; - } - - public Boolean isRestrictedApp() { - return (this.appType == 2 ? true : false); - } - - public int compareTo(Object obj) { - Long c1 = getId(); - Long c2 = ((EPApp) obj).getId(); - - return c1.compareTo(c2); - } - - public String getUebTopicName() { - return this.uebTopicName; - } - - public void setUebTopicName(String topicName) { - if (StringUtils.isEmpty(topicName)) { - this.uebTopicName = ""; - } - this.uebTopicName = topicName; - } - - public String getUebKey() { - return this.uebKey; - } - - public void setUebKey(String uebKey) { - if (StringUtils.isEmpty(uebKey)) { - this.uebKey = ""; - } - this.uebKey = uebKey; - } - - public String getUebSecret() { - return this.uebSecret; - } - - public void setUebSecret(String uebSecret) { - if (StringUtils.isEmpty(uebSecret)) { - this.uebSecret = ""; - } - this.uebSecret = uebSecret; - } - - public AppContactUs getContactUs() { - return contactUs; - } - - public void setContactUs(AppContactUs contactUs) { - this.contactUs = contactUs; - } - - public Boolean getCentralAuth() { - return centralAuth; - } - - public void setCentralAuth(Boolean centralAuth) { - if (centralAuth == null) { - centralAuth = new Boolean(false); - } - this.centralAuth = centralAuth; - } - - public String getNameSpace() { - return nameSpace; - } - - public void setNameSpace(String nameSpace) { - if (StringUtils.isEmpty(nameSpace)) { - nameSpace = null; - } - this.nameSpace = nameSpace; - } - - @Override - public String toString() { - String str = "[" + getId() + ":" + getName() + "]"; - return str; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((alternateUrl == null) ? 0 : alternateUrl.hashCode()); - result = prime * result + ((appPassword == null) ? 0 : appPassword.hashCode()); - result = prime * result + ((appRestEndpoint == null) ? 0 : appRestEndpoint.hashCode()); - result = prime * result + ((appType == null) ? 0 : appType.hashCode()); - result = prime * result + ((centralAuth == null) ? 0 : centralAuth.hashCode()); - result = prime * result + ((contactUs == null) ? 0 : contactUs.hashCode()); - result = prime * result + ((description == null) ? 0 : description.hashCode()); - result = prime * result + ((enabled == null) ? 0 : enabled.hashCode()); - result = prime * result + ((imageUrl == null) ? 0 : imageUrl.hashCode()); - result = prime * result + ((mlAppAdminId == null) ? 0 : mlAppAdminId.hashCode()); - result = prime * result + ((mlAppName == null) ? 0 : mlAppName.hashCode()); - result = prime * result + ((motsId == null) ? 0 : motsId.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((nameSpace == null) ? 0 : nameSpace.hashCode()); - result = prime * result + ((notes == null) ? 0 : notes.hashCode()); - result = prime * result + ((open == null) ? 0 : open.hashCode()); - result = prime * result + Arrays.hashCode(thumbnail); - result = prime * result + ((uebKey == null) ? 0 : uebKey.hashCode()); - result = prime * result + ((uebSecret == null) ? 0 : uebSecret.hashCode()); - result = prime * result + ((uebTopicName == null) ? 0 : uebTopicName.hashCode()); - result = prime * result + ((url == null) ? 0 : url.hashCode()); - result = prime * result + ((username == null) ? 0 : username.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - EPApp other = (EPApp) obj; - if (alternateUrl == null) { - if (other.alternateUrl != null) - return false; - } else if (!alternateUrl.equals(other.alternateUrl)) - return false; - if (appPassword == null) { - if (other.appPassword != null) - return false; - } else if (!appPassword.equals(other.appPassword)) - return false; - if (appRestEndpoint == null) { - if (other.appRestEndpoint != null) - return false; - } else if (!appRestEndpoint.equals(other.appRestEndpoint)) - return false; - if (appType == null) { - if (other.appType != null) - return false; - } else if (!appType.equals(other.appType)) - return false; - if (centralAuth == null) { - if (other.centralAuth != null) - return false; - } else if (!centralAuth.equals(other.centralAuth)) - return false; - if (contactUs == null) { - if (other.contactUs != null) - return false; - } else if (!contactUs.equals(other.contactUs)) - return false; - if (description == null) { - if (other.description != null) - return false; - } else if (!description.equals(other.description)) - return false; - if (enabled == null) { - if (other.enabled != null) - return false; - } else if (!enabled.equals(other.enabled)) - return false; - if (imageUrl == null) { - if (other.imageUrl != null) - return false; - } else if (!imageUrl.equals(other.imageUrl)) - return false; - if (mlAppAdminId == null) { - if (other.mlAppAdminId != null) - return false; - } else if (!mlAppAdminId.equals(other.mlAppAdminId)) - return false; - if (mlAppName == null) { - if (other.mlAppName != null) - return false; - } else if (!mlAppName.equals(other.mlAppName)) - return false; - if (motsId == null) { - if (other.motsId != null) - return false; - } else if (!motsId.equals(other.motsId)) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (nameSpace == null) { - if (other.nameSpace != null) - return false; - } else if (!nameSpace.equals(other.nameSpace)) - return false; - if (notes == null) { - if (other.notes != null) - return false; - } else if (!notes.equals(other.notes)) - return false; - if (open == null) { - if (other.open != null) - return false; - } else if (!open.equals(other.open)) - return false; - if (!Arrays.equals(thumbnail, other.thumbnail)) - return false; - if (uebKey == null) { - if (other.uebKey != null) - return false; - } else if (!uebKey.equals(other.uebKey)) - return false; - if (uebSecret == null) { - if (other.uebSecret != null) - return false; - } else if (!uebSecret.equals(other.uebSecret)) - return false; - if (uebTopicName == null) { - if (other.uebTopicName != null) - return false; - } else if (!uebTopicName.equals(other.uebTopicName)) - return false; - if (url == null) { - if (other.url != null) - return false; - } else if (!url.equals(other.url)) - return false; - if (username == null) { - if (other.username != null) - return false; - } else if (!username.equals(other.username)) - return false; - return true; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPAppRoleFunction.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPAppRoleFunction.java deleted file mode 100644 index 1c621c7f..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPAppRoleFunction.java +++ /dev/null @@ -1,87 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class EPAppRoleFunction extends DomainVo implements java.io.Serializable{ - - private static final long serialVersionUID = 7752385247460299630L; - - private Long roleId; - private Long appId; - private String code; - - /** - * @return the roleId - */ - public Long getRoleId() { - return roleId; - } - /** - * @param roleId the roleId to set - */ - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - /** - * @return the appId - */ - public Long getAppId() { - return appId; - } - /** - * @param appId the appId to set - */ - public void setAppId(Long appId) { - this.appId = appId; - } - /** - * @return the code - */ - public String getCode() { - return code; - } - /** - * @param code the code to set - */ - public void setCode(String code) { - this.code = code; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPEndpoint.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPEndpoint.java deleted file mode 100644 index 0abcfa8f..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPEndpoint.java +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class EPEndpoint extends DomainVo { - - private static final long serialVersionUID = 1L; - - public EPEndpoint() { - - } - - private Long id; - private String name; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - @Override - public String toString() { - return "EPEndpoint [id=" + id + ", name=" + name + "]"; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPEndpointAccount.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPEndpointAccount.java deleted file mode 100644 index b4f66f3b..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPEndpointAccount.java +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class EPEndpointAccount extends DomainVo { - - private static final long serialVersionUID = 1L; - - public EPEndpointAccount() { - - } - - private Long id; - private Long ep_id; - private Long account_id; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getEp_id() { - return ep_id; - } - - public void setEp_id(Long ep_id) { - this.ep_id = ep_id; - } - - public Long getAccount_id() { - return account_id; - } - - public void setAccount_id(Long account_id) { - this.account_id = account_id; - } - - @Override - public String toString() { - return "EPEndpointAccount [id=" + id + ", ep_id=" + ep_id + ", account_id=" + account_id + "]"; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPRole.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPRole.java deleted file mode 100644 index fdc70ee1..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPRole.java +++ /dev/null @@ -1,221 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.Iterator; -import java.util.SortedSet; -import java.util.TreeSet; - -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalsdk.core.domain.support.DomainVo; -import com.fasterxml.jackson.annotation.JsonIgnore; - -public class EPRole extends DomainVo { - - private static final long serialVersionUID = 1L; - private String name; - private boolean active; - private Integer priority; - - // ECOMP will identify the specific remote application role id by appID;appRoleId among all the application roles it persists. - private Long appId; // used by ECOMP only - private Long appRoleId; // used by ECOMP only - - private SortedSet roleFunctions = new TreeSet(); - - private SortedSet childRoles = new TreeSet(); - - @JsonIgnore - private SortedSet parentRoles = new TreeSet(); - - public EPRole() {} - - public String getName() { - return name; - } - - public boolean getActive() { - return active; - } - - public SortedSet getRoleFunctions() { - return roleFunctions; - } - - public Integer getPriority() { - return priority; - } - - public SortedSet getChildRoles() { - return childRoles; - } - - public SortedSet getParentRoles() { - return parentRoles; - } - - public void setName(String name) { - this.name = name; - } - - public void setActive(boolean active) { - this.active = active; - } - - public void setRoleFunctions(SortedSet roleFunctions) { - this.roleFunctions = roleFunctions; - } - - public void setPriority(Integer priority) { - this.priority = priority; - } - - public void setChildRoles(SortedSet childRoles) { - this.childRoles = childRoles; - } - - public void setParentRoles(SortedSet parentRoles) { - this.parentRoles = parentRoles; - } - - public void addRoleFunction(RoleFunction roleFunction) { - this.roleFunctions.add(roleFunction); - } - - public void addChildRole(EPRole role) { - this.childRoles.add(role); - } - - public void addParentRole(EPRole role) { - this.parentRoles.add(role); - } - - public String getEditUrl() { - return "/role.htm?role_id=" + getId(); - } - - public String getToggleActiveImage() { - return "/static/fusion/images/" + (getActive() ? "active.png" : "inactive.png" ); - } - - public String getToggleActiveAltText() { - return getActive() ? "Click to Deactivate Role" : "Click to Activate Role"; - } - - public void removeChildRole(Long roleId) { - Iterator i = this.childRoles.iterator(); - - while (i.hasNext()) { - EPRole childRole = (EPRole)i.next(); - if (childRole.getId().equals(roleId)) { - this.childRoles.remove(childRole); - break; - } - } - } - - public void removeParentRole(Long roleId) { - Iterator i = this.parentRoles.iterator(); - - while (i.hasNext()) { - EPRole parentRole = (EPRole)i.next(); - if (parentRole.getId().equals(roleId)) { - this.parentRoles.remove(parentRole); - break; - } - } - } - - public void removeRoleFunction(String roleFunctionCd) { - Iterator i = this.roleFunctions.iterator(); - - while (i.hasNext()) { - RoleFunction roleFunction = (RoleFunction)i.next(); - if (roleFunction.getCode().equals(roleFunctionCd)) { - this.roleFunctions.remove(roleFunction); - break; - } - } - } - - public int compareTo(Object obj){ - EPRole other = (EPRole)obj; - - if(this.appId == null) - if(other.getAppId() == null) - return compareByName(other); //equal - else - return -1; - else // this.appId != null - if(other.getAppId() == null) - return 1; // appId != null, but others is null - else{ - int appIdCompareResult = appId.compareTo(other.getAppId()); - return appIdCompareResult == 0? compareByName(other) : appIdCompareResult; - } - } - - private int compareByName(EPRole other) { - String c1 = getName(); - String c2 = other.getName(); - - return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); - } - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public Long getAppRoleId() { - return appRoleId; - } - - public void setAppRoleId(Long appRoleId) { - this.appRoleId = appRoleId; - } - - @Override - public String toString() { - return "[Id = " + id + ", name = " + name + "]"; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUser.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUser.java deleted file mode 100644 index e5e09ac5..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUser.java +++ /dev/null @@ -1,668 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.Date; -import java.util.Iterator; -import java.util.SortedSet; -import java.util.TreeSet; - -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.domain.User; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -public class EPUser extends User { - - private Long orgId; - private Long managerId; - private String firstName; - private String middleInitial; - private String lastName; - private String phone; - private String fax; - private String cellular; - private String email; - private Long addressId; - private String alertMethodCd; - private String hrid; - private String orgUserId; - private String orgCode; - private String address1; - private String address2; - private String city; - private String state; - private String zipCode; - private String country; - private String orgManagerUserId; - private String locationClli; - private String businessCountryCode; - private String businessCountryName; - private String businessUnit; - private String businessUnitName; - private String department; - private String departmentName; - private String companyCode; - private String company; - private String zipCodeSuffix; - private String jobTitle; - private String commandChain; - private String siloStatus; - private String costCenter; - private String financialLocCode; - - - - private String loginId; - private String loginPwd; - private Date lastLoginDate; - private boolean active; - private boolean internal; - private Long selectedProfileId; - private Long timeZoneId; - private boolean online; - private String chatId; - - private static final long serialVersionUID = 1L; - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPUser.class); - private static final String ECOMP_PORTAL_NAME = "ECOMP"; - private boolean isGuest = false; - - private SortedSet userApps = new TreeSet(); - private SortedSet pseudoRoles = new TreeSet(); - - public EPUser() {} - - public Long getAddressId() { - return addressId; - } - - public String getAlertMethodCd() { - return alertMethodCd; - } - - public String getCellular() { - return cellular; - } - - public String getEmail() { - return email; - } - - public String getFax() { - return fax; - } - - public String getFirstName() { - return firstName; - } - - public String getHrid() { - return hrid; - } - - public Date getLastLoginDate() { - return lastLoginDate; - } - - public String getLastName() { - return lastName; - } - - @JsonIgnore - public String getFullName() { - return getFirstName() + " " + getLastName(); - } - - public String getLoginId() { - return loginId; - } - - public String getLoginPwd() { - return loginPwd; - } - - public Long getManagerId() { - return managerId; - } - - public String getMiddleInitial() { - return middleInitial; - } - - public String getOrgCode() { - return orgCode; - } - - public Long getOrgId() { - return orgId; - } - - public String getPhone() { - return phone; - } - - public String getOrgUserId() { - return orgUserId; - } - - public boolean getActive() { - return active; - } - - public boolean getInternal() { - return internal; - } - - public String getAddress1() { - return address1; - } - - public String getAddress2() { - return address2; - } - - public String getCity() { - return city; - } - - public String getCountry() { - return country; - } - - public String getState() { - return state; - } - - public String getZipCode() { - return zipCode; - } - - public String getBusinessCountryCode() { - return businessCountryCode; - } - - public String getCommandChain() { - return commandChain; - } - - public String getCompany() { - return company; - } - - public String getCompanyCode() { - return companyCode; - } - - public String getDepartment() { - return department; - } - - public String getJobTitle() { - return jobTitle; - } - - public String getLocationClli() { - return locationClli; - } - - public String getOrgManagerUserId() { - return orgManagerUserId; - } - - public String getZipCodeSuffix() { - return zipCodeSuffix; - } - - public String getBusinessCountryName() { - return businessCountryName; - } - - public Long getSelectedProfileId() { - return selectedProfileId; - } - - public void setAddressId(Long addressId) { - this.addressId = addressId; - } - - public void setAlertMethodCd(String alertMethodCd) { - this.alertMethodCd = alertMethodCd; - } - - public void setCellular(String cellular) { - this.cellular = cellular; - } - - public void setEmail(String email) { - this.email = email; - } - - public void setFax(String fax) { - this.fax = fax; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public void setHrid(String hrid) { - this.hrid = hrid; - } - - public void setLastLoginDate(Date lastLoginDate) { - this.lastLoginDate = lastLoginDate; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public void setLoginId(String loginId) { - this.loginId = loginId; - } - - public void setLoginPwd(String loginPwd) { - this.loginPwd = loginPwd; - } - - public void setManagerId(Long managerId) { - this.managerId = managerId; - } - - public void setMiddleInitial(String middleInitial) { - this.middleInitial = middleInitial; - } - - public void setOrgCode(String orgCode) { - this.orgCode = orgCode; - } - - public void setOrgId(Long orgId) { - this.orgId = orgId; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } - - public void setActive(boolean active) { - this.active = active; - } - - public void setInternal(boolean internal) { - this.internal = internal; - } - - public void setAddress1(String address1) { - this.address1 = address1; - } - - public void setAddress2(String address2) { - this.address2 = address2; - } - - public void setCity(String city) { - this.city = city; - } - - public void setCountry(String country) { - this.country = country; - } - - public void setState(String state) { - this.state = state; - } - - public void setZipCode(String zipCode) { - this.zipCode = zipCode; - } - - public void setBusinessCountryCode(String businessCountryCode) { - this.businessCountryCode = businessCountryCode; - } - - public void setCommandChain(String commandChain) { - this.commandChain = commandChain; - } - - public void setCompany(String company) { - this.company = company; - } - - public void setCompanyCode(String companyCode) { - this.companyCode = companyCode; - } - - public void setDepartment(String department) { - this.department = department; - } - - public void setJobTitle(String jobTitle) { - this.jobTitle = jobTitle; - } - - public void setLocationClli(String locationClli) { - this.locationClli = locationClli; - } - - public void setOrgManagerUserId(String orgManagerUserId) { - this.orgManagerUserId = orgManagerUserId; - } - - public void setZipCodeSuffix(String zipCodeSuffix) { - this.zipCodeSuffix = zipCodeSuffix; - } - - public void setBusinessCountryName(String businessCountryName) { - this.businessCountryName = businessCountryName; - } - - public SortedSet getPseudoRoles() { - return pseudoRoles; - } - - public void setPseudoRoles(SortedSet pseudoRoles) { - this.pseudoRoles = pseudoRoles; - } - - public void setSelectedProfileId(Long selectedProfileId) { - this.selectedProfileId = selectedProfileId; - } - - public Long getTimeZoneId() { - return timeZoneId; - } - - public void setTimeZoneId(Long timeZoneId) { - this.timeZoneId = timeZoneId; - } - - public String getBusinessUnit() { - return businessUnit; - } - - public void setBusinessUnit(String businessUnit) { - this.businessUnit = businessUnit; - } - - public String getSiloStatus() { - return siloStatus; - } - - public void setSiloStatus(String siloStatus) { - this.siloStatus = siloStatus; - } - - public String getCostCenter() { - return costCenter; - } - - public void setCostCenter(String costCenter) { - this.costCenter = costCenter; - } - - public String getFinancialLocCode() { - return financialLocCode; - } - - public void setFinancialLocCode(String financialLocCode) { - this.financialLocCode = financialLocCode; - } - - public String getBusinessUnitName() { - return businessUnitName; - } - - public void setBusinessUnitName(String businessUnitName) { - this.businessUnitName = businessUnitName; - } - - public String getDepartmentName() { - return departmentName; - } - - public void setDepartmentName(String departmentName) { - this.departmentName = departmentName; - } - - public int compareTo(Object obj){ - EPUser user = (EPUser)obj; - - String c1 = getLastName() + getFirstName() + getMiddleInitial(); - String c2 = user.getLastName() + user.getFirstName() + user.getMiddleInitial(); - - return c1.compareTo(c2); - } - - public boolean isOnline() { - return online; - } - - public void setOnline(boolean online) { - this.online = online; - } - - public String getChatId() { - return chatId; - } - - public void setChatId(String chatId) { - this.chatId = chatId; - } - - - public void setPseudoEPRoles(SortedSet pseudoRoles) { - this.pseudoRoles = pseudoRoles; - } - - public SortedSet getEPUserApps() { - return userApps; - } - - public void setEPUserApps(SortedSet userApps) { - this.userApps = userApps; - } - - public void addUserApp(EPUserApp userApp) { - userApps.add(userApp); - } - - public void addAppRoles(EPApp app, SortedSet roles) { - if (roles != null) { - // add all - SortedSet userApps = new TreeSet(); - // this.userApps.removeAll(this.userApps); - Iterator itr = roles.iterator(); - while (itr.hasNext()) { - EPRole role = (EPRole) itr.next(); - EPUserApp userApp = new EPUserApp(); - userApp.setUserId(this.id); - userApp.setApp(app); - userApp.setRole(role); - userApps.add(userApp); - } - setEPUserApps(userApps); - } else { - // remove all - setEPUserApps(null); - } - - } - - public SortedSet getAppEPRoles(EPApp app) { - - logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - app = {}", app.getName()); - - SortedSet roles = new TreeSet(); - SortedSet userAppRoles = getEPUserApps(); - - logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - userApps = ", userAppRoles.size()); - - Iterator userAppRolesIterator = userAppRoles.iterator(); - EPUserApp userAppRole = null; - // getting default app - while (userAppRolesIterator.hasNext()) { - EPUserApp tempUserApp = (EPUserApp) userAppRolesIterator.next(); - if (tempUserApp.getApp().getId().equals(app.getId())) { - - logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - for user {}, found application {}", this.getFullName(), app.getName()); - - userAppRole = tempUserApp; - - EPRole role = userAppRole.getRole(); - if(role.getActive()){ - logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - Role {} is active - adding for user {} and app {}", role.getName(), this.getFullName(), app.getName()); - roles.add((EPRole) role); - } - else{ - logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - Role {} is NOT active - NOT adding for user {} and app {}", role.getName(), this.getFullName(), app.getName()); - } - } - } - logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - roles = ", roles.size()); - - return roles; - } - - - /** - * Attention! Not for use in ECOMP - */ - public SortedSet getAppRoles(EPApp app) { - SortedSet roles = new TreeSet(); - SortedSet apps = getEPUserApps(); - Iterator appsItr = apps.iterator(); - EPUserApp userApp = null; - // getting default app - while (appsItr.hasNext()) { - EPUserApp tempUserApp = (EPUserApp) appsItr.next(); - if (tempUserApp.getApp().getId().equals(app.getId())) { - userApp = tempUserApp; - roles.add((EPRole) userApp.getRole()); - } - } - return roles; - } - - - - /** - * Attention! Not for use in ECOMP - */ - public SortedSet getEPRoles() { - EPApp app = new EPApp(); - app.setId(new Long(PortalConstants.PORTAL_APP_ID)); - app.setName(ECOMP_PORTAL_NAME); - return getAppEPRoles(app); - } - - /** - * Attention! Not for use in ECOMP - */ - public void setEPRoles(SortedSet roles) { - EPApp app = new EPApp(); - app.setId(new Long(PortalConstants.PORTAL_APP_ID)); - app.setName(ECOMP_PORTAL_NAME); - addAppRoles(app, roles); - } - - /** - * Attention! Not for use in ECOMP - */ - public void removeEPRole(Long roleId) { - SortedSet apps = getEPUserApps(); - Iterator appsItr = apps.iterator(); - // getting default app - while (appsItr.hasNext()) { - EPUserApp tempUserApp = (EPUserApp) appsItr.next(); - if (tempUserApp.equals(new Long(PortalConstants.PORTAL_APP_ID)) && tempUserApp.getRole().getId().equals(roleId)) { - appsItr.remove(); - } - } - } - - /** - * Attention! Not for use in ECOMP - */ - public void addEPRole(EPRole role) { - if (role != null) { - SortedSet roles = getEPRoles(); - if (roles == null) { - roles = new TreeSet(); - } - roles.add(role); - setEPRoles(roles); - } - } - - public boolean isGuest() { - return isGuest; - } - - public void setGuest(boolean isGuest) { - this.isGuest = isGuest; - } - - @Override - public String toString() { - return "EPUser [orgId=" + orgId + ", managerId=" + managerId + ", firstName=" + firstName + ", middleInitial=" - + middleInitial + ", lastName=" + lastName + ", phone=" + phone + ", fax=" + fax + ", cellular=" - + cellular + ", email=" + email + ", addressId=" + addressId + ", alertMethodCd=" + alertMethodCd - + ", hrid=" + hrid + ", orgUserId=" + orgUserId + ", orgCode=" + orgCode + ", address1=" + address1 - + ", address2=" + address2 + ", city=" + city + ", state=" + state + ", zipCode=" + zipCode - + ", country=" + country + ", orgManagerUserId=" + orgManagerUserId + ", locationClli=" + locationClli - + ", businessCountryCode=" + businessCountryCode + ", businessCountryName=" + businessCountryName - + ", businessUnit=" + businessUnit + ", businessUnitName=" + businessUnitName + ", department=" - + department + ", departmentName=" + departmentName + ", companyCode=" + companyCode + ", company=" - + company + ", zipCodeSuffix=" + zipCodeSuffix + ", jobTitle=" + jobTitle + ", commandChain=" - + commandChain + ", siloStatus=" + siloStatus + ", costCenter=" + costCenter + ", financialLocCode=" - + financialLocCode + ", loginId=" + loginId + ", loginPwd=" + loginPwd + ", lastLoginDate=" - + lastLoginDate + ", active=" + active + ", internal=" + internal + ", selectedProfileId=" - + selectedProfileId + ", timeZoneId=" + timeZoneId + ", online=" + online + ", chatId=" + chatId - + ", isGuest=" + isGuest + ", userApps=" + userApps + ", pseudoRoles=" + pseudoRoles + "]"; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserApp.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserApp.java deleted file mode 100644 index 80189ddd..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserApp.java +++ /dev/null @@ -1,137 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - - -@SuppressWarnings("rawtypes") -public class EPUserApp implements java.io.Serializable, Comparable { - - private static final long serialVersionUID = 1L; - - private Long userId; - private EPApp app; - private EPRole role; - private Short priority; - - public EPUserApp() { - } - - public Long getAppId() { - return this.getApp().getId(); - } - - public Long getRoleId() { - return (role == null) ? null : role.getId(); - } - - public Long getAppRoleId() { - return (role.getAppRoleId() == null) ? null : role.getAppRoleId(); - } - - @Override - public String toString() { - String str = "[u: "+getUserId()+"; a: "+getAppId()+", r: "+getRoleId()+"; appRoleId: "+getAppRoleId()+"]"; - return str; - } - - public Long getUserId() { - return userId; - } - - public void setUserId(Long id) { - this.userId = id; - } - - public EPApp getApp() { - return app; - } - - public void setApp(EPApp app) { - this.app = app; - } - - public EPRole getRole() { - return role; - } - - public void setRole(EPRole role) { - this.role = role; - } - - public Short getPriority() { - return this.priority; - } - - public void setPriority(Short priority) { - this.priority = priority; - } - - public boolean equals(Object other) { - if ((this == other)) - return true; - if ((other == null)) - return false; - if (!(other instanceof EPUserApp)) - return false; - EPUserApp castOther = (EPUserApp) other; - - return (this.getUserId().equals(castOther.getUserId())) - && (this.getApp().getId().equals(castOther.getApp().getId())) - && (this.getRole().getId().equals(castOther.getRole().getId())) - && ((this.priority==null && castOther.getPriority()==null) || this.getPriority().equals(castOther.getPriority())); - } - - public int hashCode() { - int result = 17; - - result = 37 * result + (int) (this.getUserId()==null ? 0 : this.getUserId().intValue()); - result = 37 * result + (int) (this.getApp().getId()==null ? 0 : this.getApp().getId().intValue()); - result = 37 * result + (int) (this.getRole().getId()==null ? 0 : this.getRole().getId().intValue()); - result = 37 * result + (int) (this.priority==null ? 0 : this.priority); - return result; - } - - public int compareTo(Object other){ - EPUserApp castOther = (EPUserApp) other; - - Long c1 = (this.getUserId()==null ? 0 : this.getUserId()) + (this.getApp()==null||this.getApp().getId()==null ? 0 : this.getApp().getId()) + (this.getRole()==null||this.getRole().getId()==null ? 0 : this.getRole().getId()) + (this.priority==null ? 0 : this.priority); - Long c2 = (castOther.getUserId()==null ? 0 : castOther.getUserId()) + (castOther.getApp()==null||castOther.getApp().getId()==null ? 0 : castOther.getApp().getId()) + (castOther.getRole()==null||castOther.getRole().getId()==null ? 0 : castOther.getRole().getId()) + (castOther.priority==null ? 0 : castOther.priority); - - return c1.compareTo(c2); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppCatalogRoles.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppCatalogRoles.java deleted file mode 100644 index 2074beb8..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppCatalogRoles.java +++ /dev/null @@ -1,110 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@Entity -@JsonInclude -public class EPUserAppCatalogRoles extends DomainVo { - - private static final long serialVersionUID = -5259869298825093816L; - - - @Id - @Column(name="requested_role_id") - public Long requestedRoleId; - - - @Id - @Column(name="role_name") - public String rolename; - - @Id - @Column(name="request_status") - public String requestStatus; - - @Id - @Column(name="app_id") - public Long appId; - - public Long getRequestedRoleId() { - return requestedRoleId; - } - - public void setRequestedRoleId(Long requestedRoleId) { - this.requestedRoleId = requestedRoleId; - } - - public String getRolename() { - return rolename; - } - - public void setRolename(String rolename) { - this.rolename = rolename; - } - - public String getRequestStatus() { - return requestStatus; - } - - public void setRequestStatus(String requestStatus) { - this.requestStatus = requestStatus; - } - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public String toString() { - return "EPUserAppCatalogRoles [requestedRoleId=" + requestedRoleId + ", rolename=" + rolename - + ", requestStatus=" + requestStatus + ", appId=" + appId + "]"; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRoles.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRoles.java deleted file mode 100644 index fe6d1975..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRoles.java +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@Entity -@JsonInclude(JsonInclude.Include.NON_NULL) -public class EPUserAppRoles extends DomainVo { - - private static final long serialVersionUID = -1484592641766545668L; - - @Id - @Column(name ="role_id") - public Long roleId; - - @Id - @Column(name ="app_id") - public Long appId; - - public Long getRoleId() { - return roleId; - } - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - public Long getAppId() { - return appId; - } - public void setAppId(Long appId) { - this.appId = appId; - } - - @Override - public String toString() { - return "EpUserAppRoles [roleId=" + roleId + ", appId=" + appId + "]"; - } -} - diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequest.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequest.java deleted file mode 100644 index 651ef5e6..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequest.java +++ /dev/null @@ -1,158 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.Date; -import java.util.Set; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class EPUserAppRolesRequest extends DomainVo { - - private static final long serialVersionUID = -7225288307806389019L; - private Long userId; - private Long appId; - private Date createdDate; - private Date updatedDate; - private String requestStatus; - - private Set epRequestIdDetail; - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public Date getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Date createdDate) { - this.createdDate = createdDate; - } - - public Date getUpdatedDate() { - return updatedDate; - } - - public void setUpdatedDate(Date updatedDate) { - this.updatedDate = updatedDate; - } - - public String getRequestStatus() { - return requestStatus; - } - - public void setRequestStatus(String requestStatus) { - this.requestStatus = requestStatus; - } - - public Set getEpRequestIdDetail() { - return epRequestIdDetail; - } - - public void setEpRequestIdDetail(Set epMyLoginsDetail) { - this.epRequestIdDetail = epMyLoginsDetail; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((appId == null) ? 0 : appId.hashCode()); - result = prime * result + ((createdDate == null) ? 0 : createdDate.hashCode()); - result = prime * result + ((epRequestIdDetail == null) ? 0 : epRequestIdDetail.hashCode()); - result = prime * result + ((requestStatus == null) ? 0 : requestStatus.hashCode()); - result = prime * result + ((updatedDate == null) ? 0 : updatedDate.hashCode()); - result = prime * result + ((userId == null) ? 0 : userId.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - EPUserAppRolesRequest other = (EPUserAppRolesRequest) obj; - if (appId == null) { - if (other.appId != null) - return false; - } else if (!appId.equals(other.appId)) - return false; - if (createdDate == null) { - if (other.createdDate != null) - return false; - } else if (!createdDate.equals(other.createdDate)) - return false; - if (epRequestIdDetail == null) { - if (other.epRequestIdDetail != null) - return false; - } else if (!epRequestIdDetail.equals(other.epRequestIdDetail)) - return false; - if (requestStatus == null) { - if (other.requestStatus != null) - return false; - } else if (!requestStatus.equals(other.requestStatus)) - return false; - if (updatedDate == null) { - if (other.updatedDate != null) - return false; - } else if (!updatedDate.equals(other.updatedDate)) - return false; - if (userId == null) { - if (other.userId != null) - return false; - } else if (!userId.equals(other.userId)) - return false; - return true; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequestDetail.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequestDetail.java deleted file mode 100644 index 8bf83a31..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequestDetail.java +++ /dev/null @@ -1,111 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class EPUserAppRolesRequestDetail extends DomainVo { - - private static final long serialVersionUID = -4908856671135348157L; - - private Long reqRoleId; - private String reqType; - private EPUserAppRolesRequest epRequestIdData; - - public EPUserAppRolesRequest getEpRequestIdData() { - return epRequestIdData; - } - - public void setEpRequestIdData(EPUserAppRolesRequest epRequestIdData) { - this.epRequestIdData = epRequestIdData; - } - - public Long getReqRoleId() { - return reqRoleId; - } - - public void setReqRoleId(Long reqRoleId) { - this.reqRoleId = reqRoleId; - } - - public String getReqType() { - return reqType; - } - - public void setReqType(String reqType) { - this.reqType = reqType; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((epRequestIdData == null) ? 0 : epRequestIdData.hashCode()); - result = prime * result + ((reqRoleId == null) ? 0 : reqRoleId.hashCode()); - result = prime * result + ((reqType == null) ? 0 : reqType.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - EPUserAppRolesRequestDetail other = (EPUserAppRolesRequestDetail) obj; - if (epRequestIdData == null) { - if (other.epRequestIdData != null) - return false; - } else if (!epRequestIdData.equals(other.epRequestIdData)) - return false; - if (reqRoleId == null) { - if (other.reqRoleId != null) - return false; - } else if (!reqRoleId.equals(other.reqRoleId)) - return false; - if (reqType == null) { - if (other.reqType != null) - return false; - } else if (!reqType.equals(other.reqType)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppsManualSortPreference.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppsManualSortPreference.java deleted file mode 100644 index 0d7ee8f0..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppsManualSortPreference.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class EPUserAppsManualSortPreference extends DomainVo { - - private static final long serialVersionUID = -6270136291139278216L; - private int userId; - private Long appId; - private int appManualSortOrder; - - public int getUserId() { - return userId; - } - public void setUserId(int userId) { - this.userId = userId; - } - public Long getAppId() { - return appId; - } - public void setAppId(Long appId) { - this.appId = appId; - } - public int getAppManualSortOrder() { - return appManualSortOrder; - } - public void setAppManualSortOrder(int appManualSortOrder) { - this.appManualSortOrder = appManualSortOrder; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppsSortPreference.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppsSortPreference.java deleted file mode 100644 index 7d0a8603..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserAppsSortPreference.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class EPUserAppsSortPreference extends DomainVo{ - - private static final long serialVersionUID = -5267000174894006433L; - - private int userId; - private String sortPref; - - public int getUserId() { - return userId; - } - public void setUserId(final int userId) { - this.userId = userId; - } - public String getSortPref() { - return sortPref; - } - public void setSortPref(final String sortPref) { - this.sortPref = sortPref; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserNotification.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserNotification.java deleted file mode 100644 index 993c7dba..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPUserNotification.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.Date; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - - -public class EPUserNotification extends DomainVo { - private Long userId; - private Long notificationId; - private String viewed; - private Date updateTime; - - public Long getUserId() { - return userId; - } - public void setUserId(Long userId) { - this.userId = userId; - } - public Long getNotificationId() { - return notificationId; - } - public void setNotificationId(Long notificationId) { - this.notificationId = notificationId; - } - public String getViewed() { - return viewed; - } - public void setViewed(String viewed) { - this.viewed = viewed; - } - public Date getUpdateTime() { - return updateTime; - } - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPWidgetsManualSortPreference.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPWidgetsManualSortPreference.java deleted file mode 100644 index 1c515d6e..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EPWidgetsManualSortPreference.java +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class EPWidgetsManualSortPreference extends DomainVo{ - - private static final long serialVersionUID = 4607102334801223570L; - private int userId; - private Long widgetId; - private int widgetRow; - private int widgetCol; - private int widgetWidth; - private int widgetHeight; - - public int getUserId() { - return userId; - } - public void setUserId(int userId) { - this.userId = userId; - } - public Long getWidgetId() { - return widgetId; - } - public void setWidgetId(Long widgetId) { - this.widgetId = widgetId; - } - public int getWidgetRow() { - return widgetRow; - } - public void setWidgetRow(int widgetRow) { - this.widgetRow = widgetRow; - } - public int getWidgetCol() { - return widgetCol; - } - public void setWidgetCol(int widgetCol) { - this.widgetCol = widgetCol; - } - public int getWidgetWidth() { - return widgetWidth; - } - public void setWidgetWidth(int widgetWidth) { - this.widgetWidth = widgetWidth; - } - public int getWidgetHeight() { - return widgetHeight; - } - public void setWidgetHeight(int widgetHeight) { - this.widgetHeight = widgetHeight; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompApp.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompApp.java deleted file mode 100644 index 30be6889..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompApp.java +++ /dev/null @@ -1,186 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -/** - * Model for a subset of the columns in the fn_app table. - */ -public class EcompApp { - - protected Long id; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - private String name; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - private String imageUrl; - - public String getImageUrl() { - return imageUrl; - } - - public void setImageUrl(String imageUrl) { - this.imageUrl = imageUrl; - } - - private String description; - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - private String notes; - - public String getNotes() { - return notes; - } - - public void setNotes(String notes) { - this.notes = notes; - } - - private String url; - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - private String alternateUrl; - - public String getAlternateUrl() { - return alternateUrl; - } - - public void setAlternateUrl(String alternateUrl) { - this.alternateUrl = alternateUrl; - } - - private String uebTopicName; - - public String getUebTopicName() { - return uebTopicName; - } - - public void setUebTopicName(String topicName) { - this.uebTopicName = topicName; - } - - private String uebKey; - - public String getUebKey() { - return uebKey; - } - - public void setUebKey(String uebKey) { - this.uebKey = uebKey; - } - - private String uebSecret; - - public String getUebSecret() { - return uebSecret; - } - - public void setUebSecret(String secret) { - this.uebSecret = secret; - } - - private Boolean enabled; - - public Boolean isEnabled() { - return enabled; - } - - public void setEnabled(Boolean enable) { - this.enabled = enable; - } - - private Boolean restrictedApp; - - public Boolean isRestrictedApp() { - return restrictedApp; - } - - public void setRestrictedApp(Boolean restrictedApp) { - this.restrictedApp = restrictedApp; - } - - private Boolean centralAuth; - - public Boolean getCentralAuth() { - return centralAuth; - } - - public void setCentralAuth(Boolean centralAuth) { - this.centralAuth = centralAuth; - } - - private String nameSpace; - - public String getNameSpace() { - return nameSpace; - } - - public void setNameSpace(String nameSpace) { - this.nameSpace = nameSpace; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAppRole.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAppRole.java deleted file mode 100644 index e60b220a..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAppRole.java +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.IdClass; - -@Entity -@IdClass(EcompAppRoleId.class) -public class EcompAppRole { - - @Id - @Column(name="app_id") - private Long appId; - - @Id - @Column(name="app_name") - private String appName; - - @Id - @Column(name="role_id") - private Integer roleId; - - @Id - @Column(name="role_name") - private String roleName; - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public String getAppName() { - return appName; - } - - public void setAppName(String appName) { - this.appName = appName; - } - - public Integer getRoleId() { - return roleId; - } - - public void setRoleId(Integer roleId) { - this.roleId = roleId; - } - - public String getRoleName() { - return roleName; - } - - public void setRoleName(String roleName) { - this.roleName = roleName; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAppRoleId.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAppRoleId.java deleted file mode 100644 index c61052d8..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAppRoleId.java +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Id; - -public class EcompAppRoleId implements Serializable{ - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Id - @Column(name="app_id") - private Long appId; - - @Id - @Column(name="app_name") - private String appName; - - @Id - @Column(name="role_id") - private Integer roleId; - - @Id - @Column(name="role_name") - private String roleName; - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public String getAppName() { - return appName; - } - - public void setAppName(String appName) { - this.appName = appName; - } - - public Integer getRoleId() { - return roleId; - } - - public void setRoleId(Integer roleId) { - this.roleId = roleId; - } - - public String getRoleName() { - return roleName; - } - - public void setRoleName(String roleName) { - this.roleName = roleName; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAuditLog.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAuditLog.java deleted file mode 100644 index 517b9173..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/EcompAuditLog.java +++ /dev/null @@ -1,84 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.Date; - -import org.openecomp.portalsdk.core.domain.AuditLog; - -public class EcompAuditLog extends AuditLog { - - private static final long serialVersionUID = 7970458389782626231L; - - // values of activity_cd column in table fu_lu_activity - // as loaded by DML sql script - public static final String CD_ACTIVITY_ADD_CHILD_ROLE = "add_child_role"; - public static final String CD_ACTIVITY_ADD_ROLE = "add_role"; - public static final String CD_ACTIVITY_ADD_ROLE_FUNCTION = "add_role_function"; - public static final String CD_ACTIVITY_ADD_USER_ROLE = "add_user_role"; - public static final String CD_ACTIVITY_APP_ACCESS = "app_access"; - public static final String CD_ACTIVITY_FUNCTIONAL_ACCESS = "functional_access"; - public static final String CD_ACTIVITY_GUEST_LOGIN = "guest_login"; - public static final String CD_ACTIVITY_LOGIN = "login"; - public static final String CD_ACTIVITY_LOGOUT = "logout"; - public static final String CD_ACTIVITY_MOBILE_LOGIN = "mobile_login"; - public static final String CD_ACTIVITY_MOBILE_LOGOUT = "mobile_logout"; - public static final String CD_ACTIVITY_REMOVE_CHILD_ROLE = "remove_child_role"; - public static final String CD_ACTIVITY_REMOVE_ROLE = "remove_role"; - public static final String CD_ACTIVITY_REMOVE_ROLE_FUNCTION = "remove_role_function"; - public static final String CD_ACTIVITY_REMOVE_USER_ROLE = "remove_user_role"; - public static final String CD_ACTIVITY_TAB_ACCESS = "tab_access"; - public static final String CD_ACTIVITY_SEARCH = "search"; - public static final String CD_ACTIVITY_ADD_PORTAL_ADMIN = "apa "; - public static final String CD_ACTIVITY_DELETE_PORTAL_ADMIN = "dpa"; - public static final String CD_ACTIVITY_UPDATE_USER = "uu "; - public static final String CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN = "uaa "; - public static final String CD_ACTIVITY_STORE_ANALYTICS = "store_analytics"; - public static final String CD_ACTIVITY_EXTERNAL_AUTH_ADD_ROLE = "eaar"; - public static final String CD_ACTIVITY_EXTERNAL_AUTH_ADD_FUNCTION = "eaaf"; - public static final String CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_FUNCTION = "eauf"; - public static final String CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_ROLE_AND_FUNCTION = "eaurf"; - public static final String CD_ACTIVITY_EXTERNAL_AUTH_DELETE_ROLE = "eadr"; - public static final String CD_ACTIVITY_EXTERNAL_AUTH_DELETE_FUNCTION = "eadf"; - /** - * Creates a new object with the created field set to the current date-time. - */ - public EcompAuditLog() { - setCreated(new Date()); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/ExternalRoleDetails.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/ExternalRoleDetails.java deleted file mode 100644 index 2ba6a573..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/ExternalRoleDetails.java +++ /dev/null @@ -1,115 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.List; - -public class ExternalRoleDetails implements Comparable { - - - private String name; - private boolean active; - private Integer priority; - - private Long appId; // used by ECOMP only - private Long appRoleId; // used by ECOMP only - - private List perms; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public boolean isActive() { - return active; - } - - public void setActive(boolean active) { - this.active = active; - } - - public Integer getPriority() { - return priority; - } - - public void setPriority(Integer priority) { - this.priority = priority; - } - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public Long getAppRoleId() { - return appRoleId; - } - - public void setAppRoleId(Long appRoleId) { - this.appRoleId = appRoleId; - } - - - - public List getPerms() { - return perms; - } - - public void setPerms(List perms) { - this.perms = perms; - } - - @Override - public int compareTo(Object obj) { - EPRole other = (EPRole)obj; - - String c1 = getName(); - String c2 = other.getName(); - - return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/ExternalSystemAccess.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/ExternalSystemAccess.java deleted file mode 100644 index b4c08954..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/ExternalSystemAccess.java +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -public class ExternalSystemAccess { - - private String key; - private Boolean accessValue; - - public ExternalSystemAccess(String key, Boolean accessValue){ - this.key = key; - this.accessValue = accessValue; - } - - public String getKey() { - return key; - } - public void setKey(String key) { - this.key = key; - } - - public Boolean getAccessValue() { - return accessValue; - } - - public void setAccessValue(Boolean accessValue) { - this.accessValue = accessValue; - } - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/FunctionalMenuItemWithAppID.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/FunctionalMenuItemWithAppID.java deleted file mode 100644 index 5087d029..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/FunctionalMenuItemWithAppID.java +++ /dev/null @@ -1,114 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Transient; -/*** - * - * This class is almost identical to org.openecomp.portalapp.portal.transport.FunctionalMenuItem - * The only difference is the appId field. In FunctionMenuItem, we used @Transient as an attribute, and we are using @Column in this class. - * In some sql queries, we need to have appId, but it's not a field in fn_menu_functional table. - * - * @author robertlo - * - */ -@Entity -public class FunctionalMenuItemWithAppID{ - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy=GenerationType.IDENTITY) - @Column(name = "MENU_ID") - public Long menuId; - - @Column(name = "COLUMN_NUM") - public Integer column; - - @Column(name = "TEXT") - public String text; - - @Column(name = "PARENT_MENU_ID") - public Integer parentMenuId; - - @Column(name = "URL") - public String url; - - @Column(name="ACTIVE_YN") - public String active_yn; - - @Column(name="APP_ID") - public Integer appid; - - @Transient - public List roles; - - @Transient - public Boolean restrictedApp; - - public void normalize() { - if (this.column == null) - this.column = new Integer(1); - this.text = (this.text == null) ? "" : this.text.trim(); - if (this.parentMenuId == null) - this.parentMenuId = new Integer(-1); - this.url = (this.url == null) ? "" : this.url.trim(); - } - - @Override - public String toString() { - return "FunctionalMenuItem [menuId=" + menuId + ", column=" + column + ", text=" + text + ", parentMenuId=" - + parentMenuId + ", url=" + url + ", active_yn=" + active_yn + ", appid=" + appid + ", roles=" + roles - + ", restrictedApp=" + restrictedApp + "]"; - } - - public void setUrl(String url) { - this.url = url; - } - - public void setRestrictedApp(Boolean restrictedApp) { - this.restrictedApp = restrictedApp; - } -} - diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/GetAccessResult.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/GetAccessResult.java deleted file mode 100644 index 5c43de24..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/GetAccessResult.java +++ /dev/null @@ -1,132 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@Entity -@JsonInclude -public class GetAccessResult implements Serializable{ - - - private static final long serialVersionUID = 5239527705869613411L; - - @Id - @Column(name="row_id") - private String rowId; - - @Column(name="role_id") - private Long roleId; - - @Column(name="ecomp_function",nullable=true) - private String ecompFunction; - - @Column(name="app_name") - private String appName; - - @Column(name="app_mots_id",nullable=true) - private Integer appMotsId; - - @Column(name="role_name") - private String roleName; - - @Column(name="role_actv",nullable=true) - private String roleActive; - - - @Column(name="request_type",nullable=true) - private String reqType; - - - - public String getRowId() { - return rowId; - } - public void setRowId(String rowId) { - this.rowId = rowId; - } - public Long getRoleId() { - return roleId; - } - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - public String getEcompFunction() { - return ecompFunction; - } - public void setEcompFunction(String ecompFunction) { - this.ecompFunction = ecompFunction; - } - public String getAppName() { - return appName; - } - public void setAppName(String appName) { - this.appName = appName; - } - public Integer getAppMotsId() { - return appMotsId; - } - public void setAppMotsId(Integer appMotsId) { - this.appMotsId = appMotsId; - } - public String getRoleName() { - return roleName; - } - public void setRoleName(String roleName) { - this.roleName = roleName; - } - public String getRoleActive() { - return roleActive; - } - public void setRoleActive(String roleActive) { - this.roleActive = roleActive; - } - public String getReqType() { - return reqType; - } - public void setReqType(String reqType) { - this.reqType = reqType; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/GetAccessResultId.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/GetAccessResultId.java deleted file mode 100644 index df7faac3..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/GetAccessResultId.java +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Id; - -public class GetAccessResultId implements Serializable{ - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Id - @Column(name="ecomp_function") - private String ecompFunction; - - @Id - @Column(name="app_name") - private String appName; - - @Id - @Column(name="role_name") - private String roleName; - - public String getEcompFunction() { - return ecompFunction; - } - public void setEcompFunction(String ecompFunction) { - this.ecompFunction = ecompFunction; - } - public String getAppName() { - return appName; - } - public void setAppName(String appName) { - this.appName = appName; - } - public String getRoleName() { - return roleName; - } - public void setRoleName(String roleName) { - this.roleName = roleName; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/MicroserviceData.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/MicroserviceData.java deleted file mode 100644 index d99523a6..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/MicroserviceData.java +++ /dev/null @@ -1,164 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class MicroserviceData extends DomainVo { - - private static final long serialVersionUID = 1L; - - public MicroserviceData() { - - } - - private Long id; - - private String name; - - private String active; - - private String desc; - - private long appId; - - private String url; - - private String securityType; - - private String username; - - private String password; - - private List parameterList; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getActive() { - return active; - } - - public void setActive(String active) { - this.active = active; - } - - public String getDesc() { - return desc; - } - - public void setDesc(String desc) { - this.desc = desc; - } - - public long getAppId() { - return appId; - } - - public void setAppId(long appId) { - this.appId = appId; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getSecurityType() { - return securityType; - } - - public void setSecurityType(String securityType) { - this.securityType = securityType; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public List getParameterList() { - return parameterList; - } - - public void setParameterList(List parameterList) { - this.parameterList = parameterList; - } - - @Override - public String toString() { - return "MicroserviceData [id=" + id + ", name=" + name + ", desc=" + desc + ", appId=" + appId + ", url=" + url - + ", securityType=" + securityType + ", username=" + username + ", password=" + password - + ", parameterList=" + parameterList + "]"; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/MicroserviceParameter.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/MicroserviceParameter.java deleted file mode 100644 index 8ed012ef..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/MicroserviceParameter.java +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class MicroserviceParameter extends DomainVo { - - private static final long serialVersionUID = 1L; - - public MicroserviceParameter() { - - } - - private Long id; - - private long serviceId; - - private String para_key; - - private String para_value; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public long getServiceId() { - return serviceId; - } - - public void setServiceId(long serviceId) { - this.serviceId = serviceId; - } - - public String getPara_key() { - return para_key; - } - - public void setPara_key(String para_key) { - this.para_key = para_key; - } - - public String getPara_value() { - return para_value; - } - - public void setPara_value(String para_value) { - this.para_value = para_value; - } - - @Override - public String toString() { - return "MicroserviceParameter [id=" + id + ", serviceId=" + serviceId + ", para_key=" + para_key - + ", para_value=" + para_value + "]"; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/PersUserAppSelection.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/PersUserAppSelection.java deleted file mode 100644 index 6dbc5d30..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/PersUserAppSelection.java +++ /dev/null @@ -1,133 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -/** - * Models a row in the table with personalization of user app selections. - */ -public class PersUserAppSelection extends DomainVo { - - private static final long serialVersionUID = 1545308654500121206L; - - private Long userId; - - private Long appId; - - private String statusCode; - - public PersUserAppSelection() {} - - /** - * Convenience constructor - * - * @param id - * @param userId - * @param appId - * @param statusCode - */ - public PersUserAppSelection(final Long id, final Long userId, final Long appId, final String statusCode) { - super.id = id; - this.userId = userId; - this.appId = appId; - this.statusCode = statusCode; - } - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public String getStatusCode() { - return statusCode; - } - - public void setStatusCode(String statusCode) { - this.statusCode = statusCode; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((appId == null) ? 0 : appId.hashCode()); - result = prime * result + ((statusCode == null) ? 0 : statusCode.hashCode()); - result = prime * result + ((userId == null) ? 0 : userId.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - PersUserAppSelection other = (PersUserAppSelection) obj; - if (appId == null) { - if (other.appId != null) - return false; - } else if (!appId.equals(other.appId)) - return false; - if (statusCode == null) { - if (other.statusCode != null) - return false; - } else if (!statusCode.equals(other.statusCode)) - return false; - if (userId == null) { - if (other.userId != null) - return false; - } else if (!userId.equals(other.userId)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/PersUserWidgetSelection.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/PersUserWidgetSelection.java deleted file mode 100644 index f049a520..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/PersUserWidgetSelection.java +++ /dev/null @@ -1,136 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -/** - * Models a row in the table with personalization of user widget selections. - */ -public class PersUserWidgetSelection extends DomainVo { - - /** - * - */ - private static final long serialVersionUID = -6547880514779039200L; - - private Long userId; - - private Long widgetId; - - private String statusCode; - - public PersUserWidgetSelection() {} - - /** - * Convenience constructor - * - * @param id - * @param userId - * @param widgetId - * @param statusCode - */ - public PersUserWidgetSelection(final Long id, final Long userId, final Long widgetId, final String statusCode) { - super.id = id; - this.userId = userId; - this.widgetId = widgetId; - this.statusCode = statusCode; - } - - public Long getWidgetId() { - return widgetId; - } - - public void setWidgetId(Long widgetId) { - this.widgetId = widgetId; - } - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public String getStatusCode() { - return statusCode; - } - - public void setStatusCode(String statusCode) { - this.statusCode = statusCode; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((statusCode == null) ? 0 : statusCode.hashCode()); - result = prime * result + ((userId == null) ? 0 : userId.hashCode()); - result = prime * result + ((widgetId == null) ? 0 : widgetId.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - PersUserWidgetSelection other = (PersUserWidgetSelection) obj; - if (statusCode == null) { - if (other.statusCode != null) - return false; - } else if (!statusCode.equals(other.statusCode)) - return false; - if (userId == null) { - if (other.userId != null) - return false; - } else if (!userId.equals(other.userId)) - return false; - if (widgetId == null) { - if (other.widgetId != null) - return false; - } else if (!widgetId.equals(other.widgetId)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/RoleApp.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/RoleApp.java deleted file mode 100644 index 8b3f2a8c..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/RoleApp.java +++ /dev/null @@ -1,132 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.io.Serializable; -import java.util.Set; - -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToMany; -import javax.persistence.ManyToOne; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -//@Entity -//@Table(name = "FN_ROLE") -public class RoleApp implements Serializable{ - private static final long serialVersionUID = 1L; - - //@Id - //@Column(name = "ROLE_ID") - //@GeneratedValue(strategy=GenerationType.AUTO) - private Long roleId; - - - //@Column(name = "ROLE_Name") - private String roleName; - - //@ManyToOne(fetch = FetchType.EAGER) - //@JoinColumn(name="APP_ID") - private App app; - - //@JsonIgnore - //@ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}, mappedBy="widgetRoles") - private Set widgets; - - /*@PreRemove - private void removeGroupsFromUsers() { - for (WidgetCatalog w : widgets) { - w.getWidgetRoles().remove(this); - } - }*/ - - /*@ManyToOne - @JoinColumn(name = "WIDGET_ID", nullable = false) - WidgetCatalog widgetCatalog;*/ - - //@JsonIgnore - //@ManyToMany(mappedBy = "widgetRoles") - //@ManyToMany(fetch = FetchType.EAGER, mappedBy = "widgetRoles") - //private Set widgets = new HashSet(); - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public String getRoleName() { - return roleName; - } - - public void setRoleName(String roleName) { - this.roleName = roleName; - } - - public App getApp() { - return app; - } - - public void setApp(App app) { - this.app = app; - } - - - - public Set getWidgets() { - return widgets; - } - - public void setWidgets(Set widgets) { - this.widgets = widgets; - } - - @Override - public String toString() { - return "Role [roleId=" + roleId + ", roleName=" + roleName + ", app=" + app + "]"; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/SharedContext.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/SharedContext.java deleted file mode 100644 index 710e910a..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/SharedContext.java +++ /dev/null @@ -1,191 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.Date; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -/** - * A shared context is a key-value pair in a session. All shared-context objects - * should be dropped when a session is destroyed. Because there's always a - * chance of missing that event, this object notes its creation time so that it - * can be expired after a suitable time interval. - */ -@Entity -@Table(name = "fn_shared_context") -public class SharedContext extends DomainVo { - - // generated - private static final long serialVersionUID = 7287469622586677888L; - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Long id; - private Date create_time; - private String context_id; - private String ckey; - private String cvalue; - - /** - * Mandatory no-argument constructor - */ - public SharedContext() { - } - - /** - * Convenience constructor. The database ID and creation timestamp are - * populated when the object is added to the database. - * - * @param contextId - * context ID - * @param key - * context key - * @param value - * context value - */ - public SharedContext(final String contextId, final String key, final String value) { - this.context_id = contextId; - this.ckey = key; - this.cvalue = value; - } - - /** - * Gets the database row ID. - * - * @return Database row ID - */ - public Long getId() { - return id; - } - - /** - * Sets the database row ID. - * - * @param id - * database row ID - */ - public void setId(final Long id) { - this.id = id; - } - - /** - * Gets the creation time - * - * @return Creation time as a Date - */ - public Date getCreate_time() { - return create_time; - } - - /** - * Sets the creation time - * - * @param create_time - * Date - */ - public void setCreate_time(final Date create_time) { - this.create_time = create_time; - } - - /** - * Gets the context ID - * - * @return Context ID - */ - public String getContext_id() { - return context_id; - } - - /** - * Sets the context ID - * - * @param context_id - * String - */ - public void setContext_id(final String context_id) { - this.context_id = context_id; - } - - /** - * Gets the key of the key-value pair. Called ckey because "key" is a - * reserved word in Mysql. - * - * @return The key - */ - public String getCkey() { - return ckey; - } - - /** - * Sets the key of the key-value pair. - * - * @param ckey - * String - */ - public void setCkey(final String ckey) { - this.ckey = ckey; - } - - /** - * Gets the value of the key-value pair. Called cvalue because "value" is a - * reserved word in Mysql. - * - * @return value - */ - public String getCvalue() { - return cvalue; - } - - /** - * Sets the value of the key-value pair. - * - * @param cvalue - * value - */ - public void setCvalue(final String cvalue) { - this.cvalue = cvalue; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserIdRoleId.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserIdRoleId.java deleted file mode 100644 index 9d59bf34..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserIdRoleId.java +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -public class UserIdRoleId implements Serializable{ - - private static final long serialVersionUID = 1L; - - @Id - @Column(name="USER_ID") - private String user_Id; - - @Column(name="ROLE_ID") - private String roleId; - - @Column(name="ORG_USER_ID") - private String orgUserId; - - @Column(name="APP_ID") - private String appId; - - public String getUser_Id() { - return user_Id; - } - - public void setUser_Id(String id) { - this.user_Id = id; - } - - public String getRoleId() { - return roleId; - } - - public void setRoleId(String roleId) { - this.roleId = roleId; - } - - public String getAppId() { - return appId; - } - - public void setAppId(String appId) { - this.appId = appId; - } - - public String getOrgUserId() { - return orgUserId; - } - - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserRole.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserRole.java deleted file mode 100644 index 38b74a54..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserRole.java +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -public class UserRole implements Serializable{ - private static final long serialVersionUID = 1L; - - - @Id - @Column(name="USER_ID") - private Long user_Id; - - @Id - @Column(name="ROLE_ID") - private Long roleId; - - @Column(name="ORG_USER_ID") - private String orgUserId; - - - @Column(name="FIRST_NAME") - private String firstName; - - @Column(name="LAST_NAME") - private String lastName; - - - @Column(name="ROLE_NAME") - private String roleName; - - public String getFirstName() { - return firstName; - } - public void setFirstName(String firstName) { - this.firstName = firstName; - } - public String getLastName() { - return lastName; - } - public void setLastName(String lastName) { - this.lastName = lastName; - } - public String getOrgUserId() { - return orgUserId; - } - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } - public String getRoleName() { - return roleName; - } - public void setRoleName(String roleName) { - this.roleName = roleName; - } - public Long getUser_Id() { - return user_Id; - } - public void setUser_Id(Long user_Id) { - this.user_Id = user_Id; - } - public Long getRoleId() { - return roleId; - } - public void setRoleId(Long roleId) { - this.roleId = roleId; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserRoles.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserRoles.java deleted file mode 100644 index 578292a4..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/UserRoles.java +++ /dev/null @@ -1,131 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; - -public class UserRoles implements Serializable { - private static final long serialVersionUID = 1L; - - /* - private static final HashMap rolesDictionary; - // remove hard coded roles - static { - rolesDictionary = new HashMap(); - rolesDictionary.put(Long.valueOf(SystemProperties.getProperty(SystemProperties.SYS_ADMIN_ROLE_ID)).longValue(), "superAdmin"); - rolesDictionary.put(Long.valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ACCOUNT_ADMIN_ROLE_ID)).longValue(), "admin"); - } - */ - - public UserRoles(UserRole user) { - setOrgUserId(user.getOrgUserId()); - setFirstName(user.getFirstName()); - setLastName(user.getLastName()); - setGuestSession(user.getUser_Id()==-1 ? true : false); - - addRole(user.getRoleName()); - } - - public void addRole(String roleName) { - //String normalizedRole = normalizeRole(roleId); - if (!getRoles().contains(roleName)) { - this.roles.add(roleName); - } - } - - /* - public static String normalizeRole(Long role) { - String roleTranslated = rolesDictionary.get(role); - return roleTranslated == null ? "user" : roleTranslated; - } - */ - - private String orgUserId; - private String firstName; - private String lastName; - private boolean guestSession; - - // TODO: Make into set - private List roles = new ArrayList(); - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getOrgUserId() { - return orgUserId; - } - - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } - - public List getRoles() { - return roles; - } - - public void setRoles(List roles) { - this.roles = roles; - } - - public void setGuestSession(boolean guestSession) { - this.guestSession = guestSession; - } - - public boolean getGuestSession() { - return this.guestSession; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/Widget.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/Widget.java deleted file mode 100644 index 33f2df88..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/Widget.java +++ /dev/null @@ -1,123 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.apache.commons.lang.StringUtils; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class Widget extends DomainVo { - - private static final long serialVersionUID = 1L; - - private String name; - - private Integer width; - - private Integer height; - - private String url; - - private Long appId; - - public Widget() { - // Attention!!! - // We set here all default values. We also place protection - // into setters for fields with default values. - // If we don't use such protection we are able to place null - // to these fields and save such fields into DB even if DB has - // default values for these fields. - this.name = ""; - this.width = new Integer(0); - this.height = new Integer(0); - this.url = ""; - } - - public String getName() { - return name; - } - - public void setName(String name) { - if (StringUtils.isEmpty(name)) { - name = ""; - } - this.name = name; - } - - public Integer getWidth() { - return width; - } - - public void setWidth(Integer width) { - if (width == null) { - width = new Integer(0); - } - this.width = width; - } - - public Integer getHeight() { - return height; - } - - public void setHeight(Integer height) { - if (height == null) { - height = new Integer(0); - } - this.height = height; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - if (StringUtils.isEmpty(url)) { - url = ""; - } - this.url = url; - } - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetCatalog.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetCatalog.java deleted file mode 100644 index edf6eb85..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetCatalog.java +++ /dev/null @@ -1,127 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.io.Serializable; -import java.util.Set; - -public class WidgetCatalog implements Serializable{ - - private static final long serialVersionUID = 1L; - - private long id; - - private String name; - - private String desc; - - private String fileLocation; - - private String allowAllUser; - - private Long serviceId; - - private String sortOrder; - - private String statusCode; - - private Set widgetRoles; - - public long getId() { - return id; - } - public void setId(long id) { - this.id = id; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - - public Long getServiceId() { - return serviceId; - } - public void setServiceId(Long serviceId) { - this.serviceId = serviceId; - } - public String getDesc() { - return desc; - } - public void setDesc(String desc) { - this.desc = desc; - } - public String getFileLocation() { - return fileLocation; - } - public void setFileLocation(String fileLocation) { - this.fileLocation = fileLocation; - } - - public String getAllowAllUser() { - return allowAllUser; - } - public void setAllowAllUser(String allowAllUser) { - this.allowAllUser = allowAllUser; - } - public Set getWidgetRoles() { - return widgetRoles; - } - public void setWidgetRoles(Set widgetRoles) { - this.widgetRoles = widgetRoles; - } - - public String getSortOrder() { - return sortOrder; - } - public void setSortOrder(String sortOrder) { - this.sortOrder = sortOrder; - } - public String getStatusCode() { - return statusCode; - } - public void setStatusCode(String statusCode) { - this.statusCode = statusCode; - } - @Override - public String toString() { - return "WidgetCatalog [id=" + id + ", name=" + name + ", desc=" + desc + ", fileLocation=" + fileLocation - + ", allowAllUser=" + allowAllUser + "]"; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetCatalogParameter.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetCatalogParameter.java deleted file mode 100644 index 18833f6d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetCatalogParameter.java +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -public class WidgetCatalogParameter extends DomainVo{ - - private static final long serialVersionUID = 1L; - - public WidgetCatalogParameter() { - - } - private Long id; - - private Long widgetId; - - private Long userId; - - private Long paramId; - - private String user_value; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getWidgetId() { - return widgetId; - } - - public void setWidgetId(Long widgetId) { - this.widgetId = widgetId; - } - - public String getUser_value() { - return user_value; - } - - public void setUser_value(String user_value) { - this.user_value = user_value; - } - - public Long getParamId() { - return paramId; - } - - public void setParamId(Long paramId) { - this.paramId = paramId; - } - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - @Override - public String toString() { - return "WidgetCatalogParameter [id=" + id + ", widgetId=" + widgetId + ", userId=" + userId + ", paramId=" - + paramId + ", user_value=" + user_value + "]"; - } - - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetParameterResult.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetParameterResult.java deleted file mode 100644 index 81d703f4..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetParameterResult.java +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -public class WidgetParameterResult { - - private Long param_id; - - private String param_key; - - private String user_value; - - private String default_value; - - public Long getParam_id() { - return param_id; - } - - public void setParam_id(Long param_id) { - this.param_id = param_id; - } - - public String getParam_key() { - return param_key; - } - - public void setParam_key(String param_key) { - this.param_key = param_key; - } - - public String getUser_value() { - return user_value; - } - - public void setUser_value(String user_value) { - this.user_value = user_value; - } - - public String getDefault_value() { - return default_value; - } - - public void setDefault_value(String default_value) { - this.default_value = default_value; - } - - @Override - public String toString() { - return "WidgetParameterResult [param_id=" + param_id + ", param_key=" + param_key + ", user_value=" + user_value - + ", default_value=" + default_value + "]"; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetServiceHeaders.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetServiceHeaders.java deleted file mode 100644 index 14c7799a..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/domain/WidgetServiceHeaders.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.nio.charset.Charset; - -import org.apache.commons.codec.binary.Base64; -import org.springframework.http.HttpHeaders; - -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; - -public class WidgetServiceHeaders { - - private static HttpHeaders widgetHeaders; - - private WidgetServiceHeaders(){} - - public static HttpHeaders getInstance() throws Exception{ - if(null == widgetHeaders){ - return new HttpHeaders(){{ - - String username = EcompPortalUtils.getPropertyOrDefault("microservices.widget.username", "widget_user"); - String password = CipherUtil.decrypt(EcompPortalUtils.getPropertyOrDefault("microservices.widget.password", "widget_password")); - String auth = username + ":" + password; - byte[] encodedAuth = Base64.encodeBase64( - auth.getBytes(Charset.forName("US-ASCII")) ); - String authHeader = "Basic " + new String( encodedAuth ); - set( "Authorization", authHeader ); - } - }; - } - else - return widgetHeaders; - - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppCatalogItem.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppCatalogItem.java deleted file mode 100644 index 1279004f..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppCatalogItem.java +++ /dev/null @@ -1,276 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.ecomp.model; - -import javax.persistence.Entity; -import javax.persistence.Id; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; -import com.fasterxml.jackson.annotation.JsonInclude; - -/** - * This model of an application catalog entry has some EPApp fields plus - * additional fields to indicate access(ible) and select(ed) statuses. - */ -@Entity -@JsonInclude(JsonInclude.Include.NON_NULL) -public class AppCatalogItem extends DomainVo { - - private static final long serialVersionUID = 6619663784935017846L; - - @Id - private Long id; - private String name; - private String mlAppName; - private String imageUrl; - private String description; - private String notes; - private String url; - private String alternateUrl; - private Boolean restricted; - private Boolean open; - private Boolean access; - private Boolean select; - private Boolean pending; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getMlAppName() { - return mlAppName; - } - - public void setMlAppName(String mlAppName) { - this.mlAppName = mlAppName; - } - - public String getImageUrl() { - return imageUrl; - } - - public void setImageUrl(String imageUrl) { - this.imageUrl = imageUrl; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getNotes() { - return notes; - } - - public void setNotes(String notes) { - this.notes = notes; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getAlternateUrl() { - return alternateUrl; - } - - public void setAlternateUrl(String alternateUrl) { - this.alternateUrl = alternateUrl; - } - - public Boolean getRestricted() { - return restricted; - } - - public void setRestricted(Boolean restricted) { - this.restricted = restricted; - } - - public Boolean getOpen() { - return open; - } - - public void setOpen(Boolean open) { - this.open = open; - } - - public Boolean getAccess() { - return access; - } - - public void setAccess(Boolean access) { - this.access = access; - } - - public Boolean getSelect() { - return select; - } - - public void setSelect(Boolean select) { - this.select = select; - } - - public Boolean getPending() { - return pending; - } - - public void setPending(Boolean pending) { - this.pending = pending; - } - - public static long getSerialversionuid() { - return serialVersionUID; - } - - @Override - public String toString() { - return "AppCatalogItem [id=" + id + ", name=" + name + ", access=" + access + ", select=" + select - + ", pending=" + pending + "]"; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((access == null) ? 0 : access.hashCode()); - result = prime * result + ((alternateUrl == null) ? 0 : alternateUrl.hashCode()); - result = prime * result + ((description == null) ? 0 : description.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((imageUrl == null) ? 0 : imageUrl.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((notes == null) ? 0 : notes.hashCode()); - result = prime * result + ((open == null) ? 0 : open.hashCode()); - result = prime * result + ((pending == null) ? 0 : pending.hashCode()); - result = prime * result + ((restricted == null) ? 0 : restricted.hashCode()); - result = prime * result + ((select == null) ? 0 : select.hashCode()); - result = prime * result + ((url == null) ? 0 : url.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - AppCatalogItem other = (AppCatalogItem) obj; - if (access == null) { - if (other.access != null) - return false; - } else if (!access.equals(other.access)) - return false; - if (alternateUrl == null) { - if (other.alternateUrl != null) - return false; - } else if (!alternateUrl.equals(other.alternateUrl)) - return false; - if (description == null) { - if (other.description != null) - return false; - } else if (!description.equals(other.description)) - return false; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - if (imageUrl == null) { - if (other.imageUrl != null) - return false; - } else if (!imageUrl.equals(other.imageUrl)) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (notes == null) { - if (other.notes != null) - return false; - } else if (!notes.equals(other.notes)) - return false; - if (open == null) { - if (other.open != null) - return false; - } else if (!open.equals(other.open)) - return false; - if (pending == null) { - if (other.pending != null) - return false; - } else if (!pending.equals(other.pending)) - return false; - if (restricted == null) { - if (other.restricted != null) - return false; - } else if (!restricted.equals(other.restricted)) - return false; - if (select == null) { - if (other.select != null) - return false; - } else if (!select.equals(other.select)) - return false; - if (url == null) { - if (other.url != null) - return false; - } else if (!url.equals(other.url)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppCategoryFunctionsItem.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppCategoryFunctionsItem.java deleted file mode 100644 index e09b8627..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppCategoryFunctionsItem.java +++ /dev/null @@ -1,158 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.ecomp.model; - -import javax.persistence.Entity; -import javax.persistence.Id; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; -import com.fasterxml.jackson.annotation.JsonInclude; - -/** - * Carries row information for the functional table on the Contact Us page. - */ -@Entity -@JsonInclude(JsonInclude.Include.NON_NULL) -public class AppCategoryFunctionsItem extends DomainVo { - - private static final long serialVersionUID = -1573834082471206458L; - - @Id - private String rowId; - private String appId; - private String application; - private String category; - private String functions; - - public String getRowId() { - return rowId; - } - - public void setRowId(String rowId) { - this.rowId = rowId; - } - - public String getAppId() { - return appId; - } - - public void setAppId(String appId) { - this.appId = appId; - } - - public String getApplication() { - return application; - } - - public void setApplication(String appName) { - this.application = appName; - } - - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - public String getFunctions() { - return functions; - } - - public void setFunctions(String functions) { - this.functions = functions; - } - - @Override - public String toString() { - return "AppCategoryFunctionsItem [rowId=" + rowId + ", appId=" + appId + ", application=" + application - + ", category=" + category + ", functions=" + functions + "]"; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((appId == null) ? 0 : appId.hashCode()); - result = prime * result + ((application == null) ? 0 : application.hashCode()); - result = prime * result + ((category == null) ? 0 : category.hashCode()); - result = prime * result + ((functions == null) ? 0 : functions.hashCode()); - result = prime * result + ((rowId == null) ? 0 : rowId.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - AppCategoryFunctionsItem other = (AppCategoryFunctionsItem) obj; - if (appId == null) { - if (other.appId != null) - return false; - } else if (!appId.equals(other.appId)) - return false; - if (application == null) { - if (other.application != null) - return false; - } else if (!application.equals(other.application)) - return false; - if (category == null) { - if (other.category != null) - return false; - } else if (!category.equals(other.category)) - return false; - if (functions == null) { - if (other.functions != null) - return false; - } else if (!functions.equals(other.functions)) - return false; - if (rowId == null) { - if (other.rowId != null) - return false; - } else if (!rowId.equals(other.rowId)) - return false; - return true; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppContactUsItem.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppContactUsItem.java deleted file mode 100644 index 74adc8be..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/AppContactUsItem.java +++ /dev/null @@ -1,189 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.ecomp.model; - -import javax.persistence.Entity; -import javax.persistence.Id; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; -import com.fasterxml.jackson.annotation.JsonInclude; - -/** - * An easily serializable version of row information from the fn_app_contact_us - * table; specifically this has an app ID instead of an EPApp object. - */ -@Entity -@JsonInclude(JsonInclude.Include.NON_NULL) -public class AppContactUsItem extends DomainVo { - - private static final long serialVersionUID = 6964210807573346262L; - - @Id - private Long appId; - private String appName; - private String description; - private String contactName; - private String contactEmail; - private String url; - private String activeYN; - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public String getAppName() { - return appName; - } - - public void setAppName(String appName) { - this.appName = appName; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getContactName() { - return contactName; - } - - public void setContactName(String contactName) { - this.contactName = contactName; - } - - public String getContactEmail() { - return contactEmail; - } - - public void setContactEmail(String contactEmail) { - this.contactEmail = contactEmail; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getActiveYN() { - return activeYN; - } - - public void setActiveYN(String activeYN) { - this.activeYN = activeYN; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((activeYN == null) ? 0 : activeYN.hashCode()); - result = prime * result + ((appId == null) ? 0 : appId.hashCode()); - result = prime * result + ((appName == null) ? 0 : appName.hashCode()); - result = prime * result + ((contactEmail == null) ? 0 : contactEmail.hashCode()); - result = prime * result + ((contactName == null) ? 0 : contactName.hashCode()); - result = prime * result + ((description == null) ? 0 : description.hashCode()); - result = prime * result + ((url == null) ? 0 : url.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - AppContactUsItem other = (AppContactUsItem) obj; - if (activeYN == null) { - if (other.activeYN != null) - return false; - } else if (!activeYN.equals(other.activeYN)) - return false; - if (appId == null) { - if (other.appId != null) - return false; - } else if (!appId.equals(other.appId)) - return false; - if (appName == null) { - if (other.appName != null) - return false; - } else if (!appName.equals(other.appName)) - return false; - if (contactEmail == null) { - if (other.contactEmail != null) - return false; - } else if (!contactEmail.equals(other.contactEmail)) - return false; - if (contactName == null) { - if (other.contactName != null) - return false; - } else if (!contactName.equals(other.contactName)) - return false; - if (description == null) { - if (other.description != null) - return false; - } else if (!description.equals(other.description)) - return false; - if (url == null) { - if (other.url != null) - return false; - } else if (!url.equals(other.url)) - return false; - return true; - } - - @Override - public String toString() { - return "AppContactUsItem [appId=" + appId + ", appName=" + appName + ", description=" + description - + ", contactName=" + contactName + ", contactEmail=" + contactEmail + ", url=" + url + ", activeYN=" - + activeYN + "]"; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/CommonWidgetsEnum.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/CommonWidgetsEnum.java deleted file mode 100644 index 784cf3d5..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/CommonWidgetsEnum.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.ecomp.model; - -public enum CommonWidgetsEnum{ - NEWS("news"), - EVENTS("events"), - RESOURCES("resources"); - - private String value; - private CommonWidgetsEnum(String value){ - this.value = value; - } - - @Override - public String toString() { - return value; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/PortalRestResponse.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/PortalRestResponse.java deleted file mode 100644 index 05dadca8..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/PortalRestResponse.java +++ /dev/null @@ -1,119 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.ecomp.model; - -public class PortalRestResponse { - - private PortalRestStatusEnum status; - private String message; - - private T response; - - public PortalRestResponse(){}; - - public PortalRestResponse(PortalRestStatusEnum status, String message, T response){ - this.status = status; - this.message = message; - this.response = response; - } - - public PortalRestStatusEnum getStatus() { - return status; - } - - public void setStatus(PortalRestStatusEnum status) { - this.status = status; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getResponse() { - return response; - } - - public void setResponse(T response) { - this.response = response; - } - - @Override - public String toString() { - return "PortalRestResponse [status=" + status + ", message=" + message + ", response=" + response + "]"; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((message == null) ? 0 : message.hashCode()); - result = prime * result + ((response == null) ? 0 : response.hashCode()); - result = prime * result + ((status == null) ? 0 : status.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - PortalRestResponse other = (PortalRestResponse) obj; - if (message == null) { - if (other.message != null) - return false; - } else if (!message.equals(other.message)) - return false; - if (response == null) { - if (other.response != null) - return false; - } else if (!response.equals(other.response)) - return false; - if (status != other.status) - return false; - return true; - }; - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/PortalRestStatusEnum.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/PortalRestStatusEnum.java deleted file mode 100644 index 1f70da72..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/PortalRestStatusEnum.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.ecomp.model; - -public enum PortalRestStatusEnum{ - OK("ok"), - WARN("WARNING"), - ERROR("error"); - - private String value; - private PortalRestStatusEnum(String value){ - this.value = value; - } - - @Override - public String toString() { - return value; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/SearchResultItem.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/SearchResultItem.java deleted file mode 100644 index dbd70b94..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ecomp/model/SearchResultItem.java +++ /dev/null @@ -1,104 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.ecomp.model; - -import javax.persistence.Entity; -import javax.persistence.Id; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; - -@Entity -@JsonInclude(JsonInclude.Include.NON_NULL) -public class SearchResultItem extends DomainVo{ - - @Id - private String rowId; - - @JsonProperty("category") - private String category; - - @JsonProperty("name") - private String name; - - @JsonProperty("target") - private String target; - - @JsonProperty("uuid") - private String uuid; - - public String getUuid() { - return uuid; - } - public void setUuid(String uuid) { - this.uuid = uuid; - } - public String getRowId() { - return rowId; - } - public void setRowId(String rowId) { - this.rowId = rowId; - } - public String getCategory() { - return category; - } - public void setCategory(String category) { - this.category = category; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - - public String getTarget() { - return target; - } - public void setTarget(String target) { - this.target = target; - } - @Override - public String toString() { - return "SearchResultItem [rowId=" + rowId + ", category=" + category + ", name=" + name + ", target=" + target - + ", uuid=" + uuid + "]"; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/exceptions/NoHealthyServiceException.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/exceptions/NoHealthyServiceException.java deleted file mode 100644 index b4764d81..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/exceptions/NoHealthyServiceException.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.exceptions; - -import com.ecwid.consul.ConsulException; - -public class NoHealthyServiceException extends ConsulException{ - - private static final long serialVersionUID = -7089437673127729813L; - - public NoHealthyServiceException(String message){ - super(message); - } - - @Override - public String toString() { - return "NoHealthyServiceException [] " + this.getMessage(); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/interceptor/PortalResourceInterceptor.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/interceptor/PortalResourceInterceptor.java deleted file mode 100644 index 4514126a..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/interceptor/PortalResourceInterceptor.java +++ /dev/null @@ -1,336 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.interceptor; - -import java.nio.charset.Charset; -import java.util.Base64; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.controller.sessionmgt.SessionCommunicationController; -import org.openecomp.portalapp.portal.controller.BasicAuthenticationController; -import org.openecomp.portalapp.portal.controller.ExternalAppsRestfulController; -import org.openecomp.portalapp.portal.controller.SharedContextRestController; -import org.openecomp.portalapp.portal.controller.WebAnalyticsExtAppController; -import org.openecomp.portalapp.portal.domain.BasicAuthCredentials; -import org.openecomp.portalapp.portal.domain.EPEndpoint; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.logging.aop.EPEELFLoggerAdvice; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.service.BasicAuthenticationCredentialService; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.service.RemoteWebServiceCallService; -import org.openecomp.portalapp.service.sessionmgt.ManageService; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.controller.FusionBaseController; -import org.openecomp.portalsdk.core.exception.UrlAccessRestrictedException; -import org.openecomp.portalsdk.core.interceptor.ResourceInterceptor; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.listener.PortalTimeoutHandler; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.util.SystemProperties.SecurityEventTypeEnum; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.method.HandlerMethod; - -public class PortalResourceInterceptor extends ResourceInterceptor { - private static final String APP_KEY = "uebkey"; - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PortalResourceInterceptor.class); - - @Autowired - private RemoteWebServiceCallService remoteWebServiceCallService; - - @Autowired - private ManageService manageService; - - @Autowired - private EPEELFLoggerAdvice epAdvice; - - @Autowired - private BasicAuthenticationCredentialService basicAuthService; - - @SuppressWarnings("unchecked") - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) - throws Exception { - - if (handler instanceof HandlerMethod) { - HandlerMethod method = (HandlerMethod) handler; - - /** - * These classes provide REST endpoints used by other application - * servers, NOT by an end user's browser. - */ - if (method.getBean() instanceof FusionBaseController) { - FusionBaseController controller = (FusionBaseController) method.getBean(); - if (!controller.isAccessible()) { - - // authorize portalApi requests by user role - String requestURI = request.getRequestURI(); - if (requestURI != null) { - String[] uriArray = requestURI.split("/portalApi/"); - if (uriArray.length > 1) { - String portalApiPath = uriArray[1]; - - Set roleFunctions = (Set) request.getSession() - .getAttribute(SystemProperties - .getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME)); - Set allRoleFunctions = (Set) request.getSession() - .getAttribute(EPUserUtils.ALL_ROLE_FUNCTIONS); - // Defend against code error to avoid throwing NPE - if (roleFunctions == null || allRoleFunctions == null) { - logger.error(EELFLoggerDelegate.errorLogger, - "preHandle: failed to get role functions attribute(s) from session!!"); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInitializationError); - return false; - } - // check to see if roleFunctions of the user is in - // the - // list of all role functions - // if not, ignore to prevent restricting every - // trivial - // call; otherwise, if it is, then check for the - // access - if (matchRoleFunctions(portalApiPath, allRoleFunctions) - && !matchRoleFunctions(portalApiPath, roleFunctions)) { - EPUser user = (EPUser) request.getSession().getAttribute( - SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME)); - logger.error(EELFLoggerDelegate.errorLogger, - "preHandle: User {} not authorized for path {} ", user.getOrgUserId(), - portalApiPath); - EcompPortalUtils.setBadPermissions(user, response, portalApiPath); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError); - return false; - } // failed to match - - } // is portalApi - - } // requestURI - } // instance check - } // not accessible - else if (method.getBean() instanceof BasicAuthenticationController) { - return checkBasicAuth(request, response); - } - Object controllerObj = method.getBean(); - if (controllerObj instanceof SessionCommunicationController - || controllerObj instanceof SharedContextRestController - || controllerObj instanceof ExternalAppsRestfulController) { - // check user authentication for RESTful calls - String secretKey = null; - try { - epAdvice.loadServletRequestBasedDefaults(request, SecurityEventTypeEnum.INCOMING_REST_MESSAGE); - if (!remoteWebServiceCallService.verifyRESTCredential(secretKey, request.getHeader(APP_KEY), - request.getHeader("username"), request.getHeader("password"))) { - throw new UrlAccessRestrictedException(); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "preHandle: failed to authenticate RESTful service", - e); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError, e); - throw new UrlAccessRestrictedException(); - } - } - - if (controllerObj instanceof WebAnalyticsExtAppController) { - if (!remoteWebServiceCallService.verifyAppKeyCredential(request.getHeader(APP_KEY))) { - logger.error(EELFLoggerDelegate.errorLogger, - "preHandle: failed to verify app key for web analytics call"); - throw new UrlAccessRestrictedException(); - } - } - } - - handleSessionUpdates(request); - return true; - } - - /** - * Sets the status code and sends a response. Factors code out of many - * methods. - * - * @param response - * HttpServletResponse - * @param statusCode - * HTTP status code like 404 - * @param message - * Message to send in a JSON error object - */ - private void sendErrorResponse(HttpServletResponse response, final int statusCode, final String message) - throws Exception { - response.setStatus(statusCode); - response.setContentType("application/json"); - response.getWriter().write("{\"error\":\"" + message + "\"}"); - response.getWriter().flush(); - } - - /** - * Gets HTTP basic authentication information from the request and checks - * whether those credentials are authorized for the request path. - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @return True if the request is authorized, else false - * @throws Exception - */ - private boolean checkBasicAuth(HttpServletRequest request, HttpServletResponse response) throws Exception { - String uri = request.getRequestURI().toString(); - uri = uri.substring(uri.indexOf("/", 1)); - - final String authHeader = request.getHeader("Authorization"); - - // Unauthorized access due to missing HTTP Authorization request header - if (authHeader == null) { - final String msg = "no authorization found"; - logger.debug(EELFLoggerDelegate.debugLogger, "checkBasicAuth: {}", msg); - sendErrorResponse(response, HttpServletResponse.SC_UNAUTHORIZED, msg); - return false; - } - - String[] accountNamePassword = getUserNamePassword(authHeader); - if (accountNamePassword == null || accountNamePassword.length != 2) { - final String msg = "failed to get username and password from Atuhorization header"; - logger.debug(EELFLoggerDelegate.debugLogger, "checkBasicAuth: {}", msg); - sendErrorResponse(response, HttpServletResponse.SC_UNAUTHORIZED, msg); - return false; - } - - BasicAuthCredentials creds; - try { - creds = basicAuthService.getBasicAuthCredentialByUsernameAndPassword(accountNamePassword[0], - encrypted(accountNamePassword[1])); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "checkBasicAuth failed to get credentials", e); - final String msg = "Failed while getting basic authentication credential: " + e.toString(); - sendErrorResponse(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, msg); - throw e; - } - - // Unauthorized access due to invalid credentials (username and - // password) - if (creds == null || !creds.getUsername().equals(accountNamePassword[0])) { - final String msg = "Unauthorized: Access denied"; - logger.debug(EELFLoggerDelegate.debugLogger, "checkBasicAuth: {}", msg); - sendErrorResponse(response, HttpServletResponse.SC_UNAUTHORIZED, msg); - return false; - } - - // Unauthorized access due to inactive account - if (creds.getIsActive().equals("N")) { - final String msg = "Unauthorized: The account is inactive"; - logger.debug(EELFLoggerDelegate.debugLogger, "checkBasicAuth: {}", msg); - sendErrorResponse(response, HttpServletResponse.SC_UNAUTHORIZED, msg); - return false; - } - boolean isAllowedEp = false; - for (EPEndpoint ep : creds.getEndpoints()) { - if (ep.getName().equals(uri)) { - isAllowedEp = true; - break; - } - } - - // If user doesn't specify any endpoint, allow all endpoints for that - // account - if (creds.getEndpoints().size() == 0) - isAllowedEp = true; - - // Unauthorized access due to the invalid endpoints - if (!isAllowedEp) { - final String msg = "Unauthorized: Endpoint access denied"; - logger.debug(EELFLoggerDelegate.debugLogger, "checkBasicAuth: {}", msg); - sendErrorResponse(response, HttpServletResponse.SC_UNAUTHORIZED, msg); - return false; - } - - // Made it to the end! - return true; - } - - private String[] getUserNamePassword(String authValue) { - String base64Credentials = authValue.substring("Basic".length()).trim(); - String credentials = new String(Base64.getDecoder().decode(base64Credentials), Charset.forName("UTF-8")); - final String[] values = credentials.split(":", 2); - return values; - } - - private String decrypted(String encrypted) throws Exception { - String result = ""; - if (encrypted != null & encrypted.length() > 0) { - try { - result = CipherUtil.decrypt(encrypted, SystemProperties.getProperty(SystemProperties.Decryption_Key)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword failed", e); - throw e; - } - } - return result; - } - - private String encrypted(String decryptedPwd) throws Exception { - String result = ""; - if (decryptedPwd != null & decryptedPwd.length() > 0) { - try { - result = CipherUtil.encrypt(decryptedPwd, - SystemProperties.getProperty(SystemProperties.Decryption_Key)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "encryptedPassword() failed", e); - throw e; - } - } - return result; - } - - private Boolean matchRoleFunctions(String portalApiPath, Set roleFunctions) { - for (String roleFunction : roleFunctions) { - if (portalApiPath.matches(roleFunction)) - return true; - } - return false; - - } - - protected void handleSessionUpdates(HttpServletRequest request) { - PortalTimeoutHandler.handleSessionUpdatesNative(request, null, null, null, null, manageService); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/HealthMonitor.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/HealthMonitor.java deleted file mode 100644 index 881952cf..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/HealthMonitor.java +++ /dev/null @@ -1,364 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.listener; - -import java.util.List; - -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; - -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.ueb.EPUebHelper; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.transaction.annotation.Transactional; - -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class HealthMonitor { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(HealthMonitor.class); - - @Autowired - private SessionFactory sessionFactory; - - @Autowired - private EPUebHelper epUebHelper; - - private static boolean databaseUp; - private static boolean uebUp; - private static boolean frontEndUp; - private static boolean backEndUp; - private static boolean dbClusterStatusOk; - private static boolean dbPermissionsOk; - - /** - * Read directly by external classes. - */ - public static boolean isSuspended = false; - - private Thread healthMonitorThread; - - public HealthMonitor() { - } - - public static boolean isDatabaseUp() { - return databaseUp; - } - - public static boolean isClusterStatusOk() { - return dbClusterStatusOk; - } - - public static boolean isDatabasePermissionsOk() { - return dbPermissionsOk; - } - - public static boolean isUebUp() { - return uebUp; - } - - public static boolean isFrontEndUp() { - return frontEndUp; - } - - public static boolean isBackEndUp() { - return backEndUp; - } - - private void monitorEPHealth() throws InterruptedException { - - int numIntervalsDatabaseHasBeenDown = 0; - int numIntervalsClusterNotHealthy = 0; - int numIntervalsDatabasePermissionsIncorrect = 0; - int numIntervalsUebHasBeenDown = 0; - - logger.debug(EELFLoggerDelegate.debugLogger, "monitorEPHealth thread started"); - - long sleepInterval = (Long - .valueOf(SystemProperties.getProperty(EPCommonSystemProperties.HEALTH_POLL_INTERVAL_SECONDS)) * 1000); - long numIntervalsBetweenAlerts = Long - .valueOf(SystemProperties.getProperty(EPCommonSystemProperties.HEALTHFAIL_ALERT_EVERY_X_INTERVALS)); - logger.debug(EELFLoggerDelegate.debugLogger, - "monitorEPHealth: Polling health every " + sleepInterval + " milliseconds. Alerting every " - + (sleepInterval * numIntervalsBetweenAlerts) / 1000 + " seconds when component remains down."); - - while (true) { - // - // Get DB status. If down, signal alert once every X intervals. - // - databaseUp = this.checkIfDatabaseUp(); - if (databaseUp == false) { - if ((numIntervalsDatabaseHasBeenDown % numIntervalsBetweenAlerts) == 0) { - logger.debug(EELFLoggerDelegate.debugLogger, - "monitorEPHealth: database down, logging to error log to trigger alert."); - // Write a Log entry that will generate an alert - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckMySqlError); - numIntervalsDatabaseHasBeenDown++; - } else { - numIntervalsDatabaseHasBeenDown = 0; - } - } - - dbClusterStatusOk = this.checkClusterStatus(); - if (dbClusterStatusOk == false) { - if ((numIntervalsClusterNotHealthy % numIntervalsBetweenAlerts) == 0) { - logger.debug(EELFLoggerDelegate.debugLogger, - "monitorEPHealth: cluster nodes down, logging to error log to trigger alert."); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckMySqlError); - numIntervalsClusterNotHealthy++; - } else { - numIntervalsClusterNotHealthy = 0; - } - } - - dbPermissionsOk = this.checkDatabasePermissions(); - if (dbPermissionsOk == false) { - if ((numIntervalsDatabasePermissionsIncorrect % numIntervalsBetweenAlerts) == 0) { - logger.debug(EELFLoggerDelegate.debugLogger, - "monitorEPHealth: database permissions incorrect, logging to error log to trigger alert."); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckMySqlError); - numIntervalsDatabasePermissionsIncorrect++; - } else { - numIntervalsDatabasePermissionsIncorrect = 0; - } - } - - // - // Get UEB status. Publish a bogus message to EP inbox, if 200 OK - // returned, status is Up. - // If down, signal alert once every X intervals. - // EP will ignore this bogus message. - // - uebUp = this.checkIfUebUp(); - if (uebUp == false) { - - if ((numIntervalsUebHasBeenDown % numIntervalsBetweenAlerts) == 0) { - logger.debug(EELFLoggerDelegate.debugLogger, - "monitorEPHealth: UEB down, logging to error log to trigger alert"); - // Write a Log entry that will generate an alert - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckUebClusterError); - numIntervalsUebHasBeenDown++; - } else { - numIntervalsUebHasBeenDown = 0; - } - } - - // The front end should be up because the API is called through - // proxy front end server. - frontEndUp = true; - - // If the rest API called, the backend is always up - backEndUp = true; - - // - // future nice to have...get Partner status - // - // For all apps exposing a rest url, query one of the rest - // urls(/roles?) and manage a list - // of app name/status. We might not return back a non 200 OK in - // health check, but we - // could return information in the json content of a health check. - // - - // - // Get DB status. If down, signal alert once every X intervals. - // - if (Thread.interrupted()) { - logger.info(EELFLoggerDelegate.errorLogger, "monitorEPHealth: thread interrupted"); - break; - } - - try { - Thread.sleep(sleepInterval); - } catch (InterruptedException e) { - logger.error(EELFLoggerDelegate.errorLogger, "monitorEPHealth: sleep interrupted", e); - Thread.currentThread().interrupt(); - } - } - } - - @PostConstruct - public void initHealthMonitor() { - healthMonitorThread = new Thread("EP HealthMonitor thread") { - public void run() { - try { - monitorEPHealth(); - } catch (InterruptedException e) { - logger.debug(EELFLoggerDelegate.debugLogger, "healthMonitorThread interrupted", e); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "healthMonitorThread failed", e); - } - } - }; - healthMonitorThread.start(); - - } - - @PreDestroy - public void closeHealthMonitor() { - this.healthMonitorThread.interrupt(); - } - - /** - * This routine checks whether the database can be read. In June 2017 we - * experimented with checking if the database can be WRITTEN. Writes failed - * with some regularity in a MariaDB Galera cluster, and in that - * environment, the resulting alerts in the log triggered a health monitor - * cron job to shut down the Tomcat instance. The root cause of the cluster - * write failures was not determined. - * - * @return true if the database can be read. - */ - private boolean checkIfDatabaseUp() { - boolean isUp = false; - Session localSession = null; - try { - localSession = sessionFactory.openSession(); - if (localSession != null) { - String sql = "select app_name from fn_app where app_id=1"; - Query query = localSession.createSQLQuery(sql); - @SuppressWarnings("unchecked") - List queryList = query.list(); - if (queryList != null) { - isUp = true; - } - } - } catch (Exception e) { - logger.debug(EELFLoggerDelegate.debugLogger, "checkIfDatabaseUp failed", e); - isUp = false; - } finally { - if (localSession != null) - localSession.close(); - } - return isUp; - } - - private boolean checkClusterStatus() { - boolean isUp = false; - Session localSession = null; - try { - localSession = sessionFactory.openSession(); - if (localSession != null) { - // If all nodes are unhealthy in a cluster, this will throw an - // exception - String sql = "select * from mysql.user"; - Query query = localSession.createSQLQuery(sql); - @SuppressWarnings("unchecked") - List queryList = query.list(); - if (queryList != null) { - isUp = true; - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "checkClusterStatus failed", e); - if ((e.getCause() != null) && (e.getCause().getMessage() != null)) { - logger.error(EELFLoggerDelegate.errorLogger, "checkClusterStatus failure cause", e.getCause()); - } - isUp = false; - } finally { - if (localSession != null) { - localSession.close(); - } - } - return isUp; - } - - private boolean checkDatabasePermissions() { - boolean isUp = false; - Session localSession = null; - try { - localSession = sessionFactory.openSession(); - if (localSession != null) { - String sql = "SHOW GRANTS FOR CURRENT_USER"; - Query query = localSession.createSQLQuery(sql); - @SuppressWarnings("unchecked") - List grantsList = query.list(); - for (String str : grantsList) { - if ((str.toUpperCase().contains("ALL")) - || (str.toUpperCase().contains("DELETE") && str.toUpperCase().contains("SELECT") - && str.toUpperCase().contains("UPDATE") && str.toUpperCase().contains("INSERT"))) { - isUp = true; - break; - } - } - if (isUp == false) { - logger.error(EELFLoggerDelegate.errorLogger, - "checkDatabasePermissions returning false. SHOW GRANTS FOR CURRENT_USER being dumped:"); - for (String str : grantsList) { - logger.error(EELFLoggerDelegate.errorLogger, "grants output item = [" + str + "]"); - } - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "checkDatabasePermissions failed", e); - if ((e.getCause() != null) && (e.getCause().getMessage() != null)) { - logger.error(EELFLoggerDelegate.errorLogger, "checkDatabasePermissions failure cause", e.getCause()); - } - isUp = false; - } finally { - if (localSession != null) { - localSession.close(); - } - } - return isUp; - } - - private boolean checkIfUebUp() { - boolean uebUp = false; - try { - boolean isAvailable = epUebHelper.checkAvailability(); - boolean messageCanBeSent = epUebHelper.MessageCanBeSentToTopic(); - uebUp = (isAvailable && messageCanBeSent); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "checkIfUebUp failed", e); - } - return uebUp; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/UserContextListener.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/UserContextListener.java deleted file mode 100644 index 686bef2d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/UserContextListener.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.listener; - -import java.util.HashMap; - -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.annotation.WebListener; - -@WebListener -public class UserContextListener implements ServletContextListener{ - @SuppressWarnings("rawtypes") - public void contextInitialized(ServletContextEvent event){ - ServletContext context = event.getServletContext(); - // - // instanciate a map to store references to all the active - // sessions and bind it to context scope. - // - HashMap activeUsers = new HashMap(); - context.setAttribute("activeUsers", activeUsers); - } - - /** - * Needed for the ServletContextListener interface. - */ - public void contextDestroyed(ServletContextEvent event){ - // To overcome the problem with losing the session references - // during server restarts, put code here to serialize the - // activeUsers HashMap. Then put code in the contextInitialized - // method that reads and reloads it if it exists... - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/UserSessionListener.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/UserSessionListener.java deleted file mode 100644 index a0093569..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/listener/UserSessionListener.java +++ /dev/null @@ -1,140 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.listener; - -import java.util.HashMap; - -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.annotation.WebListener; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpSessionEvent; -import javax.servlet.http.HttpSessionListener; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.service.SharedContextService; -import org.openecomp.portalsdk.core.domain.support.CollaborateList; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.util.StringUtils; - -/** - * Listens for session-create and session-destroy events. - */ -@WebListener -@SuppressWarnings({ "unchecked", "rawtypes" }) -public class UserSessionListener implements HttpSessionListener { - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserSessionListener.class); - - /** - * Access to the database - */ - @Autowired - SharedContextService sharedContextService; - - public void init(ServletConfig config) { - } - - /** - * Adds sessions to the context scoped HashMap when they begin. - */ - public void sessionCreated(HttpSessionEvent event) { - HttpSession session = event.getSession(); - ServletContext context = session.getServletContext(); - HashMap activeUsers = (HashMap) context.getAttribute("activeUsers"); - - activeUsers.put(session.getId(), session); - context.setAttribute("activeUsers", activeUsers); - logger.info(EELFLoggerDelegate.debugLogger, "Session Created : " + session.getId()); - } - - /** - * Removes sessions from the context scoped HashMap when they expire or are - * invalidated. - */ - public void sessionDestroyed(HttpSessionEvent event) { - try { - HttpSession session = event.getSession(); - ServletContext context = session.getServletContext(); - HashMap activeUsers = (HashMap) context.getAttribute("activeUsers"); - activeUsers.remove(session.getId()); - - EPUser user = (EPUser) session - .getAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME)); - if (user != null && !StringUtils.isEmpty(user.getOrgUserId())) { - CollaborateList.delUserName(user.getOrgUserId()); - } - - // Remove any shared context entries for this session. - if (getSharedContextService() != null) { - getSharedContextService().deleteSharedContexts(session.getId()); - - // Clean the shared context each time a session is destroyed. - // TODO: move the threshold to configuration file. - getSharedContextService().expireSharedContexts(60 * 60 * 8); - } - - logger.info(EELFLoggerDelegate.debugLogger, "Session Destroyed : " + session.getId()); - - } catch (Exception e) { - logger.warn(EELFLoggerDelegate.errorLogger, "sessionDestroyed failed", e); - } - } - - private static ApplicationContext applicationContext; - - public static void setApplicationContext(ApplicationContext _applicationContext) { - applicationContext = _applicationContext; - } - - public SharedContextService getSharedContextService() { - if (sharedContextService == null) { - if (applicationContext != null) - sharedContextService = (SharedContextService) applicationContext.getBean("sharedContextService"); - } - - return sharedContextService; - } - - public void setSharedContextService(SharedContextService sharedContextService) { - this.sharedContextService = sharedContextService; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPAuditLog.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPAuditLog.java deleted file mode 100644 index 7d761254..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPAuditLog.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.logging.aop; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target({ElementType.METHOD, ElementType.TYPE}) -@Retention(RetentionPolicy.RUNTIME) -public @interface EPAuditLog { - String value() default ""; -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPEELFLoggerAdvice.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPEELFLoggerAdvice.java deleted file mode 100644 index d095bbdb..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPEELFLoggerAdvice.java +++ /dev/null @@ -1,387 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.logging.aop; - -import java.net.InetAddress; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.UUID; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.exception.SessionExpiredException; -import org.openecomp.portalsdk.core.logging.format.AlarmSeverityEnum; -import org.openecomp.portalsdk.core.logging.format.AuditLogFormatter; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.util.SystemProperties.SecurityEventTypeEnum; -import org.openecomp.portalsdk.core.web.support.UserUtils; -import org.slf4j.MDC; - -import com.att.eelf.configuration.Configuration; - -@org.springframework.context.annotation.Configuration -public class EPEELFLoggerAdvice { - - private EELFLoggerDelegate adviceLogger = EELFLoggerDelegate.getLogger(EPEELFLoggerAdvice.class); - - /** - * DateTime Format according to the ECOMP Application Logging Guidelines. - */ - private static final SimpleDateFormat ecompLogDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); - - /** - * @return Current date and time in the format specified by the ECOMP - * Application Logging Guidelines. - */ - public static String getCurrentDateTimeUTC() { - String currentDateTime = ecompLogDateFormat.format(new Date()); - return currentDateTime; - } - - /** - * Sets logging context with values from HttpServletRequest object. - * - * @param req - * HttpServletRequest - * @param securityEventType - * SecurityEventTypeEnum - */ - public void loadServletRequestBasedDefaults(HttpServletRequest req, SecurityEventTypeEnum securityEventType) { - try { - setHttpRequestBasedDefaultsIntoGlobalLoggingContext(req, securityEventType, req.getServletPath()); - } catch (Exception e) { - adviceLogger.error(EELFLoggerDelegate.errorLogger, "loadServletRequestBasedDefaults failed", e); - } - } - - /** - * - * @param securityEventType - * @param args - * @param passOnArgs - * @return Object array - */ - public Object[] before(SecurityEventTypeEnum securityEventType, Object[] args, Object[] passOnArgs) { - String className = ""; - if (passOnArgs.length > 0 && passOnArgs[0] != null) - className = passOnArgs[0].toString(); - String methodName = ""; - if (passOnArgs.length > 1 && passOnArgs[1] != null) - methodName = passOnArgs[1].toString(); - - // Initialize Request defaults only for controller methods. - MDC.put(className + methodName + EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP, getCurrentDateTimeUTC()); - MDC.put(EPCommonSystemProperties.TARGET_ENTITY, EPCommonSystemProperties.ECOMP_PORTAL_BE); - MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, methodName); - if (securityEventType != null) { - MDC.put(className + methodName + EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, - getCurrentDateTimeUTC()); - HttpServletRequest req = null; - if (args.length > 0 && args[0] != null && args[0] instanceof HttpServletRequest) { - req = (HttpServletRequest) args[0]; - this.setHttpRequestBasedDefaultsIntoGlobalLoggingContext(req, securityEventType, methodName); - } - } - - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(className); - logger.debug(EELFLoggerDelegate.debugLogger, "EPEELFLoggerAdvice#before: entering {}", methodName); - return new Object[] { "" }; - } - - /** - * - * @param securityEventType - * @param statusCode - * @param responseCode - * @param args - * @param returnArgs - * @param passOnArgs - */ - public void after(SecurityEventTypeEnum securityEventType, String statusCode, String responseCode, Object[] args, - Object[] returnArgs, Object[] passOnArgs) { - String className = ""; - if (passOnArgs.length > 0 && passOnArgs[0] != null) - className = passOnArgs[0].toString(); - // Method Name - String methodName = ""; - if (passOnArgs.length > 1 && passOnArgs[1] != null) - methodName = passOnArgs[1].toString(); - - if (MDC.get(EPCommonSystemProperties.TARGET_SERVICE_NAME) == null - || MDC.get(EPCommonSystemProperties.TARGET_SERVICE_NAME) == "") - MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, methodName); - - if (MDC.get(EPCommonSystemProperties.TARGET_ENTITY) == null - || MDC.get(EPCommonSystemProperties.TARGET_ENTITY) == "") - MDC.put(EPCommonSystemProperties.TARGET_ENTITY, EPCommonSystemProperties.ECOMP_PORTAL_BE); - - MDC.put(EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP, - MDC.get(className + methodName + EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP)); - MDC.put(EPCommonSystemProperties.METRICSLOG_END_TIMESTAMP, getCurrentDateTimeUTC()); - this.calculateDateTimeDifference(MDC.get(EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP), - MDC.get(EPCommonSystemProperties.METRICSLOG_END_TIMESTAMP)); - - // Making sure to reload the INCOMING request MDC defaults if they have - // been wiped out by either Outgoing or LDAP Phone book search - // operations. - if (securityEventType != null && args.length > 0 && args[0] != null && args[0] instanceof HttpServletRequest - && securityEventType == SecurityEventTypeEnum.INCOMING_REST_MESSAGE - && (MDC.get(EPCommonSystemProperties.FULL_URL) == null - || MDC.get(EPCommonSystemProperties.FULL_URL) == "")) { - HttpServletRequest req = (HttpServletRequest) args[0]; - this.setHttpRequestBasedDefaultsIntoGlobalLoggingContext(req, securityEventType, methodName); - } - - // Use external API response code in case if it resulted in an error. - String externalAPIResponseCode = MDC.get(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE); - if (externalAPIResponseCode == null || externalAPIResponseCode == "" - || externalAPIResponseCode.trim().equalsIgnoreCase("200")) { - MDC.put(EPCommonSystemProperties.RESPONSE_CODE, responseCode); - MDC.put(EPCommonSystemProperties.STATUS_CODE, statusCode); - } else { - MDC.put(EPCommonSystemProperties.RESPONSE_CODE, externalAPIResponseCode); - MDC.put(EPCommonSystemProperties.STATUS_CODE, "ERROR"); - } - - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(className); - logger.debug(EELFLoggerDelegate.debugLogger, "EPEELFLoggerAdvice#after: finished {}", methodName); - // add the metrics log - logger.info(EELFLoggerDelegate.metricsLogger, methodName + " operation is completed."); - - // Log security message, if necessary - if (securityEventType != null) { - MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP, - MDC.get(className + methodName + EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)); - MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, getCurrentDateTimeUTC()); - this.calculateDateTimeDifference(MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP), - MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)); - - this.logSecurityMessage(logger, securityEventType, methodName); - - // Outgoing & LDAP messages are part of Incoming requests so, - // keep "RequestId", "PartnerName", "ServiceName", "LoginId" & - // "ResponseCode" etc. in memory and remove it only when - // finished processing the parent incoming message. - if (securityEventType != SecurityEventTypeEnum.OUTGOING_REST_MESSAGE - && securityEventType != SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH) { - MDC.remove(Configuration.MDC_KEY_REQUEST_ID); - MDC.remove(EPCommonSystemProperties.PARTNER_NAME); - MDC.remove(Configuration.MDC_SERVICE_NAME); - MDC.remove(EPCommonSystemProperties.MDC_LOGIN_ID); - MDC.remove(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE); - } - - // clear when finishes audit logging - MDC.remove(EPCommonSystemProperties.FULL_URL); - MDC.remove(EPCommonSystemProperties.PROTOCOL); - MDC.remove(EPCommonSystemProperties.STATUS_CODE); - MDC.remove(className + methodName + EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.RESPONSE_CODE); - } - MDC.remove(className + methodName + EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.METRICSLOG_END_TIMESTAMP); - MDC.remove(EPCommonSystemProperties.MDC_TIMER); - MDC.remove(EPCommonSystemProperties.TARGET_ENTITY); - MDC.remove(EPCommonSystemProperties.TARGET_SERVICE_NAME); - } - - /** - * - * @param logger - * @param securityEventType - * @param restMethod - */ - private void logSecurityMessage(EELFLoggerDelegate logger, SecurityEventTypeEnum securityEventType, - String restMethod) { - StringBuilder additionalInfoAppender = new StringBuilder(); - String auditMessage = ""; - - if (securityEventType == SecurityEventTypeEnum.OUTGOING_REST_MESSAGE) { - additionalInfoAppender.append(String.format("%s '%s' request was initiated.", restMethod, - MDC.get(EPCommonSystemProperties.TARGET_SERVICE_NAME))); - } else if (securityEventType == SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH) { - additionalInfoAppender.append("LDAP Phonebook search operation is performed."); - } else { - additionalInfoAppender.append(String.format("%s request was received.", restMethod)); - - if (securityEventType == SecurityEventTypeEnum.FE_LOGIN_ATTEMPT) { - String loginId = ""; - String additionalMessage = " Successfully authenticated."; - loginId = MDC.get(EPCommonSystemProperties.MDC_LOGIN_ID); - if (loginId == null || loginId == "" || loginId == EPCommonSystemProperties.UNKNOWN) { - additionalMessage = " No cookies are found."; - } - additionalInfoAppender.append(additionalMessage); - } else if (securityEventType == SecurityEventTypeEnum.FE_LOGOUT) { - additionalInfoAppender.append(" User has been successfully logged out."); - } - } - - String fullURL = MDC.get(EPCommonSystemProperties.FULL_URL); - if (fullURL != null && fullURL != "") { - additionalInfoAppender.append(" Request-URL:" + MDC.get(EPCommonSystemProperties.FULL_URL)); - } - - auditMessage = AuditLogFormatter.getInstance().createMessage(MDC.get(EPCommonSystemProperties.PROTOCOL), - securityEventType.name(), MDC.get(EPCommonSystemProperties.MDC_LOGIN_ID), - additionalInfoAppender.toString()); - - logger.info(EELFLoggerDelegate.auditLogger, auditMessage); - } - - /** - * - * @param req - * @param securityEventType - * @param restMethod - */ - private void setHttpRequestBasedDefaultsIntoGlobalLoggingContext(HttpServletRequest req, - SecurityEventTypeEnum securityEventType, String restMethod) { - /** - * No need to load the request based defaults for the following security - * messages since either they are initiated by the Portal BE or not Http - * request based. - */ - if (req != null) { - if (securityEventType != SecurityEventTypeEnum.OUTGOING_REST_MESSAGE - && securityEventType != SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH - && securityEventType != SecurityEventTypeEnum.INCOMING_UEB_MESSAGE) { - // Load the RequestID (aka TrasactionId) into MDC context. - String requestId = UserUtils.getRequestId(req); - if (requestId == "" || requestId == null) { - requestId = UUID.randomUUID().toString(); - } - MDC.put(Configuration.MDC_KEY_REQUEST_ID, requestId); - - // Load user agent into MDC context, if available. - String accessingClient = "Unknown"; - accessingClient = req.getHeader(SystemProperties.USERAGENT_NAME); - if (accessingClient != null && accessingClient != "" && (accessingClient.contains("Mozilla") - || accessingClient.contains("Chrome") || accessingClient.contains("Safari"))) { - accessingClient = EPCommonSystemProperties.ECOMP_PORTAL_FE; - } - MDC.put(EPCommonSystemProperties.PARTNER_NAME, accessingClient); - - // Load loginId into MDC context. - EPUser user = null; - try { - user = EPUserUtils.getUserSession(req); - } catch (SessionExpiredException se) { - adviceLogger.debug(EELFLoggerDelegate.debugLogger, - "setHttpRequestBasedDefaultsIntoGlobalLoggingContext: No user found in session"); - } - - MDC.put(EPCommonSystemProperties.MDC_LOGIN_ID, (user != null ? user.getOrgUserId() : "NoUser")); - - // Rest URL & Protocol - String restURL = ""; - MDC.put(EPCommonSystemProperties.FULL_URL, EPCommonSystemProperties.UNKNOWN); - MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTP); - restURL = UserUtils.getFullURL(req); - if (restURL != null && restURL != "") { - MDC.put(EPCommonSystemProperties.FULL_URL, restURL); - if (restURL.toLowerCase().contains("https")) { - MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTPS); - } - } - - // Rest Path - MDC.put(Configuration.MDC_SERVICE_NAME, restMethod); - String restPath = req.getServletPath(); - if (restPath != null && restPath != "") { - MDC.put(Configuration.MDC_SERVICE_NAME, restPath); - } - - // Client IPAddress i.e. IPAddress of the remote host who is - // making this request. - String clientIPAddress = ""; - clientIPAddress = req.getHeader("X-FORWARDED-FOR"); - if (clientIPAddress == null) { - clientIPAddress = req.getRemoteAddr(); - } - MDC.put(EPCommonSystemProperties.CLIENT_IP_ADDRESS, clientIPAddress); - } else if (securityEventType == SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH) { - MDC.put(EPCommonSystemProperties.TARGET_ENTITY, "Phonebook"); - MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, "search"); - } - } else { - MDC.put(Configuration.MDC_SERVICE_NAME, restMethod); - MDC.put(EPCommonSystemProperties.PARTNER_NAME, EPCommonSystemProperties.ECOMP_PORTAL_FE); - } - - MDC.put(Configuration.MDC_SERVICE_INSTANCE_ID, ""); - MDC.put(Configuration.MDC_ALERT_SEVERITY, AlarmSeverityEnum.INFORMATIONAL.toString()); - try { - MDC.put(Configuration.MDC_SERVER_FQDN, InetAddress.getLocalHost().getHostName()); - MDC.put(Configuration.MDC_SERVER_IP_ADDRESS, InetAddress.getLocalHost().getHostAddress()); - MDC.put(Configuration.MDC_INSTANCE_UUID, SystemProperties.getProperty(SystemProperties.INSTANCE_UUID)); - } catch (Exception e) { - adviceLogger.error(EELFLoggerDelegate.errorLogger, - "setHttpRequestBasedDefaultsIntoGlobalLoggingContext failed", e); - } - } - - /** - * - * @param beginDateTime - * @param endDateTime - */ - private void calculateDateTimeDifference(String beginDateTime, String endDateTime) { - if (beginDateTime != null && endDateTime != null) { - try { - Date beginDate = ecompLogDateFormat.parse(beginDateTime); - Date endDate = ecompLogDateFormat.parse(endDateTime); - String timeDifference = String.format("%d", endDate.getTime() - beginDate.getTime()); - MDC.put(SystemProperties.MDC_TIMER, timeDifference); - } catch (Exception e) { - adviceLogger.error(EELFLoggerDelegate.errorLogger, "calculateDateTimeDifference failed", e); - } - } - } - - public String getInternalResponseCode() { - return MDC.get(EPCommonSystemProperties.RESPONSE_CODE); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPMetricsLog.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPMetricsLog.java deleted file mode 100644 index 4cd5971f..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/aop/EPMetricsLog.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.logging.aop; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target({ElementType.METHOD, ElementType.TYPE}) -@Retention(RetentionPolicy.RUNTIME) -public @interface EPMetricsLog { - String value() default ""; -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/ApplicationCodes.properties b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/ApplicationCodes.properties deleted file mode 100644 index 09d73085..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/ApplicationCodes.properties +++ /dev/null @@ -1,159 +0,0 @@ -### -# ============LICENSE_START========================================== -# ONAP Portal -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software 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. -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# 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============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -### -######################################################################## -#Resource key=Error Code|Message text|Resolution text |Description text -####### -#Newlines can be utilized to add some clarity ensuring continuing line -#has atleast one leading space -#ResourceKey=\ -# ERR0000E\ -# Sample error msg txt\ -# Sample resolution msg\ -# Sample description txt -# -###### -#Error code classification category -#100 Permission errors -#200 Availability errors/Timeouts -#300 Data errors -#400 Schema Interface type/validation errors -#500 Business process errors -#900 Unknown errors -# -######################################################################## - -# Define Alarm Codes Specific to ECOMP Portal -BEUEBAUTHENTICATIONERROR_ONE_ARGUMENT= ||Reason: {0}.|\ - An Authentication failure occurred during access to UEB server. Please check that UEB keys are configured correctly under fusion.properties file. - -BERESTAPIAUTHENTICATIONERROR = |||Please check application credentials defined in Database or portal.properties file. - -INTERNALAUTHENTICATIONINFO_ONE_ARGUMENT=||Description: {0}.|Please check the logs for more information. - -INTERNALAUTHENTICATIONWARNING_ONE_ARGUMENT=||Description: {0}.|Please check the logs for more information. - -INTERNALAUTHENTICATIONERROR_ONE_ARGUMENT=||Description: {0}.|Please check the logs for more information. - -INTERNALAUTHENTICATIONFATAL_ONE_ARGUMENT=||Description: {0}.|Please check the logs for more information. - -BEHEALTHCHECKERROR= |||Please check the logs for more information. - -BEHEALTHCHECKMYSQLERROR= ||Please check the logs for more information.|\ - Check connectivity to MYSQL is configured correctly under system.properties file. - -BEHEALTHCHECKUEBCLUSTERERROR= ||Please check the logs for more information.|\ - Check connectivity to UEB cluster which is configured under portal.properties file. - -FEHEALTHCHECKERROR= |||Please check connectivity from this FE instance towards BE or BE Load Balancer. - -BEHEALTHCHECKRECOVERY= |||Please check logs for more specific information about the problem. - -BEHEALTHCHECKMYSQLRECOVERY= |||Please check logs for more specific information about the problem. - -BEHEALTHCHECKUEBCLUSTERRECOVERY= |||Please check logs for more specific information about the problem. - -FEHEALTHCHECKRECOVERY= |||Please check logs for more specific information about the problem. - -#UEB communication -BEUEBCONNECTIONERROR_ONE_ARGUMENT= ||Reason: {0}.|\ - Please check UEB server list and keys configured under Portal.Properties file. - -BEUEBUNKOWNHOSTERROR_ONE_ARGUMENT= ||Cannot reach host {0}.|\ - Please check UEB server list and keys configured under Portal.Properties file. - -#Onboarding apps -BEUEBREGISTERONBOARDINGAPPERROR= ||Reason: {0}.|\ - Please check UEB server list and keys configured under Portal.Properties file. - -#HTTP communication -BEHTTPCONNECTIONERROR_ONE_ARGUMENT= ||Reason: {0}.|Please check the logs for more information. - -INTERNALCONNECTIONINFO_ONE_ARGUMENT= ||Description: {0}.|Please check the logs for more information. - -INTERNALCONNECTIONWARNING_ONE_ARGUMENT= ||Description: {0}.|Please check the logs for more information. - -INTERNALCONNECTIONERROR_ONE_ARGUMENT= ||Description: {0}.|Please check the logs for more information. - -INTERNALCONNECTIONFATAL_ONE_ARGUMENT= ||Description: {0}.|Please check the logs for more information. - -BEUEBOBJECTNOTFOUNDERROR_ONE_ARGUMENT= ||Data not found: {0}.|\ - An error occurred during access to UEB Server, {1} failed to either register or unregister to/from UEB topic. - -#Login error codes -BEUSERMISSINGERROR_ONE_ARGUMENT= |||\ - User {0} must be added to the corresponding application with proper user roles. - -BEUSERINACTIVEWARNING_ONE_ARGUMENT= |||\ - User {0} must be added to the corresponding application with proper user roles. - -BEUSERADMINPRIVILEGESINFO_ONE_ARGUMENT= |||\ - User {0} should be given proper administrator role for the corresponding application to perform the necessary actions. - -BEINVALIDJSONINPUT= |||Please check error logs for more information. - -BEINCORRECTHTTPSTATUSERROR= |||Please check logs for more information. - -BEINITIALIZATIONERROR= |||Please check logs for more information. - -BEUEBSYSTEMERROR= ||\ - Operation: {0}.|\ - An error occurred in {1} distribution mechanism. Please check the logs for more information. - -BEDAOSYSTEMERROR= |||Please check MySQL DB health or look at the logs for more details. - -BESYSTEMERROR= |||Please check logs for more information. - -BEEXECUTEROLLBACKERROR= |||Please check MYSQL DB health or look at the logs for more details. - -FEHTTPLOGGINGERROR= |||Please check MYSQL DB health or look at the logs for more details. - -FEPORTALSERVLETERROR= |||Please check logs for more specific information about the problem. - -BEDAOCLOSESESSIONERROR= |||Please check MYSQL DB health or look at the logs form more details. - -BERESTAPIGENERALERROR= |||Please check error log for more information. - -FEHEALTHCHECKGENERALERROR= |||Please check error log for more information. - -INTERNALUNEXPECTEDINFO_ONE_ARGUMENT= |||Description: {0}. - -INTERNALUNEXPECTEDWARNING_ONE_ARGUMENT= |||Description: {0}. - -INTERNALUNEXPECTEDERROR_ONE_ARGUMENT= |||Description: {0}. - -INTERNALUNEXPECTEDFATAL_ONE_ARGUMENT= |||Description: {0}. diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/EPAppMessagesEnum.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/EPAppMessagesEnum.java deleted file mode 100644 index 4a99eeeb..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/EPAppMessagesEnum.java +++ /dev/null @@ -1,286 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.logging.format; - -import org.openecomp.portalsdk.core.logging.format.AlarmSeverityEnum; -import org.openecomp.portalsdk.core.logging.format.ErrorSeverityEnum; -import org.openecomp.portalsdk.core.logging.format.ErrorTypeEnum; - -/** - * - * Add ECOMP Portal Specific Error Code Enums here, for generic - * ones (ones you think are useful not only Portal but also SDK), add it - * to the enum class AppMessagesEnum defined in SDK. - */ -public enum EPAppMessagesEnum { - /* - 100-199 Security/Permission Related - - Authentication problems (from external client, to external server) - - Certification errors - - - - 200-299 Availability/Timeout Related - - connectivity error - - connection timeout - - 300-399 Data Access/Integrity Related - - Data in graph in invalid(E.g. no creator is found for service) - - Artifact is missing in ES, but exists in graph. - - 400-499 Schema Interface Type/Validation - - received Pay-load checksum is invalid - - received JSON is not valid - - 500-599 Business/Flow Processing Related - - check out to service is not allowed - - Roll-back is done - - failed to generate heat file - - - 600-899 Reserved - do not use - - 900-999 Unknown Errors - - Unexpected exception - */ - - BeUebAuthenticationError(EPErrorCodesEnum.BEUEBAUTHENTICATIONERROR_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR100E", "An Authentication failure occurred during access to UEB server", "Details: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."), - - BeRestApiAuthenticationError(EPErrorCodesEnum.BERESTAPIAUTHENTICATIONERROR, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR101E", "Rejected an incoming REST API request due to invalid credentials", "", "Please check application credentials defined in Database or properties files."), - - InternalAuthenticationInfo(EPErrorCodesEnum.INTERNALAUTHENTICATIONINFO_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, - "ERR199I", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."), - - InternalAuthenticationWarning(EPErrorCodesEnum.INTERNALAUTHENTICATIONWARNING_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN, - "ERR199W", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."), - - InternalAuthenticationError(EPErrorCodesEnum.INTERNALAUTHENTICATIONERROR_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR199E", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."), - - InternalAuthenticationFatal(EPErrorCodesEnum.INTERNALAUTHENTICATIONFATAL_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL, - "ERR199F", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."), - - BeHealthCheckError(EPErrorCodesEnum.BeHEALTHCHECKERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, - "ERR200E", "ECOMP-PORTAL Back-end probably lost connectivity to either one of the following components: MySQL DB, UEB Cluster", "", "Please check the logs for more information."), - - BeHealthCheckMySqlError(EPErrorCodesEnum.BEHEALTHCHECKMYSQLERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, - "ERR201E", "ECOMP-PORTAL Back-end probably lost connectivity to MySQL DB", "", "Check connectivity to MYSQL is configured correctly under system.properties file."), - - BeHealthCheckUebClusterError(EPErrorCodesEnum.BEHEALTHCHECKUEBCLUSTERERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, - "ERR203E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "", "Check connectivity to UEB cluster which is configured under portal.properties file."), - - FeHealthCheckError(EPErrorCodesEnum.FEHEALTHCHECKERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, - "ERR204E", "Unable to connect to a valid ECOMP-PORTAL Back-end Server.", "", "Please check connectivity from this FE instance towards BE or BE Load Balancer."), - - BeHealthCheckRecovery(EPErrorCodesEnum.BEHEALTHCHECKRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, - "ERR205I", "ECOMP-PORTAL Back-end Recovery to either one of the following components: MySQL DB, UEB Cluster", "", "Please check logs for more specific information about the problem."), - - BeHealthCheckMySqlRecovery(EPErrorCodesEnum.BEHEALTHCHECKMYSQLRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, - "ERR206I", "ECOMP-PORTAL Back-end connection recovery to MySQL DB", "", "Please check logs for more specific information about the problem."), - - BeHealthCheckUebClusterRecovery(EPErrorCodesEnum.BEHEALTHCHECKUEBCLUSTERRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, - "ERR208I", "ECOMP-PORTAL Back-end connection recovery to UEB Cluster", "", "Please check logs for more specific information about the problem."), - - FeHealthCheckRecovery(EPErrorCodesEnum.FEHEALTHCHECKRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, - "ERR209I", "Connectivity to ECOMP-PORTAL Front-end Server is recovered", "", "Please check logs for more specific information about the problem."), - - BeUebConnectionError(EPErrorCodesEnum.BEUEBCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR210E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "Details: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."), - - BeUebUnkownHostError(EPErrorCodesEnum.BEUEBUNKOWNHOSTERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR211E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "Cannot reach host: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."), - - BeUebRegisterOnboardingAppError(EPErrorCodesEnum.BEUEBREGISTERONBOARDINGAPPERROR, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR212E", "Failed to register the On-boarding application with UEB Communication server", "Details: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."), - - BeHttpConnectionError(EPErrorCodesEnum.BEHTTPCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR213E", "It could be that communication to an external application might resulted an exception or failed to reach the external application", - "Details: {0}.", "Please check logs for more information."), - - InternalConnectionInfo(EPErrorCodesEnum.INTERNALCONNECTIONINFO_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, - "ERR299I", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."), - - InternalConnectionWarning(EPErrorCodesEnum.INTERNALCONNECTIONWARNING_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN, - "ERR299W", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."), - - InternalConnectionError(EPErrorCodesEnum.INTERNALCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR299E", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."), - - InternalConnectionFatal(EPErrorCodesEnum.INTERNALCONNECTIONFATAL_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL, - "ERR299F", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."), - - BeUebObjectNotFoundError(EPErrorCodesEnum.BEUEBOBJECTNOTFOUNDERROR_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR303E", "Error occurred during access to U-EB Server.", "Data not found: {0}.", "An error occurred during access to UEB Server, {1} failed to either register or unregister to/from UEB topic."), - - BeUserMissingError(EPErrorCodesEnum.BEUSERMISSINGERROR_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR310E", "User is not found", "", "User {0} must be added to the corresponding application with proper user roles."), - - BeUserInactiveWarning(EPErrorCodesEnum.BEUSERINACTIVEWARNING_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN, - "ERR313W", "User is found but in-active", "", "User {0} must be added to the corresponding application with proper user roles."), - - BeUserAdminPrivilegesInfo(EPErrorCodesEnum.BEUSERADMINPRIVILEGESINFO_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN, - "ERR314W", "User is found but don't have administrative privileges", "", "User {0} should be given administrator role for the corresponding application to perform the necessary actions."), - - BeInvalidJsonInput(EPErrorCodesEnum.BEINVALIDJSONINPUT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR405E", "Failed to convert JSON input to object", "", "Please check logs for more information."), - - BeIncorrectHttpStatusError(EPErrorCodesEnum.BEINCORRECTHTTPSTATUSERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR407E", "Communication to an external application is resulted in with Incorrect Http response code", "", "Please check logs for more information."), - - BeInitializationError(EPErrorCodesEnum.BEINITIALIZATIONERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, - "ERR500E", "ECOMP-PORTAL Back-end was not initialized properly", "", "Please check logs for more information."), - - BeUebSystemError(EPErrorCodesEnum.BEUEBSYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR502E", "Error occurred during access to U-EB Server", "Details: {0}.", "An error occurred in {1} distribution mechanism. Please check the logs for more information."), - - BeDaoSystemError(EPErrorCodesEnum.BEDAOSYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, - "ERR505E", "Performing DDL or DML operations on database might have failed", "", "Please check MySQL DB health or look at the logs for more details."), - - BeSystemError(EPErrorCodesEnum.BESYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, - "ERR506E", "Unexpected error during operation", "", "Please check logs for more information."), - - BeExecuteRollbackError(EPErrorCodesEnum.BEEXECUTEROLLBACKERROR, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR507E", "Roll-back operation towards database has failed", "", "Please check MYSQL DB health or look at the logs for more details."), - - FeHttpLoggingError(EPErrorCodesEnum.FEHTTPLOGGINGERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.ERROR, - "ERR517E", "Error when logging FE HTTP request/response", "", "Please check MYSQL DB health or look at the logs for more details."), - - FePortalServletError(EPErrorCodesEnum.FEPORTALSERVLETERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR518E", "Error when trying to access FE Portal page.", "", "Please check logs for more information."), - - BeDaoCloseSessionError(EPErrorCodesEnum.BEDAOCLOSESESSIONERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR519E", "Close local session operation with database failed", "", "Please check MYSQL DB health or look at the logs form more details."), - - BeRestApiGeneralError(EPErrorCodesEnum.BERESTAPIGENERALERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, - "ERR900E", "Unexpected error during ECOMP-PORTAL Back-end REST API execution", "", "Please check error log for more information."), - - FeHealthCheckGeneralError(EPErrorCodesEnum.FEHEALTHCHECKGENERALERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR, - "ERR901E", "General error during FE Health Check", "", "Please check error log for more information."), - - InternalUnexpectedInfo(EPErrorCodesEnum.INTERNALUNEXPECTEDINFO_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO, - "ERR999I", "Unexpected error", "Details: {0}.", "Please check logs for more information."), - - InternalUnexpectedWarning(EPErrorCodesEnum.INTERNALUNEXPECTEDWARNING_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN, - "ERR999W", "Unexpected error", "Details: {0}.", "Please check logs for more information."), - - InternalUnexpectedError(EPErrorCodesEnum.INTERNALUNEXPECTEDERROR_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR999E", "Unexpected error", "Details: {0}.", "Please check logs for more information."), - - InternalUnexpectedFatal(EPErrorCodesEnum.INTERNALUNEXPECTEDFATAL_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL, - "ERR999F", "Unexpected error", "Details: {0}.", "Please check logs for more information."), - - ExternalAuthAccessConnectionError(EPErrorCodesEnum.EXTERNALAUTHACCESS_CONNECTIONERROR, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR220E", "AAF Connection problem", "Details: {0}.", "Please check logs for more information."), - - ExternalAuthAccessAuthenticationError(EPErrorCodesEnum.EXTERNALAUTHACCESS_AUTHENTICATIONERROR, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR120E", "AAF authentication problem", "Details: {0}.", "Please check logs for more information."), - - ExternalAuthAccessGeneralError(EPErrorCodesEnum.EXTERNALAUTHACCESS_GENERALERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR, - "ERR520E", "Unexpected error", "Details: {0}.", "Please check logs for more information."), - - ; - - ErrorTypeEnum eType; - AlarmSeverityEnum alarmSeverity; - EPErrorCodesEnum messageCode; - ErrorSeverityEnum errorSeverity; - String errorCode; - String errorDescription; - String details; - String resolution; - - EPAppMessagesEnum(EPErrorCodesEnum messageCode, ErrorTypeEnum eType, AlarmSeverityEnum alarmSeverity, ErrorSeverityEnum errorSeverity, String errorCode, String errorDescription, - String details, String resolution) { - this.messageCode = messageCode; - this.eType = eType; - this.alarmSeverity = alarmSeverity; - this.errorSeverity = errorSeverity; - this.errorCode = errorCode; - this.errorDescription = errorDescription; - this.details = details; - this.resolution = resolution; - } - - public String getDetails() { - return this.details; - } - - public String getResolution() { - return this.resolution; - } - public String getErrorCode() { - return this.errorCode; - } - - public String getErrorDescription() { - return this.errorDescription; - } - - public ErrorSeverityEnum getErrorSeverity() { - return this.errorSeverity; - } - - public void setErrorSeverity(ErrorSeverityEnum errorSeverity) { - this.errorSeverity = errorSeverity; - } - - public EPErrorCodesEnum getMessageCode() { - return messageCode; - } - - public void setMessageCode(EPErrorCodesEnum messageCode) { - this.messageCode = messageCode; - } - - public AlarmSeverityEnum getAlarmSeverity() { - return alarmSeverity; - } - - public void setAlarmSeverity(AlarmSeverityEnum alarmSeverity) { - this.alarmSeverity = alarmSeverity; - } - - public ErrorTypeEnum getErrorType() { - return eType; - } - - public void setErrorType(ErrorTypeEnum eType) { - this.eType = eType; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/EPErrorCodesEnum.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/EPErrorCodesEnum.java deleted file mode 100644 index cdcc0643..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/format/EPErrorCodesEnum.java +++ /dev/null @@ -1,116 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.logging.format; - -import com.att.eelf.i18n.EELFResolvableErrorEnum; -import com.att.eelf.i18n.EELFResourceManager; - -/** - * - * Add ECOMP Portal Specific Error Code Enums here, for generic - * ones (ones you think are useful not only Portal but also SDK), add it - * to the enum class AppMessagesEnum defined in SDK. - */ -public enum EPErrorCodesEnum implements EELFResolvableErrorEnum { - BERESTAPIAUTHENTICATIONERROR, - BEHTTPCONNECTIONERROR_ONE_ARGUMENT, - BEUEBAUTHENTICATIONERROR_ONE_ARGUMENT, - - INTERNALAUTHENTICATIONINFO_ONE_ARGUMENT, - INTERNALAUTHENTICATIONWARNING_ONE_ARGUMENT, - INTERNALAUTHENTICATIONERROR_ONE_ARGUMENT, - INTERNALAUTHENTICATIONFATAL_ONE_ARGUMENT, - - BEHEALTHCHECKRECOVERY, - BEHEALTHCHECKMYSQLRECOVERY, - BEHEALTHCHECKUEBCLUSTERRECOVERY, - FEHEALTHCHECKRECOVERY, - BeHEALTHCHECKERROR, - - BEHEALTHCHECKMYSQLERROR, - BEHEALTHCHECKUEBCLUSTERERROR, - FEHEALTHCHECKERROR, - BEUEBCONNECTIONERROR_ONE_ARGUMENT, - BEUEBUNKOWNHOSTERROR_ONE_ARGUMENT, - BEUEBREGISTERONBOARDINGAPPERROR, - - INTERNALCONNECTIONINFO_ONE_ARGUMENT, - INTERNALCONNECTIONWARNING_ONE_ARGUMENT, - INTERNALCONNECTIONERROR_ONE_ARGUMENT, - INTERNALCONNECTIONFATAL_ONE_ARGUMENT, - - BEUEBOBJECTNOTFOUNDERROR_ONE_ARGUMENT, - BEUSERMISSINGERROR_ONE_ARGUMENT, - - BEUSERINACTIVEWARNING_ONE_ARGUMENT, - BEUSERADMINPRIVILEGESINFO_ONE_ARGUMENT, - - BEINVALIDJSONINPUT, - BEINCORRECTHTTPSTATUSERROR, - - BEINITIALIZATIONERROR, - BEUEBSYSTEMERROR, - BEDAOSYSTEMERROR, - BESYSTEMERROR, - BEEXECUTEROLLBACKERROR, - - FEHTTPLOGGINGERROR, - FEPORTALSERVLETERROR, - BEDAOCLOSESESSIONERROR, - - BERESTAPIGENERALERROR, - FEHEALTHCHECKGENERALERROR, - - INTERNALUNEXPECTEDINFO_ONE_ARGUMENT, - INTERNALUNEXPECTEDWARNING_ONE_ARGUMENT, - INTERNALUNEXPECTEDERROR_ONE_ARGUMENT, - INTERNALUNEXPECTEDFATAL_ONE_ARGUMENT, - - EXTERNALAUTHACCESS_CONNECTIONERROR, - EXTERNALAUTHACCESS_AUTHENTICATIONERROR, - EXTERNALAUTHACCESS_GENERALERROR, - ; - - /** - * Static initializer to ensure the resource bundles for this class are loaded... - * Here this application loads messages from three bundles - */ - static { - EELFResourceManager.loadMessageBundle("org/openecomp/portalapp/portal/logging/format/ApplicationCodes"); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/logic/EPLogUtil.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/logic/EPLogUtil.java deleted file mode 100644 index 9c9137fc..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/logging/logic/EPLogUtil.java +++ /dev/null @@ -1,311 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.logging.logic; - -import static com.att.eelf.configuration.Configuration.MDC_ALERT_SEVERITY; - -import java.text.MessageFormat; - -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalsdk.core.logging.format.AlarmSeverityEnum; -import org.openecomp.portalsdk.core.logging.format.ErrorSeverityEnum; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.slf4j.MDC; -import org.springframework.http.HttpStatus; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - -public class EPLogUtil { - - // This class has no logger of its own; it uses loggers passed to it. - private static EELFLogger errorLogger = EELFManager.getInstance().getErrorLogger(); - - /** - * Formats and writes a message to the error log with the class name and the - * specified parameters, using log level info, warn or error appropriate for - * the specified severity - * - * @param classLogger - * Logger for the class where the error occurred; the logger - * carries the class name. - * @param epMessageEnum - * Enum carrying alarm and error severity - * @param param - * Values used to build the message. - */ - public static void logEcompError(EELFLoggerDelegate classLogger, EPAppMessagesEnum epMessageEnum, String... param) { - logEcompError(classLogger, epMessageEnum, null, param); - } - - /** - * Formats and writes a message to the error log with the class name and the - * specified parameters, using log level info, warn or error appropriate for - * the specified severity - * - * @param epMessageEnum - * Enum carrying alarm and error severity - * @param param - * Values used to build the message. - */ - public static void logEcompError(EPAppMessagesEnum epMessageEnum, String... param) { - try { - AlarmSeverityEnum alarmSeverityEnum = epMessageEnum.getAlarmSeverity(); - ErrorSeverityEnum errorSeverityEnum = epMessageEnum.getErrorSeverity(); - - MDC.put(MDC_ALERT_SEVERITY, alarmSeverityEnum.name()); - MDC.put("ErrorCode", epMessageEnum.getErrorCode()); - MDC.put("ErrorDescription", epMessageEnum.getErrorDescription()); - MDC.put("ClassName", EPLogUtil.class.getName()); - - String resolution = EPLogUtil - .formatMessage(epMessageEnum.getDetails() + " " + epMessageEnum.getResolution(), (Object[]) param); - if (errorSeverityEnum == ErrorSeverityEnum.WARN) { - errorLogger.warn(resolution); - } else if (errorSeverityEnum == ErrorSeverityEnum.INFO) { - errorLogger.info(resolution); - } else { - errorLogger.error(resolution); - } - } catch (Exception e) { - errorLogger.error("logEcompError failed", e); - } finally { - MDC.remove("ErrorCode"); - MDC.remove("ErrorDescription"); - MDC.remove("ClassName"); - MDC.remove(MDC_ALERT_SEVERITY); - } - } - - /** - * Formats and writes a message to the error log with the class name, - * throwable and the specified parameters, using log level info, warn or - * error appropriate for the specified severity - * - * @param classLogger - * Logger for the class where the error occurred; the logger - * carries the class name. - * @param epMessageEnum - * Enum carrying alarm and error severity - * @param th - * Throwable; ignored if null - * @param param - * Array of Strings used to build the message. - */ - @SuppressWarnings("static-access") - public static void logEcompError(EELFLoggerDelegate classLogger, EPAppMessagesEnum epMessageEnum, Throwable th, - String... param) { - - AlarmSeverityEnum alarmSeverityEnum = epMessageEnum.getAlarmSeverity(); - ErrorSeverityEnum errorSeverityEnum = epMessageEnum.getErrorSeverity(); - - MDC.put(MDC_ALERT_SEVERITY, alarmSeverityEnum.name()); - MDC.put("ErrorCode", epMessageEnum.getErrorCode()); - MDC.put("ErrorDescription", epMessageEnum.getErrorDescription()); - - final String message = EPLogUtil.formatMessage(epMessageEnum.getDetails() + " " + epMessageEnum.getResolution(), - (Object[]) param); - if (errorSeverityEnum == ErrorSeverityEnum.INFO) { - if (th == null) - classLogger.info(classLogger.errorLogger, message); - else - classLogger.info(classLogger.errorLogger, message, th); - } else if (errorSeverityEnum == ErrorSeverityEnum.WARN) { - if (th == null) - classLogger.warn(classLogger.errorLogger, message); - else - classLogger.warn(classLogger.errorLogger, message, th); - } else { - if (th == null) - classLogger.error(classLogger.errorLogger, message); - else - classLogger.error(classLogger.errorLogger, message, th); - } - - // Clean up - MDC.remove(MDC_ALERT_SEVERITY); - MDC.remove("ErrorCode"); - MDC.remove("ErrorDescription"); - } - - /** - * Builds a string using the format and parameters. - * - * @param message - * @param args - * @return - */ - private static String formatMessage(String message, Object... args) { - StringBuilder sbFormattedMessage = new StringBuilder(); - if (args != null && args.length > 0 && message != null && message != "") { - MessageFormat mf = new MessageFormat(message); - sbFormattedMessage.append(mf.format(args)); - } else { - sbFormattedMessage.append(message); - } - return sbFormattedMessage.toString(); - } - - /** - * Builds a comma-separated string of values to document a user action. - * - * @param action - * String - * @param activity - * String - * @param userId - * String - * @param affectedId - * String - * @param comment - * String - * @return Value suitable for writing to the audit log file. - */ - public static String formatAuditLogMessage(String action, String activity, String userId, String affectedId, - String comment) { - StringBuilder auditLogMsg = new StringBuilder(); - auditLogMsg.append("Click_A:["); - if (action != null && !action.equals("")) { - auditLogMsg.append(" Action: "); - auditLogMsg.append(action); - } - - if (activity != null && !activity.equals("")) { - auditLogMsg.append(",Activity CD: "); - auditLogMsg.append(activity); - } - - if (userId != null && !userId.equals("")) { - auditLogMsg.append(",User ID: "); - auditLogMsg.append(userId); - } - - if (affectedId != null && !affectedId.equals("")) { - auditLogMsg.append(",Affected ID: "); - auditLogMsg.append(affectedId); - } - - if (comment != null && !comment.equals("")) { - auditLogMsg.append(",Comment: "); - auditLogMsg.append(comment); - } - auditLogMsg.append("]"); - return auditLogMsg.toString(); - } - - /** - * Builds a comma-separated string of values to document a user browser - * action. - * - * @param orgUserId - * String - * @param appName - * String - * @param action - * String - * @param activity - * String - * @param actionLink - * String - * @param page - * String - * @param function - * String - * @param type - * String - * @return String value suitable for writing to the audit log file. - */ - public static String formatStoreAnalyticsAuditLogMessage(String orgUserId, String appName, String action, - String activity, String actionLink, String page, String function, String type) { - StringBuilder auditLogStoreAnalyticsMsg = new StringBuilder(); - auditLogStoreAnalyticsMsg.append("Click_Analytics:["); - if (orgUserId != null && !orgUserId.equals("")) { - auditLogStoreAnalyticsMsg.append(" Organization User ID: "); - auditLogStoreAnalyticsMsg.append(orgUserId); - } - - if (appName != null && !appName.equals("")) { - auditLogStoreAnalyticsMsg.append(",AppName: "); - auditLogStoreAnalyticsMsg.append(appName); - } - - if (action != null && !action.equals("")) { - auditLogStoreAnalyticsMsg.append(",Action: "); - auditLogStoreAnalyticsMsg.append(action); - } - - if (activity != null && !activity.equals("")) { - auditLogStoreAnalyticsMsg.append(",Activity: "); - auditLogStoreAnalyticsMsg.append(activity); - } - - if (actionLink != null && !actionLink.equals("")) { - auditLogStoreAnalyticsMsg.append(",ActionLink: "); - auditLogStoreAnalyticsMsg.append(actionLink); - } - - if (page != null && !page.equals("")) { - auditLogStoreAnalyticsMsg.append(",Page: "); - auditLogStoreAnalyticsMsg.append(page); - } - - if (function != null && !function.equals("")) { - auditLogStoreAnalyticsMsg.append(",Function: "); - auditLogStoreAnalyticsMsg.append(function); - } - - if (type != null && !type.equals("")) { - auditLogStoreAnalyticsMsg.append(",Type: "); - auditLogStoreAnalyticsMsg.append(type); - } - auditLogStoreAnalyticsMsg.append("]"); - return auditLogStoreAnalyticsMsg.toString(); - } - - public static void logExternalAuthAccessAlarm(EELFLoggerDelegate logger, HttpStatus res) { - if (res.equals(HttpStatus.UNAUTHORIZED) || res.equals(HttpStatus.FORBIDDEN)) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.ExternalAuthAccessAuthenticationError); - } else if (res.equals(HttpStatus.NOT_FOUND) || res.equals(HttpStatus.NOT_ACCEPTABLE) - || res.equals(HttpStatus.CONFLICT) || res.equals(HttpStatus.BAD_REQUEST)) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.ExternalAuthAccessConnectionError); - } else if (!res.equals(HttpStatus.ACCEPTED) && !res.equals(HttpStatus.OK)) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.ExternalAuthAccessGeneralError); - } - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/RestObject.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/RestObject.java deleted file mode 100644 index 354b9ef6..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/RestObject.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.scheduler; - - -public class RestObject { - - private T t; - - private int statusCode= 0; - - public String uuid; - - public void set(T t) { this.t = t; } - - public T get() { return t; } - - public void setStatusCode(int v) { this.statusCode = v; } - - public int getStatusCode() { return this.statusCode; } - - public void setUUID(String uuid) { this.uuid = uuid; } - - public String getUUID() { return this.uuid; } -} - diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerProperties.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerProperties.java deleted file mode 100644 index fe6a9aca..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerProperties.java +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler; - -import org.openecomp.portalsdk.core.util.SystemProperties; - -public class SchedulerProperties extends SystemProperties { - - public static final String SCHEDULER_USER_NAME_VAL = "scheduler.user.name";; - - public static final String SCHEDULER_PASSWORD_VAL = "scheduler.password"; - - public static final String SCHEDULER_SERVER_URL_VAL = "scheduler.server.url"; - - public static final String SCHEDULER_CREATE_NEW_VNF_CHANGE_INSTANCE_VAL = "scheduler.create.new.vnf.change.instance"; - - public static final String SCHEDULER_GET_TIME_SLOTS = "scheduler.get.time.slots"; - - public static final String SCHEDULER_SUBMIT_NEW_VNF_CHANGE = "scheduler.submit.new.vnf.change"; - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerResponseWrapper.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerResponseWrapper.java deleted file mode 100644 index 731eef85..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerResponseWrapper.java +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.apache.commons.lang.builder.ToStringBuilder; - -/** - * This wrapper encapsulates the Scheduler response - */ -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({ - "status", - "entity", - "uuid" -}) - -public class SchedulerResponseWrapper { - - @JsonProperty("status") - private int status; - - @JsonProperty("entity") - private String entity; - - @JsonProperty("uuid") - private String uuid; - - @JsonProperty("entity") - public String getEntity() { - return entity; - } - - @JsonProperty("status") - public int getStatus() { - return status; - } - - @JsonProperty("uuid") - public String getUuid() { - return uuid; - } - - @JsonProperty("status") - public void setStatus(int v) { - this.status = v; - } - - @JsonProperty("entity") - public void setEntity(String v) { - this.entity = v; - } - - @JsonProperty("uuid") - public void setUuid(String v) { - this.uuid = v; - } - - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this); - } - - public String getResponse () { - - StringBuilder b = new StringBuilder ("{ \"status\": "); - b.append(getStatus()).append(", \"entity\": \" " ).append(this.getEntity()).append("\" ,\"uuid\": \"" ).append(this.getUuid()).append("\"}"); - return (b.toString()); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInt.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInt.java deleted file mode 100644 index 78a0b108..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInt.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.scheduler; - -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class SchedulerRestInt { - - /** The logger. */ - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerRestInterface.class); - - /** The Constant dateFormat. */ - final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); - - /** The request date format. */ - public DateFormat requestDateFormat = new SimpleDateFormat("EEE, dd MMM YYYY HH:mm:ss z"); - - public SchedulerRestInt() { - requestDateFormat.setTimeZone(java.util.TimeZone.getTimeZone("GMT")); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterface.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterface.java deleted file mode 100644 index 9acfd5a0..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterface.java +++ /dev/null @@ -1,237 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler; - -import java.util.Collections; - -import javax.ws.rs.client.Client; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.Response; - -import org.apache.commons.codec.binary.Base64; -import org.json.simple.JSONObject; -import org.openecomp.portalapp.portal.scheduler.client.HttpBasicClient; -import org.openecomp.portalapp.portal.scheduler.client.HttpsBasicClient; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.stereotype.Service; -import org.openecomp.portalapp.portal.scheduler.restobjects.RestObject; - - -@Service -public class SchedulerRestInterface implements SchedulerRestInterfaceIfc { - - private static Client client = null; - - private MultivaluedHashMap commonHeaders; - - public SchedulerRestInterface() { - super(); - } - - public void initRestClient() - { - final String methodname = "initRestClient()"; - - final String username = "";//SystemProperties.getProperty(SchedulerProperties.SCHEDULER_USER_NAME_VAL); - //final String password = "";//SystemProperties.getProperty(SchedulerProperties.SCHEDULER_PASSWORD_VAL); - final String scheduler_url = "";//SystemProperties.getProperty(SchedulerProperties.SCHEDULER_SERVER_URL_VAL); - final String decrypted_password = "";//Password.deobfuscate(password); - - String authString = username + ":" + decrypted_password; - - byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); - String authStringEnc = new String(authEncBytes); - - commonHeaders = new MultivaluedHashMap (); - commonHeaders.put("Authorization", Collections.singletonList((Object) ("Basic " + authStringEnc))); - - boolean use_ssl = true; - if ( (scheduler_url != null) && ( !(scheduler_url.isEmpty()) ) ) { - if ( scheduler_url.startsWith("https")) { - use_ssl = true; - } - else { - use_ssl = false; - } - } - if (client == null) { - - try { - if ( use_ssl ) { - - client = HttpsBasicClient.getClient(); - } - else { - - client = HttpBasicClient.getClient(); - } - } catch (Exception e) { - System.out.println( methodname + " Unable to get the SSL client"); - } - } - } - - @SuppressWarnings("unchecked") - public void Get (T t, String sourceId, String path, org.openecomp.portalapp.portal.scheduler.restobjects.RestObject restObject ) throws Exception { - - String methodName = "Get"; - String url = SystemProperties.getProperty(SchedulerProperties.SCHEDULER_SERVER_URL_VAL) + path; - - - System.out.println( "<== URL FOR GET : " + url + "\n"); - - initRestClient(); - - final Response cres = client.target(url) - .request() - .accept("application/json") - .headers(commonHeaders) - .get(); - - int status = cres.getStatus(); - restObject.setStatusCode (status); - - if (status == 200) { - t = (T) cres.readEntity(t.getClass()); - restObject.set(t); - - } else { - throw new Exception(methodName + " with status="+ status + ", url= " + url ); - } - - return; - } - - @SuppressWarnings("unchecked") - public void Post(T t, JSONObject requestDetails, String path, RestObject restObject) throws Exception { - - String methodName = "Post"; - String url = SystemProperties.getProperty(SchedulerProperties.SCHEDULER_SERVER_URL_VAL) + path; - - System.out.println( "<== URL FOR POST : " + url + "\n"); - - try { - - initRestClient(); - - // Change the content length - final Response cres = client.target(url) - .request() - .accept("application/json") - .headers(commonHeaders) - //.header("content-length", 201) - //.header("X-FromAppId", sourceID) - .post(Entity.entity(requestDetails, MediaType.APPLICATION_JSON)); - - try { - t = (T) cres.readEntity(t.getClass()); - restObject.set(t); - } - catch ( Exception e ) { - - System.out.println("<== " + methodName + " : No response entity, this is probably ok, e=" + e.getMessage()); - } - - int status = cres.getStatus(); - restObject.setStatusCode (status); - - if ( status >= 200 && status <= 299 ) { - - System.out.println( "<== " + methodName + " : REST api POST was successful!" + "\n"); - - } else { - System.out.println( "<== " + methodName + " : FAILED with http status : "+status+", url = " + url + "\n"); - } - - } catch (Exception e) - { - System.out.println( "<== " + methodName + " : with url="+url+ ", Exception: " + e.toString() + "\n"); - throw e; - } - } - - @SuppressWarnings("unchecked") - public void Delete(T t, JSONObject requestDetails, String sourceID, String path, RestObject restObject) { - - String url=""; - Response cres = null; - - try { - initRestClient(); - - url = SystemProperties.getProperty(SchedulerProperties.SCHEDULER_SERVER_URL_VAL) + path; - - cres = client.target(url) - .request() - .accept("application/json") - .headers(commonHeaders) - //.entity(r) - .build("DELETE", Entity.entity(requestDetails, MediaType.APPLICATION_JSON)).invoke(); - // .method("DELETE", Entity.entity(r, MediaType.APPLICATION_JSON)); - //.delete(Entity.entity(r, MediaType.APPLICATION_JSON)); - - int status = cres.getStatus(); - restObject.setStatusCode (status); - - try { - t = (T) cres.readEntity(t.getClass()); - restObject.set(t); - } - catch ( Exception e ) { - } - - } - catch (Exception e) - { - throw e; - } - } - - public T getInstance(Class clazz) throws IllegalAccessException, InstantiationException - { - return clazz.newInstance(); - } - - @Override - public void logRequest(JSONObject requestDetails) { - // TODO Auto-generated method stub - - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterfaceFactory.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterfaceFactory.java deleted file mode 100644 index 8aaf8819..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterfaceFactory.java +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler; - -public class SchedulerRestInterfaceFactory { - - public static SchedulerRestInterfaceIfc getInstance() { - SchedulerRestInterfaceIfc obj = null; - - obj = new SchedulerRestInterface(); - - return (obj); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterfaceIfc.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterfaceIfc.java deleted file mode 100644 index 738f9baa..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerRestInterfaceIfc.java +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler; - -import org.json.simple.JSONObject; -import org.springframework.stereotype.Service; -import org.openecomp.portalapp.portal.scheduler.restobjects.RestObject; - -@Service -public interface SchedulerRestInterfaceIfc { - - public void initRestClient(); - - public void Get(T t, String sourceId, String path, - org.openecomp.portalapp.portal.scheduler.restobjects.RestObject restObject) throws Exception; - - public void Delete(T t, JSONObject requestDetails, String sourceID, String path, RestObject restObject) - throws Exception; - - public void Post(T t, JSONObject r, String path, RestObject restObject) throws Exception; - - public void logRequest(JSONObject requestDetails); -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerUtil.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerUtil.java deleted file mode 100644 index 39de6b3e..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/SchedulerUtil.java +++ /dev/null @@ -1,137 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler; - -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.openecomp.portalapp.portal.scheduler.restobjects.GetTimeSlotsRestObject; -import org.openecomp.portalapp.portal.scheduler.restobjects.PostCreateNewVnfRestObject; -import org.openecomp.portalapp.portal.scheduler.restobjects.PostSubmitVnfChangeRestObject; -import org.openecomp.portalapp.portal.scheduler.wrapper.GetTimeSlotsWrapper; -import org.openecomp.portalapp.portal.scheduler.wrapper.PostCreateNewVnfWrapper; -import org.openecomp.portalapp.portal.scheduler.wrapper.PostSubmitVnfChangeTimeSlotsWrapper; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -import com.fasterxml.jackson.databind.ObjectMapper; - -public class SchedulerUtil { - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerUtil.class); - - final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); - - public static GetTimeSlotsWrapper getTimeSlotsWrapResponse(GetTimeSlotsRestObject rs) { - - String resp_str = ""; - int status = 0; - - if (rs != null) { - resp_str = rs.get(); - status = rs.getStatusCode(); - } - - GetTimeSlotsWrapper w = new GetTimeSlotsWrapper(); - - w.setEntity(resp_str); - w.setStatus(status); - - return (w); - } - - public static PostSubmitVnfChangeTimeSlotsWrapper postSubmitNewVnfWrapResponse( - PostSubmitVnfChangeRestObject rs) { - - String resp_str = ""; - int status = 0; - String uuid = ""; - - if (rs != null) { - resp_str = rs.get(); - status = rs.getStatusCode(); - uuid = rs.getUUID(); - } - - PostSubmitVnfChangeTimeSlotsWrapper w = new PostSubmitVnfChangeTimeSlotsWrapper(); - - w.setEntity(resp_str); - w.setStatus(status); - w.setUuid(uuid); - - return (w); - } - - public static PostCreateNewVnfWrapper postCreateNewVnfWrapResponse(PostCreateNewVnfRestObject rs) { - - String resp_str = ""; - int status = 0; - String uuid = ""; - - if (rs != null) { - resp_str = rs.get(); - status = rs.getStatusCode(); - uuid = rs.getUUID(); - } - - PostCreateNewVnfWrapper w = new PostCreateNewVnfWrapper(); - - w.setEntity(resp_str); - w.setStatus(status); - w.setUuid(uuid); - - return (w); - } - - public static String convertPojoToString(T t) throws com.fasterxml.jackson.core.JsonProcessingException { - - String methodName = "convertPojoToString"; - ObjectMapper mapper = new ObjectMapper(); - String r_json_str = ""; - if (t != null) { - try { - r_json_str = mapper.writeValueAsString(t); - } catch (com.fasterxml.jackson.core.JsonProcessingException j) { - logger.debug(EELFLoggerDelegate.debugLogger, - dateFormat.format(new Date()) + "<== " + methodName + " Unable to parse object as json"); - } - } - return (r_json_str); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/client/HttpBasicClient.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/client/HttpBasicClient.java deleted file mode 100644 index 2059cae0..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/client/HttpBasicClient.java +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.scheduler.client; - - -import java.text.DateFormat; -import java.text.SimpleDateFormat; - -import javax.servlet.ServletContext; -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; - -import org.glassfish.jersey.client.ClientConfig; -import org.glassfish.jersey.client.ClientProperties; -import org.openecomp.portalapp.portal.scheduler.util.CustomJacksonJaxBJsonProvider; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * General HTTP client. - */ - -public class HttpBasicClient{ - - /** The servlet context. */ - @Autowired - private ServletContext servletContext; - - /** The logger. */ - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(HttpBasicClient.class); - - /** The Constant dateFormat. */ - final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); - - /** - * Obtain a basic HTTP client . - * - * @return Client client object - * @throws Exception the exception - */ - public static Client getClient() throws Exception { - - ClientConfig config = new ClientConfig(); - config.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true); - - return ClientBuilder.newClient(config) - .register(CustomJacksonJaxBJsonProvider.class); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/client/HttpsBasicClient.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/client/HttpsBasicClient.java deleted file mode 100644 index 2eb3ac72..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/client/HttpsBasicClient.java +++ /dev/null @@ -1,162 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.scheduler.client; - -import java.io.File; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; - -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.HttpsURLConnection; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSession; -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; - -import org.eclipse.jetty.util.security.Password; -import org.glassfish.jersey.client.ClientConfig; -import org.glassfish.jersey.client.ClientProperties; -import org.openecomp.portalapp.portal.scheduler.properties.VidProperties; -import org.openecomp.portalapp.portal.scheduler.util.CustomJacksonJaxBJsonProvider; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; - - /** - * General SSL client using the VID tomcat keystore. It doesn't use client certificates. - */ - -public class HttpsBasicClient{ - - /** The logger. */ - static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(HttpsBasicClient.class); - - /** The Constant dateFormat. */ - final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); - - /** - * Retrieve an SSL client. - * - * @return Client The SSL client - * @throws Exception the exception - */ - public static Client getClient() throws Exception { - String methodName = "getClient"; - ClientConfig config = new ClientConfig(); - //config.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE); - //config.getClasses().add(org.openecomp.aai.util.CustomJacksonJaxBJsonProvider.class); - - SSLContext ctx = null; - - try { - - config.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true); - - String truststore_path = SystemProperties.getProperty(VidProperties.VID_TRUSTSTORE_FILENAME); - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + " " + methodName + " truststore_path=" + truststore_path); - String truststore_password = SystemProperties.getProperty(VidProperties.VID_TRUSTSTORE_PASSWD_X); - - - String decrypted_truststore_password = Password.deobfuscate(truststore_password); - //logger.debug(dateFormat.format(new Date()) + " " + methodName + " decrypted_truststore_password=" + decrypted_truststore_password); - - File tr = new File (truststore_path); - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + " " + methodName + " absolute truststore path=" + tr.getAbsolutePath()); - - //String keystore_path = certFilePath + AAIProperties.FILESEPARTOR + SystemProperties.getProperty(AAIProperties.AAI_KEYSTORE_FILENAME); - //String keystore_password = SystemProperties.getProperty(AAIProperties.AAI_KEYSTORE_PASSWD_X); - //String decrypted_keystore_password = EncryptedPropValue.decryptTriple(keystore_password); - - System.setProperty("javax.net.ssl.trustStore", truststore_path); - System.setProperty("javax.net.ssl.trustStorePassword", decrypted_truststore_password); - HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier(){ - public boolean verify(String string,SSLSession ssls) { - return true; - } - }); - - //May need to make the algorithm a parameter. MSO requires TLSv1.1 or TLSv1.2 - ctx = SSLContext.getInstance("TLSv1.2"); - - /* - KeyManagerFactory kmf = null; - try { - kmf = KeyManagerFactory.getInstance("SunX509"); - FileInputStream fin = new FileInputStream(keystore_path); - KeyStore ks = KeyStore.getInstance("PKCS12"); - char[] pwd = decrypted_keystore_password.toCharArray(); - ks.load(fin, pwd); - kmf.init(ks, pwd); - } catch (Exception e) { - System.out.println("Error setting up kmf: exiting"); - e.printStackTrace(); - System.exit(1); - } - - ctx.init(kmf.getKeyManagers(), null, null); - */ - ctx.init(null, null, null); - //config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, - // new HTTPSProperties( , ctx)); - - return ClientBuilder.newBuilder() - .sslContext(ctx) - .hostnameVerifier(new HostnameVerifier() { - @Override - public boolean verify( String s, SSLSession sslSession ) { - return true; - } - }).withConfig(config) - .build() - .register(CustomJacksonJaxBJsonProvider.class); - - } catch (Exception e) { - logger.debug(EELFLoggerDelegate.debugLogger, "Error setting up config: exiting"); - //System.out.println("Error setting up config: exiting"); - e.printStackTrace(); - return null; - } - - //Client client = ClientBuilder.newClient(config); - // uncomment this line to get more logging for the request/response - // client.addFilter(new LoggingFilter(System.out)); - - //return client; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyProperties.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyProperties.java deleted file mode 100644 index a89b5d61..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyProperties.java +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.policy; - -import org.openecomp.portalsdk.core.util.SystemProperties; - - -public class PolicyProperties extends SystemProperties { - - public static final String POLICY_CLIENTAUTH_VAL = "policy.ClientAuth"; - - public static final String POLICY_CLIENT_MECHID_VAL = "policy.client.mechId"; - - public static final String POLICY_CLIENT_PASSWORD_VAL = "policy.client.password"; - - public static final String POLICY_USERNAME_VAL = "policy.username"; - - public static final String POLICY_PASSWORD_VAL = "policy.password"; - - public static final String POLICY_AUTHORIZATION_VAL = "policy.Authorization"; - - public static final String POLICY_SERVER_URL_VAL = "policy.server.url"; - - public static final String POLICY_ENVIRONMENT_VAL = "policy.environment"; - - public static final String POLICY_GET_CONFIG_VAL = "policy.get.config"; - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyResponseWrapper.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyResponseWrapper.java deleted file mode 100644 index 276af521..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyResponseWrapper.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.policy; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.apache.commons.lang.builder.ToStringBuilder; - -/** - * This wrapper encapsulates the Policy response - */ -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({ - "status", - "entity" -}) - -public class PolicyResponseWrapper { - - @JsonProperty("status") - private int status; - - @JsonProperty("entity") - private String entity; - - @JsonProperty("entity") - public String getEntity() { - return entity; - } - - @JsonProperty("status") - public int getStatus() { - return status; - } - - @JsonProperty("status") - public void setStatus(int v) { - this.status = v; - } - - @JsonProperty("entity") - public void setEntity(String v) { - this.entity = v; - } - - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this); - } - - public String getResponse () { - - StringBuilder b = new StringBuilder ("{ \"status\": "); - b.append(getStatus()).append(", \"entity\": " ).append(this.getEntity()).append("}"); - return (b.toString()); - } -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInt.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInt.java deleted file mode 100644 index 14c4db72..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInt.java +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.scheduler.policy; - -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.openecomp.portalapp.portal.scheduler.policy.rest.RequestDetails; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PolicyRestInt { - - /** The logger. */ - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PolicyRestInterface.class); - - /** The Constant dateFormat. */ - final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); - - /** The request date format. */ - public DateFormat requestDateFormat = new SimpleDateFormat("EEE, dd MMM YYYY HH:mm:ss z"); - - public PolicyRestInt() { - requestDateFormat.setTimeZone(java.util.TimeZone.getTimeZone("GMT")); - } - - /** - * Log request. - * - * @param r the r - */ - public void logRequest ( RequestDetails r ) { - String methodName = "logRequest"; - ObjectMapper mapper = new ObjectMapper(); - String r_json_str = ""; - if ( r != null ) { - r_json_str = r.toString(); - try { - r_json_str = mapper.writeValueAsString(r); - } - catch ( com.fasterxml.jackson.core.JsonProcessingException j ) { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " Unable to parse request as json"); - } - } - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " Request=(" + r_json_str + ")"); - } -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterface.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterface.java deleted file mode 100644 index e14dd107..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterface.java +++ /dev/null @@ -1,272 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.policy; - -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Collections; -import java.util.Date; - -import javax.ws.rs.client.Client; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.Response; - -import org.apache.commons.codec.binary.Base64; -import org.eclipse.jetty.util.security.Password; -import org.json.simple.JSONObject; -import org.openecomp.portalapp.portal.scheduler.client.HttpBasicClient; -import org.openecomp.portalapp.portal.scheduler.policy.rest.RequestDetails; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.util.SystemProperties; - - -public class PolicyRestInterface extends PolicyRestInt implements PolicyRestInterfaceIfc { - - /** The logger. */ - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PolicyRestInterface.class); - - /** The Constant dateFormat. */ - final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); - - /** The client. */ - private static Client client = null; - - /** The common headers. */ - private MultivaluedHashMap commonHeaders; - - public PolicyRestInterface() { - super(); - } - - public void initRestClient() - { - final String methodname = "initRestClient()"; - - //final String clientAuth = SystemProperties.getProperty(PolicyProperties.POLICY_CLIENTAUTH_VAL); - //final String authorization = SystemProperties.getProperty(PolicyProperties.POLICY_AUTHORIZATION_VAL); - final String mechId = SystemProperties.getProperty(PolicyProperties.POLICY_CLIENT_MECHID_VAL); - final String clientPassword = SystemProperties.getProperty(PolicyProperties.POLICY_CLIENT_PASSWORD_VAL); - final String username = SystemProperties.getProperty(PolicyProperties.POLICY_USERNAME_VAL); - final String password = SystemProperties.getProperty(PolicyProperties.POLICY_PASSWORD_VAL); - final String environment = SystemProperties.getProperty(PolicyProperties.POLICY_ENVIRONMENT_VAL); - - final String decrypted_client_password = Password.deobfuscate(clientPassword); - String mechAuthString = mechId + ":" + decrypted_client_password; - byte[] mechAuthEncBytes = Base64.encodeBase64(mechAuthString.getBytes()); - String clientAuth = new String(mechAuthEncBytes); - - final String decrypted_password = Password.deobfuscate(password); - String authString = username + ":" + decrypted_password; - byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); - String authorization = new String(authEncBytes); - - commonHeaders = new MultivaluedHashMap (); - commonHeaders.put("ClientAuth", Collections.singletonList((Object) ("Basic " + clientAuth))); - commonHeaders.put("Authorization", Collections.singletonList((Object) ("Basic " + authorization))); - commonHeaders.put("Environment", Collections.singletonList((Object) (environment))); - - if (client == null) { - - try { - client = HttpBasicClient.getClient(); - } catch (Exception e) { - System.out.println( methodname + " Unable to get the SSL client"); - } - } - } - - @SuppressWarnings("unchecked") - public void Get (T t, String sourceId, String path, RestObject restObject ) throws Exception { - String methodName = "Get"; - - logger.debug(EELFLoggerDelegate.debugLogger, methodName + " start"); - - String url=""; - restObject.set(t); - - url = SystemProperties.getProperty(PolicyProperties.POLICY_SERVER_URL_VAL) + path; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " sending request to url= " + url); - - initRestClient(); - - final Response cres = client.target(url) - .request() - .accept("application/json") - .headers(commonHeaders) - .get(); - - int status = cres.getStatus(); - restObject.setStatusCode (status); - - if (status == 200) { - t = (T) cres.readEntity(t.getClass()); - restObject.set(t); - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + methodName + " REST api was successfull!"); - - } else { - throw new Exception(methodName + " with status="+ status + ", url= " + url ); - } - - logger.debug(EELFLoggerDelegate.debugLogger,methodName + " received status=" + status ); - - return; - } - - @SuppressWarnings("unchecked") - public void Delete(T t, RequestDetails r, String sourceID, String path, RestObject restObject) { - - String methodName = "Delete"; - String url=""; - Response cres = null; - - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " start"); - logRequest (r); - - try { - initRestClient(); - - url = SystemProperties.getProperty(PolicyProperties.POLICY_SERVER_URL_VAL) + path; - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + " methodName sending request to: " + url); - - cres = client.target(url) - .request() - .accept("application/json") - .headers(commonHeaders) - //.entity(r) - .build("DELETE", Entity.entity(r, MediaType.APPLICATION_JSON)).invoke(); - // .method("DELETE", Entity.entity(r, MediaType.APPLICATION_JSON)); - //.delete(Entity.entity(r, MediaType.APPLICATION_JSON)); - - int status = cres.getStatus(); - restObject.setStatusCode (status); - - if (status == 404) { // resource not found - String msg = "Resource does not exist...: " + cres.getStatus(); - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + msg); - } else if (status == 200 || status == 204){ - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + "Resource " + url + " deleted"); - } else if (status == 202) { - String msg = "Delete in progress: " + status; - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + msg); - } - else { - String msg = "Deleting Resource failed: " + status; - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + msg); - } - - try { - t = (T) cres.readEntity(t.getClass()); - restObject.set(t); - } - catch ( Exception e ) { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " No response entity, this is probably ok, e=" - + e.getMessage()); - } - - } - catch (Exception e) - { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " with url="+url+ ", Exception: " + e.toString()); - throw e; - - } - } - - @SuppressWarnings("unchecked") - public void Post(T t, JSONObject requestDetails, String uuid, String path, RestObject restObject) throws Exception { - - String methodName = "Post"; - String url=""; - - System.out.println( "POST policy rest interface"); - - // logRequest (requestDetails); - try { - - initRestClient(); - - url = SystemProperties.getProperty(PolicyProperties.POLICY_SERVER_URL_VAL) + path; - System.out.println( "<== " + methodName + " sending request to url= " + url); - // Change the content length - final Response cres = client.target(url) - .request() - .accept("application/json") - .headers(commonHeaders) - //.header("content-length", 201) - //.header("X-FromAppId", sourceID) - .post(Entity.entity(requestDetails, MediaType.APPLICATION_JSON)); - - try { - t = (T) cres.readEntity(t.getClass()); - restObject.set(t); - } - catch ( Exception e ) { - - System.out.println("<== " + methodName + " No response entity, this is probably ok, e=" + e.getMessage()); - } - - int status = cres.getStatus(); - restObject.setStatusCode (status); - - if ( status >= 200 && status <= 299 ) { - System.out.println( "<== " + methodName + " REST api POST was successful!"); - - } else { - System.out.println( "<== " + methodName + " with status="+status+", url="+url); - } - - } catch (Exception e) - { - System.out.println( "<== " + methodName + " with url="+url+ ", Exception: " + e.toString()); - throw e; - - } - } - - public T getInstance(Class clazz) throws IllegalAccessException, InstantiationException - { - return clazz.newInstance(); - } - - @Override - public void logRequest(RequestDetails r) { - // TODO Auto-generated method stub - } -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterfaceFactory.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterfaceFactory.java deleted file mode 100644 index 26726547..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterfaceFactory.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.policy; - -public class PolicyRestInterfaceFactory { - - public static PolicyRestInterfaceIfc getInstance() { - PolicyRestInterfaceIfc obj = null; - - obj = new PolicyRestInterface(); - - return (obj); - } -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterfaceIfc.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterfaceIfc.java deleted file mode 100644 index 4e3d08e0..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyRestInterfaceIfc.java +++ /dev/null @@ -1,116 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.policy; - -import org.json.simple.JSONObject; -import org.openecomp.portalapp.portal.scheduler.policy.rest.RequestDetails; - -public interface PolicyRestInterfaceIfc { - /** - * Inits the rest client. - */ - public void initRestClient(); - - /** - * Gets the. - * - * @param - * the generic type - * @param t - * the t - * @param sourceId - * the source id - * @param path - * the path - * @param restObject - * the rest object - * @throws Exception - * the exception - */ - public void Get(T t, String sourceId, String path, RestObject restObject) throws Exception; - - /** - * Delete. - * - * @param - * the generic type - * @param t - * the t - * @param r - * the r - * @param sourceID - * the source ID - * @param path - * the path - * @param restObject - * the rest object - * @throws Exception - * the exception - */ - public void Delete(T t, RequestDetails r, String sourceID, String path, RestObject restObject) - throws Exception; - - /** - * Post. - * - * @param - * the generic type - * @param t - * the t - * @param r - * the r - * @param sourceID - * the source ID - * @param path - * the path - * @param restObject - * the rest object - * @throws Exception - * the exception - */ - public void Post(T t, JSONObject r, String sourceID, String path, RestObject restObject) throws Exception; - - /*** - * Log request. - * - * @param r - * the r - */ - public void logRequest(RequestDetails r); - -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyUtil.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyUtil.java deleted file mode 100644 index 3e1c9415..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/PolicyUtil.java +++ /dev/null @@ -1,111 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.policy; - -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.glassfish.jersey.client.ClientResponse; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -/*import org.openecomp.vid.policy.PolicyResponseWrapper; -import org.openecomp.vid.policy.PolicyUtil; -import org.openecomp.vid.policy.RestObject;*/ - -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PolicyUtil { - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PolicyUtil.class); - - final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); - - public static PolicyResponseWrapper wrapResponse ( String body, int statusCode ) { - - PolicyResponseWrapper w = new PolicyResponseWrapper(); - w.setStatus (statusCode); - w.setEntity(body); - - return w; - } - - public static PolicyResponseWrapper wrapResponse (ClientResponse cres) { - String resp_str = ""; - int statuscode = 0; - if ( cres != null ) { - resp_str = cres.readEntity(String.class); - statuscode = cres.getStatus(); - } - - - PolicyResponseWrapper w = PolicyUtil.wrapResponse ( resp_str, statuscode ); - return (w); - } - - public static PolicyResponseWrapper wrapResponse (RestObject rs) { - String resp_str = ""; - int status = 0; - if ( rs != null ) { - resp_str = rs.get(); - status = rs.getStatusCode(); - } - PolicyResponseWrapper w = PolicyUtil.wrapResponse ( resp_str, status ); - return (w); - } - - public static String convertPojoToString ( T t ) throws com.fasterxml.jackson.core.JsonProcessingException { - - String methodName = "convertPojoToString"; - ObjectMapper mapper = new ObjectMapper(); - String r_json_str = ""; - if ( t != null ) { - try { - r_json_str = mapper.writeValueAsString(t); - } - catch ( com.fasterxml.jackson.core.JsonProcessingException j ) { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " Unable to parse object as json"); - } - } - return (r_json_str); - } - - - public static void main(String[] args) { - // TODO Auto-generated method stub - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/RestObject.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/RestObject.java deleted file mode 100644 index efe2de07..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/RestObject.java +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.scheduler.policy; - -/** - * The Class RestObject. - * - * @param the generic type - */ -public class RestObject { - - /** - * Generic version of the RestObject class. - * - */ - // T stands for "Type" - private T t; - - /** The status code. */ - private int statusCode= 0; - - /** - * Sets the. - * - * @param t the t - */ - public void set(T t) { this.t = t; } - - /** - * Gets the. - * - * @return the t - */ - public T get() { return t; } - - /** - * Sets the status code. - * - * @param v the new status code - */ - public void setStatusCode(int v) { this.statusCode = v; } - - /** - * Gets the status code. - * - * @return the status code - */ - public int getStatusCode() { return this.statusCode; } - -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/rest/RequestDetails.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/rest/RequestDetails.java deleted file mode 100644 index a7759cba..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/policy/rest/RequestDetails.java +++ /dev/null @@ -1,125 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.scheduler.policy.rest; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -/* - [ - { - "policyConfigMessage": "Config Retrieved! ", - "policyConfigStatus": "CONFIG_RETRIEVED", - "type": "JSON", - "config": "{\"service\":\"TimeLimitAndVerticalTopology\",\"policyName\":\"SNIRO_CM_1707.Demo_TimeLimitAndVerticalTopology_zone_localTime\",\"description\":\"dev instance\",\"templateVersion\":\"1702.03\",\"version\":\"1707\",\"priority\":\"4\",\"riskType\":\"test\",\"riskLevel\":\"3\",\"guard\":\"False\",\"content\":{\"serviceType\":\"networkOnDemand\",\"identity\":\"vnf_upgrade_policy\",\"policyScope\":{\"serviceType\":[\"networkOnDemand\"],\"aicZone\":[\" \"],\"entityType\":[\"vnf\"]},\"timeSchedule\":{\"allowedPeriodicTime\":[{\"day\":\"weekday\",\"timeRange\":[{\"start_time\":\"04:00:00\",\"end_time\":\"13:00:00\"}]}]},\"nodeType\":[\"vnf\"],\"type\":\"timeLimitAndVerticalTopology\",\"conflictScope\":\"vnf_zone\"}}", - "policyName": "SNIRO_CM_1707.Config_MS_Demo_TimeLimitAndVerticalTopology_zone_localTime.1.xml", - "policyVersion": "1", - "matchingConditions": { - "ECOMPName": "SNIRO-Placement", - "ConfigName": "", - "service": "TimeLimitAndVerticalTopology", - "uuid": "", - "Location": "" - }, - "responseAttributes": {}, - "property": null - }, - { - "policyConfigMessage": "Config Retrieved! ", - "policyConfigStatus": "CONFIG_RETRIEVED", - "type": "JSON", - "config": "{\"service\":\"TimeLimitAndVerticalTopology\",\"policyName\":\"SNIRO_CM_1707.Demo_TimeLimitAndVerticalTopology_pserver_localTime\",\"description\":\"dev instance\",\"templateVersion\":\"1702.03\",\"version\":\"1707\",\"priority\":\"4\",\"riskType\":\"test\",\"riskLevel\":\"3\",\"guard\":\"False\",\"content\":{\"serviceType\":\"networkOnDemand\",\"identity\":\"vnf_upgrade_policy\",\"policyScope\":{\"serviceType\":[\"networkOnDemand\"],\"aicZone\":[\" \"],\"entityType\":[\"vnf\"]},\"timeSchedule\":{\"allowedPeriodicTime\":[{\"day\":\"weekday\",\"timeRange\":[{\"start_time\":\"04:00:00\",\"end_time\":\"13:00:00\"}]}]},\"nodeType\":[\"vnf\"],\"type\":\"timeLimitAndVerticalTopology\",\"conflictScope\":\"vnf_pserver\"}}", - "policyName": "SNIRO_CM_1707.Config_MS_Demo_TimeLimitAndVerticalTopology_pserver_localTime.1.xml", - "policyVersion": "1", - "matchingConditions": { - "ECOMPName": "SNIRO-Placement", - "ConfigName": "", - "service": "TimeLimitAndVerticalTopology", - "uuid": "", - "Location": "" - }, - "responseAttributes": {}, - "property": null - }, - { - "policyConfigMessage": "Config Retrieved! ", - "policyConfigStatus": "CONFIG_RETRIEVED", - "type": "JSON", - "config": "{\"service\":\"TimeLimitAndVerticalTopology\",\"policyName\":\"SNIRO_CM_1707.Demo_TimeLimitAndVerticalTopology_vnf_localTime\",\"description\":\"dev instance\",\"templateVersion\":\"1702.03\",\"version\":\"1707\",\"priority\":\"4\",\"riskType\":\"test\",\"riskLevel\":\"3\",\"guard\":\"False\",\"content\":{\"serviceType\":\"networkOnDemand\",\"identity\":\"vnf_upgrade_policy\",\"policyScope\":{\"serviceType\":[\"networkOnDemand\"],\"aicZone\":[\" \"],\"entityType\":[\"vnf\"]},\"timeSchedule\":{\"allowedPeriodicTime\":[{\"day\":\"weekday\",\"timeRange\":[{\"start_time\":\"04:00:00\",\"end_time\":\"13:00:00\"}]}]},\"nodeType\":[\"vnf\"],\"type\":\"timeLimitAndVerticalTopology\",\"conflictScope\":\"vnf\"}}", - "policyName": "SNIRO_CM_1707.Config_MS_Demo_TimeLimitAndVerticalTopology_vnf_localTime.1.xml", - "policyVersion": "1", - "matchingConditions": { - "ECOMPName": "SNIRO-Placement", - "ConfigName": "", - "service": "TimeLimitAndVerticalTopology", - "uuid": "", - "Location": "" - }, - "responseAttributes": {}, - "property": null - } - ] -*/ -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({ - "policyConfigMessage", - "policyConfigStatus", - "type", - "config", - "policyName", - "policyVersion", - "matchingConditions" -}) -public class RequestDetails { - - @JsonProperty("policyName") - private String policyName; - - @JsonProperty("policyName") - public String getPolicyName() { - return policyName; - } - - @JsonProperty("policyName") - public void setPolicyName(String policyName) { - this.policyName = policyName; - } - -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/properties/VidProperties.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/properties/VidProperties.java deleted file mode 100644 index e18f43f1..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/properties/VidProperties.java +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.scheduler.properties; -import org.openecomp.portalsdk.core.util.SystemProperties; -/** - * The Class VidProperties. - */ -public class VidProperties extends SystemProperties { - - //VID General Properties - - /** The Constant VID_TRUSTSTORE_FILENAME. */ - public static final String VID_TRUSTSTORE_FILENAME = "vid.truststore.filename"; - - /** The Constant VID_TRUSTSTORE_PASSWD_X. */ - public static final String VID_TRUSTSTORE_PASSWD_X = "vid.truststore.passwd.x"; - - /** The Constant FILESEPARATOR. */ - public static final String FILESEPARATOR = (System.getProperty("file.separator") == null) ? "/" : System.getProperty("file.separator"); - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/GetTimeSlotsRestObject.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/GetTimeSlotsRestObject.java deleted file mode 100644 index 9749c836..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/GetTimeSlotsRestObject.java +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.restobjects; - -public class GetTimeSlotsRestObject extends RestObject { - - public String uuid; - - public void setUUID(String uuid) { this.uuid = uuid; } - - public String getUUID() { return this.uuid; } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/PostCreateNewVnfRestObject.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/PostCreateNewVnfRestObject.java deleted file mode 100644 index 94b66821..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/PostCreateNewVnfRestObject.java +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.restobjects; - -public class PostCreateNewVnfRestObject extends RestObject { - - public String uuid; - - public void setUUID(String uuid) { this.uuid = uuid; } - - public String getUUID() { return this.uuid; } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/PostSubmitVnfChangeRestObject.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/PostSubmitVnfChangeRestObject.java deleted file mode 100644 index 4f78fd75..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/PostSubmitVnfChangeRestObject.java +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.restobjects; - -public class PostSubmitVnfChangeRestObject extends RestObject { - - public String uuid; - - public void setUUID(String uuid) { this.uuid = uuid; } - - public String getUUID() { return this.uuid; } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/RestObject.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/RestObject.java deleted file mode 100644 index a8636ad9..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/restobjects/RestObject.java +++ /dev/null @@ -1,57 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.scheduler.restobjects; - - -public class RestObject { - - private T t; - - private int statusCode= 0; - - public void set(T t) { this.t = t; } - - public T get() { return t; } - - public void setStatusCode(int v) { this.statusCode = v; } - - public int getStatusCode() { return this.statusCode; } - -} - diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/util/CustomJacksonJaxBJsonProvider.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/util/CustomJacksonJaxBJsonProvider.java deleted file mode 100644 index d9792b3d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/util/CustomJacksonJaxBJsonProvider.java +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.scheduler.util; - - -import javax.ws.rs.ext.Provider; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; -import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule; - -/** - * The Class CustomJacksonJaxBJsonProvider. - */ -@Provider -public class CustomJacksonJaxBJsonProvider extends JacksonJaxbJsonProvider { - - /** The common mapper. */ - private static ObjectMapper commonMapper = null; - - /** - * Instantiates a new custom jackson jax B json provider. - */ - public CustomJacksonJaxBJsonProvider() { - if (commonMapper == null) { - ObjectMapper mapper = new ObjectMapper(); - - mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); - - mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); - mapper.configure(SerializationFeature.INDENT_OUTPUT, false); - mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false); - - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, false); - - mapper.registerModule(new JaxbAnnotationModule()); - - commonMapper = mapper; - } - super.setMapper(commonMapper); - } - - /** - * Gets the mapper. - * - * @return the mapper - */ - public ObjectMapper getMapper() { - return commonMapper; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/GetTimeSlotsWrapper.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/GetTimeSlotsWrapper.java deleted file mode 100644 index 69b6b366..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/GetTimeSlotsWrapper.java +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.wrapper; - -public class GetTimeSlotsWrapper extends SchedulerResponseWrapper { - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/PostCreateNewVnfWrapper.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/PostCreateNewVnfWrapper.java deleted file mode 100644 index 41f07f38..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/PostCreateNewVnfWrapper.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.wrapper; - -import org.apache.commons.lang.builder.ToStringBuilder; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({ - "uuid" -}) -public class PostCreateNewVnfWrapper extends SchedulerResponseWrapper { - - @JsonProperty("uuid") - private String uuid; - - @JsonProperty("uuid") - public String getUuid() { - return uuid; - } - - @JsonProperty("uuid") - public void setUuid(String v) { - this.uuid = v; - } - - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this); - } - - public String getResponse () { - - StringBuilder b = new StringBuilder ("{ \"status\": "); - b.append(getStatus()).append(", \"entity\": \" " ).append(this.getEntity()).append("\" ,\"uuid\": \"" ).append(this.getUuid()).append("\"}"); - return (b.toString()); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/PostSubmitVnfChangeTimeSlotsWrapper.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/PostSubmitVnfChangeTimeSlotsWrapper.java deleted file mode 100644 index c0f2403d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/PostSubmitVnfChangeTimeSlotsWrapper.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.wrapper; - -import org.apache.commons.lang.builder.ToStringBuilder; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({ - "uuid" -}) -public class PostSubmitVnfChangeTimeSlotsWrapper extends SchedulerResponseWrapper { - @JsonProperty("uuid") - private String uuid; - - @JsonProperty("uuid") - public String getUuid() { - return uuid; - } - - @JsonProperty("uuid") - public void setUuid(String v) { - this.uuid = v; - } - - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this); - } - - public String getResponse () { - - StringBuilder b = new StringBuilder ("{ \"status\": "); - b.append(getStatus()).append(", \"entity\": \" " ).append(this.getEntity()).append("\" ,\"uuid\": \"" ).append(this.getUuid()).append("\"}"); - return (b.toString()); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/SchedulerResponseWrapper.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/SchedulerResponseWrapper.java deleted file mode 100644 index 3a55b4fc..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/scheduler/wrapper/SchedulerResponseWrapper.java +++ /dev/null @@ -1,94 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.scheduler.wrapper; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.apache.commons.lang.builder.ToStringBuilder; - -/** - * This wrapper encapsulates the Scheduler response - */ -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({ - "status", - "entity" -}) - -public class SchedulerResponseWrapper { - - @JsonProperty("status") - private int status; - - @JsonProperty("entity") - private String entity; - - @JsonProperty("entity") - public String getEntity() { - return entity; - } - - @JsonProperty("status") - public int getStatus() { - return status; - } - - @JsonProperty("status") - public void setStatus(int v) { - this.status = v; - } - - @JsonProperty("entity") - public void setEntity(String v) { - this.entity = v; - } - - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this); - } - - public String getResponse () { - - StringBuilder b = new StringBuilder ("{ \"status\": "); - - b.append(getStatus()).append(", \"entity\": " ).append(this.getEntity()).append("}"); - return (b.toString()); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AdminRolesService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AdminRolesService.java deleted file mode 100644 index 020ed6f4..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AdminRolesService.java +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.transport.AppsListWithAdminRole; - -public interface AdminRolesService { - - public AppsListWithAdminRole getAppsWithAdminRoleStateForUser(String orgUserId); - - public boolean setAppsWithAdminRoleStateForUser(AppsListWithAdminRole newAppsListWithAdminRoles); - - /** - * Attention! User roles in ECOMP PORTAL cannot be managed by this function. - * @param user - * @return 'true' if user has Super Administrator role SYS_ADMIN_ROLE_ID (1 for now) in ECOMP PORTAL, 'false' otherwise - */ - public boolean isSuperAdmin(EPUser user); - - /** - * Attention! User roles in ECOMP PORTAL cannot be managed by this function. - * @param user - * @return 'true' if user has Account Administrator role ACCOUNT_ADMIN_ROLE_ID (999 for now) for any application except ECOMP Portal, 'false' otherwise - */ - public boolean isAccountAdmin(EPUser user); - - /** - * Attention! User roles in ECOMP PORTAL cannot be managed by this function. - * @param user - * @return 'true' if user has any remote(!) role within any application (ECOMP Portal roles are not included), 'false' otherwise - */ - public boolean isUser(EPUser user); - - List getRolesByApp(EPUser user, Long appId); -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AdminRolesServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AdminRolesServiceImpl.java deleted file mode 100644 index e9ca4e9b..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AdminRolesServiceImpl.java +++ /dev/null @@ -1,497 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.PostConstruct; - -import org.apache.cxf.common.util.StringUtils; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.Transaction; -import org.json.JSONArray; -import org.json.JSONObject; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EPUserApp; -import org.openecomp.portalapp.portal.domain.UserIdRoleId; -import org.openecomp.portalapp.portal.domain.UserRole; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.transport.AppNameIdIsAdmin; -import org.openecomp.portalapp.portal.transport.AppsListWithAdminRole; -import org.openecomp.portalapp.portal.transport.ExternalAccessUser; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.client.RestTemplate; - -import com.fasterxml.jackson.databind.ObjectMapper; - -@Service("adminRolesService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy - -public class AdminRolesServiceImpl implements AdminRolesService { - - private Long SYS_ADMIN_ROLE_ID = 1L; - private Long ACCOUNT_ADMIN_ROLE_ID = 999L; - private Long ECOMP_APP_ID = 1L; - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AdminRolesServiceImpl.class); - - @Autowired - private SessionFactory sessionFactory; - @Autowired - private DataAccessService dataAccessService; - @Autowired - private SearchService searchService; - @Autowired - private EPAppService appsService; - - private RestTemplate template = new RestTemplate(); - - @PostConstruct - private void init() { - try { - SYS_ADMIN_ROLE_ID = Long.valueOf(SystemProperties.getProperty(EPCommonSystemProperties.SYS_ADMIN_ROLE_ID)); - ACCOUNT_ADMIN_ROLE_ID = Long - .valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ACCOUNT_ADMIN_ROLE_ID)); - ECOMP_APP_ID = Long.valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "init failed", e); - } - } - - @Override - @EPMetricsLog - @SuppressWarnings("unchecked") - public AppsListWithAdminRole getAppsWithAdminRoleStateForUser(String orgUserId) { - AppsListWithAdminRole appsListWithAdminRole = null; - - try { - List userList = dataAccessService.getList(EPUser.class, " where orgUserId = '" + orgUserId + "'", - null, null); - HashMap appsUserAdmin = new HashMap(); - if (userList.size() > 0) { - EPUser user = userList.get(0); - List userAppList = null; - try { - userAppList = dataAccessService.getList(EPUserApp.class, - " where userId = " + user.getId() + " and role.id = " + ACCOUNT_ADMIN_ROLE_ID, null, null); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppsWithAdminRoleStateForUser 1 failed", e); - EPLogUtil.logEcompError(EPAppMessagesEnum.BeDaoSystemError); - } - for (EPUserApp userApp : userAppList) { - appsUserAdmin.put(userApp.getAppId(), userApp.getUserId()); - } - } - - appsListWithAdminRole = new AppsListWithAdminRole(); - appsListWithAdminRole.orgUserId = orgUserId; - List appsList = null; - try { - appsList = dataAccessService.getList(EPApp.class, - " where ( enabled = 'Y' or id = " + ECOMP_APP_ID + ")", null, null); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppsWithAdminRoleStateForUser 2 failed", e); - EPLogUtil.logEcompError(EPAppMessagesEnum.BeDaoSystemError); - } - for (EPApp app : appsList) { - AppNameIdIsAdmin appNameIdIsAdmin = new AppNameIdIsAdmin(); - appNameIdIsAdmin.id = app.getId(); - appNameIdIsAdmin.appName = app.getName(); - appNameIdIsAdmin.isAdmin = new Boolean(appsUserAdmin.containsKey(app.getId())); - appNameIdIsAdmin.restrictedApp = app.isRestrictedApp(); - appsListWithAdminRole.appsRoles.add(appNameIdIsAdmin); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppsWithAdminRoleStateForUser 3 failed", e); - } - - return appsListWithAdminRole; - } - - private static final Object syncRests = new Object(); - - @Override - @EPMetricsLog - @SuppressWarnings("unchecked") - public boolean setAppsWithAdminRoleStateForUser(AppsListWithAdminRole newAppsListWithAdminRoles) { - boolean result = false; - // No changes if no new roles list or no userId. - if (!StringUtils.isEmpty(newAppsListWithAdminRoles.orgUserId) && newAppsListWithAdminRoles.appsRoles != null) { - synchronized (syncRests) { - List apps = appsService.getAppsFullList(); - HashMap enabledApps = new HashMap(); - for (EPApp app : apps) { - if (app.getEnabled().booleanValue() || app.getId() == ECOMP_APP_ID) { - enabledApps.put(app.getId(), app); - } - } - List newAppsWhereUserIsAdmin = new ArrayList(); - for (AppNameIdIsAdmin adminRole : newAppsListWithAdminRoles.appsRoles) { - // user Admin role may be added only for enabled apps - if (adminRole.isAdmin.booleanValue() && enabledApps.containsKey(adminRole.id)) { - newAppsWhereUserIsAdmin.add(adminRole); - } - } - EPUser user = null; - boolean createNewUser = false; - String orgUserId = newAppsListWithAdminRoles.orgUserId.trim(); - List localUserList = dataAccessService.getList(EPUser.class, - " where org_user_id='" + orgUserId + "'", null, null); - List oldAppsWhereUserIsAdmin = new ArrayList(); - if (localUserList.size() > 0) { - EPUser tmpUser = localUserList.get(0); - oldAppsWhereUserIsAdmin = dataAccessService.getList(EPUserApp.class, - " where userId = " + tmpUser.getId() + " and role.id = " + ACCOUNT_ADMIN_ROLE_ID, null, - null); - if (oldAppsWhereUserIsAdmin.size() > 0 || newAppsWhereUserIsAdmin.size() > 0) { - user = tmpUser; - } - } else if (newAppsWhereUserIsAdmin.size() > 0) { - // we create new user only if he has Admin Role for any App - createNewUser = true; - } - if (user != null || createNewUser) { - Session localSession = null; - Transaction transaction = null; - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - if (createNewUser) { - user = this.searchService.searchUserByUserId(orgUserId); - if (user != null) { - // insert the user with active true in order to - // pass login phase. - user.setActive(true); - localSession.save(EPUser.class.getName(), user); - } - } - for (EPUserApp oldUserApp : oldAppsWhereUserIsAdmin) { - // user Admin role may be deleted only for enabled - // apps - if (enabledApps.containsKey(oldUserApp.getAppId())) { - localSession.delete(oldUserApp); - } - } - for (AppNameIdIsAdmin appNameIdIsAdmin : newAppsWhereUserIsAdmin) { - EPApp app = (EPApp) localSession.get(EPApp.class, appNameIdIsAdmin.id); - EPRole role = (EPRole) localSession.get(EPRole.class, new Long(ACCOUNT_ADMIN_ROLE_ID)); - EPUserApp newUserApp = new EPUserApp(); - newUserApp.setUserId(user.getId()); - newUserApp.setApp(app); - newUserApp.setRole(role); - localSession.save(EPUserApp.class.getName(), newUserApp); - } - transaction.commit(); - - // Add user admin role for list of centralized applications in external system - result = addAdminRoleInExternalSystem(user, localSession, newAppsWhereUserIsAdmin); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - logger.error(EELFLoggerDelegate.errorLogger, - "setAppsWithAdminRoleStateForUser: exception in point 2", e); - try { - if(transaction!=null) - transaction.rollback(); - else - logger.error(EELFLoggerDelegate.errorLogger, "setAppsWithAdminRoleStateForUser: transaction is null cannot rollback"); - } catch (Exception ex) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeExecuteRollbackError, e); - logger.error(EELFLoggerDelegate.errorLogger, - "setAppsWithAdminRoleStateForUser: exception in point 3", ex); - } - } finally { - try { - localSession.close(); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoCloseSessionError, e); - logger.error(EELFLoggerDelegate.errorLogger, - "setAppsWithAdminRoleStateForUser: exception in point 4", e); - } - } - } - } - } - - return result; - } - - @SuppressWarnings("unchecked") - private boolean addAdminRoleInExternalSystem(EPUser user, Session localSession, - List newAppsWhereUserIsAdmin) { - boolean result = false; - try { - // Reset All admin role for centralized applications - List appList = dataAccessService.executeNamedQuery("getCentralizedApps", null, null); - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - for (EPApp app : appList) { - String name = ""; - if (EPCommonSystemProperties - .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { - name = user.getOrgUserId() + SystemProperties - .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); - } - String extRole = app.getNameSpace() + "." + PortalConstants.ADMIN_ROLE.replaceAll(" ", "_"); - HttpEntity entity = new HttpEntity<>(headers); - logger.debug(EELFLoggerDelegate.debugLogger, "Connecting to External Access system"); - try { - ResponseEntity getResponse = template - .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "roles/" + extRole, HttpMethod.GET, entity, String.class); - - if (getResponse.getBody().equals("{}")) { - String addDesc = "{\"name\":\"" + extRole + "\"}"; - HttpEntity roleEntity = new HttpEntity<>(addDesc, headers); - template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "role", - HttpMethod.POST, roleEntity, String.class); - } else { - try { - HttpEntity deleteUserRole = new HttpEntity<>(headers); - template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "userRole/" + name + "/" + extRole, - HttpMethod.DELETE, deleteUserRole, String.class); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - " Role not found for this user may be it gets deleted before", e); - } - } - } catch (Exception e) { - if (e.getMessage().equalsIgnoreCase("404 Not Found")) { - logger.debug(EELFLoggerDelegate.debugLogger, "Application Not found for app {}", - app.getNameSpace(), e.getMessage()); - } else { - logger.error(EELFLoggerDelegate.errorLogger, "Application Not found for app {}", - app.getNameSpace(), e); - } - } - } - // Add admin role in external application - // application - for (AppNameIdIsAdmin appNameIdIsAdmin : newAppsWhereUserIsAdmin) { - EPApp app = (EPApp) localSession.get(EPApp.class, appNameIdIsAdmin.id); - try { - if (app.getCentralAuth()) { - String extRole = app.getNameSpace() + "." + PortalConstants.ADMIN_ROLE.replaceAll(" ", "_"); - HttpEntity entity = new HttpEntity<>(headers); - String name = ""; - if (EPCommonSystemProperties - .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { - name = user.getOrgUserId() + SystemProperties - .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); - } - logger.debug(EELFLoggerDelegate.debugLogger, "Connecting to External Access system"); - ResponseEntity getUserRolesResponse = template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "userRoles/user/" + name, - HttpMethod.GET, entity, String.class); - logger.debug(EELFLoggerDelegate.debugLogger, "Connected to External Access system"); - if (!getUserRolesResponse.getBody().equals("{}")) { - JSONObject jsonObj = new JSONObject(getUserRolesResponse.getBody()); - JSONArray extRoles = jsonObj.getJSONArray("userRole"); - final Map extUserRoles = new HashMap<>(); - for (int i = 0; i < extRoles.length(); i++) { - String userRole = extRoles.getJSONObject(i).getString("role"); - if (userRole.startsWith(app.getNameSpace() + ".") - && !userRole.equals(app.getNameSpace() + ".admin") - && !userRole.equals(app.getNameSpace() + ".owner")) { - - extUserRoles.put(userRole, extRoles.getJSONObject(i)); - } - } - if (!extUserRoles.containsKey(extRole)) { - // Assign with new apps user admin - try { - ExternalAccessUser extUser = new ExternalAccessUser(name, extRole); - // Assign user role for an application in external access system - ObjectMapper addUserRoleMapper = new ObjectMapper(); - String userRole = addUserRoleMapper.writeValueAsString(extUser); - HttpEntity addUserRole = new HttpEntity<>(userRole, headers); - template.exchange( - SystemProperties.getProperty( - EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "userRole", - HttpMethod.POST, addUserRole, String.class); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "Failed to add user admin role", e); - } - - } - } - } - result = true; - } catch (Exception e) { - if (e.getMessage().equalsIgnoreCase("404 Not Found")) { - logger.debug(EELFLoggerDelegate.errorLogger, - "Application name space not found in External system for app {} due to bad rquest name space ", - app.getNameSpace(), e.getMessage()); - } else { - logger.error(EELFLoggerDelegate.errorLogger, "Failed to assign admin role for application {}", - app.getNameSpace(), e); - result = false; - } - } - } - } catch (Exception e) { - result = false; - logger.error(EELFLoggerDelegate.errorLogger, "Failed to assign admin roles operation", e); - } - return result; - } - - @SuppressWarnings("unchecked") - @Override - public boolean isSuperAdmin(EPUser user) { - if ((user != null) /* && (user.getId() == null) */ && (user.getOrgUserId() != null)) { - String sql = "SELECT user.USER_ID, user.org_user_id, userrole.ROLE_ID, userrole.APP_ID FROM fn_user_role userrole " - + "INNER JOIN fn_user user ON user.USER_ID = userrole.USER_ID " + "WHERE user.org_user_id = '" - + user.getOrgUserId() + "' " + "AND userrole.ROLE_ID = '" + SYS_ADMIN_ROLE_ID + "' " - + "AND userrole.APP_ID = '" + ECOMP_APP_ID + "';"; - try { - List userRoleList = dataAccessService.executeSQLQuery(sql, UserIdRoleId.class, null); - if (userRoleList != null && userRoleList.size() > 0) { - return true; - } - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - logger.error(EELFLoggerDelegate.errorLogger, - "Exception occurred while executing isSuperAdmin operation", e); - } - } - // else - // { - // User currentUser = user != null ? (User) - // dataAccessService.getDomainObject(User.class, user.getId(), null) : - // null; - // if (currentUser != null && currentUser.getId() != null) { - // for (UserApp userApp : currentUser.getUserApps()) { - // if (userApp.getApp().getId().equals(ECOMP_APP_ID) && - // userApp.getRole().getId().equals(SYS_ADMIN_ROLE_ID)) { - // // Super Administrator role is global, no need to keep iterating - // return true; - // } - // } - // } - // } - return false; - } - - public boolean isAccountAdmin(EPUser user) { - try { - EPUser currentUser = user != null - ? (EPUser) dataAccessService.getDomainObject(EPUser.class, user.getId(), null) - : null; - if (currentUser != null && currentUser.getId() != null) { - for (EPUserApp userApp : currentUser.getEPUserApps()) { - if (// !userApp.getApp().getId().equals(ECOMP_APP_ID) - // && - userApp.getRole().getId().equals(ACCOUNT_ADMIN_ROLE_ID)) { - // Account Administrator sees only the applications - // he/she is Administrator - return true; - } - } - } - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while executing isAccountAdmin operation", - e); - } - return false; - } - - public boolean isUser(EPUser user) { - try { - EPUser currentUser = user != null - ? (EPUser) dataAccessService.getDomainObject(EPUser.class, user.getId(), null) - : null; - if (currentUser != null && currentUser.getId() != null) { - for (EPUserApp userApp : currentUser.getEPUserApps()) { - if (!userApp.getApp().getId().equals(ECOMP_APP_ID)) { - EPRole role = userApp.getRole(); - if (!role.getId().equals(SYS_ADMIN_ROLE_ID) && !role.getId().equals(ACCOUNT_ADMIN_ROLE_ID)) { - if (role.getActive()) { - return true; - } - } - } - } - } - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while executing isUser operation", e); - } - return false; - } - - @Override - @EPMetricsLog - public List getRolesByApp(EPUser user, Long appId) { - List list = new ArrayList<>(); - String sql = "SELECT * FROM FN_ROLE WHERE UPPER(ACTIVE_YN) = 'Y' AND APP_ID = " + appId; - @SuppressWarnings("unchecked") - List roles = dataAccessService.executeSQLQuery(sql, EPRole.class, null); - for (EPRole role : roles) { - list.add(role); - } - return list; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppContactUsService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppContactUsService.java deleted file mode 100644 index da33293c..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppContactUsService.java +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; -import org.openecomp.portalapp.portal.ecomp.model.AppContactUsItem; - -public interface AppContactUsService { - - /** - * Gets a list of contact-us information for all entries in - * the fn_app_contact_us table, sorted by app name. If an application is active but has no fn_app_contact_us entry, it will have no entry in this result. - * - * @return List of AppContactUsItem, one for each item in fn_app_contact_us table. - * @throws Exception - */ - public List getAppContactUs() throws Exception; - - /** - * Gets a list of contact-us information for all applications - * in the fn_app table, extended with any information in the fn_app_contact_us table. - * - * @return List of AppContactUsItem, one for each item in fn_app table. - * @throws Exception - */ - public List getAppsAndContacts() throws Exception; - - public List getAppCategoryFunctions() throws Exception; - - public String saveAppContactUs(List contactUs) throws Exception; - - public String saveAppContactUs(AppContactUsItem contactUs) throws Exception; - - public String deleteContactUs(Long id) throws Exception; - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppContactUsServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppContactUsServiceImpl.java deleted file mode 100644 index 2f987075..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppContactUsServiceImpl.java +++ /dev/null @@ -1,207 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalapp.portal.domain.AppContactUs; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; -import org.openecomp.portalapp.portal.ecomp.model.AppContactUsItem; - -/** - * Provides database access for the contact-us page controllers. - */ -@Transactional -@org.springframework.context.annotation.Configuration -public class AppContactUsServiceImpl implements AppContactUsService { - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppContactUsServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - - public DataAccessService getDataAccessService() { - return dataAccessService; - } - - public void setDataAccessService(DataAccessService dataAccessService) { - this.dataAccessService = dataAccessService; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.AppContactUsService# - * getAppContactUs() - */ - @SuppressWarnings("unchecked") - @Override - public List getAppContactUs() throws Exception { - List contactUsItemList = (List) getDataAccessService() - .executeNamedQuery("getAppContactUsItems", null, null); - Collections.sort(contactUsItemList, new AppContactUsItemCompare()); - return contactUsItemList; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.AppContactUsService# - * getAllAppsAndContacts() - */ - @SuppressWarnings("unchecked") - @Override - public List getAppsAndContacts() throws Exception { - List contactUsItemList = (List) getDataAccessService() - .executeNamedQuery("getAppsAndContacts", null, null); - Collections.sort(contactUsItemList, new AppContactUsItemCompare()); - return contactUsItemList; - } - - /** - * Assists in sorting app-contact-us items by application name. - */ - class AppContactUsItemCompare implements Comparator { - @Override - public int compare(AppContactUsItem o1, AppContactUsItem o2) { - return o1.getAppName().compareTo(o2.getAppName()); - } - } - - /** - * Gets a table of category and function details for apps that participate - * in the functional menu. - */ - @Override - public List getAppCategoryFunctions() throws Exception { - @SuppressWarnings("unchecked") - // This named query requires no parameters. - List list = (List) dataAccessService - .executeNamedQuery("getAppCategoryFunctions", null, null); - logger.debug(EELFLoggerDelegate.debugLogger, "getAppCategoryFunctions: result list size is " + list.size()); - return list; - } - - /** - * Saves the list of contact-us objects to the database. - */ - @Override - @Transactional(rollbackFor = Exception.class) - public String saveAppContactUs(List contactUsModelList) throws Exception { - try { - for (AppContactUsItem contactUs : contactUsModelList) { - String status = saveAppContactUs(contactUs); - if (!status.equals("success")) - throw new Exception("saveAppContaatUsFailed: service returned " + status); - } - return "success"; - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "", e); - throw new Exception(e); - } - - } - - /** - * Saves a single contact-us object to the database, either creating a new - * row or updating if the argument has the ID of an existing row. - */ - @Override - @Transactional(rollbackFor = Exception.class) - public String saveAppContactUs(AppContactUsItem contactUsModel) throws Exception { - try { - HashMap map = new HashMap(); - AppContactUs contactUs = null; - try { - contactUs = (AppContactUs) getDataAccessService().getDomainObject(AppContactUs.class, - contactUsModel.getAppId(), map); - } catch (Exception e) { - logger.debug(EELFLoggerDelegate.debugLogger, "saveAppContactUs: not found for App {}, adding new entry", - contactUsModel.getAppName()); - contactUs = new AppContactUs(); - } - - // Populate the AppContactUs model for the database. - EPApp app = (EPApp) getDataAccessService().getDomainObject(EPApp.class, contactUsModel.getAppId(), map); - if (app == null || app.getId() == null) - throw new Exception("saveAppContactus: App not found for Id " + contactUsModel.getAppId()); - contactUs.setApp(app); - contactUs.setDescription(contactUsModel.getDescription()); - contactUs.setContactName(contactUsModel.getContactName()); - contactUs.setContactEmail(contactUsModel.getContactEmail()); - contactUs.setActiveYN(contactUsModel.getActiveYN()); - contactUs.setUrl(contactUsModel.getUrl()); - getDataAccessService().saveDomainObject(contactUs, map); - return "success"; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "saveAppContactUs failed", e); - throw e; - // return "failure"; - } - } - - /** - * Deletes the row from the app contact us table with the specified ID. - */ - @Override - public String deleteContactUs(Long id) throws Exception { - try { - HashMap map = new HashMap(); - AppContactUs contactUs = (AppContactUs) getDataAccessService().getDomainObject(AppContactUs.class, id, map); - if (contactUs.getApp() == null) - throw new Exception("Delete unsuccessful for Id " + id); - getDataAccessService().deleteDomainObject(contactUs, map); - return "success"; - } catch (Exception e) { - - logger.info(EELFLoggerDelegate.errorLogger, "", e); - throw e; - } - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ApplicationsRestClientService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ApplicationsRestClientService.java deleted file mode 100644 index a8d79aed..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ApplicationsRestClientService.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal SDK - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import org.apache.cxf.transport.http.HTTPException; -import org.openecomp.portalapp.util.SystemType; - -public interface ApplicationsRestClientService { - public T get(Class clazz, long app, String restPath) throws HTTPException; - public String getIncomingJsonString(long appId, String restPath) throws HTTPException; - - public T post(Class clazz, long appId, Object payload, String restPath) throws HTTPException; - public T post(Class clazz, long appId, Object payload, String restPath, SystemType type) throws HTTPException; - - public T put(Class clazz, long appId, Object payload, String restPath) throws HTTPException; - - /** - * Sends a GET request to the specified application at the specified path. - * This is a workaround for a problem triggered by a superclass/subclass - * with identical field names. - * - * @param clazz - * Expected response type - * @param appId - * Application ID - * @param restPath - * Path at the remote application - * @param useJacksonMapper - * If true, uses a com.fasterxml.jackson.databind.ObjectMapper to - * translate the remote application response from JSON to an - * object. Otherwise, uses a com.google.gson.Gson. - * @return Instance of the specified class - * @throws HTTPException - */ - public T get(Class clazz, long appId, String restPath, boolean useJacksonMapper) throws HTTPException; -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ApplicationsRestClientServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ApplicationsRestClientServiceImpl.java deleted file mode 100644 index ae11a91e..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ApplicationsRestClientServiceImpl.java +++ /dev/null @@ -1,426 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal SDK - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import static com.att.eelf.configuration.Configuration.MDC_KEY_REQUEST_ID; - -import java.lang.reflect.Type; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Base64; -import java.util.Date; - -import javax.annotation.PostConstruct; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.apache.cxf.jaxrs.client.WebClient; -import org.apache.cxf.transport.http.HTTPException; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.util.SystemType; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; - -@Service("applicationsRestClientService") -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPAuditLog -public class ApplicationsRestClientServiceImpl implements ApplicationsRestClientService { - - private static final String PASSWORD_HEADER = "password"; - - private static final String APP_USERNAME_HEADER = "username"; - - private static final String BASIC_AUTHENTICATION_HEADER = "Authorization"; - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ApplicationsRestClientServiceImpl.class); - - @Autowired - private AppsCacheService appsCacheService; - - Gson gson = null; - - private final ObjectMapper mapper = new ObjectMapper(); - - @PostConstruct - private void init() { - logger.debug(EELFLoggerDelegate.debugLogger, "initializing"); - GsonBuilder builder = new GsonBuilder(); - - // Register an adapter to manage the date types as long values - builder.registerTypeAdapter(Date.class, new JsonDeserializer() { - public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) - throws JsonParseException { - return new Date(json.getAsJsonPrimitive().getAsLong()); - } - }); - - gson = builder.create(); - } - - // TODO: do we need to do additional logging for remote API calls? - private static WebClient createClientForPath(String baseUri, String path) { - logger.info(EELFLoggerDelegate.debugLogger, "Creating web client for " + baseUri + " + " + path); - WebClient client = WebClient.create(baseUri); - client.type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON); - client.path(path); - return client; - } - - @EPMetricsLog - private void verifyResponse(Response response) throws HTTPException { - int status = response.getStatus(); - logger.debug(EELFLoggerDelegate.debugLogger, "http response status=" + status); - MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, Integer.toString(status)); - if (!isHttpSuccess(status)) { - String errMsg = "Failed. Status=" + status + "; [" + response.getStatusInfo().getReasonPhrase().toString() - + "]"; - URL url = null; - try { - // must not be null to avoid NPE in HTTPException constructor - url = new URL("http://null"); - if (response.getLocation() != null) - url = response.getLocation().toURL(); - } catch (MalformedURLException e) { - // never mind. it is only for the debug message. - logger.warn(EELFLoggerDelegate.errorLogger, "Failed to build URL", e); - } - logger.error(EELFLoggerDelegate.errorLogger, "http response failed. " + errMsg + "; url=" + url); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeIncorrectHttpStatusError); - throw new HTTPException(status, errMsg, url); - } - } - - private static boolean isHttpSuccess(int status) { - return status / 100 == 2; - } - - - private WebClient createClientForApp(long appId, String restPath) { - return createClientFor(appId, restPath, SystemType.APPLICATION); - } - - //TODO Need to implement the mylogins once the endpoint is confirmed - @EPMetricsLog - private WebClient createClientFor(long appSystemId, String restPath, SystemType type) { - logger.debug(EELFLoggerDelegate.debugLogger, "creating client for appId=" + appSystemId + "; restPath=" + restPath); - EPApp externalApp = null; - - if(type == SystemType.APPLICATION){ - externalApp = appsCacheService.getApp(appSystemId); - }else{ - // TO DO - } - - if (externalApp != null) { - String appBaseUri = (type == SystemType.APPLICATION) ? externalApp.getAppRestEndpoint() : ""; - String username = (type == SystemType.APPLICATION) ? externalApp.getUsername(): ""; - String encriptedPwd = (type == SystemType.APPLICATION) ? externalApp.getAppPassword(): ""; - String appName = (type == SystemType.APPLICATION) ? externalApp.getName(): ""; - String decreptedAppPwd = ""; - - // Set local context - MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTP); - if (appBaseUri != null && appBaseUri.contains("https")) { - MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTPS); - } - MDC.put(EPCommonSystemProperties.FULL_URL, appBaseUri + restPath); - MDC.put(EPCommonSystemProperties.TARGET_ENTITY, appName); - MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, restPath); - - try { - decreptedAppPwd = CipherUtil.decrypt(encriptedPwd, - SystemProperties.getProperty(SystemProperties.Decryption_Key)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "createClientFor failed to decrypt", e); - } - - WebClient client = createClientForPath(appBaseUri, restPath); - - // support basic authentication for some partners - String encoding = Base64.getEncoder().encodeToString((username + ":" + decreptedAppPwd).getBytes()); - String encodingStr = "Basic " + encoding; - client.header(BASIC_AUTHENTICATION_HEADER, encodingStr); - - // But still keep code downward compatible for non compliant apps - client.header(APP_USERNAME_HEADER, username); - client.header(PASSWORD_HEADER, decreptedAppPwd); - - client.header(SystemProperties.ECOMP_REQUEST_ID, MDC.get(MDC_KEY_REQUEST_ID)); - client.header(SystemProperties.USERAGENT_NAME, EPCommonSystemProperties.ECOMP_PORTAL_BE); - - logger.debug(EELFLoggerDelegate.debugLogger, - String.format("App %d found, baseUri=[%s], Headers: [%s=%s, %s=%s, %s=%s]", appSystemId, appBaseUri, - APP_USERNAME_HEADER, username, PASSWORD_HEADER, encriptedPwd, BASIC_AUTHENTICATION_HEADER, encodingStr)); - - return client; - } - return null; - } - - @Override - public T get(Class clazz, long appId, String restPath) throws HTTPException { - T t = null; - Response response = getResponse(appId, restPath); - - if (response != null) { - verifyResponse(response); - String str = response.readEntity(String.class); - EcompPortalUtils.logAndSerializeObject(logger, restPath, "GET result =", str); - try { - t = gson.fromJson(str, clazz); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); - } - } - - return t; - } - - @Override - public String getIncomingJsonString(long appId, String restPath) throws HTTPException { - Response response = getResponse(appId, restPath); - - if (response != null) { - verifyResponse(response); - String incomingJson = response.readEntity(String.class); - return incomingJson; - } - - return ""; - } - - - /* - * (non-Javadoc) - * - * @see - * org.openecomp.portalapp.portal.service.ApplicationsRestClientService#get( - * java.lang.Class, long, java.lang.String, boolean) - */ - @Override - public T get(Class clazz, long appId, String restPath, boolean useJacksonMapper) throws HTTPException { - - if (!useJacksonMapper) - return get(clazz, appId, restPath); - - T t = null; - Response response = getResponse(appId, restPath); - - if (response != null) { - verifyResponse(response); - String str = response.readEntity(String.class); - EcompPortalUtils.logAndSerializeObject(logger, restPath, "GET result =", str); - - try { - t = mapper.readValue(str, clazz); - } catch (Exception e) { - e.printStackTrace(); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); - } - } - - return t; - } - - protected Response getResponse(long appId, String restPath) { - WebClient webClient = null; - Response response = null; - - webClient = createClientForApp(appId, restPath); - EcompPortalUtils.logAndSerializeObject(logger, restPath, "GET request =", "no-payload"); - - try { - if (webClient != null) { - response = webClient.get(); - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "Unable to create the Webclient to make the '" + restPath + "' API call."); - } - } catch (Exception e) { - MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, - Integer.toString(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiGeneralError, e); - logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while making the GET REST API call", e); - } - return response; - } - - - @Override - public T post(Class clazz, long appId, Object payload, String restPath, SystemType type) throws HTTPException { - WebClient client = null; - Response response = null; - T t = null; - - client = createClientFor(appId, restPath, type); - EcompPortalUtils.logAndSerializeObject(logger, restPath, "POST request =", payload); - - try { - if (client != null) { - response = client.post(payload); - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "Unable to create the Webclient to make the '" + restPath + "' API call."); - } - } catch (Exception e) { - MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, - Integer.toString(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiGeneralError, e); - logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while making the POST REST API call", e); - } - - if (response != null) { - verifyResponse(response); - - // String contentType = response.getHeaderString("Content-Type"); - if (clazz != null) { - String str = response.readEntity(String.class); - EcompPortalUtils.logAndSerializeObject(logger, restPath, "POST result =", str); - try { - t = gson.fromJson(str, clazz); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); - } - } - } - return t; - } - - @Override - public T post(Class clazz, long appId, Object payload, String restPath) throws HTTPException { - return post( clazz, appId, payload, restPath, SystemType.APPLICATION); - } - - //@Override - public T postForClass(Class clazz, long appId, Object payload, String restPath, Class forClass) throws HTTPException { - WebClient client = null; - Response response = null; - T t = null; - - client = createClientForApp(appId, restPath); - EcompPortalUtils.logAndSerializeObject(logger, restPath, "POST request =", payload); - - try { - if (client != null) { - response = client.post(payload); - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "Unable to create the Webclient to make the '" + restPath + "' API call."); - } - } catch (Exception e) { - MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, - Integer.toString(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiGeneralError, e); - logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while making the POST REST API call", e); - } - - if (response != null) { - verifyResponse(response); - - // String contentType = response.getHeaderString("Content-Type"); - if (clazz != null) { - String str = response.readEntity(String.class); - EcompPortalUtils.logAndSerializeObject(logger, restPath, "POST result =", str); - try { - t = gson.fromJson(str, clazz); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); - } - } - } - return t; - } - - - @Override - public T put(Class clazz, long appId, Object payload, String restPath) throws HTTPException { - WebClient client = null; - Response response = null; - T t = null; - - client = createClientForApp(appId, restPath); - EcompPortalUtils.logAndSerializeObject(logger, restPath, "PUT request =", payload); - - try { - if (client != null) { - response = client.put(payload); - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "Unable to create the Webclient to make the '" + restPath + "' API call."); - } - } catch (Exception e) { - MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, - Integer.toString(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiGeneralError, e); - logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while making the PUT REST API call", e); - } - - if (response != null) { - verifyResponse(response); - String str = response.readEntity(String.class); - EcompPortalUtils.logAndSerializeObject(logger, restPath, "PUT result =", str); - try { - t = gson.fromJson(str, clazz); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); - } - } - return t; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppsCacheService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppsCacheService.java deleted file mode 100644 index 4ffccd1e..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppsCacheService.java +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.service; - -import org.openecomp.portalapp.portal.domain.EPApp; - -public interface AppsCacheService { - - /** - * returns an app by id from the cache - * @param appId - * @return corresponding App - */ - EPApp getApp(Long appId); - - /** - * returns the corresponding application endpoint - * @param appId - * @return if appId exists in cache, then return corresponding application endpoint, null otherwise. - */ - String getAppEndpoint(Long appId); - - EPApp getAppForAnalytics(String appKey); -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppsCacheServiceImple.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppsCacheServiceImple.java deleted file mode 100644 index f56cdef9..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/AppsCacheServiceImple.java +++ /dev/null @@ -1,154 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.PostConstruct; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; - -@Service("appsCacheService") -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class AppsCacheServiceImple implements AppsCacheService { - @Autowired - EPAppService appsService; - - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsCacheServiceImple.class); - - final class CacheConfiguration { - - private long updateTime = 0; - private int updateInterval = 10; - - public CacheConfiguration (long _updateTime, int _updateInterval) { - updateTime = _updateTime; - updateInterval = _updateInterval; - } - } - - CacheConfiguration appConf = null; - CacheConfiguration analyticsAppConf = null; - - - private static volatile Map appsMap; - private static volatile Map anlyticsAppsMap; - - @PostConstruct - public void init() { - appConf = new CacheConfiguration(0, 10); - analyticsAppConf = new CacheConfiguration(0, 3600); - - this.refreshAppsMap(appConf); - } - - private Map refreshAppsMap(CacheConfiguration conf) { - long now = System.currentTimeMillis(); - - if(noNeedToUpdate(now, conf)) - return null; - - synchronized (this) { - if(noNeedToUpdate(now, conf)) - return null; - List allApps = appsService.getAppsFullList(); - Map newAppsMap = new HashMap(); - for (EPApp app : allApps) { - newAppsMap.put(app.getId(), app); - } - - Map newAnalyticsAppsMap = new HashMap(); - for (EPApp app : allApps) { - newAnalyticsAppsMap.put(app.getUebKey(), app); - } - // Switch cache with the new one. - appsMap = newAppsMap; - anlyticsAppsMap = newAnalyticsAppsMap; - conf.updateTime = now; - } - - return appsMap; - } - - private boolean noNeedToUpdate(long now, CacheConfiguration conf) { - long secondsPassed = (now - conf.updateTime)/1000; - if(secondsPassed < conf.updateInterval){ - logger.debug(EELFLoggerDelegate.debugLogger, "no need to refresh yet, seconds since last refresh: " + secondsPassed + ", refresh interval (sec) = " + conf.updateInterval); - return true; // no need to update cache - } - return false; // its time to update - } - - @Override - public String getAppEndpoint(Long appId) { - refreshAppsMap(appConf); - EPApp app = appsMap.get(appId); - if(app != null) - return app.getAppRestEndpoint(); - return null; - } - - @Override - public EPApp getApp(Long appId) { - refreshAppsMap(appConf); - EPApp app = appsMap.get(appId); - if(app != null) - return app; - return null; - } - - @Override - public EPApp getAppForAnalytics(String appKey) { - refreshAppsMap(analyticsAppConf); - EPApp app = anlyticsAppsMap.get(appKey); - if(app != null) - return app; - return null; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthAccountService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthAccountService.java deleted file mode 100644 index 0f18b6f3..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthAccountService.java +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.BasicAuthCredentials; -import org.openecomp.portalapp.portal.domain.EPEndpoint; - -public interface BasicAuthAccountService { - - /** - * Saves Basic Authentication account for external systems - * - * @param newCredential - * BasicAuthCredentials - * @return Id of the newly created account - * @throws Exception - */ - Long saveBasicAuthAccount(BasicAuthCredentials newCredential) throws Exception; - - /** - * Saves Endpoint associated with a Basic Auth account - * - * @param endpoint - * EPEndpoint - * @return Id of the newly created endpoint - * @throws Exception - */ - Long saveEndpoints(EPEndpoint endpoint) throws Exception; - - /** - * Saves Endpoint associated with a Basic Auth account - * - * @param accountId - * @param endpointId - * @throws Exception - */ - void saveEndpointAccount(Long accountId, Long endpointId) throws Exception; - - /** - * Returns list of all BasicAuthCredentials in the sytem - * - * @return List - * @throws Exception - */ - List getAccountData() throws Exception; - - /** - * Deletes BasicAuthenticationAccount - * - * @param accountId - * @throws Exception - */ - void deleteEndpointAccout(Long accountId) throws Exception; - - /** - * Updates BasicAuthenticationAccount - * - * @param accountId - * @param newCredential - * BasicAuthCredentials - * @throws Exception - */ - void updateBasicAuthAccount(Long accountId, BasicAuthCredentials newCredential) throws Exception; -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthAccountServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthAccountServiceImpl.java deleted file mode 100644 index 1c353d07..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthAccountServiceImpl.java +++ /dev/null @@ -1,240 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.hibernate.criterion.Criterion; -import org.hibernate.criterion.Restrictions; -import org.openecomp.portalapp.portal.domain.BasicAuthCredentials; -import org.openecomp.portalapp.portal.domain.EPEndpoint; -import org.openecomp.portalapp.portal.domain.EPEndpointAccount; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -@Service("basicAuthAccountService") -@EnableAspectJAutoProxy -@EPMetricsLog -public class BasicAuthAccountServiceImpl implements BasicAuthAccountService{ - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MicroserviceServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - - @Override - public Long saveBasicAuthAccount(BasicAuthCredentials newCredential) throws Exception { - if (newCredential.getPassword() != null) - newCredential.setPassword(encryptedPassword(newCredential.getPassword())); - try{ - getDataAccessService().saveDomainObject(newCredential, null); - }catch(Exception e){ - logger.error(EELFLoggerDelegate.errorLogger, "saveBasicAuthAccount() failed", e); - throw e; - } - return newCredential.getId(); - } - - - @Override - @SuppressWarnings("unchecked") - public Long saveEndpoints(EPEndpoint endpoint) throws Exception { - - List restrictionsList = new ArrayList(); - Criterion NameCrit = Restrictions.eq("name", endpoint.getName()); - restrictionsList.add(NameCrit); - - List tempList = (List) dataAccessService.getList(EPEndpoint.class, null, - restrictionsList, null); - if (tempList.size() != 0) { - return tempList.get(0).getId(); - } else { - getDataAccessService().saveDomainObject(endpoint, null); - return endpoint.getId(); - } - - } - - @Override - public void saveEndpointAccount(Long accountId, Long endpointId) throws Exception { - EPEndpointAccount record = new EPEndpointAccount(); - record.setAccount_id(accountId); - record.setEp_id(endpointId); - try { - getDataAccessService().saveDomainObject(record, null); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "saveEndpointAccount() failed", e); - throw e; - } - - } - - @Override - @SuppressWarnings("unchecked") - public void updateBasicAuthAccount(Long accountId, BasicAuthCredentials newCredential) throws Exception { - try { - newCredential.setId(accountId); - if (newCredential.getPassword() != null) - newCredential.setPassword(encryptedPassword(newCredential.getPassword())); - getDataAccessService().saveDomainObject(newCredential, null); - - List endpoints = newCredential.getEndpoints(); - List orig_points = getEPEndpoints(accountId); - - for(EPEndpoint temp_ep: orig_points){ - boolean flag = false; - for(EPEndpoint temp_ep2: endpoints){ - if(temp_ep2.getId() == temp_ep.getId()) - flag = true; - } - if(!flag){ - Map params = new HashMap(); - params.put("accountId", Long.toString(accountId)); - params.put("epId", Long.toString(temp_ep.getId())); - dataAccessService.executeNamedQuery("deleteAccountEndpointRecord", params, null); - } - } - - - for(int i = 0; i < endpoints.size(); i++){ - - List restrictionsList = new ArrayList(); - Criterion IdCrit = Restrictions.eq("id", endpoints.get(i).getId()); - restrictionsList.add(IdCrit); - Criterion NameCrit = Restrictions.eq("name", endpoints.get(i).getName()); - restrictionsList.add(NameCrit); - List tempList = (List) dataAccessService - .getList(EPEndpoint.class, null, restrictionsList, null); - if(tempList.size() == 0){ - if(endpoints.get(i).getId() != null){ - //delete the record endpoints.get(i).getId(), accountId - Map params = new HashMap(); - params.put("accountId", Long.toString(accountId)); - params.put("epId", Long.toString(endpoints.get(i).getId())); - dataAccessService.executeNamedQuery("deleteAccountEndpointRecord", params, null); - endpoints.get(i).setId(null); - } - //create a new endpoint - Long ep_id = saveEndpoints(endpoints.get(i)); - saveEndpointAccount(accountId, ep_id); - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "updateBasicAuthAccount() failed", e); - throw e; - } - } - - @Override - public List getAccountData() throws Exception { - @SuppressWarnings("unchecked") - List list = (List) dataAccessService.getList(BasicAuthCredentials.class, null); - for (int i = 0; i < list.size(); i++) { - if (list.get(i).getPassword() != null) - list.get(i).setPassword(decryptedPassword(list.get(i).getPassword())); - list.get(i).setEndpoints(getEPEndpoints(list.get(i).getId())); - } - return list; - } - - @SuppressWarnings("unchecked") - private List getEPEndpoints(long accountId) { - List result = new ArrayList<>(); - List list = (List) dataAccessService - .getList(EPEndpointAccount.class, " where account_id = '" + accountId + "'", null, null); - for(int i = 0; i < list.size(); i++){ - result.add((EPEndpoint) dataAccessService.getDomainObject(EPEndpoint.class, list.get(i).getEp_id(), null)); - } - return result; - } - - @Override - public void deleteEndpointAccout(Long accountId) throws Exception { - try{ - Map params = new HashMap(); - params.put("accountId", Long.toString(accountId)); - - dataAccessService.executeNamedQuery("deleteAccountEndpoint", params, null); - dataAccessService.executeNamedQuery("deleteBasicAuthAccount", params, null); - - }catch(Exception e){ - logger.error(EELFLoggerDelegate.errorLogger, "deleteEndpointAccout() failed", e); - throw e; - } - } - - private String decryptedPassword(String encryptedPwd) throws Exception { - String result = ""; - if (encryptedPwd != null & encryptedPwd.length() > 0) { - try { - result = CipherUtil.decrypt(encryptedPwd, - SystemProperties.getProperty(SystemProperties.Decryption_Key)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword() failed", e); - throw e; - } - } - return result; - } - - private String encryptedPassword(String decryptedPwd) throws Exception { - String result = ""; - if (decryptedPwd != null & decryptedPwd.length() > 0) { - try { - result = CipherUtil.encrypt(decryptedPwd, - SystemProperties.getProperty(SystemProperties.Decryption_Key)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "encryptedPassword() failed", e); - throw e; - } - } - return result; - } - - public DataAccessService getDataAccessService() { - return dataAccessService; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthenticationCredentialService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthenticationCredentialService.java deleted file mode 100644 index c16ae40d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthenticationCredentialService.java +++ /dev/null @@ -1,53 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import org.openecomp.portalapp.portal.domain.BasicAuthCredentials; - -public interface BasicAuthenticationCredentialService { - /** - * Gets the basic authentication credential for the specified appName from - * table ep_basic_auth_account - * - * @param username - * External user name - * @return BasicAuthCredentials for the specified app; null if the username - * is not known. - */ - public BasicAuthCredentials getBasicAuthCredentialByUsernameAndPassword(String username, String password); -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthenticationCredentialServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthenticationCredentialServiceImpl.java deleted file mode 100644 index 49f6f58c..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/BasicAuthenticationCredentialServiceImpl.java +++ /dev/null @@ -1,103 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.List; - -import org.hibernate.criterion.Criterion; -import org.hibernate.criterion.Restrictions; -import org.openecomp.portalapp.portal.domain.BasicAuthCredentials; -import org.openecomp.portalapp.portal.domain.EPEndpoint; -import org.openecomp.portalapp.portal.domain.EPEndpointAccount; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -@Service("basicAuthenticationCredentialService") -@EnableAspectJAutoProxy -@EPMetricsLog -public class BasicAuthenticationCredentialServiceImpl implements BasicAuthenticationCredentialService { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(BasicAuthenticationCredentialServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - - @Override - public BasicAuthCredentials getBasicAuthCredentialByUsernameAndPassword(String username, String password) { - - List restrictionsList = new ArrayList(); - Criterion contextUserNameCrit = Restrictions.eq("username", username); - restrictionsList.add(contextUserNameCrit); - Criterion contextPasswordCrit = Restrictions.eq("password", password); - restrictionsList.add(contextPasswordCrit); - - @SuppressWarnings("unchecked") - List credList = (List) dataAccessService - .getList(BasicAuthCredentials.class, null, restrictionsList, null); - if (credList == null || credList.size() == 0) { - logger.error(EELFLoggerDelegate.errorLogger, - "getBasicAuthCredentialByAppName: no credential(s) for " + username); - return null; - } - logger.debug(EELFLoggerDelegate.debugLogger, - "getBasicAuthCredentialByAppName: cred list size: " + credList.size()); - BasicAuthCredentials cred = (BasicAuthCredentials) credList.get(0); - cred.setEndpoints(getEndpointsByAccountId(cred.getId())); - return cred; - } - - private List getEndpointsByAccountId(long id) { - List list = new ArrayList<>(); - List restrictionsList = new ArrayList(); - Criterion contextIdCrit = Restrictions.eq("account_id", id); - restrictionsList.add(contextIdCrit); - @SuppressWarnings("unchecked") - List epList = (List) dataAccessService.getList(EPEndpointAccount.class, - null, restrictionsList, null); - for (EPEndpointAccount ep : epList) { - list.add((EPEndpoint) dataAccessService.getDomainObject(EPEndpoint.class, ep.getEp_id(), null)); - } - return list; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ConsulHealthService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ConsulHealthService.java deleted file mode 100644 index 6742a4c9..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ConsulHealthService.java +++ /dev/null @@ -1,61 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.exceptions.NoHealthyServiceException; -import com.ecwid.consul.ConsulException; -import com.orbitz.consul.model.health.ServiceHealth; - -public interface ConsulHealthService { - /** - * This method returns the location of one healthy node if found in Consul - - * If not found in / by Consul, it falls back to 'localhost' - * - * @param service - * @param fallbackPortOnLocalhost - * value provided by the calling service - * @return Service location - */ - public String getServiceLocation(String service, String fallbackPortOnLocalhost) throws NoHealthyServiceException; - - public List getAllHealthyNodes(String service) throws ConsulException; - - public List getAllNodes(String service) throws ConsulException; -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ConsulHealthServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ConsulHealthServiceImpl.java deleted file mode 100644 index d3ca7452..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ConsulHealthServiceImpl.java +++ /dev/null @@ -1,114 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.stereotype.Component; - -import com.ecwid.consul.ConsulException; -import com.orbitz.consul.Consul; -import com.orbitz.consul.HealthClient; -import com.orbitz.consul.model.health.ServiceHealth; - -@Component -public class ConsulHealthServiceImpl implements ConsulHealthService { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ConsulHealthServiceImpl.class); - - @Override - public String getServiceLocation(String service, String fallbackPortOnLocalHost) { - - List nodes = null; - - try { - Consul consul = Consul.builder().build(); - HealthClient healthClient = consul.healthClient(); - nodes = healthClient.getHealthyServiceInstances(service).getResponse(); - } catch (Exception e) { - String localFallbackServiceLocation = EcompPortalUtils.localOrDockerHost() + ":" + fallbackPortOnLocalHost; - logger.debug(EELFLoggerDelegate.debugLogger, - " problem getting nodes for service {1}. Defaulting to {2}. Exception: {3}", service, - localFallbackServiceLocation, e.getMessage()); - logger.error(EELFLoggerDelegate.errorLogger, - " problem getting nodes for service {1}. Defaulting to {2}. Exception: {3}", service, - localFallbackServiceLocation, e); - return localFallbackServiceLocation; - } - - if (nodes == null || nodes.size() == 0) { - logger.debug(EELFLoggerDelegate.debugLogger, "No healthy node found in the consul cluster running service " + service - + ". Defaulting to localhost"); - return EcompPortalUtils.localOrDockerHost() + ":" + fallbackPortOnLocalHost; - } else { - String locationFromConsul; - ServiceHealth node = nodes.get(0); - locationFromConsul = node.getNode().getNode() + ":" + node.getService().getPort(); - logger.debug(EELFLoggerDelegate.debugLogger, - "Found healthy service location using consul - returning location " + locationFromConsul); - - // if locationFromConsul is null for some reason (very unlikely at - // this point), default to localhost - if (null == locationFromConsul || "".equals(locationFromConsul)) { - logger.debug(EELFLoggerDelegate.debugLogger, - "Couldn't get location from consul for service " + service + ". Defaulting to localhost"); - return "localhost:" + fallbackPortOnLocalHost; - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "Found service location from consul for service " + service - + ". Location is " + locationFromConsul); - return locationFromConsul; - } - } - } - - @Override - public List getAllHealthyNodes(String service) throws ConsulException { - Consul consul = Consul.builder().build(); - HealthClient healthClient = consul.healthClient(); - return healthClient.getHealthyServiceInstances(service).getResponse(); - } - - @Override - public List getAllNodes(String service) { - Consul consul = Consul.builder().build(); - HealthClient healthClient = consul.healthClient(); - return healthClient.getAllServiceInstances(service).getResponse(); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/DashboardSearchService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/DashboardSearchService.java deleted file mode 100644 index 87d557c3..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/DashboardSearchService.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; -import java.util.Map; - -import org.openecomp.portalapp.portal.transport.CommonWidget; -import org.openecomp.portalapp.portal.transport.CommonWidgetMeta; -import org.openecomp.portalapp.portal.ecomp.model.SearchResultItem; - -public interface DashboardSearchService { - public Map> searchResults(String userId, String searchString); - public List getRelatedUsers(String userId); - - public CommonWidgetMeta getWidgetData(String resourceType); - public String saveWidgetDataBulk(CommonWidgetMeta commonWidgetMetaData); - public String saveWidgetData(CommonWidget commonWidgetData); - public String deleteWidgetData(CommonWidget eventWidget); -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/DashboardSearchServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/DashboardSearchServiceImpl.java deleted file mode 100644 index f08011f2..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/DashboardSearchServiceImpl.java +++ /dev/null @@ -1,118 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalapp.portal.transport.CommonWidget; -import org.openecomp.portalapp.portal.transport.CommonWidgetMeta; -import org.openecomp.portalapp.portal.ecomp.model.SearchResultItem; - -@Component -public class DashboardSearchServiceImpl implements DashboardSearchService { - - @Autowired - private DataAccessService dataAccessService; - - public Map> searchResults(String userId, String searchString) { - Map params = new HashMap<>(); - params.put("userId", userId); - params.put("searchQuery", searchString); - // Named query is stored in a *.hbm.xml file, mapped to SearchResultItem - @SuppressWarnings("unchecked") - List list = dataAccessService.executeNamedQuery("searchPortal", params, null); - Map> finalJson = null; - if (list.size() > 0) { - finalJson = new HashMap>(); - for (SearchResultItem thisResult : list) { - List thisList = finalJson.get(thisResult.getCategory().toLowerCase()); - if (thisList == null) - thisList = new ArrayList(); - thisList.add(thisResult); - finalJson.put(thisResult.getCategory().toLowerCase(), thisList); - } - } - return finalJson; - } - - @Override - public List getRelatedUsers(String userId) { - Map params = new HashMap<>(); - params.put("userId", userId); - @SuppressWarnings("unchecked") - List activeUsers = dataAccessService.executeNamedQuery("relatedUsers", params, null); - return activeUsers; - } - - @Override - public CommonWidgetMeta getWidgetData(String resourceType) { - Map params = new HashMap<>(); - params.put("cat", resourceType); - @SuppressWarnings("unchecked") - List widgetItems = (List) dataAccessService.executeNamedQuery("getCommonWidgetItem", params, null); - return new CommonWidgetMeta(resourceType, widgetItems); - } - - @Override - public String saveWidgetDataBulk(CommonWidgetMeta commonMetaWidgetData) { - for (CommonWidget widgetData : commonMetaWidgetData.getItems()) { - widgetData.setCategory(commonMetaWidgetData.getCategory()); - dataAccessService.saveDomainObject(widgetData, null); - } - return "success"; - } - - @Override - public String saveWidgetData(CommonWidget commonWidgetData) { - dataAccessService.saveDomainObject(commonWidgetData, null); - return "success"; - } - - @Override - public String deleteWidgetData(CommonWidget eventWidget) { - dataAccessService.deleteDomainObject(eventWidget, null); - return "success"; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAppCommonServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAppCommonServiceImpl.java deleted file mode 100644 index 2fc0f505..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAppCommonServiceImpl.java +++ /dev/null @@ -1,1515 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.io.IOException; -import java.security.GeneralSecurityException; -import java.util.ArrayList; -import java.util.Base64; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.annotation.PostConstruct; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.lang.StringUtils; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.Transaction; -import org.openecomp.portalapp.portal.domain.AdminUserApp; -import org.openecomp.portalapp.portal.domain.AdminUserApplications; -import org.openecomp.portalapp.portal.domain.AppIdAndNameTransportModel; -import org.openecomp.portalapp.portal.domain.AppsResponse; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EPUserAppRolesRequest; -import org.openecomp.portalapp.portal.domain.EPUserAppRolesRequestDetail; -import org.openecomp.portalapp.portal.domain.EPUserAppsManualSortPreference; -import org.openecomp.portalapp.portal.domain.EPUserAppsSortPreference; -import org.openecomp.portalapp.portal.domain.EPWidgetsManualSortPreference; -import org.openecomp.portalapp.portal.domain.EcompApp; -import org.openecomp.portalapp.portal.domain.UserRole; -import org.openecomp.portalapp.portal.domain.UserRoles; -import org.openecomp.portalapp.portal.ecomp.model.AppCatalogItem; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.transport.EPAppsManualPreference; -import org.openecomp.portalapp.portal.transport.EPAppsSortPreference; -import org.openecomp.portalapp.portal.transport.EPDeleteAppsManualSortPref; -import org.openecomp.portalapp.portal.transport.EPWidgetsSortPreference; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItem; -import org.openecomp.portalapp.portal.transport.LocalRole; -import org.openecomp.portalapp.portal.transport.OnboardingApp; -import org.openecomp.portalapp.portal.ueb.EPUebHelper; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.ueb.Helper; -import org.openecomp.portalsdk.core.onboarding.ueb.TopicManager; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.openecomp.portalsdk.core.onboarding.util.PortalApiConstants; -import org.openecomp.portalsdk.core.onboarding.util.PortalApiProperties; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; - -import com.att.nsa.apiClient.http.HttpException; -import com.att.nsa.cambria.client.CambriaClient.CambriaApiException; -import com.att.nsa.cambria.client.CambriaClientBuilders; -import com.att.nsa.cambria.client.CambriaIdentityManager; -import com.att.nsa.cambria.client.CambriaTopicManager; -import com.google.common.primitives.Ints; - -public class EPAppCommonServiceImpl implements EPAppService { - - protected String ECOMP_APP_ID = "1"; - protected String SUPER_ADMIN_ROLE_ID = "1"; - protected String ACCOUNT_ADMIN_ROLE_ID = "999"; - protected String RESTRICTED_APP_ROLE_ID = "900"; - - private static final String urlField = "url"; - private static final String nameField = "name"; - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPAppCommonServiceImpl.class); - - @Autowired - private AdminRolesService adminRolesService; - @Autowired - protected SessionFactory sessionFactory; - @Autowired - private DataAccessService dataAccessService; - @Autowired - private EPUebHelper epUebHelper; - - @PostConstruct - private void init() { - SUPER_ADMIN_ROLE_ID = SystemProperties.getProperty(EPCommonSystemProperties.SYS_ADMIN_ROLE_ID); - ACCOUNT_ADMIN_ROLE_ID = SystemProperties.getProperty(EPCommonSystemProperties.ACCOUNT_ADMIN_ROLE_ID); - ECOMP_APP_ID = SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID); - RESTRICTED_APP_ROLE_ID = SystemProperties.getProperty(EPCommonSystemProperties.RESTRICTED_APP_ROLE_ID); - } - - @Override - public List getUserAsAdminApps(EPUser user) { - if (adminRolesService.isAccountAdmin(user)) { - String sql = "SELECT * FROM FN_APP join FN_USER_ROLE ON FN_USER_ROLE.APP_ID=FN_APP.APP_ID where " - + "FN_USER_ROLE.USER_ID=" + user.getId() + " AND FN_USER_ROLE.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID - + " AND FN_APP.ENABLED = 'Y'"; - logQuery(sql); - try { - @SuppressWarnings("unchecked") - List adminApps = dataAccessService.executeSQLQuery(sql, EPApp.class, null); - return adminApps; - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - return null; - } - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "getUserAsAdminApps: only Account Admin may invoke this function!"); - return new ArrayList(); - } - } - - @Override - public List getUserByOrgUserIdAsAdminApps(String orgUserId) { - String format = "SELECT * FROM FN_APP app INNER JOIN FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID " - + "INNER JOIN FN_USER user on user.USER_ID = userrole.USER_ID " - + "WHERE user.org_user_id = '%s' AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID - + " AND FN_APP.ENABLED = 'Y'"; - - String sql = String.format(format, orgUserId); - logQuery(sql); - - try { - @SuppressWarnings("unchecked") - List adminApps = dataAccessService.executeSQLQuery(sql, EPApp.class, null); - return adminApps; - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - return null; - } - } - - @Override - public List getAppsFullList() { - @SuppressWarnings("unchecked") - List apps = dataAccessService.getList(EPApp.class, null); - return apps; - } - - @Override - public List getEcompAppAppsFullList() { - return transformAppsToEcompApps(getAppsFullList()); - } - - @Override - public List transformAppsToEcompApps(List appsList) { - List ecompAppList = new ArrayList(); - for (EPApp app : appsList) { - EcompApp ecompApp = new EcompApp(); - ecompApp.setId(app.getId()); - ecompApp.setName(app.getName()); - ecompApp.setImageUrl(app.getImageUrl()); - ecompApp.setDescription(app.getDescription()); - ecompApp.setNotes(app.getNotes()); - ecompApp.setUrl(app.getUrl()); - ecompApp.setAlternateUrl(app.getAlternateUrl()); - ecompApp.setUebTopicName(app.getUebTopicName()); - ecompApp.setUebKey(app.getUebKey()); - ecompApp.setUebSecret(app.getUebSecret()); - ecompApp.setEnabled(app.getEnabled()); - ecompApp.setCentralAuth(app.getCentralAuth()); - ecompApp.setNameSpace(app.getNameSpace()); - ecompApp.setRestrictedApp(app.isRestrictedApp()); - ecompAppList.add(ecompApp); - } - return ecompAppList; - } - - @Override - public EPApp getApp(Long appId) { - try { - @SuppressWarnings("unchecked") - List apps = dataAccessService.getList(EPApp.class, " where id = " + appId, null, null); - return (apps.size() > 0) ? apps.get(0) : null; - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - return null; - } - } - - @SuppressWarnings("unchecked") - @Override - public List getAdminApps(EPUser user) { - if (adminRolesService.isAccountAdmin(user)) { - String format = "SELECT app.APP_ID, app.APP_NAME, app.APP_TYPE FROM FN_APP app inner join FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID " - + "where userrole.USER_ID = %d AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID - + " AND (app.ENABLED = 'Y' OR app.APP_ID=1)"; - String sql = String.format(format, user.getId()); - // sql += " AND app.APP_REST_ENDPOINT IS NOT NULL AND - // app.APP_REST_ENDPOINT <> ''"; - logQuery(sql); - try { - return dataAccessService.executeSQLQuery(sql, AppIdAndNameTransportModel.class, null); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - logger.error(EELFLoggerDelegate.errorLogger, - "Exception occurred while fetching the adminApps for user " + user.getLoginId(), e); - } - } - return new ArrayList(); - } - - @Override - public EPApp getAppDetail(String appName) { - final Map params = new HashMap(); - try { - params.put("appName", appName); - @SuppressWarnings("unchecked") - List apps = (List) dataAccessService.executeNamedQuery("getMyloginAppDetails", params, null); - return (apps.size() > 0) ? apps.get(0) : null; - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - return null; - } - } - - @SuppressWarnings("unchecked") - @Override - public List getAppsForSuperAdminAndAccountAdmin(EPUser user) { - if (adminRolesService.isSuperAdmin(user) || adminRolesService.isAccountAdmin(user)) { - String format = ""; - String sql = ""; - if (adminRolesService.isSuperAdmin(user)) { - format = "SELECT app.APP_ID, app.APP_NAME, app.APP_TYPE FROM FN_APP app " - + "where app.ENABLED = 'Y' AND app.app_type = 1"; - } else { - format = "SELECT app.APP_ID, app.APP_NAME, APP_TYPE FROM FN_APP app inner join FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID " - + "where userrole.USER_ID = %d AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID - + " AND app.ENABLED = 'Y' AND app.app_type = 1"; - } - sql = String.format(format, user.getId()); - // sql += " AND app.APP_REST_ENDPOINT IS NOT NULL AND - // app.APP_REST_ENDPOINT <> ''"; - logQuery(sql); - try { - return dataAccessService.executeSQLQuery(sql, AppIdAndNameTransportModel.class, null); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - logger.error(EELFLoggerDelegate.errorLogger, - "Exception occurred while fetching the adminApps for user " + user.getLoginId(), e); - } - } - return new ArrayList(); - } - - protected void logQuery(String sql) { - logger.debug(EELFLoggerDelegate.debugLogger, "logQuery: " + sql); - } - - public DataAccessService getDataAccessService() { - return dataAccessService; - } - - public void setDataAccessService(DataAccessService dataAccessService) { - this.dataAccessService = dataAccessService; - } - - @SuppressWarnings("unchecked") - @Override - public List getAppsAdmins() { - try { - Map params = new HashMap<>(); - params.put("accountAdminRoleId", ACCOUNT_ADMIN_ROLE_ID); - List adminApps = (List) dataAccessService.executeNamedQuery("getAppsAdmins", - params, null); - return aggregateRowsResultsByUserId(adminApps); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - return null; - } - } - - private List aggregateRowsResultsByUserId(List adminApps) { - HashMap adminUserApplications = new HashMap(); - for (AdminUserApp app : adminApps) { - Long userId = app.getUser_Id(); - if (adminUserApplications.get(userId) == null) - adminUserApplications.put(userId, new AdminUserApplications(app)); - else - adminUserApplications.get(userId).addApp(app.getAppId(), app.getAppName()); - } - return new ArrayList(adminUserApplications.values()); - } - - @Override - public List getAllApps(Boolean all) { - // If all is true, return both active and inactive apps. Otherwise, just - // active apps. - @SuppressWarnings("unchecked") - // Sort the list by application name so the drop-down looks pretty. - List apps = all - ? (List) dataAccessService.getList(EPApp.class, " where id != " + ECOMP_APP_ID, "name", null) - : (List) dataAccessService.getList(EPApp.class, - " where ( enabled = 'Y' or id = " + ECOMP_APP_ID + ")", "name", null); - - List appsModified = new ArrayList(); - for (EPApp app : apps) { - appsModified.add(new AppsResponse(app.getId(), app.getName(), app.isRestrictedApp(), app.getEnabled())); - } - return appsModified; - } - - @Override - public UserRoles getUserProfile(String loginId) { - final Map params = new HashMap<>(); - params.put("org_user_id", loginId); - @SuppressWarnings("unchecked") - List userRoleList = dataAccessService.executeNamedQuery( "getUserRoles", params, null); - ArrayList usersRolesList = aggregateUserProfileRowsResultsByRole(userRoleList); - if (usersRolesList == null || usersRolesList.size() < 1) - return null; - - return usersRolesList.get(0); - } - - @Override - public UserRoles getUserProfileNormalized(EPUser user) { - // Check database. - UserRoles userAndRoles = getUserProfile(user.getLoginId()); - // If no roles are defined, treat this user as a guest. - if (user.isGuest() || userAndRoles == null) { - logger.debug(EELFLoggerDelegate.debugLogger, "getUserProfile: treating user {} as guest", - user.getLoginId()); - UserRole userRole = new UserRole(); - userRole.setUser_Id(user.getId()); - userRole.setOrgUserId(user.getLoginId()); - userRole.setFirstName(user.getFirstName()); - userRole.setLastName(user.getLastName()); - userRole.setRoleId(-1L); - userRole.setRoleName("Guest"); - userRole.setUser_Id(-1L); - userAndRoles = new UserRoles(userRole); - } - - return userAndRoles; - } - - protected ArrayList aggregateUserProfileRowsResultsByRole(List userRoleList) { - HashMap userRoles = new HashMap(); - for (UserRole user : userRoleList) { - String orgUserId = user.getOrgUserId(); - if (userRoles.get(orgUserId) == null) - userRoles.put(orgUserId, new UserRoles(user)); - else - userRoles.get(orgUserId).addRole(user.getRoleName()); - } - return new ArrayList(userRoles.values()); - } - - private boolean isRestrictedApp(Long appId) { - EPApp app = getApp(appId); - return app.isRestrictedApp(); - } - - // For the functional menu edit - @Override - public List getAppRoles(Long appId) { - String sql = ""; - if (isRestrictedApp(appId)) { - sql = "SELECT ROLE_ID, ROLE_NAME from FN_ROLE where UPPER(ACTIVE_YN) = 'Y' AND ROLE_ID = '" + RESTRICTED_APP_ROLE_ID + "'"; - }else if(appId == 1){ - sql = "SELECT ROLE_ID, ROLE_NAME from FN_ROLE where UPPER(ACTIVE_YN) = 'Y' AND APP_ID IS NULL"; - }else{ - sql = "SELECT ROLE_ID, ROLE_NAME from FN_ROLE where UPPER(ACTIVE_YN) = 'Y' AND APP_ID = '" + appId + "'"; - } - logQuery(sql); - @SuppressWarnings("unchecked") - List appRoles = dataAccessService.executeSQLQuery(sql, LocalRole.class, null); - return appRoles; - } - - protected String userAppsQuery(EPUser user) { - StringBuilder query = new StringBuilder(); - if (adminRolesService.isSuperAdmin(user)) { - query.append("SELECT * FROM FN_APP where FN_APP.ENABLED = 'Y' ORDER BY APP_NAME"); - } else { - query.append("SELECT * FROM FN_APP join FN_USER_ROLE ON FN_USER_ROLE.APP_ID = FN_APP.APP_ID where "); - query.append( - "FN_USER_ROLE.USER_ID = " + user.getId() + " AND FN_USER_ROLE.ROLE_ID != " + SUPER_ADMIN_ROLE_ID); - query.append(" AND FN_APP.ENABLED = 'Y'"); - } - return query.toString(); - } - - protected FieldsValidator onboardingAppFieldsChecker(OnboardingApp onboardingApp) { - FieldsValidator fieldsValidator = new FieldsValidator(); - if (onboardingApp.name == null || onboardingApp.name.length() == 0 || onboardingApp.url == null - || onboardingApp.url.length() == 0 || onboardingApp.restrictedApp == null - || onboardingApp.isOpen == null || onboardingApp.isEnabled == null - || (onboardingApp.id != null && onboardingApp.id.equals(ECOMP_APP_ID)) - // For a normal app (appType==1), these fields must be filled - // in. - // For a restricted app (appType==2), they will be empty. - || ((!onboardingApp.restrictedApp) - && (onboardingApp.username == null || onboardingApp.username.length() == 0 - || onboardingApp.appPassword == null || onboardingApp.appPassword.length() == 0))) { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); - } - return fieldsValidator; - } - - @Override - public List getUserApps(EPUser user) { - List openApps = getOpenApps(); - - if (user.isGuest()) { - return openApps; - } else { - String sql = userAppsQuery(user); - logQuery(sql); - - // TreeSet distinctApps = new TreeSet(); - List appsList = new ArrayList<>(); - @SuppressWarnings("unchecked") - List adminApps = dataAccessService.executeSQLQuery(sql, EPApp.class, null); - HashSet appSet = new HashSet<>(); - for (EPApp app : adminApps) { - appSet.add(app); - appsList.add(app); - } - - for (EPApp app : openApps) { - if (!appSet.contains(app)) - appsList.add(app); - } - - return appsList; - } - } - - @Override - public List getPersAdminApps(EPUser user) { - final Map params = new HashMap<>(); - params.put("userId", user.getId()); - // Named query is stored in EP.hbm.xml, mapped to EPApp - @SuppressWarnings("unchecked") - List list = dataAccessService.executeNamedQuery("getPersAdminApps", params, null); - return list; - } - - @Override - public List getPersUserApps(EPUser user) { - final Map params = new HashMap<>(); - params.put("userId", user.getId()); - // Named query is stored in EP.hbm.xml, mapped to EPApp - @SuppressWarnings("unchecked") - List list = dataAccessService.executeNamedQuery("getPersUserApps", params, null); - return list; - } - - /* - * (non-Javadoc) - * - * @see - * org.openecomp.portalapp.portal.service.EPAppService#getAppCatalog( - * org.openecomp.portalapp.portal.domain.EPUser) - */ - @Override - public List getUserAppCatalog(EPUser user) { - final Map params = new HashMap<>(); - params.put("userId", user.getId()); - // Named query is stored in EP.hbm.xml, mapped to AppCatalogItem - @SuppressWarnings("unchecked") - List list = dataAccessService.executeNamedQuery("getUserAppCatalog", params, null); - return list; - } - - /* - * (non-Javadoc) - * - * @see - * org.openecomp.portalapp.portal.service.EPAppService#getAdminAppCatalog( - * org.openecomp.portalapp.portal.domain.EPUser) - */ - @Override - public List getAdminAppCatalog(EPUser user) { - final Map params = new HashMap<>(); - params.put("userId", user.getId()); - // Named query is stored in EP.hbm.xml, mapped to AppCatalogItem - @SuppressWarnings("unchecked") - List list = dataAccessService.executeNamedQuery("getAdminAppCatalog", params, null); - return list; - } - - private List getOpenApps() { - @SuppressWarnings("unchecked") - List openApps = dataAccessService.getList(EPApp.class, " where open='Y' and enabled='Y'", null, null); - return openApps; - } - - @SuppressWarnings("unchecked") - @Override - public List getAppsOrderByName(EPUser user) { - final Map params = new HashMap<>(); - List sortedAppsByName = null; - try { - if (adminRolesService.isSuperAdmin(user)) { - params.put("userId", user.getId()); - sortedAppsByName = dataAccessService.executeNamedQuery("getPersAdminAppsOrderByName", params, null); - } else { - params.put("userId", user.getId()); - sortedAppsByName = dataAccessService.executeNamedQuery("getPersUserAppsOrderByName", params, null); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppsOrderByName failed", e); - } - return sortedAppsByName; - } - - @SuppressWarnings("unchecked") - @Override - public List getAppsOrderByLastUsed(EPUser user) { - - final Map params = new HashMap<>(); - List sortedAppsByLastUsed = new ArrayList(); - List finalsortedAppsByLastUsed = new ArrayList(); - try { - if (adminRolesService.isSuperAdmin(user)) { - params.put("userId", user.getId()); - sortedAppsByLastUsed = dataAccessService.executeNamedQuery("getAdminAppsOrderByLastUsed", params, null); - } else { - params.put("userId", user.getId()); - sortedAppsByLastUsed = dataAccessService.executeNamedQuery("getUserAppsOrderByLastUsed", params, null); - } - Set epAppSet = new HashSet(); - for (EPApp eapp : sortedAppsByLastUsed) - if (!epAppSet.contains(eapp.getName())) { - finalsortedAppsByLastUsed.add(eapp); - epAppSet.add(eapp.getName()); - } - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppsOrderByLastUsed failed", e); - } - return finalsortedAppsByLastUsed; - } - - @SuppressWarnings("unchecked") - @Override - public List getAppsOrderByMostUsed(EPUser user) { - final Map params = new HashMap<>(); - List sortedAppsByMostUsed = new ArrayList(); - List finalsortedAppsByMostUsed = new ArrayList(); - try { - if (adminRolesService.isSuperAdmin(user)) { - params.put("userId", user.getId()); - sortedAppsByMostUsed = dataAccessService.executeNamedQuery("getAdminAppsOrderByMostUsed", params, null); - } else { - params.put("userId", user.getId()); - sortedAppsByMostUsed = dataAccessService.executeNamedQuery("getUserAppsOrderByMostUsed", params, null); - } - Set epAppSet = new HashSet(); - - for (EPApp eapp : sortedAppsByMostUsed) { - if (!epAppSet.contains(eapp.getName())) { - finalsortedAppsByMostUsed.add(eapp); - epAppSet.add(eapp.getName()); - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppsOrderByMostUsed failed", e); - } - - return finalsortedAppsByMostUsed; - } - - /* - * This Method retrieves the User Apps by Sort Manual Preference - * - * @param: user--contains LoggedIn User Data - */ - @SuppressWarnings("unchecked") - @Override - public List getAppsOrderByManual(EPUser user) { - final Map params = new HashMap<>(); - List sortedAppsByManual = new ArrayList(); - List finalsortedAppsByManual = new ArrayList(); - try { - if (adminRolesService.isSuperAdmin(user)) { - params.put("userId", user.getId()); - sortedAppsByManual = dataAccessService.executeNamedQuery("getAdminAppsOrderByManual", params, null); - } else { - params.put("userId", user.getId()); - sortedAppsByManual = dataAccessService.executeNamedQuery("getUserAppsOrderByManual", params, null); - } - Set epAppSet = new HashSet(); - - for (EPApp eapp : sortedAppsByManual) { - if (!epAppSet.contains(eapp.getName())) { - finalsortedAppsByManual.add(eapp); - epAppSet.add(eapp.getName()); - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppsOrderByManual failed", e); - } - return finalsortedAppsByManual; - } - - @Override - public List getOnboardingApps() { - @SuppressWarnings("unchecked") - List apps = dataAccessService.getList(EPApp.class, " where id!=" + ECOMP_APP_ID, null, null); - List onboardingAppsList = new ArrayList(); - for (EPApp app : apps) { - OnboardingApp onboardingApp = new OnboardingApp(); - createOnboardingFromApp(app, onboardingApp); - onboardingAppsList.add(onboardingApp); - } - return onboardingAppsList; - } - - @Override - public List getEnabledNonOpenOnboardingApps() { - @SuppressWarnings("unchecked") - List apps = dataAccessService.getList(EPApp.class, - " where enabled = true and open = false and id!=" + ECOMP_APP_ID, null, null); - List onboardingAppsList = new ArrayList(); - for (EPApp app : apps) { - OnboardingApp onboardingApp = new OnboardingApp(); - createOnboardingFromApp(app, onboardingApp); - onboardingAppsList.add(onboardingApp); - } - return onboardingAppsList; - } - - @SuppressWarnings("unchecked") - private void validateOnboardingApp(OnboardingApp onboardingApp, FieldsValidator fieldsValidator) { - boolean duplicatedUrl = false; - boolean duplicatedName = false; - List apps; - if (onboardingApp.id == null) { - apps = dataAccessService.getList(EPApp.class, - " where url = '" + onboardingApp.url + "' or name = '" + onboardingApp.name + "'", null, null); - } else { - apps = dataAccessService.getList(EPApp.class, " where id = " + onboardingApp.id + " or url = '" - + onboardingApp.url + "' or name = '" + onboardingApp.name + "'", null, null); - } - for (EPApp app : apps) { - if (onboardingApp.id != null && onboardingApp.id.equals(app.getId())) { - continue; - } - if (!duplicatedUrl && app.getUrl().equalsIgnoreCase(onboardingApp.url)) { - duplicatedUrl = true; - if (duplicatedName) { - break; - } - } - if (!duplicatedName && app.getName().equalsIgnoreCase(onboardingApp.name)) { - duplicatedName = true; - if (duplicatedUrl) { - break; - } - } - } - if (duplicatedUrl || duplicatedName) { - if (duplicatedUrl) { - fieldsValidator.addProblematicFieldName(urlField); - } - if (duplicatedName) { - fieldsValidator.addProblematicFieldName(nameField); - } - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); - fieldsValidator.errorCode = new Long(EPCommonSystemProperties.DUBLICATED_FIELD_VALUE_ECOMP_ERROR); - } - } - - @Override - public FieldsValidator modifyOnboardingApp(OnboardingApp modifiedOnboardingApp, EPUser user) { - logger.debug(EELFLoggerDelegate.debugLogger, "LR: entering modifyOnboardingApp"); - FieldsValidator fieldsValidator = onboardingAppFieldsChecker(modifiedOnboardingApp); - if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { - validateOnboardingApp(modifiedOnboardingApp, fieldsValidator); - } - if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { - if (modifiedOnboardingApp.id != null) { - updateApp(modifiedOnboardingApp.id, modifiedOnboardingApp, fieldsValidator, user); - } else { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); - } - } - return fieldsValidator; - } - - @Override - public FieldsValidator addOnboardingApp(OnboardingApp newOnboardingApp, EPUser user) { - FieldsValidator fieldsValidator = onboardingAppFieldsChecker(newOnboardingApp); - if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { - validateOnboardingApp(newOnboardingApp, fieldsValidator); - } - if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { - if (newOnboardingApp.id == null) { - updateApp(null, newOnboardingApp, fieldsValidator, user); - } else { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); - } - } - return fieldsValidator; - } - - @SuppressWarnings("unchecked") - @Override - public FieldsValidator deleteOnboardingApp(EPUser user, Long appid) { - FieldsValidator fieldsValidator = new FieldsValidator(); - if (!adminRolesService.isSuperAdmin(user)) { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_FORBIDDEN); - return fieldsValidator; - } - final Map params = new HashMap<>(); - params.put("app_id", appid); - List EPUserAppRolesRequestList= new ArrayList<>(); - EPUserAppRolesRequestList = dataAccessService.executeNamedQuery( "getRequestIdsForApp", params, null); - for(int i=0;i menuItems = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); - for (FunctionalMenuItem menuItem : menuItems) { - FunctionalMenuItem myMenuItem = (FunctionalMenuItem) localSession.get(FunctionalMenuItem.class, - menuItem.menuId); - myMenuItem.active_yn = active_yn; - localSession.save(myMenuItem); - } - } - - // Attention! If (appId == null) we use this function to create application - // otherwise we use it to modify existing application - protected void updateApp(Long appId, OnboardingApp onboardingApp, FieldsValidator fieldsValidator, EPUser user) { - logger.debug(EELFLoggerDelegate.debugLogger, "LR: entering updateApp"); - // Separate out the code for a restricted app, since it doesn't need any - // of the UEB code. - if (onboardingApp.restrictedApp) { - boolean result = false; - Session localSession = null; - Transaction transaction = null; - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - EPApp app; - if (appId == null) { - app = new EPApp(); - } else { - app = (EPApp) localSession.get(EPApp.class, appId); - if (app == null || app.getId() == null) { // App is already - // deleted! - transaction.commit(); - localSession.close(); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_NOT_FOUND); - return; - } - } - createAppFromOnboarding(app, onboardingApp, localSession); - localSession.saveOrUpdate(app); - // Enable or disable all menu items associated with this app - setFunctionalMenuItemsEnabled(localSession, onboardingApp.isEnabled, appId); - transaction.commit(); - result = true; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "updateApp failed", e); - EcompPortalUtils.rollbackTransaction(transaction, - "updateApp rollback, exception = " + e.toString()); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "updateApp"); - } - if (!result) { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - - } else { - updateRestrictedApp(appId, onboardingApp, fieldsValidator, user); - - } - } - - protected void updateRestrictedApp(Long appId, OnboardingApp onboardingApp, FieldsValidator fieldsValidator, - EPUser user) { - synchronized (syncRests) { - boolean result = false; - Session localSession = null; - Transaction transaction = null; - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - EPApp app; - if (appId == null) { - app = new EPApp(); - // ------------------------------------------------------------------------------------------- - // Register this App with the UEB communication server. - // Save - // the App's unique mailbox/topic - // name and keys to the FN_APP table. The App's mailbox - // and - // keys will be visible to the - // admin on the ECOMP portal. - // ------------------------------------------------------------------------------------------- - TopicManager topicManager = new TopicManager() { - - EPAppCommonServiceImpl service; - - public void init(EPAppCommonServiceImpl _service) { - service = _service; - } - - public void createTopic(String key, String secret, String topicName, - String topicDescription) throws HttpException, CambriaApiException, IOException { - - init(EPAppCommonServiceImpl.this); - final LinkedList urlList = Helper.uebUrlList(); - if (logger.isInfoEnabled()) { - logger.info("==> createTopic"); - logger.info("topicName: " + topicName); - logger.info("topicDescription: " + topicDescription); - } - CambriaTopicManager tm = null; - try { - tm = service.getTopicManager(urlList, key, secret); - } catch (Exception e) { - logger.error("pub.build Exception ", e); - throw new CambriaApiException(topicName); - } - tm.createTopic(topicName, topicDescription, 1, 1); - } - - public void addPublisher(String topicOwnerKey, String topicOwnerSecret, String publisherKey, - String topicName) throws HttpException, CambriaApiException, IOException { - logger.info("==> addPublisher to topic " + topicName); - final LinkedList urlList = Helper.uebUrlList(); - CambriaTopicManager tm = null; - try { - tm = service.getTopicManager(urlList, topicOwnerKey, topicOwnerSecret); - } catch (Exception e) { - logger.error("pub.build Exception ", e); - throw new CambriaApiException(topicName); - } - tm.allowProducer(topicName, publisherKey); - } - - }; - final CambriaIdentityManager im = new CambriaClientBuilders.IdentityManagerBuilder() - .usingHosts(Helper.uebUrlList()).build(); - com.att.nsa.apiClient.credentials.ApiCredential credential = im.createApiKey(user.getEmail(), - "ECOMP Portal Owner"); - String appKey = credential.getApiKey(); - String appSecret = credential.getApiSecret(); - String appMailboxName = null; - - int maxNumAttemptsToCreateATopic = 3; - boolean successfullyCreatedMailbox = false; - for (int i = 0; i < maxNumAttemptsToCreateATopic; i++) { - appMailboxName = "ECOMP-PORTAL-OUTBOX-" + (int) (Math.random() * 100000.0); - - try { - topicManager.createTopic( - PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), - PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET), - appMailboxName, "ECOMP outbox for app" + onboardingApp.name); - successfullyCreatedMailbox = true; - logger.debug(EELFLoggerDelegate.debugLogger, - "Successfully created " + appMailboxName + " for App " + onboardingApp.name); - logger.debug(EELFLoggerDelegate.debugLogger, " Key = " + appKey + " Secret = " - + appSecret + " generated using = " + user.getEmail()); - break; - } catch (HttpException e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebConnectionError, e); - if (e.getStatusCode() == 409) { - logger.error(EELFLoggerDelegate.errorLogger, "Topic/mailbox " + appMailboxName - + " already exists. Will try using a different name", e); - } else { - logger.error(EELFLoggerDelegate.errorLogger, "HttpException when onboarding App: ", - e); - } - } - } - - if (successfullyCreatedMailbox) { - onboardingApp.setUebTopicName(appMailboxName); - onboardingApp.setUebKey(appKey); - onboardingApp.setUebSecret(appSecret); - - try { - /* - * EP is a publisher to this App's new mailbox - */ - topicManager.addPublisher( - PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), - PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET), - PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), - appMailboxName); - - /* - * This App is a subscriber of its own mailbox - */ - topicManager.addSubscriber( - PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), - PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET), appKey, - appMailboxName); - - /* - * This App is a publisher to EP - */ - topicManager.addPublisher( - PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), - PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET), appKey, - PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME)); - } catch (HttpException | CambriaApiException | IOException e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebRegisterOnboardingAppError, e); - logger.error(EELFLoggerDelegate.errorLogger, - "Error when configuring Publisher/Subscriber for App's new mailbox", e); - transaction.commit(); - localSession.close(); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); - return; - } - } else { - transaction.commit(); - localSession.close(); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); - return; - } - } else { - app = (EPApp) localSession.get(EPApp.class, appId); - if (app == null || app.getId() == null) { - // App is already deleted! - transaction.commit(); - localSession.close(); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_NOT_FOUND); - return; - } - } - logger.debug(EELFLoggerDelegate.debugLogger, "LR: about to call createAppFromOnboarding"); - createAppFromOnboarding(app, onboardingApp, localSession); - logger.debug(EELFLoggerDelegate.debugLogger, - "LR: updateApp: finished calling createAppFromOnboarding"); - localSession.saveOrUpdate(app); - logger.debug(EELFLoggerDelegate.debugLogger, - "LR: updateApp: finished calling localSession.saveOrUpdate"); - // Enable or disable all menu items associated with this app - setFunctionalMenuItemsEnabled(localSession, onboardingApp.isEnabled, appId); - logger.debug(EELFLoggerDelegate.debugLogger, - "LR: updateApp: finished calling setFunctionalMenuItemsEnabled"); - transaction.commit(); - logger.debug(EELFLoggerDelegate.debugLogger, "LR: updateApp: finished calling transaction.commit"); - epUebHelper.addPublisher(app); - logger.debug(EELFLoggerDelegate.debugLogger, - "LR: updateApp: finished calling epUebHelper.addPublisher"); - result = true; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "updateApp failed", e); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebRegisterOnboardingAppError, e); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - EcompPortalUtils.rollbackTransaction(transaction, - "updateApp rollback, exception = " + e.toString()); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "updateApp"); - } - if (!result) { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - } - - } - - public CambriaTopicManager getTopicManager(List urlList, String key, String secret) - throws GeneralSecurityException, Exception { - throw new Exception("This method can only be invoked from child class"); - } - - /** - * Populates a transport model of the application from a database row model. - * Leaves out the thumbnail because the FE fetches images via a different - * API. - * - * @param app - * Model of database row - * @param onboardingApp - * Model for transport as JSON - */ - @Override - public void createOnboardingFromApp(EPApp app, OnboardingApp onboardingApp) { - onboardingApp.id = app.getId(); - onboardingApp.name = app.getName(); - onboardingApp.imageUrl = app.getImageUrl(); - onboardingApp.description = app.getDescription(); - onboardingApp.notes = app.getNotes(); - onboardingApp.url = app.getUrl(); - onboardingApp.alternateUrl = app.getAlternateUrl(); - onboardingApp.restUrl = app.getAppRestEndpoint(); - onboardingApp.isOpen = app.getOpen(); - onboardingApp.isEnabled = app.getEnabled(); - onboardingApp.username = app.getUsername(); - onboardingApp.appPassword = decryptedPassword(app.getAppPassword(), app); - onboardingApp.uebTopicName = app.getUebTopicName(); - onboardingApp.uebKey = app.getUebKey(); - onboardingApp.uebSecret = app.getUebSecret(); - onboardingApp.isCentralAuth = app.getCentralAuth(); - onboardingApp.nameSpace = app.getNameSpace(); - onboardingApp.setRestrictedApp(app.isRestrictedApp()); - // if (app.getThumbnail() != null) - // onboardingApp.thumbnail = new - // String(Base64.getEncoder().encode(app.getThumbnail())); - } - - /** - * Creates a database object for an application from an uploaded transport - * model. Must decode the thumbnail, if any. - * - * @param app - * @param onboardingApp - * @param localSession - * @return The first argument. - */ - protected EPApp createAppFromOnboarding(EPApp app, OnboardingApp onboardingApp, Session localSession) { - app.setName(onboardingApp.name); - app.setDescription(onboardingApp.description); - app.setNotes(onboardingApp.notes); - app.setUrl(onboardingApp.url); - app.setAlternateUrl(onboardingApp.alternateUrl); - app.setAppRestEndpoint(onboardingApp.restUrl); - app.setOpen(onboardingApp.isOpen); - app.setEnabled(onboardingApp.isEnabled); - app.setUsername(onboardingApp.username); - app.setAppPassword(this.encryptedPassword(onboardingApp.appPassword, app)); - app.setUebTopicName(onboardingApp.uebTopicName); - app.setUebKey(onboardingApp.uebKey); - app.setUebSecret(onboardingApp.uebSecret); - app.setCentralAuth(onboardingApp.isCentralAuth); - app.setNameSpace(onboardingApp.nameSpace); - app.setRestrictedApp(onboardingApp.restrictedApp); - if (!StringUtils.isEmpty(onboardingApp.thumbnail)) { - logger.debug(EELFLoggerDelegate.debugLogger, "createAppFromOnboarding: onboarding thumbnail is NOT empty"); - String[] splitBase64Thumbnail = onboardingApp.thumbnail.split("base64,"); - logger.debug(EELFLoggerDelegate.debugLogger, - "createAppFromOnboarding: length of splitBase64Thumbnail: " + splitBase64Thumbnail.length); - if (splitBase64Thumbnail.length > 1) { - // This occurs when we have a new image, not an existing image - byte[] decodedImage = Base64.getDecoder().decode(splitBase64Thumbnail[1].getBytes()); - logger.debug(EELFLoggerDelegate.debugLogger, "createAppFromOnboarding: finished calling decode"); - // This is basically a boolean indicator that an image is - // present. - app.setImageUrl(constructImageName(onboardingApp)); - app.setThumbnail(decodedImage); - } - } else if (app.getThumbnail() != null && onboardingApp.imageLink == null) { - // The thumbnail that came in from the json is empty; the previous - // thumbnail is NOT empty. Must delete it. - logger.debug(EELFLoggerDelegate.debugLogger, - "createAppFromOnboarding: onboarding thumbnail is empty; db thumbnail is NOT null"); - app.setImageUrl(null); - app.setThumbnail(null); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, - "createAppFromOnboarding: making no changes to thumbnail as imageLink is not null"); - } - return app; - } - - protected String constructImageName(OnboardingApp onboardingApp) { - return "portal_" + String.valueOf(onboardingApp.url.hashCode() + "_" + (int) (Math.random() * 100000.0)) - + ".png"; - } - - // Don't encrypt or decrypt the password if it is null or the empty string - private String decryptedPassword(String encryptedAppPwd, EPApp app) { - String result = ""; - if (encryptedAppPwd != null & encryptedAppPwd.length() > 0) { - try { - result = CipherUtil.decrypt(encryptedAppPwd, - SystemProperties.getProperty(SystemProperties.Decryption_Key)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword failed for app " + app.getName(), e); - } - } - return result; - } - - protected String encryptedPassword(String decryptedAppPwd, EPApp app) { - String result = ""; - if (decryptedAppPwd != null & decryptedAppPwd.length() > 0) { - try { - result = CipherUtil.encrypt(decryptedAppPwd, - SystemProperties.getProperty(SystemProperties.Decryption_Key)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "encryptedPassword failed for app " + app.getName(), e); - } - } - return result; - } - - @SuppressWarnings("unchecked") - @Override - public FieldsValidator saveWidgetsSortManual(List widgetsSortManual, EPUser user) { - FieldsValidator fieldsValidator = new FieldsValidator(); - final Map params = new HashMap<>(); - List epManualWidgets = new ArrayList(); - - try { - params.put("userId", user.getId()); - epManualWidgets = dataAccessService.executeNamedQuery("userWidgetManualSortPrfQuery", params, null); - Map existingWidgetsIds = new HashMap(); - for (EPWidgetsManualSortPreference userWidgetManualPref : epManualWidgets) { - existingWidgetsIds.put(userWidgetManualPref.getWidgetId(), userWidgetManualPref); - } - for (EPWidgetsSortPreference epWidgetsManPref : widgetsSortManual) { - if (epWidgetsManPref.getWidgetid() != null) { - Long widgetid = epWidgetsManPref.getWidgetid(); - if (existingWidgetsIds.containsKey(widgetid)) { - EPWidgetsManualSortPreference epWidgetsManualSort = existingWidgetsIds.get(widgetid); - epWidgetsManualSort.setWidgetRow(epWidgetsManPref.getRow()); - epWidgetsManualSort.setWidgetCol(epWidgetsManPref.getCol()); - epWidgetsManualSort.setWidgetWidth(epWidgetsManPref.getSizeX()); - epWidgetsManualSort.setWidgetHeight(epWidgetsManPref.getSizeY()); - HashMap additionalUpdateParam = new HashMap(); - additionalUpdateParam.put("userId", epWidgetsManualSort.getUserId()); - dataAccessService.saveDomainObject(epWidgetsManualSort, additionalUpdateParam); - } else { - EPWidgetsManualSortPreference epWidgetsManualSort = new EPWidgetsManualSortPreference(); - epWidgetsManualSort.setWidgetId(epWidgetsManPref.getWidgetid()); - epWidgetsManualSort.setWidgetRow(epWidgetsManPref.getRow()); - epWidgetsManualSort.setWidgetCol(epWidgetsManPref.getCol()); - epWidgetsManualSort.setWidgetWidth(epWidgetsManPref.getSizeX()); - epWidgetsManualSort.setWidgetHeight(epWidgetsManPref.getSizeY()); - epWidgetsManualSort.setUserId(Ints.checkedCast(user.getId())); - dataAccessService.saveDomainObject(epWidgetsManualSort, null); - } - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "saveWidgetsSortManual failed", e); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - return fieldsValidator; - } - - @SuppressWarnings("unchecked") - @Override - public FieldsValidator deleteUserWidgetSortPref(List delWidgetSortPref, EPUser user) { - FieldsValidator fieldsValidator = new FieldsValidator(); - final Map params = new HashMap<>(); - List epWidgets = new ArrayList(); - try { - params.put("userId", user.getId()); - epWidgets = dataAccessService.executeNamedQuery("userWidgetManualSortPrfQuery", params, null); - Map existingWidgetIds = new HashMap(); - for (EPWidgetsManualSortPreference userWidgetSortPref : epWidgets) { - existingWidgetIds.put(userWidgetSortPref.getWidgetId(), userWidgetSortPref); - } - for (EPWidgetsSortPreference delEpWidgetsManPref : delWidgetSortPref) { - if (delEpWidgetsManPref.getWidgetid() != null) { - Long widgetId = delEpWidgetsManPref.getWidgetid(); - if (existingWidgetIds.containsKey(widgetId)) { - dataAccessService.deleteDomainObjects(EPWidgetsManualSortPreference.class, - "widget_id=" + widgetId + " AND user_id=" + user.getId(), null); - } - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "deleteUserWidgetSortPref failed", e); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - return fieldsValidator; - } - - /* - * This Method Stores the Sort Order of User Apps by Sort Manual Preference - * - * @param: appsSortManual--contains User Apps Data - * - * @param: user--contains LoggedIn User Data - */ - @SuppressWarnings("unchecked") - @Override - public FieldsValidator saveAppsSortManual(List appsSortManual, EPUser user) { - FieldsValidator fieldsValidator = new FieldsValidator(); - final Map params = new HashMap<>(); - List epManualApps = new ArrayList(); - - try { - params.put("userId", user.getId()); - epManualApps = dataAccessService.executeNamedQuery("userAppsManualSortPrfQuery", params, null); - Map existingAppIds = new HashMap(); - for (EPUserAppsManualSortPreference userAppManualPref : epManualApps) { - existingAppIds.put(userAppManualPref.getAppId(), userAppManualPref); - } - for (EPAppsManualPreference epAppsManPref : appsSortManual) { - if (epAppsManPref.getAppid() != null) { - Long appid = epAppsManPref.getAppid(); - if (existingAppIds.containsKey(appid)) { - EPUserAppsManualSortPreference epAppsManualSort = existingAppIds.get(appid); - epAppsManualSort - .setAppManualSortOrder((epAppsManPref.getCol() + (6 * epAppsManPref.getRow())) + 1); - HashMap additionalUpdateParam = new HashMap(); - additionalUpdateParam.put("userId", epAppsManualSort.getUserId()); - dataAccessService.saveDomainObject(epAppsManualSort, additionalUpdateParam); - } else { - EPUserAppsManualSortPreference epAppsManualSort = new EPUserAppsManualSortPreference(); - epAppsManualSort.setAppId(epAppsManPref.getAppid()); - epAppsManualSort - .setAppManualSortOrder((epAppsManPref.getCol() + (6 * epAppsManPref.getRow())) + 1); - epAppsManualSort.setUserId(Ints.checkedCast(user.getId())); - dataAccessService.saveDomainObject(epAppsManualSort, null); - } - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "saveAppsSortManual failed", e); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - return fieldsValidator; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.EPAppService# - * deleteUserAppSortManual(java.lang.String, - * org.openecomp.portalapp.portal.domain.EPUser) - */ - @SuppressWarnings("unchecked") - @Override - public FieldsValidator deleteUserAppSortManual(EPDeleteAppsManualSortPref delAppSortManual, EPUser user) { - FieldsValidator fieldsValidator = new FieldsValidator(); - final Map params = new HashMap<>(); - List epManualApps = new ArrayList(); - try { - params.put("userId", user.getId()); - epManualApps = dataAccessService.executeNamedQuery("userAppsManualSortPrfQuery", params, null); - Map existingAppIds = new HashMap(); - for (EPUserAppsManualSortPreference userAppPref : epManualApps) { - existingAppIds.put(userAppPref.getAppId(), userAppPref); - } - if (existingAppIds.containsKey(delAppSortManual.getAppId()) && !delAppSortManual.isSelect()) { - dataAccessService.deleteDomainObjects(EPUserAppsManualSortPreference.class, - "app_id=" + delAppSortManual.getAppId() + " AND user_id=" + user.getId(), null); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "deleteUserAppSortManual failed", e); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - return fieldsValidator; - } - - @SuppressWarnings("unchecked") - @Override - public FieldsValidator saveAppsSortPreference(EPAppsSortPreference appsSortPreference, EPUser user) { - FieldsValidator fieldsValidator = new FieldsValidator(); - final Map params = new HashMap<>(); - List epSortTypes = new ArrayList(); - EPUserAppsSortPreference usrSortPr = null; - try { - params.put("userId", user.getId()); - epSortTypes = dataAccessService.executeNamedQuery("userAppsSortPreferenceQuery", params, null); - if (epSortTypes.size() == 0) { - usrSortPr = new EPUserAppsSortPreference(); - usrSortPr.setUserId(Ints.checkedCast(user.getId())); - usrSortPr.setSortPref(appsSortPreference.getValue()); - dataAccessService.saveDomainObject(usrSortPr, null); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); - } else { - usrSortPr = epSortTypes.get(0); - usrSortPr.setSortPref(appsSortPreference.getValue()); - HashMap additionalUpdateParam = new HashMap(); - additionalUpdateParam.put("userId", usrSortPr.getUserId()); - dataAccessService.saveDomainObject(usrSortPr, additionalUpdateParam); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "saveAppsSortPreference failed", e); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - return fieldsValidator; - } - - @SuppressWarnings("unchecked") - @Override - public String getUserAppsSortTypePreference(EPUser user) { - final Map params = new HashMap<>(); - List userSortPrefs = new ArrayList(); - try { - params.put("userId", user.getId()); - userSortPrefs = dataAccessService.executeNamedQuery("userAppsSortPreferenceQuery", params, null); - if (userSortPrefs.size() > 0) - return userSortPrefs.get(0).getSortPref(); - else - return null; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUserAppsSortTypePreference failed", e); - } - return null; - - } - - @Override - public List getUserRemoteApps(String id) { - throw new RuntimeException(" Cannot be called from parent class"); - } - - @Override - public UserRoles getUserProfileForLeftMenu(String loginId) { - final Map params = new HashMap<>(); - params.put("org_user_id", loginId); - @SuppressWarnings("unchecked") - List userRoleList = dataAccessService.executeNamedQuery( "getUserRolesForLeftMenu", params, null); - ArrayList usersRolesList = aggregateUserProfileRowsResultsByRole(userRoleList); - if (usersRolesList == null || usersRolesList.size() < 1) - return null; - - return usersRolesList.get(0); - } - - - @Override - public UserRoles getUserProfileNormalizedForLeftMenu(EPUser user) { - // Check database. - UserRoles userAndRoles = getUserProfileForLeftMenu(user.getLoginId()); - // If no roles are defined, treat this user as a guest. - if (user.isGuest() || userAndRoles == null) { - logger.debug(EELFLoggerDelegate.debugLogger, "getUserProfileForLeftMenu: treating user {} as guest", - user.getLoginId()); - UserRole userRole = new UserRole(); - userRole.setUser_Id(user.getId()); - userRole.setOrgUserId(user.getLoginId()); - userRole.setFirstName(user.getFirstName()); - userRole.setLastName(user.getLastName()); - userRole.setRoleId(-1L); - userRole.setRoleName("Guest"); - userRole.setUser_Id(-1L); - userAndRoles = new UserRoles(userRole); - } - - return userAndRoles; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAppService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAppService.java deleted file mode 100644 index c4a31907..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAppService.java +++ /dev/null @@ -1,235 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.AdminUserApplications; -import org.openecomp.portalapp.portal.domain.AppIdAndNameTransportModel; -import org.openecomp.portalapp.portal.domain.AppsResponse; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EcompApp; -import org.openecomp.portalapp.portal.domain.UserRoles; -import org.openecomp.portalapp.portal.ecomp.model.AppCatalogItem; -import org.openecomp.portalapp.portal.transport.EPAppsManualPreference; -import org.openecomp.portalapp.portal.transport.EPAppsSortPreference; -import org.openecomp.portalapp.portal.transport.EPDeleteAppsManualSortPref; -import org.openecomp.portalapp.portal.transport.EPWidgetsSortPreference; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.LocalRole; -import org.openecomp.portalapp.portal.transport.OnboardingApp; - -public interface EPAppService { - - /** - * Get all applications adminId is an admin - * - * @param user - * the admin user - * @return the admin's applications - */ - List getUserAsAdminApps(EPUser user); - - List getUserByOrgUserIdAsAdminApps(String orgUserId); - - /** - * Gets all rows and all fields from the fn_app table. - * - * @return list of EPApp objects - */ - List getAppsFullList(); - - /** - * Gets all rows and most fields from the fn_app table. - * - * @return list of EcompApp objects. - */ - List getEcompAppAppsFullList(); - - /** - * Get apps with app app admins - * - * @return List of AdminUserApplications - */ - List getAppsAdmins(); - - /** - * Get all apps from fn_app table (index, name, title only). - * - * @param all - * If all is true, returns active and inactive apps; otherwise, - * just active apps. - * @return List of AppsResponse objects. - */ - List getAllApps(Boolean all); - - UserRoles getUserProfile(String loginId); - - UserRoles getUserProfileNormalized(EPUser user); - - List getAppRoles(Long appId); - - List getAdminApps(EPUser user); - - List getAppsForSuperAdminAndAccountAdmin(EPUser user); - - /** - * Gets the applications accessible to the specified user, which includes - * all enabled open applications, plus all enabled applications for which - * the user has a defined role for that app. - * - * @param user - * EPUser object with the user's Org User ID - * @return the user's list of applications, which may be empty. - */ - List getUserApps(EPUser user); - - /** - * Gets the user-personalized list of applications for the Portal (super) - * admin, which includes enabled open applications, enabled applications for - * which the user has a defined role for that app, and/or enabled - * applications which the user has chosen to show. - * - * @param user - * EPUser object with the user's Org User ID - * @return the user's personalized list of applications, which may be empty. - */ - List getPersAdminApps(EPUser user); - - /** - * Gets the user-personalized list of accessible applications, which - * includes enabled open applications and/or enabled applications for which - * the user has a defined role for that app. Personalization means the user - * can indicate an accessible application should be excluded from this - * result. - * - * @param user - * EPUser object with the user's Org User ID - * @return the user's personalized list of applications, which may be empty. - */ - List getPersUserApps(EPUser user); - - /** - * Gets the application catalog for the specified user who is a super admin. - * This includes all enabled applications. Each item indicates whether the - * user has access (open or via a role), and whether the application is - * selected for showing in the user's home (applications) page. Admin sees - * slightly different behavior - can force an app onto the home page using - * the personalization feature (user-app-selection table). - * - * @param user - * @return list of all enabled applications, which may be empty - */ - List getAdminAppCatalog(EPUser user); - - /** - * Gets the application catalog for the specified user, who is a regular - * user. This includes all enabled applications. Each item indicates whether - * the user has access (open or via a role), and whether the application is - * selected for showing in the user's home (applications) page. - * - * @param user - * @return list of all enabled applications, which may be empty - */ - List getUserAppCatalog(EPUser user); - - List getOnboardingApps(); - - List getEnabledNonOpenOnboardingApps(); - - FieldsValidator modifyOnboardingApp(OnboardingApp modifiedOnboardingApp, EPUser user); - - FieldsValidator addOnboardingApp(OnboardingApp newOnboardingApp, EPUser user); - - /** - * Deletes the specified application from all tables where the app_id is - * used, and ultimately from the fn_app table. - * - * @param user - * Must be Portal (super) administrator - * @param onboardingAppId - * ID of application to be deleted - * @return Status code - */ - FieldsValidator deleteOnboardingApp(EPUser user, Long onboardingAppId); - - List transformAppsToEcompApps(List appsList); - - EPApp getApp(Long appId); - - EPApp getAppDetail(String appName); - - List getAppsOrderByName(EPUser user); - - FieldsValidator saveAppsSortPreference(EPAppsSortPreference appsSortPreference, EPUser user); - - FieldsValidator saveAppsSortManual(List appsSortManual, EPUser user); - - FieldsValidator saveWidgetsSortManual(List widgetsSortManual, EPUser user); - - /** - * Deletes the sort order of user apps by sort manual preference - * - * @param delAppSortManual - * User Apps Data - * @param user - * LoggedIn User Data - * @return FieldsValidator - */ - FieldsValidator deleteUserAppSortManual(EPDeleteAppsManualSortPref delAppSortManual, EPUser user); - - FieldsValidator deleteUserWidgetSortPref(List delWidgetSortPref, EPUser user); - - String getUserAppsSortTypePreference(EPUser user); - - List getAppsOrderByLastUsed(EPUser user); - - List getAppsOrderByMostUsed(EPUser user); - - List getAppsOrderByManual(EPUser user); - - List getUserRemoteApps(String id); - - void createOnboardingFromApp(EPApp app, OnboardingApp onboardingApp); - - UserRoles getUserProfileNormalizedForLeftMenu(EPUser user); - - UserRoles getUserProfileForLeftMenu(String loginId); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAuditService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAuditService.java deleted file mode 100644 index 321b441f..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAuditService.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.Date; - -public interface EPAuditService { - public Date getGuestLastLogin(String userId); - public void delAuditLogFromDay(); -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAuditServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAuditServiceImpl.java deleted file mode 100644 index 5e86c3c9..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPAuditServiceImpl.java +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.time.LocalDate; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import org.openecomp.portalsdk.core.domain.AuditLog; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; - -@Service("epAuditService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class EPAuditServiceImpl implements EPAuditService { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPAuditServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - - @Override - /* - * get the guest last login time with orgUserId as param. If record not - * found in table, return null. - * - * (non-Javadoc) - * - * @see - * org.openecomp.portalapp.portal.service.EPUserService#getGuestLastLogin( - * java.lang.String) - */ - public Date getGuestLastLogin(String userId) { - Map params = new HashMap<>(); - params.put("userId", userId); - @SuppressWarnings("unchecked") - List list = getDataAccessService().executeNamedQuery("getGuestLastLogin", params, null); - Date date = null; - if (list != null) { - /* - * if list only contains one item, meaning this is the first time - * user logs in or record not found in db - */ - if (list.size() == 1) - date = list.get(0); /* the guest's current log in time */ - else if (list.size() == 2) - date = list.get(1); /* most recent login date from db */ - } - return date; - } - - /* - * Cleans all the records in fn_audit_log table that are less than defined - * date in system.property - * - * (non-Javadoc) - * - * @see - * org.openecomp.portalapp.portal.service.EPAuditService#delAuditLogFromDay( - * ) - */ - @Override - public void delAuditLogFromDay() { - if (EPCommonSystemProperties.containsProperty(EPCommonSystemProperties.AUDITLOG_DEL_DAY_FROM)) { - String day = EPCommonSystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_DEL_DAY_FROM); - LocalDate removeDateFrom = LocalDate.now().minusDays(Integer.valueOf(day)); - getDataAccessService().deleteDomainObjects(AuditLog.class, "audit_date <'" + removeDateFrom + "'", null); - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "delAuditLogFromDay Exception = system.propertiy value is empty on" - + EPCommonSystemProperties.AUDITLOG_DEL_DAY_FROM); - } - } - - public DataAccessService getDataAccessService() { - return dataAccessService; - } - - public void setDataAccessService(DataAccessService dataAccessService) { - this.dataAccessService = dataAccessService; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLdapService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLdapService.java deleted file mode 100644 index e06f3987..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLdapService.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import org.openecomp.portalsdk.core.command.support.SearchResult; -import org.openecomp.portalsdk.core.domain.support.DomainVo; - - -public interface EPLdapService { - - // search POST for users based on the criteria selected in the Request - SearchResult searchPost(DomainVo searchCriteria, String sortBy1, String sortBy2, String sortBy3, int pageNo, int dataSize, int userId) throws Exception; - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLdapServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLdapServiceImpl.java deleted file mode 100644 index 82e44fd8..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLdapServiceImpl.java +++ /dev/null @@ -1,268 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import javax.naming.NamingEnumeration; -import javax.naming.NamingException; -import javax.naming.directory.Attribute; -import javax.naming.directory.Attributes; -import javax.naming.directory.DirContext; -import javax.naming.directory.SearchControls; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalsdk.core.command.support.SearchResult; -import org.openecomp.portalsdk.core.domain.support.DomainVo; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.support.FusionService; -import org.openecomp.portalsdk.core.service.support.ServiceLocator; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service("epLdapService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -public class EPLdapServiceImpl extends FusionService implements EPLdapService { - @Autowired - private ServiceLocator serviceLocator; - - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPLdapServiceImpl.class); - - @EPAuditLog - @SuppressWarnings({ "rawtypes", "unchecked" }) - public SearchResult searchPost(DomainVo searchCriteria, String sortBy1, String sortBy2, String sortBy3, int pageNo, - int dataSize, int userId) throws Exception { - - String remoteHost = ""; - - // initialize the directory context to access POST - DirContext dirContext = serviceLocator.getDirContext( - SystemProperties.getProperty(SystemProperties.POST_INITIAL_CONTEXT_FACTORY), - SystemProperties.getProperty(SystemProperties.POST_PROVIDER_URL), - SystemProperties.getProperty(SystemProperties.POST_SECURITY_PRINCIPAL)); - - SearchResult searchResult = new SearchResult(); - - try { - - remoteHost = String.format("%s/%s", SystemProperties.getProperty(SystemProperties.POST_PROVIDER_URL), - SystemProperties.getProperty(SystemProperties.POST_SECURITY_PRINCIPAL)); - MDC.put(EPCommonSystemProperties.FULL_URL, remoteHost); - - String[] postAttributes = { "nickname", "givenName", "initials", "sn", "employeeNumber", "mail", - "telephoneNumber", "departmentNumber", "a1", "street", "roomNumber", "l", "st", "postalCode", - "zip4", "physicalDeliveryOfficeName", "bc", "friendlyCountryName", "bd", "bdname", "bu", "buname", - "jtname", "mgrid", "a2", "compcode", "compdesc", "costcenter", "silo", "b2" }; - - SearchControls searchControls = new SearchControls(); - searchControls.setTimeLimit(5000); - searchControls.setReturningAttributes(postAttributes); - - StringBuffer filterClause = new StringBuffer("(&(objectClass=*)"); - - EPUser user = (EPUser) searchCriteria; - - if (Utilities.nvl(user.getFirstName()).length() > 0) { - filterClause.append("(givenName=").append(user.getFirstName()).append("*)"); - } - if (Utilities.nvl(user.getLastName()).length() > 0) { - filterClause.append("(sn=").append(user.getLastName()).append("*)"); - } - if (Utilities.nvl(user.getHrid()).length() > 0) { - filterClause.append("(employeeNumber=").append(user.getHrid()).append("*)"); - } - if (Utilities.nvl(user.getOrgManagerUserId()).length() > 0) { - filterClause.append("(mgrid=").append(user.getOrgManagerUserId()).append("*)"); - } - if (Utilities.nvl(user.getOrgCode()).length() > 0) { - filterClause.append("(departmentNumber=").append(user.getOrgCode()).append("*)"); - } - if (Utilities.nvl(user.getEmail()).length() > 0) { - filterClause.append("(mail=").append(user.getEmail()).append("*)"); - } - if (Utilities.nvl(user.getOrgUserId()).length() > 0) { - filterClause.append("(a1=").append(user.getOrgUserId()).append("*)"); - } - filterClause.append("(c3=N)"); // this has been added to filter CP09 entries on the LDAP server that are - // duplicates of existing individuals - filterClause.append(")"); - - List list = new ArrayList(); - if (!filterClause.toString().equals("(&(objectClass=*))")) { - NamingEnumeration e = dirContext.search( - SystemProperties.getProperty(SystemProperties.POST_PROVIDER_URL) + "/" - + SystemProperties.getProperty(SystemProperties.POST_SECURITY_PRINCIPAL), - filterClause.toString(), searchControls); - list = processResults(e); - } - - Collections.sort(list); - - searchResult = new SearchResult(list); - searchResult.setPageNo(pageNo); - if (dataSize >= 0) { - searchResult.setDataSize(dataSize); - } else { - searchResult.setDataSize(list.size()); - } - } catch (NamingException ne) { - logger.error(EELFLoggerDelegate.errorLogger, "searchPost failed with naming exception", ne); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "searchPost failed", e); - } finally { - dirContext.close(); - } - - return searchResult; - } - - @SuppressWarnings({ "rawtypes", "unchecked" }) - @EPMetricsLog - private ArrayList processResults(NamingEnumeration e) throws NamingException { - ArrayList results = new ArrayList(); - int count = 0; - - while (e.hasMore()) { - javax.naming.directory.SearchResult searchResult = (javax.naming.directory.SearchResult) e.next(); - results.add(processAttributes(searchResult.getAttributes())); - count++; - - if (count > Integer.parseInt(SystemProperties.getProperty(SystemProperties.POST_MAX_RESULT_SIZE))) { - break; - } - } - return results; - } - - @SuppressWarnings("rawtypes") - @EPMetricsLog - private DomainVo processAttributes(Attributes resultAttributes) throws NamingException { - EPUser user = new EPUser(); - - try { - if (resultAttributes == null) { - logger.debug(EELFLoggerDelegate.debugLogger, "This result has no attributes"); - } else { - for (NamingEnumeration e = resultAttributes.getAll(); e.hasMore();) { // why the nested loop? - Attribute attribute = (Attribute) e.next(); - for (NamingEnumeration ie = attribute.getAll(); ie.hasMore();) { - if (attribute.getID().equalsIgnoreCase("nickname")) { - user.setFirstName((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("initials")) { - user.setMiddleInitial((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("sn")) { - user.setLastName((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("employeeNumber")) { - user.setHrid((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("mail")) { - user.setEmail((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("telephoneNumber")) { - user.setPhone((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("departmentNumber")) { - user.setOrgCode((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("a1")) { - user.setOrgUserId((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("street")) { - user.setAddress1((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("roomNumber")) { - user.setAddress2((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("l")) { - user.setCity((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("st")) { - user.setState((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("postalCode")) { - user.setZipCode((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("zip4")) { - user.setZipCodeSuffix((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("physicalDeliveryOfficeName")) { - user.setLocationClli((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("bc")) { - user.setBusinessCountryCode((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("friendlyCountryName")) { - user.setBusinessCountryName((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("bd")) { - user.setDepartment((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("bdname")) { - user.setDepartmentName((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("jtname")) { - user.setJobTitle((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("mgrid")) { - user.setOrgManagerUserId((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("a2")) { - user.setCommandChain((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("compcode")) { - user.setCompanyCode((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("compdesc")) { - user.setCompany((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("bu")) { - user.setBusinessUnit((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("buname")) { - user.setBusinessUnitName((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("silo")) { - user.setSiloStatus((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("costcenter")) { - user.setCostCenter((String) ie.next()); - } else if (attribute.getID().equalsIgnoreCase("b2")) { - user.setFinancialLocCode((String) ie.next()); - } else { // we don't care about returned attribute, let's move on - ie.next(); - } - - } - } - } - } catch (NamingException e) { - logger.error(EELFLoggerDelegate.errorLogger, "processAttributes failed with naming exception", e); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "processAttributes failed", e); - } - - return user; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLeftMenuService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLeftMenuService.java deleted file mode 100644 index 145d4df2..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLeftMenuService.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.Set; - -import org.openecomp.portalsdk.core.domain.MenuData; -import org.openecomp.portalapp.portal.domain.EPUser; - -public interface EPLeftMenuService { - - /** - * Builds a JSON suitable for populating the front-end left menu from the supplied set of menu items. - * @param user - * - * @param fullMenuSet - * @param roleFunctionSet - * @return JSON String of this form: - *
-	 * {"navItems":[
-	 * 		{"name":"Home","imageSrc":"icon-location-pin","state":"root.applicationsHome"},
-	 * 	...
-	 * ] }
-	 * 
- */ - String getLeftMenuItems(EPUser user, Set fullMenuSet, Set roleFunctionSet); -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLeftMenuServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLeftMenuServiceImpl.java deleted file mode 100644 index fe661b3d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLeftMenuServiceImpl.java +++ /dev/null @@ -1,213 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.Collection; -import java.util.Comparator; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; - -import org.json.JSONArray; -import org.json.JSONObject; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import org.openecomp.portalsdk.core.domain.MenuData; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.UserRoles; -//import org.openecomp.portalapp.portal.domain.Menu; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; - -@Service("leftMenuService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog - -public class EPLeftMenuServiceImpl implements EPLeftMenuService { - - private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPLeftMenuServiceImpl.class); - - @Autowired - private EPAppService appService; - - /* - * (non-Javadoc) - * - * @see - * org.openecomp.portalapp.portal.service.EPLeftMenuService#getLeftMenuItems - * (java.util.Set) - */ - @Override - public String getLeftMenuItems(EPUser user, Set fullMenuSet, Set roleFunctionSet) { - final Map defaultNavMap = new LinkedHashMap(); - - resetNavMap(defaultNavMap); - - loadDefaultNavMap(defaultNavMap); - - // Handle Account Administrator in a special way; soon this will - // be revised as Account Administrator may become obsolete - try { - if (user != null) { - UserRoles uRoles = appService.getUserProfileNormalizedForLeftMenu(user); - if (uRoles.getRoles().contains("Account Administrator")) - loadAccAdminNavMap(defaultNavMap); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - "getLeftMenuItems: failed to get roles for user " + user.getOrgUserId(), e); - } - - loadNavMapByRole(defaultNavMap, fullMenuSet); - - return convertToSideBarModel(defaultNavMap); - } - - /** - * Clears the map - * - * @param defaultNavMap - */ - private void resetNavMap(Map defaultNavMap) { - defaultNavMap.clear(); - } - - /** - * - * @param defaultNavMap - * @param fullMenuSet - */ - private void loadNavMapByRole(Map defaultNavMap, Set fullMenuSet) { - - class SortOrderComparator implements Comparator { - @Override - public int compare(MenuData e1, MenuData e2) { - return e1.getSortOrder().compareTo(e2.getSortOrder()); - } - } - - SortedSet sortMenuSet = new TreeSet(new SortOrderComparator()); - for (MenuData mn : fullMenuSet) { - sortMenuSet.add(mn); - } - - for (MenuData mn : sortMenuSet) { - JSONObject navItemsDetails = new JSONObject(); - navItemsDetails.put("name", mn.getLabel()); - navItemsDetails.put("state", mn.getAction()); - navItemsDetails.put("imageSrc", mn.getImageSrc()); - defaultNavMap.put(mn.getAction(), navItemsDetails); - } - } - - /** - * - * @param defaultNavMap - * @return - */ - private String convertToSideBarModel(Map defaultNavMap) { - JSONObject sidebarModel = new JSONObject(); - JSONArray navItems = new JSONArray(); - Collection jsonObjs = defaultNavMap.values(); - - for (JSONObject navItemsDetail : jsonObjs) - navItems.put(navItemsDetail); - - sidebarModel.put("label", "ECOMP portal"); - sidebarModel.put("navItems", navItems); - return sidebarModel.toString(); - } - - /** - * Loads default entries for regular user. - * - * @param defaultNavMap - */ - private void loadDefaultNavMap(Map defaultNavMap) { - - JSONObject navItemsDetails1 = new JSONObject(); - navItemsDetails1.put("name", "Home"); - navItemsDetails1.put("state", "root.applicationsHome"); - navItemsDetails1.put("imageSrc", "icon-building-home"); - defaultNavMap.put("root.applicationsHome", navItemsDetails1); - - JSONObject navItemsDetails2 = new JSONObject(); - navItemsDetails2.put("name", "Application Catalog"); - navItemsDetails2.put("state", "root.appCatalog"); - navItemsDetails2.put("imageSrc", "icon-apps-marketplace"); - defaultNavMap.put("root.appCatalog", navItemsDetails2); - - JSONObject navItemsDetails3 = new JSONObject(); - navItemsDetails3.put("name", "Widget Catalog"); - navItemsDetails3.put("state", "root.widgetCatalog"); - navItemsDetails3.put("imageSrc", "icon-apps-marketplace"); - defaultNavMap.put("root.widgetCatalog", navItemsDetails3); - - } - - /** - * Loads default entries for application administrator. - * - * @param defaultNavMap - */ - private void loadAccAdminNavMap(Map defaultNavMap) { - - JSONObject navItemsDetails1 = new JSONObject(); - navItemsDetails1.put("name", "Users"); - navItemsDetails1.put("state", "root.users"); - navItemsDetails1.put("imageSrc", "icon-user"); - defaultNavMap.put("root.users", navItemsDetails1); - - // No more widget onboarding like this: - // - // JSONObject navItemsDetails2 = new JSONObject(); - // navItemsDetails2.put("name", "Widget Onboarding"); - // navItemsDetails2.put("state", "root.widgetOnboarding"); - // navItemsDetails2.put("imageSrc", "icon-add-widget"); - // defaultNavMap.put("root.widgetOnboarding", navItemsDetails2); - - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLoginService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLoginService.java deleted file mode 100644 index d3224944..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLoginService.java +++ /dev/null @@ -1,90 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.HashMap; - -import org.openecomp.portalapp.command.EPLoginBean; -import org.openecomp.portalapp.portal.domain.EPUser; - -public interface EPLoginService { - - /** - * Calls {@link #findUser(EPLoginBean, String, HashMap, boolean)} with the - * last parameter set to true. - * - * @param bean - * @param menuPropertiesFilename - * @param additionalParams - * @return EPUser object; null on error or if no match. - * @throws Exception - */ - @SuppressWarnings("rawtypes") - EPLoginBean findUser(EPLoginBean bean, String menuPropertiesFilename, HashMap additionalParams) throws Exception; - - /** - * Searches the fn_user table for a row that matches information in the - * bean. Uses the bean's Organization User ID property if present; if not, - * uses the bean's LoginId property and (optionally, depending on - * matchPassword parameter) loginPwd property. - * - * @param bean - * EPLoginBean - * @param menuPropertiesFileName - * Always ignored - * @param additionalParams - * Used by DataAccessService when updating a matched user object - * @param matchPassword - * If true, the search must match the password - * @return EPUser object; null on error or if no match. - * @throws Exception - */ - @SuppressWarnings("rawtypes") - EPLoginBean findUser(EPLoginBean bean, String menuPropertiesFileName, HashMap additionalParams, - boolean matchPassword) throws Exception; - - /** - * Searches the fn_user table for a row with a value in column login_id that - * matches the specified value. - * - * @param loginId - * Login name - * @return EPUser object; null on error or if no match. - */ - public EPUser findUserWithoutPwd(String loginId); -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLoginServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLoginServiceImpl.java deleted file mode 100644 index a06d89ac..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPLoginServiceImpl.java +++ /dev/null @@ -1,240 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.openecomp.portalapp.command.EPLoginBean; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.menu.MenuBuilder; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.service.support.FusionService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.web.support.AppUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service("eploginService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class EPLoginServiceImpl extends FusionService implements EPLoginService { - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPLoginServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - - /* - * (non-Javadoc) - * @see org.openecomp.portalapp.portal.service.EPLoginService#findUser(org.openecomp.portalapp.command.EPLoginBean, java.lang.String, java.util.HashMap) - */ - @SuppressWarnings("rawtypes") - public EPLoginBean findUser(EPLoginBean bean, String menuPropertiesFilename, HashMap additionalParams) - throws Exception { - return findUser(bean, menuPropertiesFilename, additionalParams, true); - } - - /* - * (non-Javadoc) - * @see org.openecomp.portalapp.portal.service.EPLoginService#findUser(org.openecomp.portalapp.command.EPLoginBean, java.lang.String, java.util.HashMap, boolean) - */ - @SuppressWarnings("rawtypes") - public EPLoginBean findUser(EPLoginBean bean, String menuPropertiesFilename_ignored, HashMap additionalParams, - boolean matchPassword) throws Exception { - EPUser user = null; - EPUser userCopy = null; - - if (bean.getOrgUserId() != null) { - user = (EPUser) findUser(bean); - } else { - if (matchPassword) - user = (EPUser) findUser(bean.getLoginId(), bean.getLoginPwd()); - else - user = (EPUser) findUserWithoutPwd(bean.getLoginId()); - } - - // run this command to fetch more information from the lazily loaded - // object - - // This is funny - commenting out the following method call - // 1. What are we doing with the returned values of the following two - // methods? Nothing. - // 2. Use a guest user scenario - user object will be null - clealry, - // NPE. - // 3. A check of if(user !=null) is made AFTER these bogus calls :) - If - // these calls WERE doing anything significat (which they are not), - // shouln't they have been moved inside that if check? - - // user.getEPUserApps(); - - // Comments - // 1. This method is clearly doing more than 'getting roles' - Not a - // good name - - // 2. Also, there is no null check - guest user scenarios will break the - // code with NPE - added the check - Do not want to remove the call - // altogether - not sure how it will effect things. - - if (user != null) { - user.getEPRoles(); - - // raise an error if the portal application is locked and the user - // does not - // have system administrator privileges - if (AppUtils.isApplicationLocked() - && !EPUserUtils.hasRole(user, SystemProperties.getProperty(SystemProperties.SYS_ADMIN_ROLE_ID))) { - bean.setLoginErrorMessage(SystemProperties.MESSAGE_KEY_LOGIN_ERROR_APPLICATION_LOCKED); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUserAdminPrivilegesInfo, user.getLoginId()); - } - - // raise an error if the user is inactive - if (!user.getActive()) { - bean.setLoginErrorMessage(SystemProperties.MESSAGE_KEY_LOGIN_ERROR_USER_INACTIVE); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUserInactiveWarning, user.getLoginId()); - } - - // only login the user if no errors have occurred - if (bean.getLoginErrorMessage() == null) { - - // this will be a snapshot of the user's information as - // retrieved from the database - userCopy = (EPUser) user.clone(); - - // update the last logged in date for the user - user.setLastLoginDate(new Date()); - getDataAccessService().saveDomainObject(user, additionalParams); - - // create the application menu based on the user's privileges - MenuBuilder menuBuilder = new MenuBuilder(); - Set appMenu = menuBuilder.getMenu( - SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_SET_NAME), dataAccessService); - bean.setMenu(appMenu != null ? appMenu : new HashSet()); - Set businessDirectMenu = menuBuilder.getMenu( - SystemProperties.getProperty(SystemProperties.BUSINESS_DIRECT_MENU_SET_NAME), - dataAccessService); - bean.setBusinessDirectMenu(businessDirectMenu != null ? businessDirectMenu : new HashSet()); - - bean.setUser(userCopy); - } - - } else { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUserMissingError, bean.getOrgUserId()); - } - - return bean; - } - - /** - * Searches the fn_user table for a row that matches the specified login_id - * and login_pwd values. - * - * @param loginId - * @param password - * @return EPUser object; null on error or if no match. - */ - @SuppressWarnings("rawtypes") - private EPUser findUser(String loginId, String password) { - Map params = new HashMap<>(); - params.put("login_id", loginId); - params.put("login_pwd", password); - List list = null; - try { - list = dataAccessService.executeNamedQuery("getEPUserByLoginIdLoginPwd", params, new HashMap()); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - logger.error(EELFLoggerDelegate.errorLogger, "findUser failed on " + loginId, e); - } - return (list == null || list.isEmpty()) ? null : (EPUser) list.get(0); - } - - @SuppressWarnings("rawtypes") - public EPUser findUserWithoutPwd(String loginId) { - Map params = new HashMap<>(); - params.put("login_id", loginId); - List list = null; - try { - list = dataAccessService.executeNamedQuery("getEPUserByLoginId", params, new HashMap()); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - logger.error(EELFLoggerDelegate.errorLogger, "findUserWithoutPwd failed on " + loginId, e); - } - return (list == null || list.isEmpty()) ? null : (EPUser) list.get(0); - } - - /** - * Searches the fn_user table for a row that matches the value of the bean's - * Organization User ID property. - * - * @param bean - * @return EPUser object; null on error or if no match. - */ - @SuppressWarnings("rawtypes") - private EPUser findUser(EPLoginBean bean) { - Map params = new HashMap<>(); - params.put("org_user_id", bean.getOrgUserId()); - List list = null; - try { - list = dataAccessService.executeNamedQuery("getUserByOrgUserId", params, new HashMap()); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - logger.error(EELFLoggerDelegate.errorLogger, "findUser(EPLoginBean) failed", e); - } - return (list == null || list.isEmpty()) ? null : (EPUser) list.get(0); - } - - public DataAccessService getDataAccessService() { - return dataAccessService; - } - - public void setDataAccessService(DataAccessService dataAccessService) { - this.dataAccessService = dataAccessService; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionService.java deleted file mode 100644 index 5c5b15cf..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionService.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalsdk.core.domain.RoleFunction; - -public interface EPRoleFunctionService { - - /** - * Builds a set of role functions and sets a session attribute with it. - * - * @return Set of role functions that was built. - */ - public List getRoleFunctions(); - - /** - * Builds a set of role functions of user - * - * @param request - * HttpServletRequest - * @param user - * EPUser - * @return Set of role functions that was built. - */ - public Set getRoleFunctions(HttpServletRequest request, EPUser user); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceCentralizedImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceCentralizedImpl.java deleted file mode 100644 index 814dbaf5..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceCentralizedImpl.java +++ /dev/null @@ -1,107 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.hibernate.SessionFactory; -import org.openecomp.portalapp.portal.domain.CentralRoleFunction; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; - - -@Transactional -public class EPRoleFunctionServiceCentralizedImpl implements EPRoleFunctionService{ - - - @Autowired - private DataAccessService dataAccessService; - - @Autowired - private SessionFactory sessionFactory; - - @SuppressWarnings({ "unchecked"}) - @Override - public List getRoleFunctions() { - List getRoleFuncList = null; - List getRoleFuncListOfPortal = new ArrayList<>(); - final Map params = new HashMap<>(); - params.put("appId", (long) 1); - //Sync all functions from external system into Ecomp portal DB - getRoleFuncList = dataAccessService.executeNamedQuery("getAllRoleFunctions", params, null); - for(CentralRoleFunction roleFunction : getRoleFuncList) - { - RoleFunction roleFun = new RoleFunction(); - roleFun.setCode(roleFunction.getCode()); - roleFun.setName(roleFunction.getName()); - getRoleFuncListOfPortal.add(roleFun); - } - return getRoleFuncListOfPortal; - } - - @SuppressWarnings("unchecked") - @Override - public Set getRoleFunctions(HttpServletRequest request, EPUser user) { - HttpSession session = request.getSession(); - String userId = user.getId().toString(); - final Map params = new HashMap<>(); - params.put("userId", userId); - @SuppressWarnings("unchecked") - List getRoleFuncListOfPortal = dataAccessService.executeNamedQuery("getRoleFunctionsOfUser", params, null); - Set getRoleFuncListOfPortalSet = new HashSet<>(getRoleFuncListOfPortal); - session.setAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME), - getRoleFuncListOfPortalSet); - return getRoleFuncListOfPortalSet; - - } - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceImpl.java deleted file mode 100644 index 2049700c..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceImpl.java +++ /dev/null @@ -1,116 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; - -@Transactional -public class EPRoleFunctionServiceImpl implements EPRoleFunctionService { - @Autowired - private DataAccessService dataAccessService; - - - - public DataAccessService getDataAccessService() { - return dataAccessService; - } - - public void setDataAccessService(DataAccessService dataAccessService) { - this.dataAccessService = dataAccessService; - } - - @SuppressWarnings("unchecked") - @Override - public List getRoleFunctions() { - return getDataAccessService().getList(RoleFunction.class, null); - } - - @SuppressWarnings("unchecked") - @Override - public Set getRoleFunctions(HttpServletRequest request, EPUser user) { - HashSet roleFunctions = null; - - HttpSession session = request.getSession(); - roleFunctions = (HashSet) session - .getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME)); - - if (roleFunctions == null) { - HashMap roles = EPUserUtils.getRoles(request); - roleFunctions = new HashSet(); - - Iterator i = roles.keySet().iterator(); - - while (i.hasNext()) { - Long roleKey = (Long) i.next(); - EPRole role = (EPRole) roles.get(roleKey); - - Iterator j = role.getRoleFunctions().iterator(); - - while (j.hasNext()) { - RoleFunction function = (RoleFunction) j.next(); - roleFunctions.add(function.getCode()); - } - } - - session.setAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME), - roleFunctions); - } - - return roleFunctions; - } - - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleService.java deleted file mode 100644 index 85b523db..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleService.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalapp.portal.domain.EPRole; - - -public interface EPRoleService { - - // Used by ECOMP. Get cached role by two columns used by ECOMP only. app id, and external app role id. - EPRole getRole(Long appId, Long appRoleid); - public void saveRole(EPRole domainRole); - EPRole getAppRole(String roleName, Long appId); - public List getRoleFunctions(); - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleServiceImpl.java deleted file mode 100644 index e4c67140..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/EPRoleServiceImpl.java +++ /dev/null @@ -1,197 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeSet; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.utils.PortalConstants; - -@Service("epRoleService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class EPRoleServiceImpl implements EPRoleService { - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPRoleServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - - @SuppressWarnings("unchecked") - public List getRoleFunctions() { - // List msgDB = getDataAccessService().getList(Profile.class, null); - return getDataAccessService().getList(RoleFunction.class, null); - } - - @SuppressWarnings("unchecked") - public List getAvailableChildRoles(Long roleId) { - List availableChildRoles = (List) getDataAccessService().getList(EPRole.class, null); - if (roleId == null || roleId == 0) { - return availableChildRoles; - } - - EPRole currentRole = (EPRole) getDataAccessService().getDomainObject(EPRole.class, roleId, null); - Set allParentRoles = new TreeSet(); - allParentRoles = getAllParentRolesAsList(currentRole, allParentRoles); - - Iterator availableChildRolesIterator = availableChildRoles.iterator(); - while (availableChildRolesIterator.hasNext()) { - EPRole role = availableChildRolesIterator.next(); - if (!role.getActive() || allParentRoles.contains(role) || role.getId().equals(roleId)) { - availableChildRolesIterator.remove(); - } - } - return availableChildRoles; - } - - private Set getAllParentRolesAsList(EPRole role, Set allParentRoles) { - Set parentRoles = role.getParentRoles(); - allParentRoles.addAll(parentRoles); - Iterator parentRolesIterator = parentRoles.iterator(); - while (parentRolesIterator.hasNext()) { - getAllParentRolesAsList(parentRolesIterator.next(), allParentRoles); - } - return allParentRoles; - } - - public RoleFunction getRoleFunction(String code) { - return (RoleFunction) getDataAccessService().getDomainObject(RoleFunction.class, code, null); - } - - public void saveRoleFunction(RoleFunction domainRoleFunction) { - getDataAccessService().saveDomainObject(domainRoleFunction, null); - } - - public void deleteRoleFunction(RoleFunction domainRoleFunction) { - getDataAccessService().deleteDomainObject(domainRoleFunction, null); - } - - public EPRole getRole(Long id) { - return (EPRole) getDataAccessService().getDomainObject(EPRole.class, id, null); - } - - // TODO: refactor - private static final String getAppRoleSqlFormat = "SELECT * FROM fn_role where APP_ID = %s AND APP_ROLE_ID = %s"; - - @SuppressWarnings("unchecked") - public EPRole getRole(Long appId, Long appRoleid) { - if (appId == null || appRoleid == null) { - logger.error(EELFLoggerDelegate.errorLogger, String.format( - "getRole does not support null appId or roleId. appRoleid=%s, appRoleid=%s", appId, appRoleid)); - return null; - } - - String sql = String.format(getAppRoleSqlFormat, appId, appRoleid); - - List roles = (List) dataAccessService.executeSQLQuery(sql, EPRole.class, null); - int resultsCount = roles.size(); - if (resultsCount > 1) { - logger.error(EELFLoggerDelegate.errorLogger, - String.format( - "search by appId=%s, appRoleid=%s should have returned 0 or 1 results. Got %d. This is an internal server error.", - appId, appRoleid, resultsCount)); - logger.error(EELFLoggerDelegate.errorLogger, - "Trying to recover from duplicates by returning the first search result. This issue should be treated, it is probably not critical because duplicate roles should be similar."); - return roles.get(0); - } else if (resultsCount == 1) { - return roles.get(0); - } - return null; - } - - @SuppressWarnings("unchecked") - public EPRole getAppRole(String roleName, Long appId) { - - final Map params = new HashMap(); - final Map portalParams = new HashMap(); - List roles = null; - params.put("appId", appId.toString()); - params.put("roleName", roleName); - portalParams.put("appRoleName", roleName); - if (appId == 1 || roleName.equals(PortalConstants.ADMIN_ROLE)) { - roles = (List) dataAccessService.executeNamedQuery("getPortalAppRoles", portalParams, null); - } else if (appId != 1 && !roleName.equals(PortalConstants.ADMIN_ROLE)) { - roles = (List) dataAccessService.executeNamedQuery("getAppRoles", params, null); - } - int resultsCount = (roles == null ? 0 : roles.size()); - if (resultsCount > 1) { - logger.error(EELFLoggerDelegate.errorLogger, - "Trying to recover from duplicates by returning the first search result. This issue should be treated, it is probably not critical because duplicate roles should be similar."); - return roles.get(0); - } else if (resultsCount == 1) { - return roles.get(0); - } - return null; - } - - public void saveRole(EPRole domainRole) { - getDataAccessService().saveDomainObject(domainRole, null); - } - - public void deleteRole(EPRole domainRole) { - getDataAccessService().deleteDomainObject(domainRole, null); - } - - @SuppressWarnings("unchecked") - public List getAvailableRoles() { - return getDataAccessService().getList(EPRole.class, null); - } - - public DataAccessService getDataAccessService() { - return dataAccessService; - } - - public void setDataAccessService(DataAccessService dataAccessService) { - this.dataAccessService = dataAccessService; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesService.java deleted file mode 100644 index 643e2285..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesService.java +++ /dev/null @@ -1,297 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.hibernate.Session; -import org.openecomp.portalapp.portal.domain.CentralRoleFunction; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.transport.CentralRole; -import org.openecomp.portalsdk.core.domain.Role; -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalsdk.core.restful.domain.EcompUser; - -public interface ExternalAccessRolesService { - - /** - * It gets list of application roles - * - * @param appId - * @return List - * @throws Exception - */ - public List getAppRoles(Long appId) throws Exception; - - /** - * It returns single app record - * - * @param uebkey - * @return List - * @throws Exception - */ - public List getApp(String uebkey) throws Exception; - - /** - * Adds role in the external access system if fails throws exception - * - * @param addRoles - * @param uebkey - * @return boolean - * @throws Exception - */ - public boolean addRole(Role addRoles, String uebkey) throws Exception; - - /** - * It returns complete user information - * - * @param loginId - * @return EPUser object - * @throws Exception - */ - List getUser(String loginId) throws Exception; - - /** - * It returns complete user information including application roles permissions - * - * @param loginId - * @param uebkey - * @return String - * @throws Exception - */ - String getUserWithRoles(String loginId, String uebkey) throws Exception; - - /** - * It returns list of all role functions - * @param string - * @return List - * @throws Exception - */ - List getRoleFuncList(String string) throws Exception; - - /** - * It return list of role provided by the app uebkey and roleId - * - * @param roleId - * @param uebkey - * @return CentralRole - * @throws Exception - */ - CentralRole getRoleInfo(Long roleId, String uebkey) throws Exception; - - /** - * It returns the CentralRoleFunction object - * - * @param functionCode - * @param uebkey - * @return CentralRoleFunction - * @throws Exception - */ - public CentralRoleFunction getRoleFunction(String functionCode, String uebkey) throws Exception; - - /** - * It saves role function in the DB - * - * @param domainCentralRoleFunction - * @param requestedApp - * @return true else false - * @throws Exception - */ - public boolean saveCentralRoleFunction(CentralRoleFunction domainCentralRoleFunction, EPApp requestedApp) throws Exception; - - /** - * It deletes role function in the DB - * - * @param code - * @param app - */ - public boolean deleteCentralRoleFunction(String code, EPApp app); - - /** - * It gets all roles the applications - * - * @param uebkey - * @return List - * @throws Exception - */ - public List getRolesForApp(String uebkey) throws Exception; - - /** - * It saves role function in the DB - * - * @param saveRole - * @param uebkey - * @throws Exception - */ - boolean saveRoleForApplication(Role saveRole, String uebkey) throws Exception; - - /** - * It deletes role in the DB - * - * @param code - * @param uebkey - * @return true else false - * @throws Exception - */ - boolean deleteRoleForApplication(String code, String uebkey) throws Exception; - - /** - * It gets all active roles for single application - * - * @param uebkey - * @return List - * @throws Exception - */ - List getActiveRoles(String uebkey) throws Exception; - - /** - * It deletes user related roles for an application in the table - * @param roleId - * @param uebkey - * @param LoginId - * @return true else false - * @throws Exception - */ - public boolean deleteDependencyRoleRecord(Long roleId, String uebkey, String LoginId) throws Exception; - - /** - * It sync new functions codes and names from and updates role functions from external access system - * - * @param app - * @throws Exception - */ - public void syncRoleFunctionFromExternalAccessSystem(EPApp app) throws Exception; - - /** - * It uploads portal functions into external auth system - * @param uebkey - * @return - * @throws Exception - */ - public Integer bulkUploadFunctions(String uebkey) throws Exception; - - /** - * It uploads portal roles into external auth system - * @param uebkey - * @return - * @throws Exception - */ - public Integer bulkUploadRoles(String uebkey) throws Exception; - - /** - * It uploads partner application role functions into external auth system - * - * @param uebkey - * @param upload - * @throws Exception - */ - public void bulkUploadPartnerFunctions(String uebkey, List upload) throws Exception; - - /** - * It uploads partner application role functions into external auth system - * - * @param uebkey - * @param upload - * @throws Exception - */ - public void bulkUploadPartnerRoles(String uebkey, List upload) throws Exception; - - /** - * It returns total no. of portal application role functions records added in external auth system - * @param uebkey - * @return - * @throws Exception - */ - Integer bulkUploadRolesFunctions(String uebkey) throws Exception; - - /** - * It syncs the roles and rolefunctions to the ecomp DB from AAF - * @param app - * @throws Exception - */ - void syncApplicationRolesWithEcompDB(EPApp app) throws Exception; - - /** - * It uploads list of user roles of the application into external auth system - * - * @param uebkey - * @return - * @throws Exception - */ - public Integer bulkUploadUserRoles(String uebkey) throws Exception; - - /** - * It Uploads partner application role functions into external auth system - * - * @param uebkey - * @param roleList - * @throws Exception - */ - void bulkUploadPartnerRoleFunctions(String uebkey, List roleList) throws Exception; - - /** - * it deletes all dependency role records - * - * @param localSession - * @param roleId - * @param appId - * @throws Exception - */ - public void deleteRoleDependencyRecords(Session localSession, Long roleId, Long appId) throws Exception; - - /** - * It returns list of applications functions along with functions associated with global role - * - * @param uebkey - * @return - * @throws Exception - */ - List getMenuFunctionsList(String uebkey) throws Exception; - - /** - * - * @param uebkey applications UebKey - * @return - * @throws Exception - * Method getAllUsers returns all the active users of application - */ - List getAllAppUsers(String uebkey) throws Exception; - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesServiceImpl.java deleted file mode 100644 index 341a62cb..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesServiceImpl.java +++ /dev/null @@ -1,2338 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import org.apache.commons.lang.StringUtils; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.Transaction; -import org.json.JSONArray; -import org.json.JSONObject; -import org.openecomp.portalapp.portal.domain.CentralRoleFunction; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPAppRoleFunction; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EPUserApp; -import org.openecomp.portalapp.portal.domain.ExternalRoleDetails; -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.transport.BulkUploadRoleFunction; -import org.openecomp.portalapp.portal.transport.BulkUploadUserRoles; -import org.openecomp.portalapp.portal.transport.CentralApp; -import org.openecomp.portalapp.portal.transport.CentralRole; -import org.openecomp.portalapp.portal.transport.CentralUser; -import org.openecomp.portalapp.portal.transport.CentralUserApp; -import org.openecomp.portalapp.portal.transport.EcompUserRoles; -import org.openecomp.portalapp.portal.transport.ExternalAccessPerms; -import org.openecomp.portalapp.portal.transport.ExternalAccessPermsDetail; -import org.openecomp.portalapp.portal.transport.ExternalAccessRole; -import org.openecomp.portalapp.portal.transport.ExternalAccessRolePerms; -import org.openecomp.portalapp.portal.transport.ExternalAccessUser; -import org.openecomp.portalapp.portal.transport.ExternalRoleDescription; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.domain.Role; -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.restful.domain.EcompRole; -import org.openecomp.portalsdk.core.restful.domain.EcompUser; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.client.HttpClientErrorException; -import org.springframework.web.client.RestTemplate; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.type.TypeFactory; - -@Service("externalAccessRolesService") -@EnableAspectJAutoProxy -@EPMetricsLog -@EPAuditLog -public class ExternalAccessRolesServiceImpl implements ExternalAccessRolesService { - - private static final String AND_FUNCTION_CD_EQUALS = " and function_cd = '"; - - private static final String OWNER = ".owner"; - - private static final String ADMIN = ".admin"; - - private static final String ACCOUNT_ADMINISTRATOR = ".Account_Administrator"; - - private static final String FUNCTION_CD_LIKE_CLAUSE = " and function_cd like '%"; - - private static final String FUNCTION_PIPE = "|"; - - private static final String IS_NULL_STRING = "null"; - - private static final String EXTERNAL_AUTH_PERMS = "perms"; - - private static final String EXTERNAL_AUTH_ROLE_DESCRIPTION = "description"; - - private static final String WHERE_APP_ID_EQUALS = " where app_id = "; - - private static final String IS_EMPTY_JSON_STRING = "{}"; - - private static final String CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE = "Connecting to External Auth system"; - - private static final String WHERE_ROLE_ID_EQUALS = " where role_id = "; - - private static final String APP_ROLE_ID = "appRoleId"; - - private static final String APP_ID = "appId"; - - private static final String PRIORITY = "priority"; - - private static final String ACTIVE = "active"; - - private static final String ROLE_NAME = "name"; - - private static final String ID = "id"; - - private static final String WHERE_ROLE_NAME_EQUALS = " where role_name = '"; - - private static final String APP_ID_EQUALS = " app_id = "; - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ExternalAccessRolesServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - - @Autowired - private SessionFactory sessionFactory; - - RestTemplate template = new RestTemplate(); - - @SuppressWarnings("unchecked") - public List getAppRoles(Long appId) throws Exception { - List applicationRoles = null; - String filter = null; - try { - if (appId == 1) { - filter = " where app_id is null"; - } else { - filter = WHERE_APP_ID_EQUALS + appId; - } - applicationRoles = dataAccessService.getList(EPRole.class, filter, null, null); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAppRoles: failed", e); - throw new Exception(e.getMessage()); - } - return applicationRoles; - } - - @SuppressWarnings("unchecked") - @Override - public List getApp(String uebkey) throws Exception { - List app = null; - try { - app = (List) dataAccessService.getList(EPApp.class, " where ueb_key = '" + uebkey + "'", null, null); - if(!app.get(0).getEnabled() && !app.get(0).getId().equals(PortalConstants.PORTAL_APP_ID)){ - throw new Exception("Application:"+app.get(0).getName()+" is Unavailable"); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getApp: failed", e); - throw new Exception(e.getMessage()); - } - return app; - } - - /** - * It returns single application role from external auth system - * @param addRole - * @param app - * @return JSON string which contains application role details - * @throws Exception - */ - private String getSingleAppRole(String addRole, EPApp app) throws Exception { - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - HttpEntity entity = new HttpEntity<>(headers); - logger.debug(EELFLoggerDelegate.debugLogger, "getSingleAppRole: Connecting to External Auth system"); - ResponseEntity response = template - .exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "roles/" - + app.getNameSpace() + "." + addRole.replaceAll(" ", "_"), - HttpMethod.GET, entity, String.class); - logger.debug(EELFLoggerDelegate.debugLogger, - "getSingleAppRole: Finished GET app role from External Auth system and status code: {} ", response.getStatusCode().value()); - return response.getBody(); - } - - @Override - public boolean addRole(Role addRole, String uebkey) throws Exception { - boolean response = false; - ResponseEntity addResponse = null; - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - EPApp app = getApp(uebkey).get(0); - String newRole = updateExistingRoleInExternalSystem(addRole, app); - HttpEntity entity = new HttpEntity<>(newRole, headers); - logger.debug(EELFLoggerDelegate.debugLogger, "addRole: Connecting to External Auth system"); - addResponse = template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role", - HttpMethod.POST, entity, String.class); - if (addResponse.getStatusCode().value() == 201) { - response = true; - logger.debug(EELFLoggerDelegate.debugLogger, "addRole: Finished adding role in the External Auth system and response code: {} ", addResponse.getStatusCode().value()); - } - if (addResponse.getStatusCode().value() == 406) { - logger.error(EELFLoggerDelegate.errorLogger, - "addRole: Failed to add in the External Auth system due to {} and status code: {}", addResponse.getBody(), addResponse.getStatusCode().value()); - } - return response; - } - - /** - * - * It deletes record in external auth system - * - * @param delRole - * @return JSON String which has status code and response body - * @throws Exception - */ - private ResponseEntity deleteRoleInExternalSystem(String delRole) throws Exception { - ResponseEntity delResponse = null; - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - HttpEntity entity = new HttpEntity<>(delRole, headers); - logger.debug(EELFLoggerDelegate.debugLogger, "deleteRoleInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - delResponse = template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role?force=true", - HttpMethod.DELETE, entity, String.class); - logger.debug(EELFLoggerDelegate.debugLogger, "deleteRoleInExternalSystem: Finished DELETE operation in the External Auth system and status code: {} ", delResponse.getStatusCode().value()); - return delResponse; - } - - /** - * It updates role in external auth system - * - * @param updateExtRole - * @param app - * @return true if success else false - * @throws Exception - * If updateRoleInExternalSystem fails we catch it in logger for detail message - */ - @SuppressWarnings("unchecked") - private boolean updateRoleInExternalSystem(Role updateExtRole, EPApp app) throws Exception { - boolean response = false; - ObjectMapper mapper = new ObjectMapper(); - ResponseEntity deleteResponse = null; - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - ExternalAccessRolePerms extRolePerms = null; - ExternalAccessPerms extPerms = null; - List epRoleList = null; - if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - epRoleList = dataAccessService.getList(EPRole.class, - WHERE_ROLE_ID_EQUALS + updateExtRole.getId() + " and app_id is null", null, null); - } else { - epRoleList = dataAccessService.getList(EPRole.class, - " where app_role_id = " + updateExtRole.getId() + " and app_id = " + app.getId(), null, null); - } - String appRole = getSingleAppRole(epRoleList.get(0).getName(), app); - if (!appRole.equals(IS_EMPTY_JSON_STRING)) { - JSONObject jsonObj = new JSONObject(appRole); - JSONArray extRole = jsonObj.getJSONArray("role"); - if (!extRole.getJSONObject(0).has(EXTERNAL_AUTH_ROLE_DESCRIPTION)) { - String roleName = extRole.getJSONObject(0).getString(ROLE_NAME); - Map delRoleKeyMapper = new HashMap<>(); - delRoleKeyMapper.put(ROLE_NAME, roleName); - String delRoleKeyValue = mapper.writeValueAsString(delRoleKeyMapper); - deleteResponse = deleteRoleInExternalSystem(delRoleKeyValue); - if (deleteResponse.getStatusCode().value() != 200) { - throw new Exception(deleteResponse.getBody()); - } - addRole(updateExtRole, app.getUebKey()); - } else { - String desc = extRole.getJSONObject(0).getString(EXTERNAL_AUTH_ROLE_DESCRIPTION); - String name = extRole.getJSONObject(0).getString(ROLE_NAME); - List list = null; - if (extRole.getJSONObject(0).has(EXTERNAL_AUTH_PERMS)) { - JSONArray perms = extRole.getJSONObject(0).getJSONArray(EXTERNAL_AUTH_PERMS); - list = mapper.readValue(perms.toString(), TypeFactory.defaultInstance() - .constructCollectionType(List.class, ExternalAccessPerms.class)); - } - ExternalRoleDescription sysRoleList = mapper.readValue(desc, ExternalRoleDescription.class); - // If role name or role functions are updated then delete record in External System and add new record to avoid conflicts - Boolean existingRoleActive; - boolean isActiveValueChanged; - // check role active status - existingRoleActive = new Boolean(sysRoleList.getActive()); - isActiveValueChanged = existingRoleActive.equals(updateExtRole.getActive()); - if (!sysRoleList.getName().equals(updateExtRole.getName())) { - Map delRoleKeyMapper = new HashMap<>(); - delRoleKeyMapper.put(ROLE_NAME, name); - String delRoleKeyValue = mapper.writeValueAsString(delRoleKeyMapper); - deleteResponse = deleteRoleInExternalSystem(delRoleKeyValue); - if (deleteResponse.getStatusCode().value() != 200) { - logger.error(EELFLoggerDelegate.errorLogger, "updateRoleInExternalSystem: Failed to delete role in external system due to {} ", deleteResponse.getBody()); - throw new Exception(deleteResponse.getBody()); - } - addRole(updateExtRole, app.getUebKey()); - addRoleFunctionsInExternalSystem(updateExtRole, mapper, app); - } - boolean checkPriorityStatus = StringUtils.equals(String.valueOf(sysRoleList.getPriority()),String.valueOf(updateExtRole.getPriority())); - ExternalAccessRole updateRole = new ExternalAccessRole(); - if (!isActiveValueChanged - || !checkPriorityStatus - || sysRoleList.getId().equals(IS_NULL_STRING) - || !sysRoleList.getId().equals(String.valueOf(epRoleList.get(0).getId()))) { - String updateDesc = ""; - String appId = (app.getId().equals(PortalConstants.PORTAL_APP_ID)) ? " app_id is null" - : APP_ID_EQUALS + app.getId(); - List getRole = dataAccessService.getList(EPRole.class, - WHERE_ROLE_NAME_EQUALS + updateExtRole.getName() + "' and " + appId, null, null); - Map extSystemUpdateRoleJsonMapper = new LinkedHashMap<>(); - extSystemUpdateRoleJsonMapper.put(ID, String.valueOf(getRole.get(0).getId())); - extSystemUpdateRoleJsonMapper.put(ROLE_NAME, String.valueOf(updateExtRole.getName())); - extSystemUpdateRoleJsonMapper.put(ACTIVE, String.valueOf(updateExtRole.getActive())); - extSystemUpdateRoleJsonMapper.put(PRIORITY, String.valueOf(updateExtRole.getPriority())); - if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - extSystemUpdateRoleJsonMapper.put(APP_ID, "null"); - extSystemUpdateRoleJsonMapper.put(APP_ROLE_ID, "null"); - } else { - extSystemUpdateRoleJsonMapper.put(APP_ID, String.valueOf(app.getId())); - extSystemUpdateRoleJsonMapper.put(APP_ROLE_ID, String.valueOf(getRole.get(0).getAppRoleId())); - - } - updateDesc = mapper.writeValueAsString(extSystemUpdateRoleJsonMapper); - updateRole.setName(app.getNameSpace() + "." + updateExtRole.getName().replaceAll(" ", "_")); - updateRole.setDescription(updateDesc); - String updateRoleDesc = mapper.writeValueAsString(updateRole); - HttpEntity entity = new HttpEntity<>(updateRoleDesc, headers); - logger.debug(EELFLoggerDelegate.debugLogger, - "updateRoleInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity updatePermsResponse = template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role", - HttpMethod.PUT, entity, String.class); - logger.debug(EELFLoggerDelegate.debugLogger, - "updateRoleInExternalSystem: Finished updating in External Auth system and status code: {} ", - updatePermsResponse.getStatusCode().value()); - } - List roleFunctionListNew = convertSetToListOfRoleFunctions(updateExtRole); - Map updateRoleFunc = new HashMap<>(); - for (RoleFunction addPerm : roleFunctionListNew) { - updateRoleFunc.put(addPerm.getCode(), addPerm); - } - final Map extRolePermMap = new HashMap<>(); - // Update permissions in the ExternalAccess System - if (list != null) { - for (ExternalAccessPerms perm : list) { - if (!updateRoleFunc.containsKey(perm.getInstance())) { - removePermForRole(perm, mapper, name, headers); - } - extRolePermMap.put(perm.getInstance(), perm); - } - } - response = true; - if (!roleFunctionListNew.isEmpty()) { - for (RoleFunction roleFunc : roleFunctionListNew) { - if (!extRolePermMap.containsKey(roleFunc.getCode())) { - String checkType = roleFunc.getCode().contains("menu") ? "menu" : "url"; - extPerms = new ExternalAccessPerms(app.getNameSpace() + "." + checkType, roleFunc.getCode(), - "*"); - extRolePerms = new ExternalAccessRolePerms(extPerms, - app.getNameSpace() + "." + updateExtRole.getName().replaceAll(" ", "_")); - String updateRolePerms = mapper.writeValueAsString(extRolePerms); - HttpEntity entity = new HttpEntity<>(updateRolePerms, headers); - logger.debug(EELFLoggerDelegate.debugLogger, "updateRoleInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity addResponse = template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "role/perm", - HttpMethod.POST, entity, String.class); - if (addResponse.getStatusCode().value() != 201) { - response = false; - logger.debug(EELFLoggerDelegate.debugLogger, - "updateRoleInExternalSystem: Connected to External Auth system but something went wrong! due to {} and statuscode: {}", - addResponse.getStatusCode().getReasonPhrase(), - addResponse.getStatusCode().value()); - } else { - response = true; - logger.debug(EELFLoggerDelegate.debugLogger, "updateRoleInExternalSystem: Finished adding permissions to roles in External Auth system and status code: {} ", addResponse.getStatusCode().value()); - } - } - } - } - } - } else { - // It seems like role exists in local DB but not in External Access system - addRole(updateExtRole, app.getUebKey()); - List roleFunctionListUpdate = convertSetToListOfRoleFunctions(updateExtRole); - response = true; - if (!roleFunctionListUpdate.isEmpty()) { - addRoleFunctionsInExternalSystem(updateExtRole, mapper, app); - } - } - return response; - } - - /** - * - * It adds functions to the role in external auth system - * - * @param updateExtRole - * @param addPermsMapper - * @param app - * @return true if success else false - * @throws Exception - */ - private boolean addRoleFunctionsInExternalSystem(Role updateExtRole, ObjectMapper addPermsMapper, EPApp app) - throws Exception { - boolean response = false; - ExternalAccessRolePerms extAddRolePerms = null; - ExternalAccessPerms extAddPerms = null; - List roleFunctionListAdd = convertSetToListOfRoleFunctions(updateExtRole); - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - for (RoleFunction roleFunc : roleFunctionListAdd) { - String checkType = roleFunc.getCode().contains("menu") ? "menu" : "url"; - extAddPerms = new ExternalAccessPerms(app.getNameSpace() + "." + checkType, roleFunc.getCode(), "*"); - extAddRolePerms = new ExternalAccessRolePerms(extAddPerms, - app.getNameSpace() + "." + updateExtRole.getName().replaceAll(" ", "_")); - String updateRolePerms = addPermsMapper.writeValueAsString(extAddRolePerms); - HttpEntity entity = new HttpEntity<>(updateRolePerms, headers); - logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionsInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity addResponse = template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role/perm", - HttpMethod.POST, entity, String.class); - if (addResponse.getStatusCode().value() != 201) { - response = false; - logger.debug(EELFLoggerDelegate.debugLogger, - "addRoleFunctionsInExternalSystem: While adding permission to the role in External Auth system something went wrong! due to {} and statuscode: {}", - addResponse.getStatusCode().getReasonPhrase(), addResponse.getStatusCode().value()); - } else { - response = true; - logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionsInExternalSystem: Finished adding permissions to roles in External Auth system and status code: {} ", addResponse.getStatusCode().value()); - } - } - return response; - } - - /** - * - * It converts list of functions in updateExtRole parameter to the RoleFunction object - * - * @param updateExtRole - * @return list of functions - */ - @SuppressWarnings("unchecked") - private List convertSetToListOfRoleFunctions(Role updateExtRole) { - Set roleFunctionSetList = updateExtRole.getRoleFunctions(); - List roleFunctionList = new ArrayList<>(); - ObjectMapper roleFuncMapper = new ObjectMapper(); - Iterator itetaror = roleFunctionSetList.iterator(); - while (itetaror.hasNext()) { - Object nextValue = itetaror.next(); - RoleFunction roleFunction = roleFuncMapper.convertValue(nextValue, RoleFunction.class); - roleFunctionList.add(roleFunction); - } - return roleFunctionList.stream().distinct().collect(Collectors.toList()); - } - - /** - * It delete permissions/functions in the external auth system - * - * @param perm - * @param permMapper - * @param name - * @param headers - * @throws Exception - */ - private void removePermForRole(ExternalAccessPerms perm, ObjectMapper permMapper, String name, HttpHeaders headers) - throws Exception { - ExternalAccessRolePerms extAccessRolePerms = new ExternalAccessRolePerms(perm, name); - String permDetails = permMapper.writeValueAsString(extAccessRolePerms); - HttpEntity deleteEntity = new HttpEntity<>(permDetails, headers); - logger.debug(EELFLoggerDelegate.debugLogger, "removePermForRole: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity deletePermResponse = template - .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role/" - + name + "/perm", HttpMethod.DELETE, deleteEntity, String.class); - if (deletePermResponse.getStatusCode().value() != 200) { - throw new Exception(deletePermResponse.getBody()); - } - logger.debug(EELFLoggerDelegate.debugLogger, "removePermForRole: Finished deleting permission to role in External Auth system and status code: {}", - deletePermResponse.getStatusCode().value()); - } - - /** - * It will create new role in the External Auth System - * - * @param newRole - * @param app - * @return true if successfully added in the system else false - * @throws Exception - * If fails to add role in the system - */ - private boolean addNewRoleInExternalSystem(List newRole, EPApp app) throws Exception { - boolean response = false; - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - ObjectMapper mapper = new ObjectMapper(); - String addNewRole = ""; - ExternalAccessRole extRole = new ExternalAccessRole(); - String addDesc = null; - Map extSystemJsonMapper = new LinkedHashMap<>(); - extSystemJsonMapper.put(ID, String.valueOf(newRole.get(0).getId())); - extSystemJsonMapper.put(ROLE_NAME, String.valueOf(newRole.get(0).getName())); - extSystemJsonMapper.put(ACTIVE, String.valueOf(newRole.get(0).getActive())); - extSystemJsonMapper.put(PRIORITY, String.valueOf(newRole.get(0).getPriority())); - extSystemJsonMapper.put(APP_ID, String.valueOf(newRole.get(0).getAppId())); - extSystemJsonMapper.put(APP_ROLE_ID, String.valueOf(newRole.get(0).getAppRoleId())); - addDesc = mapper.writeValueAsString(extSystemJsonMapper); - extRole.setName(app.getNameSpace() + "." + newRole.get(0).getName().replaceAll(" ", "_")); - extRole.setDescription(addDesc); - addNewRole = mapper.writeValueAsString(extRole); - HttpEntity deleteEntity = new HttpEntity<>(addNewRole, headers); - logger.debug(EELFLoggerDelegate.debugLogger, "addNewRoleInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity addNewRoleInExternalSystem = template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role", - HttpMethod.POST, deleteEntity, String.class); - if (addNewRoleInExternalSystem.getStatusCode().value() != 201) { - throw new Exception(addNewRoleInExternalSystem.getBody()); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "addNewRoleInExternalSystem: Finished adding into External Auth system and status code: {}", - addNewRoleInExternalSystem.getStatusCode().value()); - response = true; - } - return response; - } - - /** - * - * It updates existing role in the External Auth System - * - * @param addRole - * It Contains role information - * @param app - * @return string which is formatted to match with the external auth system - * @throws JsonProcessingException - */ - @SuppressWarnings("unchecked") - private String updateExistingRoleInExternalSystem(Role addRole, EPApp app) throws JsonProcessingException { - ObjectMapper mapper = new ObjectMapper(); - String addNewRole = ""; - ExternalAccessRole extRole = new ExternalAccessRole(); - List role = null; - String addDesc = null; - Map extSystemUpdateRole = new LinkedHashMap<>(); - if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - role = dataAccessService.getList(EPRole.class, WHERE_ROLE_ID_EQUALS + addRole.getId() + " and app_id is null", null, null); - } else { - role = dataAccessService.getList(EPRole.class, " where app_role_id = " + addRole.getId() + " and app_id ="+app.getId(), null, null); - } - extSystemUpdateRole.put(ID, String.valueOf(role.get(0).getId())); - extSystemUpdateRole.put(ROLE_NAME, String.valueOf(addRole.getName())); - extSystemUpdateRole.put(ACTIVE, String.valueOf(role.get(0).getActive())); - extSystemUpdateRole.put(PRIORITY, String.valueOf(role.get(0).getPriority())); - extSystemUpdateRole.put(APP_ID, String.valueOf(role.get(0).getAppId())); - extSystemUpdateRole.put(APP_ROLE_ID, String.valueOf(role.get(0).getAppRoleId())); - addDesc = mapper.writeValueAsString(extSystemUpdateRole); - extRole.setName(app.getNameSpace() + "." + addRole.getName().replaceAll(" ", "_")); - extRole.setDescription(addDesc); - addNewRole = mapper.writeValueAsString(extRole); - return addNewRole; - } - - /** - * It create a role in the external auth system and then in our local - * - * @param addRoleInDB - * @param app - * @return true else false - * @throws Exception - */ - @SuppressWarnings("unchecked") - @Transactional - private boolean addRoleInEcompDB(Role addRoleInDB, EPApp app) throws Exception { - boolean result = false; - List applicationRoles = null; - EPRole epRole = null; - Set roleFunctionList = addRoleInDB.getRoleFunctions(); - List roleFunctionListNew = new ArrayList<>(); - ObjectMapper mapper = new ObjectMapper(); - Iterator itetaror = roleFunctionList.iterator(); - while (itetaror.hasNext()) { - Object nextValue = itetaror.next(); - RoleFunction roleFunction = mapper.convertValue(nextValue, RoleFunction.class); - roleFunctionListNew.add(roleFunction); - } - List listWithoutDuplicates = roleFunctionListNew.stream().distinct().collect(Collectors.toList()); - try { - if (addRoleInDB.getId() == null) { // check if it is new role - checkIfRoleExitsInExternalSystem(addRoleInDB, app); - EPRole epRoleNew = new EPRole(); - epRoleNew.setActive(addRoleInDB.getActive()); - epRoleNew.setName(addRoleInDB.getName()); - epRoleNew.setPriority(addRoleInDB.getPriority()); - if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - epRoleNew.setAppId(null); - } else { - epRoleNew.setAppId(app.getId()); - } - dataAccessService.saveDomainObject(epRoleNew, null); - List getRoleCreated = null; - if (!app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - List roleCreated = dataAccessService.getList(EPRole.class, - WHERE_ROLE_NAME_EQUALS + addRoleInDB.getName() + "' and app_id = " + app.getId(), null, - null); - EPRole epUpdateRole = roleCreated.get(0); - epUpdateRole.setAppRoleId(epUpdateRole.getId()); - dataAccessService.saveDomainObject(epUpdateRole, null); - getRoleCreated = dataAccessService.getList(EPRole.class, - WHERE_ROLE_NAME_EQUALS + addRoleInDB.getName() + "' and app_id = " + app.getId(), null, - null); - } else { - getRoleCreated = dataAccessService.getList(EPRole.class, - WHERE_ROLE_NAME_EQUALS + addRoleInDB.getName() + "' and app_id is null", null, null); - } - // Add role in External Auth system - result = addNewRoleInExternalSystem(getRoleCreated, app); - } else { // if role already exists then update it - if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - applicationRoles = dataAccessService.getList(EPRole.class, - " where app_id is null " + " and role_id = " + addRoleInDB.getId(), null, null); - } else { - applicationRoles = dataAccessService.getList(EPRole.class, - WHERE_APP_ID_EQUALS + app.getId() + " and app_role_id = " + addRoleInDB.getId(), null, null); - } - if (applicationRoles.isEmpty()) { - applicationRoles = dataAccessService.getList(EPRole.class, - WHERE_APP_ID_EQUALS + app.getId() + " and role_name = '" + addRoleInDB.getName() + "'", null, - null); - } - updateRoleInExternalSystem(addRoleInDB, app); - deleteRoleFunction(app, applicationRoles); - if (!applicationRoles.isEmpty()) { - epRole = applicationRoles.get(0); - epRole.setName(addRoleInDB.getName()); - epRole.setPriority(addRoleInDB.getPriority()); - epRole.setActive(addRoleInDB.getActive()); - if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - epRole.setAppId(null); - epRole.setAppRoleId(null); - } else if (!app.getId().equals(PortalConstants.PORTAL_APP_ID) - && applicationRoles.get(0).getAppRoleId() == null) { - epRole.setAppRoleId(epRole.getId()); - } - dataAccessService.saveDomainObject(epRole, null); - } - - saveRoleFunction(listWithoutDuplicates, app, applicationRoles); - result = true; - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "addRoleInEcompDB is failed", e); - throw new Exception(e.getMessage()); - } - return result; - } - - /** - * - * It validates whether role exists in external auth system - * - * @param checkRole - * @param app - * @throws Exception - * If role exits - */ - private void checkIfRoleExitsInExternalSystem(Role checkRole, EPApp app) throws Exception { - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - String roleName = app.getNameSpace() + "." + checkRole.getName().replaceAll(" ", "_"); - HttpEntity checkRoleEntity = new HttpEntity<>(headers); - logger.debug(EELFLoggerDelegate.debugLogger, "checkIfRoleExitsInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity checkRoleInExternalSystem = template - .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "roles/" - + roleName, HttpMethod.GET, checkRoleEntity, String.class); - if (!checkRoleInExternalSystem.getBody().equals(IS_EMPTY_JSON_STRING)) { - logger.debug("checkIfRoleExitsInExternalSystem: Role already exists in external system {} and status code: {} ", checkRoleInExternalSystem.getBody(), checkRoleInExternalSystem.getStatusCode().value()); - throw new Exception("Role already exists in external system"); - } - } - - /** - * It saves list of functions to the role in portal - * - * @param roleFunctionListNew - * @param app - * @param applicationRoles - * @throws Exception - */ - @SuppressWarnings("unchecked") - private void saveRoleFunction(List roleFunctionListNew, EPApp app, List applicationRoles) - throws Exception { - for (RoleFunction roleFunc : roleFunctionListNew) { - EPAppRoleFunction appRoleFunc = new EPAppRoleFunction(); - appRoleFunc.setAppId(app.getId()); - appRoleFunc.setRoleId(applicationRoles.get(0).getId()); - // query to check if function code is different for safe operation - List roleFunction = dataAccessService.getList(CentralRoleFunction.class, - WHERE_APP_ID_EQUALS+ app.getId()+FUNCTION_CD_LIKE_CLAUSE + roleFunc.getCode() + "'", null, null); - appRoleFunc.setCode(roleFunction.get(0).getCode()); - dataAccessService.saveDomainObject(appRoleFunc, null); - } - } - - /** - * It deletes all EPAppRoleFunction records in the portal - * - * @param app - * @param role - */ - @SuppressWarnings("unchecked") - private void deleteRoleFunction(EPApp app, List role) { - List appRoleFunctionList = dataAccessService.getList(EPAppRoleFunction.class, - WHERE_APP_ID_EQUALS + app.getId() + " and role_id = " + role.get(0).getId(), null, null); - if (!appRoleFunctionList.isEmpty()) { - for (EPAppRoleFunction approleFunction : appRoleFunctionList) { - dataAccessService.deleteDomainObject(approleFunction, null); - } - } - } - - @Override - @SuppressWarnings("unchecked") - public List getUser(String loginId){ - return (List) dataAccessService.getList(EPUser.class, - " where org_user_id = '" + loginId + "'", null, null); - } - - @Override - public String getUserWithRoles(String loginId, String uebkey) throws Exception { - final Map params = new HashMap<>(); - List userList = null; - CentralUser cenUser = null; - EPApp app = null; - String result = null; - try { - params.put("orgUserIdValue", loginId); - List appList = getApp(uebkey); - if (!appList.isEmpty()) { - app = appList.get(0); - userList = getUser(loginId); - if (!userList.isEmpty()) { - EPUser user = userList.get(0); - ObjectMapper mapper = new ObjectMapper(); - Set userAppSet = user.getEPUserApps(); - cenUser = createEPUser(user, userAppSet, app); - result = mapper.writeValueAsString(cenUser); - } else if (userList.isEmpty()) { - throw new Exception("User not found"); - } - } else { - throw new Exception("Application not found"); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUser: failed", e); - throw new Exception(e.getMessage()); - } - return result; - } - - @Override - public List getRolesForApp(String uebkey) throws Exception { - logger.debug(EELFLoggerDelegate.debugLogger, "getRolesForApp: Entering into getRolesForApp"); - List roleList = new ArrayList<>(); - final Map params = new HashMap<>(); - try { - List app = getApp(uebkey); - List appRolesList = getAppRoles(app.get(0).getId()); - createCentralRoleObject(app, appRolesList, roleList, params); - } catch (Exception e) { - throw new Exception("getRolesForApp Failed", e); - } - logger.debug(EELFLoggerDelegate.debugLogger, "getRolesForApp: Finished getRolesForApp"); - return roleList; - } - - @SuppressWarnings("unchecked") - @Override - public List getRoleFuncList(String uebkey) throws Exception { - EPApp app = getApp(uebkey).get(0); - List finalRoleList = new ArrayList<>(); - final Map params = new HashMap<>(); - params.put(APP_ID, app.getId()); - // Sync all functions from external system into Ecomp portal DB - logger.debug(EELFLoggerDelegate.debugLogger, "getRoleFuncList: Entering into syncRoleFunctionFromExternalAccessSystem"); - syncRoleFunctionFromExternalAccessSystem(app); - logger.debug(EELFLoggerDelegate.debugLogger, "getRoleFuncList: Finished syncRoleFunctionFromExternalAccessSystem"); - List getRoleFuncList = dataAccessService.executeNamedQuery("getAllRoleFunctions", params, null); - for(CentralRoleFunction roleFuncItem : getRoleFuncList ){ - if(roleFuncItem.getCode().contains(FUNCTION_PIPE)){ - String code = ""; - int count = StringUtils.countMatches(roleFuncItem.getCode(), FUNCTION_PIPE); - if (count == 2) - code = roleFuncItem.getCode().substring( - roleFuncItem.getCode().indexOf(FUNCTION_PIPE) + 1, - roleFuncItem.getCode().lastIndexOf(FUNCTION_PIPE)); - else - code = roleFuncItem.getCode() - .substring(roleFuncItem.getCode().lastIndexOf(FUNCTION_PIPE) + 1); - - roleFuncItem.setCode(code); - finalRoleList.add(roleFuncItem); - } else{ - finalRoleList.add(roleFuncItem); - } - } - return finalRoleList; - } - - /** - * It returns user detail information which is deep copy of EPUser.class object - * - * @param userInfo - * @param userAppSet - * @param app - * @return - * @throws Exception - */ - @SuppressWarnings("unchecked") - private CentralUser createEPUser(EPUser userInfo, Set userAppSet, EPApp app) throws Exception { - - final Map params = new HashMap<>(); - CentralUser userAppList = new CentralUser(); - CentralUser user1 = null; - try { - userAppList.userApps = new TreeSet(); - for (EPUserApp userApp : userAppSet) { - if (userApp.getRole().getActive()) { - EPApp epApp = userApp.getApp(); - String globalRole = userApp.getRole().getName().toLowerCase(); - if (((epApp.getId().equals(app.getId())) - && (!userApp.getRole().getId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID))) - || ((epApp.getId().equals(PortalConstants.PORTAL_APP_ID)) - && (globalRole.toLowerCase().startsWith("global_")))) { - CentralUserApp cua = new CentralUserApp(); - cua.setUserId(null); - CentralApp cenApp = new CentralApp(1L, epApp.getCreated(), epApp.getModified(), - epApp.getCreatedId(), epApp.getModifiedId(), epApp.getRowNum(), epApp.getName(), - epApp.getImageUrl(), epApp.getDescription(), epApp.getNotes(), epApp.getUrl(), - epApp.getAlternateUrl(), epApp.getAppRestEndpoint(), epApp.getMlAppName(), - epApp.getMlAppAdminId(), String.valueOf(epApp.getMotsId()), epApp.getAppPassword(), - String.valueOf(epApp.getOpen()), String.valueOf(epApp.getEnabled()), - epApp.getThumbnail(), epApp.getUsername(), epApp.getUebKey(), epApp.getUebSecret(), - epApp.getUebTopicName()); - cua.setApp(cenApp); - params.put("roleId", userApp.getRole().getId()); - params.put(APP_ID, userApp.getApp().getId()); - List appRoleFunctionList = dataAccessService - .executeNamedQuery("getAppRoleFunctionList", params, null); - SortedSet roleFunctionSet = new TreeSet<>(); - for (CentralRoleFunction roleFunc : appRoleFunctionList) { - String functionCode = ""; - if (roleFunc.getCode().contains(FUNCTION_PIPE)) { - int count = StringUtils.countMatches(roleFunc.getCode(), FUNCTION_PIPE); - String finalFunctionCodeVal; - if (count == 2) - finalFunctionCodeVal = roleFunc.getCode().substring( - roleFunc.getCode().indexOf(FUNCTION_PIPE) + 1, - roleFunc.getCode().lastIndexOf(FUNCTION_PIPE)); - else - finalFunctionCodeVal = roleFunc.getCode() - .substring(roleFunc.getCode().lastIndexOf(FUNCTION_PIPE) + 1); - - functionCode = finalFunctionCodeVal; - } else { - functionCode = roleFunc.getCode(); - } - CentralRoleFunction cenRoleFunc = new CentralRoleFunction(roleFunc.getId(), functionCode, - roleFunc.getName(), null, null); - roleFunctionSet.add(cenRoleFunc); - } - Long userRoleId = null; - if (globalRole.toLowerCase().startsWith("global_") - && epApp.getId().equals(PortalConstants.PORTAL_APP_ID)) { - userRoleId = userApp.getRole().getId(); - } else { - userRoleId = userApp.getRole().getAppRoleId(); - } - CentralRole cenRole = new CentralRole(userRoleId, userApp.getRole().getCreated(), - userApp.getRole().getModified(), userApp.getRole().getCreatedId(), - userApp.getRole().getModifiedId(), userApp.getRole().getRowNum(), - userApp.getRole().getName(), userApp.getRole().getActive(), - userApp.getRole().getPriority(), roleFunctionSet, null, null); - cua.setRole(cenRole); - - userAppList.userApps.add(cua); - } - } - } - - user1 = new CentralUser(null, userInfo.getCreated(), userInfo.getModified(), userInfo.getCreatedId(), - userInfo.getModifiedId(), userInfo.getRowNum(), userInfo.getOrgId(), userInfo.getManagerId(), - userInfo.getFirstName(), userInfo.getMiddleInitial(), userInfo.getLastName(), userInfo.getPhone(), - userInfo.getFax(), userInfo.getCellular(), userInfo.getEmail(), userInfo.getAddressId(), - userInfo.getAlertMethodCd(), userInfo.getHrid(), userInfo.getOrgUserId(), userInfo.getOrgCode(), - userInfo.getAddress1(), userInfo.getAddress2(), userInfo.getCity(), userInfo.getState(), - userInfo.getZipCode(), userInfo.getCountry(), userInfo.getOrgManagerUserId(), - userInfo.getLocationClli(), userInfo.getBusinessCountryCode(), userInfo.getBusinessCountryName(), - userInfo.getBusinessUnit(), userInfo.getBusinessUnitName(), userInfo.getDepartment(), - userInfo.getDepartmentName(), userInfo.getCompanyCode(), userInfo.getCompany(), - userInfo.getZipCodeSuffix(), userInfo.getJobTitle(), userInfo.getCommandChain(), - userInfo.getSiloStatus(), userInfo.getCostCenter(), userInfo.getFinancialLocCode(), - userInfo.getLoginId(), userInfo.getLoginPwd(), userInfo.getLastLoginDate(), userInfo.getActive(), - userInfo.getInternal(), userInfo.getSelectedProfileId(), userInfo.getTimeZoneId(), - userInfo.isOnline(), userInfo.getChatId(), userAppList.userApps, null); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "createEPUser: createEPUser failed", e); - throw new Exception(e.getMessage()); - } - - return user1; - } - - @SuppressWarnings("unchecked") - @Override - public CentralRole getRoleInfo(Long roleId, String uebkey) throws Exception { - final Map params = new HashMap<>(); - List roleList = new ArrayList<>(); - CentralRole cenRole = new CentralRole(); - List roleInfo = null; - List app = null; - try { - app = getApp(uebkey); - if (app.isEmpty()) { - throw new Exception("Application not found"); - } - String filter = null; - if (app.get(0).getId().equals(PortalConstants.PORTAL_APP_ID)) { - filter = WHERE_ROLE_ID_EQUALS + roleId + " and app_id is null "; - } else { - filter = " where app_role_id = " + roleId + " and app_id = " + app.get(0).getId(); - - } - roleInfo = dataAccessService.getList(EPRole.class, filter, null, null); - roleList = createCentralRoleObject(app, roleInfo, roleList, params); - if (roleList.isEmpty()) { - return cenRole; - } - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getRoleInfo: failed", e); - throw new Exception(e.getMessage()); - - } - return roleList.get(0); - } - - /** - * - * It returns list of app roles along with role functions and which went through deep copy - * - * @param app - * @param roleInfo - * @param roleList - * @param params - * @return - */ - @SuppressWarnings("unchecked") - private List createCentralRoleObject(List app, List roleInfo, - List roleList, Map params) { - for (EPRole role : roleInfo) { - params.put("roleId", role.getId()); - params.put(APP_ID, app.get(0).getId()); - List cenRoleFuncList = dataAccessService.executeNamedQuery("getAppRoleFunctionList", - params, null); - SortedSet roleFunctionSet = new TreeSet<>(); - for (CentralRoleFunction roleFunc : cenRoleFuncList) { - String functionCode = ""; - if (roleFunc.getCode().contains(FUNCTION_PIPE)) { - int count = StringUtils.countMatches(roleFunc.getCode(), FUNCTION_PIPE); - String finalFunctionCodeVal; - if (count == 2) - finalFunctionCodeVal = roleFunc.getCode().substring( - roleFunc.getCode().indexOf(FUNCTION_PIPE) + 1, - roleFunc.getCode().lastIndexOf(FUNCTION_PIPE)); - else - finalFunctionCodeVal = roleFunc.getCode() - .substring(roleFunc.getCode().lastIndexOf(FUNCTION_PIPE) + 1); - functionCode = finalFunctionCodeVal; - } else { - functionCode = roleFunc.getCode(); - } - CentralRoleFunction cenRoleFunc = new CentralRoleFunction(role.getId(), functionCode, - roleFunc.getName(), null, null); - roleFunctionSet.add(cenRoleFunc); - } - SortedSet childRoles = new TreeSet<>(); - CentralRole cenRole = null; - if (role.getAppRoleId() == null) { - cenRole = new CentralRole(role.getId(), role.getCreated(), role.getModified(), role.getCreatedId(), - role.getModifiedId(), role.getRowNum(), role.getName(), role.getActive(), role.getPriority(), - roleFunctionSet, childRoles, null); - } else { - cenRole = new CentralRole(role.getAppRoleId(), role.getCreated(), role.getModified(), - role.getCreatedId(), role.getModifiedId(), role.getRowNum(), role.getName(), role.getActive(), - role.getPriority(), roleFunctionSet, childRoles, null); - } - roleList.add(cenRole); - } - return roleList; - } - - @SuppressWarnings("unchecked") - @Override - public CentralRoleFunction getRoleFunction(String functionCode, String uebkey) throws Exception { - CentralRoleFunction roleFunc = null; - EPApp app = getApp(uebkey).get(0); - List getRoleFuncList = null; - final Map params = new HashMap<>(); - try { - params.put("functionCode", functionCode); - params.put(APP_ID, String.valueOf(app.getId())); - getRoleFuncList = dataAccessService.executeNamedQuery("getRoleFunction", params, null); - if (getRoleFuncList.isEmpty()) { - return roleFunc; - } else{ - String functionCodeFormat = getRoleFuncList.get(0).getCode(); - if(functionCodeFormat.contains(FUNCTION_PIPE)){ - String newfunctionCodeFormat = functionCodeFormat.substring(functionCodeFormat.lastIndexOf(FUNCTION_PIPE)+1); - roleFunc = new CentralRoleFunction(getRoleFuncList.get(0).getId(), newfunctionCodeFormat, getRoleFuncList.get(0).getName(), getRoleFuncList.get(0).getAppId(), getRoleFuncList.get(0).getEditUrl()); - } else{ - roleFunc = new CentralRoleFunction(getRoleFuncList.get(0).getId(), functionCodeFormat, getRoleFuncList.get(0).getName(), getRoleFuncList.get(0).getAppId(), getRoleFuncList.get(0).getEditUrl()); - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getRoleFunction: failed", e); - throw new Exception("getRoleFunction failed", e); - } - return roleFunc; - } - - @Override - public boolean saveCentralRoleFunction(CentralRoleFunction domainCentralRoleFunction, EPApp app) throws Exception { - boolean saveOrUpdateFunction = false; - try { - addRoleFunctionInExternalSystem(domainCentralRoleFunction, app); - dataAccessService.saveDomainObject(domainCentralRoleFunction, null); - saveOrUpdateFunction = true; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "saveCentralRoleFunction: failed", e); - saveOrUpdateFunction = false; - } - return saveOrUpdateFunction; - } - - /** - * It creates application permission in external auth system - * - * @param domainCentralRoleFunction - * @param app - * @throws Exception - */ - @SuppressWarnings("unchecked") - private void addRoleFunctionInExternalSystem(CentralRoleFunction domainCentralRoleFunction, EPApp app) - throws Exception { - ObjectMapper mapper = new ObjectMapper(); - ExternalAccessPerms extPerms = new ExternalAccessPerms(); - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - List appRoleFunc = dataAccessService.getList(CentralRoleFunction.class, - WHERE_APP_ID_EQUALS + app.getId() + AND_FUNCTION_CD_EQUALS + domainCentralRoleFunction.getCode() + "'", null, null); - String roleFuncName = null; - if (!appRoleFunc.isEmpty()) { - roleFuncName = appRoleFunc.get(0).getCode(); - } else { - roleFuncName = domainCentralRoleFunction.getCode(); - } - String checkType = domainCentralRoleFunction.getCode().contains("menu") ? "menu" : "url"; - HttpEntity getSinglePermEntity = new HttpEntity<>(headers); - logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionInExternalSystem: {} ", CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity getResponse = template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "perms/" - + app.getNameSpace() + "." + checkType + "/" + roleFuncName + "/*", - HttpMethod.GET, getSinglePermEntity, String.class); - if (getResponse.getStatusCode().value() != 200) { - EPLogUtil.logExternalAuthAccessAlarm(logger, getResponse.getStatusCode()); - throw new Exception(getResponse.getBody()); - } - logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionInExternalSystem: Finished GET permission from External Auth system and response: {} ", getResponse.getBody()); - String res = getResponse.getBody(); - if (res.equals(IS_EMPTY_JSON_STRING)) { - try { - extPerms.setAction("*"); - extPerms.setInstance(domainCentralRoleFunction.getCode()); - extPerms.setType(app.getNameSpace() + "." + checkType); - extPerms.setDescription(domainCentralRoleFunction.getName()); - String updateRole = mapper.writeValueAsString(extPerms); - HttpEntity entity = new HttpEntity<>(updateRole, headers); - logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity addPermResponse= template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "perm", - HttpMethod.POST, entity, String.class); - logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionInExternalSystem: Finished adding permission in and status code: {} ", addPermResponse.getStatusCode().value()); - } catch(HttpClientErrorException e){ - logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to add function in external central auth system", e); - EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); - }catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "addRoleFunctionInExternalSystem: Failed to add fucntion in external central auth system", - e); - } - } else { - try { - extPerms.setAction("*"); - extPerms.setInstance(domainCentralRoleFunction.getCode()); - extPerms.setType(app.getNameSpace() + "." + checkType); - extPerms.setDescription(domainCentralRoleFunction.getName()); - String updateRole = mapper.writeValueAsString(extPerms); - HttpEntity entity = new HttpEntity<>(updateRole, headers); - logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity updatePermResponse = template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "perm", - HttpMethod.PUT, entity, String.class); - logger.debug(EELFLoggerDelegate.debugLogger, "addRoleFunctionInExternalSystem: Finished updating permission in External Auth system and response: {} ", updatePermResponse.getBody()); - } catch(HttpClientErrorException e){ - logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to add function in external central auth system", e); - EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "addRoleFunctionInExternalSystem: Failed to update function in external central auth system", - e); - } - } - } - - @Override - @Transactional - public boolean deleteCentralRoleFunction(String code, EPApp app) { - boolean deleteFunctionResponse = false; - try { - final Map params = new HashMap<>(); - params.put("functionCode", code); - params.put(APP_ID, String.valueOf(app.getId())); - CentralRoleFunction domainCentralRoleFunction = (CentralRoleFunction) dataAccessService - .executeNamedQuery("getRoleFunction", params, null).get(0); - deleteRoleFunctionInExternalSystem(domainCentralRoleFunction, app); - // Delete role function dependency records - deleteAppRoleFunctions(code, app); - dataAccessService.deleteDomainObject(domainCentralRoleFunction, null); - deleteFunctionResponse = true; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "deleteCentralRoleFunction: failed", e); - } - return deleteFunctionResponse; - } - - /** - * It deletes app function record in portal - * - * @param code - * @param app - */ - private void deleteAppRoleFunctions(String code, EPApp app) { - dataAccessService.deleteDomainObjects(EPAppRoleFunction.class, - APP_ID_EQUALS + app.getId() + FUNCTION_CD_LIKE_CLAUSE + code + "'", null); - } - - /** - * - * It deletes permission in the external auth system - * - * @param domainCentralRoleFunction - * @param app - * @throws Exception - */ - private void deleteRoleFunctionInExternalSystem(CentralRoleFunction domainCentralRoleFunction, EPApp app) - throws Exception { - try { - ObjectMapper mapper = new ObjectMapper(); - ExternalAccessPerms extPerms = new ExternalAccessPerms(); - String instanceValue = ""; - if(domainCentralRoleFunction.getCode().contains(FUNCTION_PIPE)){ - instanceValue = domainCentralRoleFunction.getCode().substring(domainCentralRoleFunction.getCode().lastIndexOf(FUNCTION_PIPE)+1); - }else{ - instanceValue = domainCentralRoleFunction.getCode(); - } - String checkType = instanceValue.contains("menu") ? "menu" : "url"; - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - extPerms.setAction("*"); - extPerms.setInstance(domainCentralRoleFunction.getCode()); - extPerms.setType(app.getNameSpace() + "." + checkType); - extPerms.setDescription(domainCentralRoleFunction.getName()); - String updateRole = mapper.writeValueAsString(extPerms); - HttpEntity entity = new HttpEntity<>(updateRole, headers); - logger.debug(EELFLoggerDelegate.debugLogger,"deleteRoleFunctionInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity delPermResponse = template.exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "perm?force=true", HttpMethod.DELETE, entity, String.class); - logger.debug(EELFLoggerDelegate.debugLogger, "deleteRoleFunctionInExternalSystem: Finished deleting permission in External Auth system and status code: {} ", delPermResponse.getStatusCode().value()); - } catch(HttpClientErrorException e){ - logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to delete functions in External System", e); - EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); - } catch (Exception e) { - if (e.getMessage().equalsIgnoreCase("404 Not Found")) { - logger.debug(EELFLoggerDelegate.debugLogger, - " deleteRoleFunctionInExternalSystem: It seems like function is already deleted in external central auth system but exists in local DB", - e.getMessage()); - } else { - logger.error(EELFLoggerDelegate.errorLogger, "deleteRoleFunctionInExternalSystem: Failed to delete functions in External System", e); - } - } - } - - @Override - public boolean saveRoleForApplication(Role saveRole, String uebkey) throws Exception { - boolean addRoleResponse = false; - try { - EPApp app = getApp(uebkey).get(0); - addRoleInEcompDB(saveRole, app); - addRoleResponse = true; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "saveRoleForApplication failed", e); - } - return addRoleResponse; - } - - @SuppressWarnings("unchecked") - @Override - public boolean deleteRoleForApplication(String deleteRole, String uebkey) throws Exception { - Session localSession = sessionFactory.openSession(); - Transaction transaction = null; - boolean result = false; - try { - transaction = localSession.beginTransaction(); - - List epRoleList = null; - ResponseEntity deleteResponse = null; - EPApp app = getApp(uebkey).get(0); - if (app.getId() == 1) { - epRoleList = dataAccessService.getList(EPRole.class, - " where app_id is null " + "and role_name = '" + deleteRole + "'", null, null); - } else { - epRoleList = dataAccessService.getList(EPRole.class, - WHERE_APP_ID_EQUALS + app.getId() + " and role_name = '" + deleteRole + "'", null, null); - } - // Delete app role functions before deleting role - deleteRoleFunction(app, epRoleList); - if (app.getId() == 1) { - // Delete fn_user_ role - dataAccessService.deleteDomainObjects(EPUserApp.class, - APP_ID_EQUALS + app.getId() + " and role_id = " + epRoleList.get(0).getId(), null); - - deleteRoleDependencyRecords(localSession, epRoleList.get(0).getId(), app.getId()); - } - // Delete Role in External System - String deleteRoleKey = "{\"name\":\"" + app.getNameSpace() + "." - + epRoleList.get(0).getName().replaceAll(" ", "_") + "\"}"; - deleteResponse = deleteRoleInExternalSystem(deleteRoleKey); - if (deleteResponse.getStatusCode().value() != 200 || deleteResponse.getStatusCode().value() != 404) { - EPLogUtil.logExternalAuthAccessAlarm(logger, deleteResponse.getStatusCode()); - logger.error(EELFLoggerDelegate.errorLogger, - "deleteRoleForApplication: Failed to delete role in external auth system! due to {} ", - deleteResponse.getBody()); - } - logger.debug(EELFLoggerDelegate.debugLogger, "deleteRoleForApplication: about to commit the transaction"); - transaction.commit(); - logger.debug(EELFLoggerDelegate.debugLogger, "deleteRoleForApplication: committed the transaction"); - dataAccessService.deleteDomainObject(epRoleList.get(0), null); - result = true; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "deleteRoleForApplication: failed", e); - result = false; - } finally { - localSession.close(); - } - return result; - } - - /** - * - * It deletes application user role in external auth system - * - * @param role - * @param app - * @param LoginId - * @throws Exception - */ - private void deleteUserRoleInExternalSystem(EPRole role, EPApp app, String LoginId) throws Exception { - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - HttpEntity entity = new HttpEntity<>(headers); - logger.debug(EELFLoggerDelegate.debugLogger,"deleteUserRoleInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity getResponse = template - .exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "userRole/" - + LoginId - + SystemProperties - .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN) - + "/" + app.getNameSpace() + "." + role.getName().replaceAll(" ", "_"), - HttpMethod.GET, entity, String.class); - logger.debug(EELFLoggerDelegate.debugLogger, "deleteUserRoleInExternalSystem: Finished GET user roles from External Auth system and response: {} ", getResponse.getBody()); - if (getResponse.getStatusCode().value() != 200) { - throw new Exception(getResponse.getBody()); - } - String res = getResponse.getBody(); - if (!res.equals(IS_EMPTY_JSON_STRING)) { - HttpEntity userRoleentity = new HttpEntity<>(headers); - logger.debug(EELFLoggerDelegate.debugLogger, "deleteUserRoleInExternalSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - ResponseEntity deleteResponse = template - .exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "userRole/" + LoginId - + SystemProperties - .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN) - + "/" + app.getNameSpace() + "." + role.getName().replaceAll(" ", "_"), - HttpMethod.DELETE, userRoleentity, String.class); - if (deleteResponse.getStatusCode().value() != 200) { - throw new Exception("Failed to delete user role"); - } - logger.debug(EELFLoggerDelegate.debugLogger, "deleteUserRoleInExternalSystem: Finished deleting user role in External Auth system and status code: {} ", deleteResponse.getStatusCode().value()); - } - } - - @SuppressWarnings("unchecked") - @Override - public List getActiveRoles(String uebkey) throws Exception { - List roleList = new ArrayList<>(); - try { - List app = getApp(uebkey); - final Map params = new HashMap<>(); - // check if portal - Long appId = null; - if (!app.get(0).getId().equals(PortalConstants.PORTAL_APP_ID)) { - appId = app.get(0).getId(); - } - List epRole = dataAccessService.getList(EPRole.class, - WHERE_APP_ID_EQUALS + appId + " and active_yn = 'Y'", null, null); - roleList = createCentralRoleObject(app, epRole, roleList, params); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getActiveRoles: failed", e); - throw new Exception(e.getMessage()); - } - return roleList; - - } - - @SuppressWarnings("unchecked") - @Override - public boolean deleteDependencyRoleRecord(Long roleId, String uebkey, String LoginId) throws Exception { - boolean result = false; - Session localSession = sessionFactory.openSession(); - Transaction transaction = null; - EPApp app = null; - try { - transaction = localSession.beginTransaction(); - List epRoleList = null; - app = getApp(uebkey).get(0); - epRoleList = dataAccessService.getList(EPRole.class, - WHERE_APP_ID_EQUALS + app.getId() + " and app_role_id = " + roleId, null, null); - if (epRoleList.isEmpty()) { - epRoleList = dataAccessService.getList(EPRole.class, - WHERE_APP_ID_EQUALS + app.getId() + " and role_id = " + roleId, null, null); - } - // Delete User Role in External System before deleting role - deleteUserRoleInExternalSystem(epRoleList.get(0), app, LoginId); - // Delete user app roles - dataAccessService.deleteDomainObjects(EPUserApp.class, - APP_ID_EQUALS + app.getId() + " and role_id = " + epRoleList.get(0).getId(), null); - - deleteRoleDependencyRecords(localSession, epRoleList.get(0).getId(), app.getId()); - logger.debug(EELFLoggerDelegate.debugLogger, "deleteDependencyRoleRecord: about to commit the transaction"); - transaction.commit(); - logger.debug(EELFLoggerDelegate.debugLogger, "deleteDependencyRoleRecord: committed the transaction"); - result = true; - } catch(HttpClientErrorException e){ - logger.error(EELFLoggerDelegate.errorLogger, "deleteDependencyRoleRecord: HttpClientErrorException", e); - EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "deleteDependencyRoleRecord failed", e); - EcompPortalUtils.rollbackTransaction(transaction, - "deleteDependencyRoleRecord rollback, exception = " + e.toString()); - } finally { - localSession.close(); - } - return result; - } - - @Override - @SuppressWarnings("unchecked") - @Transactional - public void syncRoleFunctionFromExternalAccessSystem(EPApp app) { - try { - ResponseEntity response = null; - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - HttpEntity entity = new HttpEntity<>(headers); - logger.debug(EELFLoggerDelegate.debugLogger, "syncRoleFunctionFromExternalAccessSystem: {} " , CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - response = template - .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "perms/ns/" + app.getNameSpace(), HttpMethod.GET, entity, String.class); - - String res = response.getBody(); - logger.debug(EELFLoggerDelegate.debugLogger, "syncRoleFunctionFromExternalAccessSystem: Finished GET permissions from External Auth system and response: {} ", response.getBody()); - JSONObject jsonObj = new JSONObject(res); - JSONArray extPerms = jsonObj.getJSONArray("perm"); - for (int i = 0; i < extPerms.length(); i++) { - if (extPerms.getJSONObject(i).getString("type").equals(app.getNameSpace() + ".access")) { - extPerms.remove(i); - i--; - } - } - ExternalAccessPermsDetail permDetails = null; - List permsDetailList = new ArrayList<>(); - for (int i = 0; i < extPerms.length(); i++) { - String description = null; - if(extPerms.getJSONObject(i).has("description")){ - description = extPerms.getJSONObject(i).getString(EXTERNAL_AUTH_ROLE_DESCRIPTION); - } else{ - description = extPerms.getJSONObject(i).getString("instance"); - } - if (extPerms.getJSONObject(i).has("roles")) { - ObjectMapper rolesListMapper = new ObjectMapper(); - JSONArray resRoles = extPerms.getJSONObject(i).getJSONArray("roles"); - List list = rolesListMapper.readValue(resRoles.toString(), - TypeFactory.defaultInstance().constructCollectionType(List.class, String.class)); - permDetails = new ExternalAccessPermsDetail(extPerms.getJSONObject(i).getString("type"), - extPerms.getJSONObject(i).getString("type").substring(app.getNameSpace().length() + 1) - + FUNCTION_PIPE + extPerms.getJSONObject(i).getString("instance") + FUNCTION_PIPE - + extPerms.getJSONObject(i).getString("action"), - extPerms.getJSONObject(i).getString("action"), list, description); - permsDetailList.add(permDetails); - } else { - permDetails = new ExternalAccessPermsDetail(extPerms.getJSONObject(i).getString("type"), - extPerms.getJSONObject(i).getString("type").substring(app.getNameSpace().length() + 1) - + FUNCTION_PIPE + extPerms.getJSONObject(i).getString("instance") + FUNCTION_PIPE - + extPerms.getJSONObject(i).getString("action"), - extPerms.getJSONObject(i).getString("action"), description); - permsDetailList.add(permDetails); - } - } - - final Map params = new HashMap<>(); - final Map roleFuncMap = new HashMap<>(); - params.put(APP_ID, app.getId()); - List appFunctions = dataAccessService.executeNamedQuery("getAllRoleFunctions", params, - null); - if (!appFunctions.isEmpty()) { - for (CentralRoleFunction roleFunc : appFunctions) { - roleFuncMap.put(roleFunc.getCode(), roleFunc); - } - } - // delete all application role functions - dataAccessService.deleteDomainObjects(EPAppRoleFunction.class, APP_ID_EQUALS + app.getId(), null); - // Add if new functions and app role functions were added in external auth system - for (ExternalAccessPermsDetail permsDetail : permsDetailList) { - String code = permsDetail.getInstance(); - CentralRoleFunction getFunctionCodeKey = roleFuncMap.get(permsDetail.getInstance()); - if (null == getFunctionCodeKey) { - String finalFunctionCodeVal = ""; - if (permsDetail.getInstance().contains(FUNCTION_PIPE)) { - int count = StringUtils.countMatches(permsDetail.getInstance(), FUNCTION_PIPE); - if (count == 2) - finalFunctionCodeVal = permsDetail.getInstance().substring( - permsDetail.getInstance().indexOf(FUNCTION_PIPE) + 1, - permsDetail.getInstance().lastIndexOf(FUNCTION_PIPE)); - else - finalFunctionCodeVal = permsDetail.getInstance() - .substring(permsDetail.getInstance().lastIndexOf(FUNCTION_PIPE) + 1); - } else { - finalFunctionCodeVal = permsDetail.getInstance(); - } - CentralRoleFunction checkIfCodeStillExits = roleFuncMap.get(finalFunctionCodeVal); - if (null == checkIfCodeStillExits) { - logger.debug(EELFLoggerDelegate.debugLogger, - "syncRoleFunctionFromExternalAccessSystem: Adding function: {} ", code); - addFunctionInEcompDB(app, permsDetail, code); - logger.debug(EELFLoggerDelegate.debugLogger, - "syncRoleFunctionFromExternalAccessSystem: Finished adding function: {} ", code); - - } - } - List epRolesList = null; - List roles = permsDetail.getRoles(); - if (roles != null) { - for (String roleList : roles) { - if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - epRolesList = dataAccessService.getList(EPRole.class, - " where app_id is null " + " and role_name = '" - + roleList.substring(app.getNameSpace().length() + 1).replaceAll("_", " ") - + "'", - null, null); - } else { - epRolesList = dataAccessService.getList(EPRole.class, - WHERE_APP_ID_EQUALS + app.getId() + " and role_name = '" - + roleList.substring(app.getNameSpace().length() + 1).replaceAll("_", " ") - + "'", - null, null); - } - if (epRolesList.isEmpty()) { - if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - epRolesList = dataAccessService.getList(EPRole.class, - " where app_id is null " + " and role_name = '" - + roleList.substring(app.getNameSpace().length() + 1) + "'", - null, null); - } else { - epRolesList = dataAccessService.getList(EPRole.class, - WHERE_APP_ID_EQUALS + app.getId() + " and role_name = '" - + roleList.substring(app.getNameSpace().length() + 1) + "'", - null, null); - } - // Adding new role thats does not exits in Local but exists in external access system - if (epRolesList.isEmpty()) { - Role role = addRoleInDBIfDoesNotExists(app, roleList.substring(app.getNameSpace().length() + 1)); - addIfRoleDescriptionNotExitsInExtSystem(role, app); - epRolesList = dataAccessService.getList(EPRole.class, - WHERE_APP_ID_EQUALS + app.getId() + " and role_name = '" - + role.getName() + "'", - null, null); - } - } - // save all application role functions - if (!epRolesList.isEmpty()) { - try { - List roleFunctionList = null; - String functionCode = ""; - if (permsDetail.getInstance().contains(FUNCTION_PIPE)) { - int count = StringUtils.countMatches(permsDetail.getInstance(), FUNCTION_PIPE); - String finalFunctionCodeVal; - if (count == 2) - finalFunctionCodeVal = permsDetail.getInstance().substring( - permsDetail.getInstance().indexOf(FUNCTION_PIPE) + 1, - permsDetail.getInstance().lastIndexOf(FUNCTION_PIPE)); - else - finalFunctionCodeVal = permsDetail.getInstance() - .substring(permsDetail.getInstance().lastIndexOf(FUNCTION_PIPE) + 1); - - functionCode = finalFunctionCodeVal; - } - roleFunctionList = dataAccessService.getList(CentralRoleFunction.class, - " where app_id = " + app.getId() + AND_FUNCTION_CD_EQUALS + functionCode + "'", - null, null); - if (roleFunctionList.isEmpty()) { - roleFunctionList = dataAccessService.getList(CentralRoleFunction.class, - " where app_id = " + app.getId() + AND_FUNCTION_CD_EQUALS + code + "'", - null, null); - } - if (!roleFunctionList.isEmpty()) { - EPAppRoleFunction addAppRoleFunc = new EPAppRoleFunction(); - addAppRoleFunc.setAppId(app.getId()); - addAppRoleFunc.setCode(roleFunctionList.get(0).getCode()); - addAppRoleFunc.setRoleId(epRolesList.get(0).getId()); - dataAccessService.saveDomainObject(addAppRoleFunc, null); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - "syncRoleFunctionFromExternalAccessSystem: Failed to save app role function ", - e); - } - } - } - } - } - logger.debug(EELFLoggerDelegate.debugLogger, "syncRoleFunctionFromExternalAccessSystem: Finished syncRoleFunctionFromExternalAccessSystem"); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "syncRoleFunctionFromExternalAccessSystem: Failed syncRoleFunctionFromExternalAccessSystem", e); - - } - } - - /** - * - * Add function into local DB - * - * @param app - * @param permsDetail - * @param code - */ - private void addFunctionInEcompDB(EPApp app, ExternalAccessPermsDetail permsDetail, String code) { - try{ - CentralRoleFunction addFunction = new CentralRoleFunction(); - addFunction.setAppId(app.getId()); - addFunction.setCode(code); - addFunction.setName(permsDetail.getDescription()); - dataAccessService.saveDomainObject(addFunction, null); - } catch(Exception e){ - logger.error(EELFLoggerDelegate.errorLogger, "addFunctionInEcompDB: Failed to add function", e); - } - } - - /** - * - * It updates description of a role in external auth system - * - * @param role - * @param app - * @throws Exception - */ - private void addIfRoleDescriptionNotExitsInExtSystem(Role role, EPApp app) throws Exception { - String addRoleNew = updateExistingRoleInExternalSystem(role, app); - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - try { - HttpEntity entity = new HttpEntity<>(addRoleNew, headers); - template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role", - HttpMethod.PUT, entity, String.class); - } catch (HttpClientErrorException e) { - logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to addIfRoleDescriptionNotExitsInExtSystem", - e); - EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "addIfRoleDescriptionNotExitsInExtSystem: Failed", - e); - } - } - - /** - * - * While sync functions form external auth system if new role found we should add in local and return Role.class object - * - * @param app - * @param role - * @return - */ - @SuppressWarnings("unchecked") - private Role addRoleInDBIfDoesNotExists(EPApp app, String role) { - Role setNewRole = new Role(); - EPRole epRoleNew = new EPRole(); - try { - epRoleNew.setActive(true); - epRoleNew.setName(role); - if (app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - epRoleNew.setAppId(null); - } else { - epRoleNew.setAppId(app.getId()); - } - dataAccessService.saveDomainObject(epRoleNew, null); - List getRoleCreated = null; - if (!app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - List roleCreated = dataAccessService.getList(EPRole.class, - WHERE_ROLE_NAME_EQUALS + role + "' and app_id = " + app.getId(), null, null); - EPRole epUpdateRole = roleCreated.get(0); - epUpdateRole.setAppRoleId(epUpdateRole.getId()); - dataAccessService.saveDomainObject(epUpdateRole, null); - getRoleCreated = dataAccessService.getList(EPRole.class, - WHERE_ROLE_NAME_EQUALS + role + "' and app_id = " + app.getId(), null, null); - } else { - getRoleCreated = dataAccessService.getList(EPRole.class, - WHERE_ROLE_NAME_EQUALS + role + "' and app_id is null", null, null); - } - EPRole roleObject = getRoleCreated.get(0); - setNewRole.setId(roleObject.getId()); - setNewRole.setName(roleObject.getName()); - setNewRole.setActive(roleObject.getActive()); - setNewRole.setPriority(roleObject.getPriority()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "addRoleInDBIfDoesNotExists: Failed", e); - } - return setNewRole; - } - - @Override - @SuppressWarnings("unchecked") - public Integer bulkUploadFunctions(String uebkey) throws Exception { - EPApp app = getApp(uebkey).get(0); - List roleFuncList = null; - roleFuncList = dataAccessService.getList(RoleFunction.class, null); - CentralRoleFunction cenRoleFunc = null; - Integer functionsAdded = 0; - try { - for (RoleFunction roleFunc : roleFuncList) { - cenRoleFunc = new CentralRoleFunction(roleFunc.getCode(), roleFunc.getName()); - addRoleFunctionInExternalSystem(cenRoleFunc, app); - functionsAdded++; - } - } catch(HttpClientErrorException e){ - logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - bulkUploadFunctions failed", e); - EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadFunctions: failed", e.getMessage(), e); - } - return functionsAdded; - } - - @Override - public Integer bulkUploadRoles(String uebkey) throws Exception { - List app = getApp(uebkey); - List roles = getAppRoles(app.get(0).getId()); - List cenRoleList = new ArrayList<>(); - final Map params = new HashMap<>(); - Integer rolesListAdded = 0; - try { - cenRoleList = createCentralRoleObject(app, roles, cenRoleList, params); - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false); - String roleList = mapper.writeValueAsString(cenRoleList); - List roleObjectList = mapper.readValue(roleList, - TypeFactory.defaultInstance().constructCollectionType(List.class, Role.class)); - for (Role role : roleObjectList) { - addRoleInExternalSystem(role, app.get(0)); - rolesListAdded++; - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRoles: failed", e); - throw new Exception(e.getMessage()); - } - return rolesListAdded; - } - - /** - * It creating new role in external auth system while doing bulk upload - * - * @param role - * @param app - * @throws Exception - */ - private void addRoleInExternalSystem(Role role, EPApp app) throws Exception { - String addRoleNew = updateExistingRoleInExternalSystem(role, app); - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - try { - HttpEntity entity = new HttpEntity<>(addRoleNew, headers); - template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role", - HttpMethod.POST, entity, String.class); - } catch(HttpClientErrorException e){ - logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to addRoleInExternalSystem", e); - EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); - } catch (Exception e) { - if (e.getMessage().equalsIgnoreCase("409 Conflict")) { - logger.error(EELFLoggerDelegate.errorLogger, "addRoleInExternalSystem: Role already exits but does not break functionality", e); - } else { - logger.error(EELFLoggerDelegate.errorLogger, "addRoleInExternalSystem: Failed to addRoleInExternalSystem", e.getMessage()); - } - } - } - - @Override - @SuppressWarnings("unchecked") - public Integer bulkUploadRolesFunctions(String uebkey) throws Exception { - EPApp app = getApp(uebkey).get(0); - List roles = getAppRoles(app.getId()); - final Map params = new HashMap<>(); - Integer roleFunctions = 0; - try { - for (EPRole role : roles) { - params.put("roleId", role.getId()); - List appRoleFunc = dataAccessService.executeNamedQuery("uploadAllRoleFunctions", - params, null); - if (!appRoleFunc.isEmpty()) { - for (BulkUploadRoleFunction addRoleFunc : appRoleFunc) { - addRoleFunctionsInExternalSystem(addRoleFunc, role, app); - roleFunctions++; - } - } - } - } catch(HttpClientErrorException e){ - logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to bulkUploadRolesFunctions", e); - EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadRolesFunctions: failed", e); - } - return roleFunctions; - } - - /** - * Its adding a role function while doing bulk upload - * - * @param addRoleFunc - * @param role - * @param app - */ - private void addRoleFunctionsInExternalSystem(BulkUploadRoleFunction addRoleFunc, EPRole role, EPApp app) { - String checkType = addRoleFunc.getFunctionCd().contains("menu") ? "menu" : "url"; - ExternalAccessRolePerms extRolePerms = null; - ExternalAccessPerms extPerms = null; - ObjectMapper mapper = new ObjectMapper(); - try { - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - - extPerms = new ExternalAccessPerms(app.getNameSpace() + "." + checkType, addRoleFunc.getFunctionCd(), "*", - addRoleFunc.getFunctionName()); - extRolePerms = new ExternalAccessRolePerms(extPerms, - app.getNameSpace() + "." + role.getName().replaceAll(" ", "_")); - String updateRolePerms = mapper.writeValueAsString(extRolePerms); - HttpEntity entity = new HttpEntity<>(updateRolePerms, headers); - template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "role/perm", - HttpMethod.POST, entity, String.class); - } catch (Exception e) { - if (e.getMessage().equalsIgnoreCase("409 Conflict")) { - logger.error(EELFLoggerDelegate.errorLogger, - "addRoleFunctionsInExternalSystem: RoleFunction already exits but does not break functionality", e); - } else { - logger.error(EELFLoggerDelegate.errorLogger, "addRoleFunctionsInExternalSystem: Failed to addRoleFunctionsInExternalSystem", - e.getMessage()); - } - } - } - - @Override - public void bulkUploadPartnerFunctions(String uebkey, List roleFunctionsList) throws Exception { - EPApp app = getApp(uebkey).get(0); - CentralRoleFunction cenRoleFunc = null; - for (RoleFunction roleFunction : roleFunctionsList) { - cenRoleFunc = new CentralRoleFunction(roleFunction.getCode(), roleFunction.getName()); - addRoleFunctionInExternalSystem(cenRoleFunc, app); - } - } - - @Override - public void bulkUploadPartnerRoles(String uebkey, List roleList) throws Exception { - EPApp app = getApp(uebkey).get(0); - for (Role role : roleList) { - addRoleInExternalSystem(role, app); - } - } - - @SuppressWarnings("unchecked") - @Override - public void bulkUploadPartnerRoleFunctions(String uebkey, List roleList) throws Exception { - EPApp app = getApp(uebkey).get(0); - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - for (Role role : roleList) { - try { - Set roleFunctionList = role.getRoleFunctions(); - List roleFunctionListNew = new ArrayList<>(); - ObjectMapper roleFunctionsMapper = new ObjectMapper(); - Iterator itetaror = roleFunctionList.iterator(); - while (itetaror.hasNext()) { - Object nextValue = itetaror.next(); - RoleFunction roleFunction = roleFunctionsMapper.convertValue(nextValue, RoleFunction.class); - roleFunctionListNew.add(roleFunction); - } - List listWithoutDuplicates = roleFunctionListNew.stream().distinct() - .collect(Collectors.toList()); - for (RoleFunction roleFunction : listWithoutDuplicates) { - String checkType = roleFunction.getCode().contains("menu") ? "menu" : "url"; - ExternalAccessRolePerms extRolePerms = null; - ExternalAccessPerms extPerms = null; - ObjectMapper mapper = new ObjectMapper(); - extPerms = new ExternalAccessPerms(app.getNameSpace() + "." + checkType, roleFunction.getCode(), - "*"); - extRolePerms = new ExternalAccessRolePerms(extPerms, - app.getNameSpace() + "." + role.getName().replaceAll(" ", "_")); - String updateRolePerms = mapper.writeValueAsString(extRolePerms); - HttpEntity entity = new HttpEntity<>(updateRolePerms, headers); - template.exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "role/perm", HttpMethod.PUT, entity, String.class); - } - } catch (Exception e) { - if (e.getMessage().equalsIgnoreCase("409 Conflict")) { - logger.error(EELFLoggerDelegate.errorLogger, - "bulkUploadPartnerRoleFunctions: RoleFunction already exits but does not break functionality"); - } else { - logger.error(EELFLoggerDelegate.errorLogger, "bulkUploadPartnerRoleFunctions: Failed to addRoleFunctionsInExternalSystem", - e.getMessage()); - } - } - - } - } - - @Override - @SuppressWarnings("unchecked") - @Transactional - public void syncApplicationRolesWithEcompDB(EPApp app) { - try { - ResponseEntity response = null; - List finalRoleList = new ArrayList<>(); - ExternalRoleDescription ApplicationRole = new ExternalRoleDescription(); - ExternalAccessPerms externalAccessPerms = null; - List functionCodelist = new ArrayList<>(); - List externalRoleDetailsList = new ArrayList<>(); - ObjectMapper mapper = new ObjectMapper(); - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - HttpEntity entity = new HttpEntity<>(headers); - logger.debug(EELFLoggerDelegate.debugLogger, "syncApplicationRolesWithEcompDB: {} ", - CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE); - response = template - .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "roles/ns/" + app.getNameSpace(), HttpMethod.GET, entity, String.class); - String res = response.getBody(); - logger.debug(EELFLoggerDelegate.debugLogger, - "syncApplicationRolesWithEcompDB: Finished GET roles from External Auth system and the result is :", - res); - JSONObject jsonObj = new JSONObject(res); - JSONArray extRole = jsonObj.getJSONArray("role"); - for (int i = 0; i < extRole.length(); i++) { - if (extRole.getJSONObject(i).getString(ROLE_NAME).equals(app.getNameSpace() + ADMIN) - || extRole.getJSONObject(i).getString(ROLE_NAME).equals(app.getNameSpace() + OWNER) - || (extRole.getJSONObject(i).getString(ROLE_NAME).equals(app.getNameSpace() + ACCOUNT_ADMINISTRATOR) - && !app.getId().equals(PortalConstants.PORTAL_APP_ID))) { - extRole.remove(i); - i--; - } - } - dataAccessService.deleteDomainObjects(EPAppRoleFunction.class, APP_ID_EQUALS + app.getId(), null); - for (int i = 0; i < extRole.length(); i++) { - ExternalRoleDetails externalRoleDetail = new ExternalRoleDetails(); - EPAppRoleFunction ePAppRoleFunction = new EPAppRoleFunction(); - JSONObject Role = (JSONObject) extRole.get(i); - if (!extRole.getJSONObject(i).has(EXTERNAL_AUTH_ROLE_DESCRIPTION)) { - ApplicationRole.setActive("true"); - ApplicationRole.setAppId(IS_NULL_STRING); - ApplicationRole.setPriority(IS_NULL_STRING); - ApplicationRole.setAppRoleId(IS_NULL_STRING); - String roleName = extRole.getJSONObject(i).getString(ROLE_NAME); - ApplicationRole.setName(roleName.substring(app.getNameSpace().length() + 1)); - } else { - String desc = extRole.getJSONObject(i).getString(EXTERNAL_AUTH_ROLE_DESCRIPTION); - ApplicationRole = mapper.readValue(desc, ExternalRoleDescription.class); - } - - SortedSet externalAccessPermsOfRole = new TreeSet<>(); - if (extRole.getJSONObject(i).has(EXTERNAL_AUTH_PERMS)) { - JSONArray extPerm = (JSONArray) Role.get(EXTERNAL_AUTH_PERMS); - for (int j = 0; j < extPerm.length(); j++) { - JSONObject perms = extPerm.getJSONObject(j); - externalAccessPerms = new ExternalAccessPerms(perms.getString("type"), - perms.getString("instance"), perms.getString("action")); - ePAppRoleFunction.setCode(externalAccessPerms.getInstance()); - functionCodelist.add(ePAppRoleFunction.getCode()); - externalAccessPermsOfRole.add(externalAccessPerms); - } - } - - if (ApplicationRole.getActive().equals(IS_NULL_STRING)) { - externalRoleDetail.setActive(false); - } else { - externalRoleDetail.setActive(Boolean.parseBoolean(ApplicationRole.getActive())); - } - externalRoleDetail.setName(ApplicationRole.getName()); - - if (ApplicationRole.getAppId().equals(IS_NULL_STRING) && app.getId() == 1) { - externalRoleDetail.setAppId(null); - } else if (ApplicationRole.getAppId().equals(IS_NULL_STRING)) { - externalRoleDetail.setAppId(app.getId()); - } else { - externalRoleDetail.setAppId(Long.parseLong(ApplicationRole.getAppId())); - } - - if (ApplicationRole.getPriority().equals(IS_NULL_STRING)) { - externalRoleDetail.setPriority(null); - } else { - externalRoleDetail.setPriority(Integer.parseInt(ApplicationRole.getPriority())); - } - - if (ApplicationRole.getAppRoleId().equals(IS_NULL_STRING) && app.getId() == 1) { - externalRoleDetail.setAppRoleId(null); - } - - if (!externalAccessPermsOfRole.isEmpty()) { - // Adding functions to roles - for (ExternalAccessPerms externalpermission : externalAccessPermsOfRole) { - try { - logger.debug(EELFLoggerDelegate.debugLogger, - "SyncApplicationRolesWithEcompDB: Adding function to the role: {}", - externalpermission.getInstance()); - List roleFunction = null; - roleFunction = dataAccessService.getList( - CentralRoleFunction.class, " where function_cd = '" - + externalpermission.getInstance() + "' and " + APP_ID_EQUALS + app.getId(), - null, null); - if (roleFunction.isEmpty()) { - String funcCode = externalpermission.getType() - .substring(app.getNameSpace().length() + 1) + FUNCTION_PIPE - + externalAccessPerms.getInstance(); - roleFunction = dataAccessService.getList(CentralRoleFunction.class, - " where function_cd = '" + funcCode + "' and " + APP_ID_EQUALS + app.getId(), null, - null); - } - if(!roleFunction.isEmpty()){ - EPAppRoleFunction apRoleFunction = new EPAppRoleFunction(); - apRoleFunction.setAppId(app.getId()); - apRoleFunction.setRoleId(Long.parseLong(ApplicationRole.getId())); - apRoleFunction.setCode(roleFunction.get(0).getCode()); - dataAccessService.saveDomainObject(apRoleFunction, null); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - "SyncApplicationRolesWithEcompDB: Failed to add role function", e); - } - } - } - externalRoleDetailsList.add(externalRoleDetail); - } - for (ExternalRoleDetails externalRole : externalRoleDetailsList) { - EPRole ecompRole = convertExternalRoleDetailstoEpRole(externalRole); - finalRoleList.add(ecompRole); - } - - List applicationRolesList = new ArrayList<>(); - applicationRolesList = getAppRoles(app.getId()); - List applicationRoleIdList = new ArrayList<>(); - for (EPRole applicationRole : applicationRolesList) { - applicationRoleIdList.add(applicationRole.getName()); - } - - List roleListToBeAddInEcompDB = new ArrayList<>(); - for (EPRole aafRole : finalRoleList) { - if (!applicationRoleIdList.contains(aafRole.getName())) { - roleListToBeAddInEcompDB.add(aafRole); - } - } - - // Check if roles exits in external Access system and make it inactive - final Map checkRolesInactive = new HashMap<>(); - for (EPRole extrole : finalRoleList) { - checkRolesInactive.put(extrole.getName(), extrole); - } - for (EPRole role : applicationRolesList) { - try { - final Map extRoleParams = new HashMap<>(); - List roleList = null; - extRoleParams.put("appRoleName", role.getName()); - if (!checkRolesInactive.containsKey(role.getName())) { - if (app.getId() == 1) { - roleList = dataAccessService.executeNamedQuery("getPortalAppRoles", extRoleParams, null); - } else { - extRoleParams.put(APP_ID, app.getId().toString()); - roleList = dataAccessService.executeNamedQuery("getRoletoUpdateAAF", extRoleParams, null); - } - EPRole updateRoleInactive = roleList.get(0); - updateRoleInactive.setActive(false); - dataAccessService.saveDomainObject(updateRoleInactive, null); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - "syncApplicationRolesWithEcompDB: Failed to de-activate role ", e); - } - } - - // It checks properties in the external auth system app role description and updates role in local - for (EPRole roleItem : finalRoleList) { - final Map roleParams = new HashMap<>(); - List currentList = null; - roleParams.put("appRoleName", roleItem.getName()); - if (app.getId() == 1) { - currentList = dataAccessService.executeNamedQuery("getPortalAppRoles", roleParams, null); - } else { - roleParams.put(APP_ID, app.getId().toString()); - currentList = dataAccessService.executeNamedQuery("getRoletoUpdateAAF", roleParams, null); - } - - if (!currentList.isEmpty()) { - try { - Boolean aafRoleActive; - Boolean localRoleActive; - boolean result; - aafRoleActive = Boolean.valueOf(roleItem.getActive()); - localRoleActive = Boolean.valueOf(currentList.get(0).getActive()); - result = aafRoleActive.equals(localRoleActive); - EPRole updateRole = currentList.get(0); - - if (!result) { - updateRole.setActive(roleItem.getActive()); - dataAccessService.saveDomainObject(updateRole, null); - } - if (roleItem.getPriority() != null - && !currentList.get(0).getPriority().equals(roleItem.getPriority())) { - updateRole.setPriority(roleItem.getPriority()); - dataAccessService.saveDomainObject(updateRole, null); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - "syncApplicationRolesWithEcompDB: Failed to update role ", e); - } - } - } - - EPRole roleToBeAddedInEcompDB = new EPRole(); - for (int i = 0; i < roleListToBeAddInEcompDB.size(); i++) { - try { - roleToBeAddedInEcompDB = roleListToBeAddInEcompDB.get(i); - if (app.getId() == 1) { - roleToBeAddedInEcompDB.setAppRoleId(null); - } - dataAccessService.saveDomainObject(roleToBeAddedInEcompDB, null); - List getRoleCreatedInSync = null; - if (!app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - getRoleCreatedInSync = dataAccessService.getList(EPRole.class, - WHERE_ROLE_NAME_EQUALS + roleToBeAddedInEcompDB.getName() + "' and app_id = "+app.getId(), null, null); - EPRole epUpdateRole = getRoleCreatedInSync.get(0); - epUpdateRole.setAppRoleId(epUpdateRole.getId()); - dataAccessService.saveDomainObject(epUpdateRole, null); - } - List roleList = new ArrayList<>(); - final Map params = new HashMap<>(); - - params.put("appRoleName", roleToBeAddedInEcompDB.getName()); - if (app.getId() == 1) { - roleList = dataAccessService.executeNamedQuery("getPortalAppRoles", params, null); - } else { - params.put(APP_ID, app.getId().toString()); - roleList = dataAccessService.executeNamedQuery("getRoletoUpdateAAF", params, null); - } - EPRole role = roleList.get(0); - Role aaFrole = new Role(); - aaFrole.setId(role.getId()); - aaFrole.setActive(role.getActive()); - aaFrole.setPriority(role.getPriority()); - aaFrole.setName(role.getName()); - updateRoleInExternalSystem(aaFrole, app); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - "SyncApplicationRolesWithEcompDB: Failed to add or update role in external auth system", e); - } - } - logger.debug(EELFLoggerDelegate.debugLogger, "syncApplicationRolesWithEcompDB: Finished"); - } catch (HttpClientErrorException e) { - logger.error(EELFLoggerDelegate.errorLogger, "Failed to SyncApplicationRolesWithEcompDB", e); - EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "syncApplicationRolesWithEcompDB: Failed ", e); - } - } - - /** - * - * It converts from ExternalRoleDetails.class object to EPRole.class object - * - * @param externalRoleDetails - * @return EPRole object - */ - private EPRole convertExternalRoleDetailstoEpRole(ExternalRoleDetails externalRoleDetails) { - EPRole role = new EPRole(); - role.setActive(externalRoleDetails.isActive()); - role.setAppId(externalRoleDetails.getAppId()); - role.setAppRoleId(externalRoleDetails.getAppRoleId()); - role.setName(externalRoleDetails.getName()); - role.setPriority(externalRoleDetails.getPriority()); - return role; - } - - @SuppressWarnings("unchecked") - @Override - public Integer bulkUploadUserRoles(String uebkey) throws Exception { - EPApp app = getApp(uebkey).get(0); - final Map params = new HashMap<>(); - params.put("uebKey", app.getUebKey()); - List userRolesList = null; - Integer userRolesAdded = 0; - if (app.getCentralAuth()) { - userRolesList = dataAccessService.executeNamedQuery("getBulkUserRoles", params, null); - for (BulkUploadUserRoles userRolesUpload : userRolesList) { - addUserRoleInExternalSystem(userRolesUpload); - userRolesAdded++; - } - } - return userRolesAdded; - } - - /** - * Its adding a user role in external auth system while doing bulk upload - * - * @param userRolesUpload - */ - private void addUserRoleInExternalSystem(BulkUploadUserRoles userRolesUpload) { - try { - String name = ""; - ObjectMapper mapper = new ObjectMapper(); - if (EPCommonSystemProperties - .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { - name = userRolesUpload.getOrgUserId() - + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); - } - ExternalAccessUser extUser = new ExternalAccessUser(name, - userRolesUpload.getAppNameSpace() + "." + userRolesUpload.getRoleName().replaceAll(" ", "_")); - String userRole = mapper.writeValueAsString(extUser); - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - HttpEntity entity = new HttpEntity<>(userRole, headers); - template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) + "userRole", - HttpMethod.POST, entity, String.class); - } catch(HttpClientErrorException e){ - logger.error(EELFLoggerDelegate.errorLogger, "HttpClientErrorException - Failed to addUserRoleInExternalSystem", e); - EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode()); - } catch (Exception e) { - if (e.getMessage().equalsIgnoreCase("409 Conflict")) { - logger.error(EELFLoggerDelegate.errorLogger, "addUserRoleInExternalSystem: UserRole already exits but does not break functionality"); - } else { - logger.error(EELFLoggerDelegate.errorLogger, "addUserRoleInExternalSystem: Failed to addUserRoleInExternalSystem", e.getMessage()); - } - } - } - - @Override - public void deleteRoleDependencyRecords(Session localSession, Long roleId, Long appId) throws Exception { - try { - String sql = ""; - Query query = null; - - //It should delete only when it portal's roleId - if(appId.equals(PortalConstants.PORTAL_APP_ID)){ - // Delete from fn_role_function - sql = "DELETE FROM fn_role_function WHERE role_id=" + roleId; - logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); - query = localSession.createSQLQuery(sql); - query.executeUpdate(); - - // Delete from fn_role_composite - sql = "DELETE FROM fn_role_composite WHERE parent_role_id=" + roleId + " OR child_role_id=" + roleId; - logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); - query = localSession.createSQLQuery(sql); - query.executeUpdate(); - } - - // Delete from ep_app_role_function - sql = "DELETE FROM ep_app_role_function WHERE role_id=" + roleId; - logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); - query = localSession.createSQLQuery(sql); - query.executeUpdate(); - - // Delete from ep_role_notification - sql = "DELETE FROM ep_role_notification WHERE role_id=" + roleId; - logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); - query = localSession.createSQLQuery(sql); - query.executeUpdate(); - - // Delete from fn_user_pseudo_role - sql = "DELETE FROM fn_user_pseudo_role WHERE pseudo_role_id=" + roleId; - logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); - query = localSession.createSQLQuery(sql); - query.executeUpdate(); - - // Delete form EP_WIDGET_CATALOG_ROLE - sql = "DELETE FROM EP_WIDGET_CATALOG_ROLE WHERE role_id=" + roleId; - logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); - query = localSession.createSQLQuery(sql); - query.executeUpdate(); - - // Delete form EP_WIDGET_CATALOG_ROLE - sql = "DELETE FROM ep_user_roles_request_det WHERE requested_role_id=" + roleId; - logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); - query = localSession.createSQLQuery(sql); - query.executeUpdate(); - - // Delete form fn_menu_functional_roles - sql = "DELETE FROM fn_menu_functional_roles WHERE role_id=" + roleId; - logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); - query = localSession.createSQLQuery(sql); - query.executeUpdate(); - - } catch (Exception e) { - logger.debug(EELFLoggerDelegate.debugLogger, "deleteRoleDependeciesRecord: failed ", e); - throw new Exception("delete Failed" + e.getMessage()); - } - - } - - @SuppressWarnings("unchecked") - @Override - public List getMenuFunctionsList(String uebkey) throws Exception { - List appMenuFunctionsList = null; - try { - EPApp app = getApp(uebkey).get(0); - final Map appParams = new HashMap<>(); - appParams.put(APP_ID, app.getId()); - appMenuFunctionsList = dataAccessService.executeNamedQuery("getMenuFunctions", appParams, null); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getMenuFunctionsList: Failed", e); - return appMenuFunctionsList; - } - return appMenuFunctionsList; - } - - @SuppressWarnings({ "unchecked"}) - @Override - public List getAllAppUsers(String uebkey) throws Exception { - List usersList = new ArrayList<>(); - List usersfinalList = new ArrayList<>(); - try { - EPApp app = getApp(uebkey).get(0); - final Map appParams = new HashMap<>(); - appParams.put("appId", app.getId()); - List userList = (List) dataAccessService - .executeNamedQuery("ApplicationUserRoles", appParams, null); - for (EcompUserRoles ecompUserRole : userList) { - boolean found = false; - Set roles = null; - for (EcompUser user : usersfinalList) { - if (user.getOrgUserId().equals(ecompUserRole.getOrgUserId())) { - EcompRole ecompRole = new EcompRole(); - ecompRole.setId(ecompUserRole.getRoleId()); - ecompRole.setName(ecompUserRole.getRoleName()); - roles = user.getRoles(); - roles.add(ecompRole); - user.setRoles(roles); - found = true; - break; - } - } - - if (!found) { - EcompUser epUser = new EcompUser(); - epUser.setOrgId(ecompUserRole.getOrgId()); - epUser.setManagerId(ecompUserRole.getManagerId()); - epUser.setFirstName(ecompUserRole.getFirstName()); - epUser.setLastName(ecompUserRole.getLastName()); - epUser.setPhone(ecompUserRole.getPhone()); - epUser.setEmail(ecompUserRole.getEmail()); - epUser.setOrgUserId(ecompUserRole.getOrgUserId()); - epUser.setOrgCode(ecompUserRole.getOrgCode()); - epUser.setOrgManagerUserId(ecompUserRole.getOrgManagerUserId()); - epUser.setJobTitle(ecompUserRole.getJobTitle()); - epUser.setLoginId(ecompUserRole.getLoginId()); - epUser.setActive(true); - roles = new HashSet<>(); - EcompRole ecompRole = new EcompRole(); - ecompRole.setId(ecompUserRole.getRoleId()); - ecompRole.setName(ecompUserRole.getRoleName()); - roles.add(ecompRole); - epUser.setRoles(roles); - usersfinalList.add(epUser); - } - } - ObjectMapper mapper = new ObjectMapper(); - - for (EcompUser u1 : usersfinalList) { - String str = mapper.writeValueAsString(u1); - usersList.add(str); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getAllUsers failed", e); - throw e; - } - return usersfinalList; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/FunctionalMenuService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/FunctionalMenuService.java deleted file mode 100644 index af049ffe..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/FunctionalMenuService.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.FunctionalMenuItemWithAppID; -import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRole; -import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItem; -import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItem; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItemWithRoles; -import org.openecomp.portalapp.portal.transport.FunctionalMenuRole; - -public interface FunctionalMenuService { - List getFunctionalMenuItems (EPUser user); - // return all active menu items - List getFunctionalMenuItems (); - // return all active menu items. If all is true, return all active and inactive menu items. - List getFunctionalMenuItems(Boolean all); - // return all active Functional menu items for Notification Tree in User Notification . If all is true, return all active menu items. - List getFunctionalMenuItemsForNotificationTree(Boolean all); - List getFunctionalMenuItemsForApp (Integer appId); - List getFunctionalMenuItemsForUser (String orgUserId); - FunctionalMenuItem getFunctionalMenuItemDetails (Integer menuid); - FieldsValidator createFunctionalMenuItem (FunctionalMenuItemWithRoles menuItemJson); - FieldsValidator editFunctionalMenuItem (FunctionalMenuItemWithRoles menuItemJson); - FieldsValidator deleteFunctionalMenuItem (Long menuId); - FieldsValidator regenerateAncestorTable (); - //Methods relevant to favorites - FieldsValidator setFavoriteItem(FavoritesFunctionalMenuItem menuItemJson); - List getFavoriteItems(Long userId); - FieldsValidator removeFavoriteItem (Long userId, Long menuId); - List transformFunctionalMenuItemWithAppIDToFunctionalMenuItem(List functionalMenuItemWithAppIDList); - List getFunctionalMenuRole(); - //Assign URLs under Help Menu - void assignHelpURLs(List menuItems); - List getUserAppRolesList(String userId); -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/FunctionalMenuServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/FunctionalMenuServiceImpl.java deleted file mode 100644 index 26f1431e..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/FunctionalMenuServiceImpl.java +++ /dev/null @@ -1,1000 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.PostConstruct; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.lang3.StringUtils; -import org.hibernate.Criteria; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.Transaction; -import org.hibernate.criterion.Projections; -import org.hibernate.criterion.Restrictions; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.FunctionalMenuItemWithAppID; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRole; -import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItem; -import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItem; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItemWithRoles; -import org.openecomp.portalapp.portal.transport.FunctionalMenuRole; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -@Service("functionalMenuService") -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class FunctionalMenuServiceImpl implements FunctionalMenuService { - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FunctionalMenuServiceImpl.class); - - private Long ACCOUNT_ADMIN_ROLE_ID = 999L; - private String RESTRICTED_APP_ROLE_ID = "900"; - - @Autowired - private DataAccessService dataAccessService; - @Autowired - private SessionFactory sessionFactory; - - @PostConstruct - private void init() { - try { - ACCOUNT_ADMIN_ROLE_ID = Long - .valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ACCOUNT_ADMIN_ROLE_ID)); - RESTRICTED_APP_ROLE_ID = SystemProperties.getProperty(EPCommonSystemProperties.RESTRICTED_APP_ROLE_ID); - } catch (Exception e) { - } - } - - public List getFunctionalMenuItems(EPUser user) { - List menuItems = new ArrayList(); - return menuItems; - } - - public List getFunctionalMenuItems() { - return getFunctionalMenuItems(false); - } - - public List getFunctionalMenuItems(Boolean all) { - // Divide this into 2 queries: one which returns the bottom-level menu items - // associated with Restricted apps, - // and one that returns all the other menu items. Then we can easily add the - // boolean flag - // restrictedApp to each FunctionalMenuItem, to be used by the front end. - String activeWhereClause = ""; - if (!all) { - activeWhereClause = " AND UPPER(m.active_yn) = 'Y' "; - } - String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id " - + "FROM fn_menu_functional m, fn_menu_functional_roles r " + "WHERE m.menu_id = r.menu_id " - + activeWhereClause // " AND UPPER(m.active_yn) = 'Y' " - + " AND r.role_id != '" + RESTRICTED_APP_ROLE_ID + "' " + " UNION " - + " SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn,-1 app_id " - + " FROM fn_menu_functional m " + " WHERE m.url='' " + activeWhereClause; // " AND UPPER(m.active_yn) = - // 'Y' "; - logQuery(sql); - - @SuppressWarnings("unchecked") - List menuItemsWithAppIdList = dataAccessService.executeSQLQuery(sql, - FunctionalMenuItemWithAppID.class, null); - List menuItems = new ArrayList<>(); - menuItems = transformFunctionalMenuItemWithAppIDToFunctionalMenuItem(menuItemsWithAppIdList); - for (FunctionalMenuItem menuItem : menuItems) { - menuItem.restrictedApp = false; - } - - sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id " - + "FROM fn_menu_functional m, fn_menu_functional_roles r " + "WHERE m.menu_id = r.menu_id " - + activeWhereClause // " AND UPPER(m.active_yn) = 'Y' " - + " AND r.role_id = '" + RESTRICTED_APP_ROLE_ID + "' "; - logQuery(sql); - @SuppressWarnings("unchecked") - List menuItems2 = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); - for (FunctionalMenuItem menuItem : menuItems2) { - menuItem.restrictedApp = true; - menuItems.add(menuItem); - } - - return menuItems; - } - - public List getFunctionalMenuItemsForNotificationTree(Boolean all) { - // Divide this into 2 queries: one which returns the bottom-level menu items - // associated with Restricted apps, - // and one that returns all the other menu items which are active. Then we can - // easily add the boolean flag - // restrictedApp to each FunctionalMenuItem, to be used by the front end. - String activeWhereClause = ""; - if (!all) { - activeWhereClause = " AND UPPER(m.active_yn) = 'Y' "; - } - String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id " - + "FROM fn_menu_functional m, fn_menu_functional_roles r " + "WHERE m.menu_id = r.menu_id " - + activeWhereClause + " AND UPPER(m.active_yn) = 'Y' " + " AND r.role_id != '" + RESTRICTED_APP_ROLE_ID - + "' " + " UNION " - + " SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn,-1 app_id " - + " FROM fn_menu_functional m " + " WHERE m.url='' " + activeWhereClause - + " AND UPPER(m.active_yn) = 'Y' "; - logQuery(sql); - - @SuppressWarnings("unchecked") - List menuItemsWithAppIdList = dataAccessService.executeSQLQuery(sql, - FunctionalMenuItemWithAppID.class, null); - List menuItems = new ArrayList<>(); - menuItems = transformFunctionalMenuItemWithAppIDToFunctionalMenuItem(menuItemsWithAppIdList); - for (FunctionalMenuItem menuItem : menuItems) { - menuItem.restrictedApp = false; - } - - sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id " - + "FROM fn_menu_functional m, fn_menu_functional_roles r " + "WHERE m.menu_id = r.menu_id " - + activeWhereClause + " AND UPPER(m.active_yn) = 'Y' " + " AND r.role_id = '" + RESTRICTED_APP_ROLE_ID - + "' "; - logQuery(sql); - @SuppressWarnings("unchecked") - List menuItems2 = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); - for (FunctionalMenuItem menuItem : menuItems2) { - menuItem.restrictedApp = true; - menuItems.add(menuItem); - } - - return menuItems; - } - - public List getFunctionalMenuItemsForApp(Integer appId) { - String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn " - + " FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, fn_menu_functional_roles mr " - + " WHERE " + " mr.app_id='" + appId + "' " + " AND mr.menu_id = m.menu_id " - + " AND UPPER(m.active_yn) = 'Y'" + " AND UPPER(m1.active_yn) ='Y'" + " AND a.menu_id = m.menu_id " - + " AND a.ancestor_menu_id = m1.menu_id"; - logQuery(sql); - logger.debug(EELFLoggerDelegate.debugLogger, "getFunctionalMenuItemsForApp: logged the query"); - - @SuppressWarnings("unchecked") - List menuItems = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); - - return menuItems; - } - - /** - * convert List of FunctionalMenuItemWithAppID into List of FunctionalMenuItem - * - */ - public List transformFunctionalMenuItemWithAppIDToFunctionalMenuItem( - List functionalMenuItemWithAppIDList) { - List functionalMenuItemList = new ArrayList(); - for (FunctionalMenuItemWithAppID functionalMenuItemWithAppID : functionalMenuItemWithAppIDList) { - FunctionalMenuItem menuItem = new FunctionalMenuItem(); - menuItem.menuId = functionalMenuItemWithAppID.menuId; - menuItem.column = functionalMenuItemWithAppID.column; - menuItem.text = functionalMenuItemWithAppID.text; - menuItem.parentMenuId = functionalMenuItemWithAppID.parentMenuId; - menuItem.url = functionalMenuItemWithAppID.url; - menuItem.active_yn = functionalMenuItemWithAppID.active_yn; - menuItem.appid = functionalMenuItemWithAppID.appid; - menuItem.setRoles(functionalMenuItemWithAppID.roles); - menuItem.restrictedApp = functionalMenuItemWithAppID.restrictedApp; - functionalMenuItemList.add(menuItem); - } - return functionalMenuItemList; - } - - public List getFunctionalMenuItemsForUser(String orgUserId) { - // m represents the functional menu items that are the leaf nodes - // m1 represents the functional menu items for all the nodes - - // Divide this into 2 queries: one which returns the bottom-level menu items - // associated with Restricted apps, - // and one that returns all the other menu items. Then we can easily add the - // boolean flag - // restrictedApp to each FunctionalMenuItem, to be used by the front end. - String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn " - + " FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, " - + " fn_menu_functional_roles mr, fn_user u , fn_user_role ur " + " WHERE " + " u.org_user_id='" - + orgUserId + "' " + " AND u.user_id = ur.user_id " + " AND ur.app_id = mr.app_id " + - // " AND ur.role_id = mr.role_id " + - " AND (ur.role_id = mr.role_id " + " OR ur.role_id = '" + ACCOUNT_ADMIN_ROLE_ID + "') " - + " AND m.menu_id = mr.menu_id " + " AND UPPER(m.active_yn) = 'Y'" + " AND UPPER(m1.active_yn) ='Y' " - + " AND a.menu_id = m.menu_id " + " AND a.ancestor_menu_id = m1.menu_id " + " UNION " - // the ancestors of the restricted app menu items - + " select m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m1.active_yn " - + " FROM fn_menu_functional m, fn_menu_functional_roles mr, fn_menu_functional m1, " - + " fn_menu_functional_ancestors a " + " where a.menu_id = m.menu_id " - + " AND a.ancestor_menu_id = m1.menu_id " + " AND m.menu_id != m1.menu_id " - + " AND m.menu_id = mr.menu_id " + " AND mr.role_id = '" + RESTRICTED_APP_ROLE_ID + "' " - + " AND UPPER(m.active_yn) = 'Y'" + " AND UPPER(m1.active_yn) ='Y' " - // Add the Favorites menu item - + " UNION " + " SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn " - + " FROM fn_menu_functional m " - + " WHERE m.text in ('Favorites','Get Access','Contact Us','Support','User Guide','Help')"; - - logQuery(sql); - logger.debug(EELFLoggerDelegate.debugLogger, "getFunctionalMenuItemsForUser: logged the query"); - - @SuppressWarnings("unchecked") - List menuItems = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); - for (FunctionalMenuItem menuItem : menuItems) { - menuItem.restrictedApp = false; - } - - sql = " SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn " - + " FROM fn_menu_functional m, fn_menu_functional_roles r " + " WHERE m.menu_id = r.menu_id " - + " AND UPPER(m.active_yn) = 'Y' " + " AND r.role_id = '" + RESTRICTED_APP_ROLE_ID + "' "; - logQuery(sql); - @SuppressWarnings("unchecked") - List menuItems2 = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); - for (FunctionalMenuItem menuItem : menuItems2) { - menuItem.restrictedApp = true; - menuItems.add(menuItem); - } - - return menuItems; - } - - public FunctionalMenuItem getFunctionalMenuItemDetails(Integer menuid) { - // First, fill in the fields that apply to all menu items - - String sql = "SELECT * FROM fn_menu_functional WHERE menu_id = '" + menuid + "'"; - logQuery(sql); - @SuppressWarnings("unchecked") - List menuItems = dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null); - FunctionalMenuItem menuItem = (menuItems == null || menuItems.isEmpty() ? null : menuItems.get(0)); - // If it is a bottom-level menu item, must fill in the appid and the - // roles - sql = "SELECT * FROM fn_menu_functional_roles WHERE menu_id = '" + menuid + "'"; - logQuery(sql); - @SuppressWarnings("unchecked") - List roleItems = dataAccessService.executeSQLQuery(sql, FunctionalMenuRole.class, null); - if (roleItems.size() > 0 && menuItem != null) { - Integer appid = roleItems.get(0).appId; - menuItem.appid = appid; - List roles = new ArrayList(); - for (FunctionalMenuRole roleItem : roleItems) { - logger.debug(EELFLoggerDelegate.debugLogger, - "LR: app_id: " + roleItem.appId + "; role_id: " + roleItem.roleId + "\n"); - roles.add(roleItem.roleId); - } - menuItem.setRoles(roles); - } - - return menuItem; - } - - private FieldsValidator menuItemFieldsChecker(FunctionalMenuItemWithRoles menuItemJson) { - FieldsValidator fieldsValidator = new FieldsValidator(); - try { - // TODO: validate all the fields - @SuppressWarnings("unchecked") - List functionalMenuItems = dataAccessService.getList(FunctionalMenuItem.class, - " where text = '" + menuItemJson.text + "'", null, null); - - boolean dublicatedName = false; - for (FunctionalMenuItem fnMenuItem : functionalMenuItems) { - if (menuItemJson.menuId != null && menuItemJson.menuId.equals(fnMenuItem.menuId)) { - // FunctionalMenuItem should not be compared with itself - continue; - } - - if (!dublicatedName && fnMenuItem.text.equalsIgnoreCase(menuItemJson.text)) { - dublicatedName = true; - break; - } - } - if (dublicatedName) { - fieldsValidator.addProblematicFieldName("text"); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); - fieldsValidator.errorCode = new Long(EPCommonSystemProperties.DUBLICATED_FIELD_VALUE_ECOMP_ERROR); - logger.debug(EELFLoggerDelegate.debugLogger, - "In menuItemFieldsChecker, Error: we have an duplicate text field"); - } else if (StringUtils.isEmpty(menuItemJson.text) && menuItemJson.menuId == null) { - // text must be non empty for a create. For an edit, can be empty, which means - // it is a move request. - // a null menuId indicates a create. - fieldsValidator.addProblematicFieldName("text"); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); - logger.debug(EELFLoggerDelegate.debugLogger, - "In menuItemFieldsChecker, Error: we have an empty text field"); - } else { - // The url, appid, and roles must either be all filled or all empty. - Boolean urlIsEmpty = StringUtils.isEmpty(menuItemJson.url); - Boolean rolesIsEmpty = menuItemJson.getRoles() == null || menuItemJson.getRoles().isEmpty(); - Boolean appidIsEmpty = menuItemJson.appid == null || menuItemJson.appid == 0; - logger.debug(EELFLoggerDelegate.debugLogger, "LR: menuItemfieldsChecker: urlIsEmpty: " + urlIsEmpty - + "; rolesIsEmpty: " + rolesIsEmpty + "; appidIsEmpty: " + appidIsEmpty + "\n"); - if (!((urlIsEmpty && rolesIsEmpty && appidIsEmpty) - || (!urlIsEmpty && !rolesIsEmpty && !appidIsEmpty))) { - fieldsValidator.addProblematicFieldName("url,roles,appid"); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); - logger.debug(EELFLoggerDelegate.debugLogger, - "In menuItemFieldsChecker, Error: we don't have: either all 3 fields empty or all 3 fields nonempty"); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, - "In menuItemFieldsChecker, Success: either all 3 fields empty or all 3 fields nonempty"); - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "menuItemFieldsChecker failed", e); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - - return fieldsValidator; - } - - // Turn foreign key checks on or off - protected void setForeignKeys(Session localSession, Boolean on) { - String keyCheck = "0"; - if (on) { - keyCheck = "1"; - } - String sql = "set FOREIGN_KEY_CHECKS=" + keyCheck; - logQuery(sql); - Query query = localSession.createSQLQuery(sql); - query.executeUpdate(); - } - - public FieldsValidator createFunctionalMenuItem(FunctionalMenuItemWithRoles menuItemJson) { - FieldsValidator fieldsValidator = menuItemFieldsChecker(menuItemJson); - if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { - logger.debug(EELFLoggerDelegate.debugLogger, "LR: createFunctionalMenuItem: test 1"); - boolean result = false; - Session localSession = null; - Transaction transaction = null; - try { - FunctionalMenuItem menuItem = new FunctionalMenuItem(); - menuItem.appid = menuItemJson.appid; - menuItem.setRoles(menuItemJson.getRoles()); - menuItem.url = menuItemJson.url; - menuItem.text = menuItemJson.text; - menuItem.parentMenuId = menuItemJson.parentMenuId; - menuItem.active_yn = "Y"; - localSession = sessionFactory.openSession(); - - // If the app is disabled, deactivate the menu item. - if (menuItemJson.appid != null) { - Long appidLong = Long.valueOf(menuItemJson.appid); - EPApp app = (EPApp) localSession.get(EPApp.class, appidLong); - if (app != null && !app.getEnabled()) { - menuItem.active_yn = "N"; - } - } - - // Set the column number to 1 higher than the highest column - // number under this parent. - Criteria criteria = localSession.createCriteria(FunctionalMenuItem.class); - criteria.setProjection(Projections.max("column")); - criteria.add(Restrictions.eq("parentMenuId", menuItem.parentMenuId)); - Integer maxColumn = (Integer) criteria.uniqueResult(); - if (maxColumn == null) { - maxColumn = 0; - } - menuItem.column = maxColumn + 1; - logger.debug(EELFLoggerDelegate.debugLogger, "about to create menu item: " + menuItem.toString()); - - transaction = localSession.beginTransaction(); - // localSession.saveOrUpdate(newMenuItem); - localSession.save(menuItem); - Long menuid = menuItem.menuId; - menuItemJson.menuId = menuid; - logger.debug(EELFLoggerDelegate.debugLogger, "after saving menu object, new id: " + menuid); - - // Next, save all the roles - - addRoles(menuItemJson, localSession); - transaction.commit(); - result = true; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "createFunctionalMenuItem failed", e); - EcompPortalUtils.rollbackTransaction(transaction, - "createFunctionalMenuItem rollback, exception = " + e.toString()); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "createFunctionalMenuItem"); - } - if (result) { - } else { - logger.debug(EELFLoggerDelegate.debugLogger, - "LR: createFunctionalMenuItem: no result. setting httpStatusCode to " - + HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "FunctionalMenuServiceImpl.createFunctionalMenuItem: bad request"); - } - return fieldsValidator; - } - - /* Add all the roles in the menu item to the database */ - public void addRoles(FunctionalMenuItemWithRoles menuItemJson, Session localSession) { - logger.debug(EELFLoggerDelegate.debugLogger, "entering addRoles."); - List roles = menuItemJson.getRoles(); - if (roles != null && roles.size() > 0) { - Integer appid = menuItemJson.appid; - Long menuid = menuItemJson.menuId; - for (Integer roleid : roles) { - logger.debug(EELFLoggerDelegate.debugLogger, "about to create record for role: " + roleid); - FunctionalMenuRole role = new FunctionalMenuRole(); - role.appId = appid; - role.menuId = menuid; - role.roleId = roleid; - localSession.save(role); - logger.debug(EELFLoggerDelegate.debugLogger, "after saving role menu object, new id: " + role.id); - } - } - } - - /* Delete all the roles associated with the menu item from the database */ - public void deleteRoles(Long menuId) { - dataAccessService.deleteDomainObjects(FunctionalMenuRole.class, "menu_id='" + menuId + "'", null); - } - - /* Delete all favorites associated with the menu item from the database */ - public void deleteFavorites(Long menuId) { - dataAccessService.deleteDomainObjects(FavoritesFunctionalMenuItem.class, "menu_id='" + menuId + "'", null); - } - - private Boolean parentMenuIdEqual(Integer menuId1, Integer menuId2) { - return ((menuId1 == null && menuId2 == null) || (menuId1 != null && menuId1.equals(menuId2))); - } - - private void updateColumnForSiblings(Session localSession, Long menuId, Integer oldParentMenuId, - Integer newParentMenuId, Integer oldColumn, Integer newColumn) { - logger.debug(EELFLoggerDelegate.debugLogger, "entering updateColumnForSiblings"); - Criteria criteria = localSession.createCriteria(FunctionalMenuItem.class); - criteria.add(Restrictions.ne("menuId", menuId)); - if (parentMenuIdEqual(oldParentMenuId, newParentMenuId)) { - logger.debug(EELFLoggerDelegate.debugLogger, "moving under the same parent"); - // We are moving to a new position under the same parent - if (newParentMenuId == null) { - logger.debug(EELFLoggerDelegate.debugLogger, "newParentMenuId is null, so using isNull"); - criteria.add(Restrictions.isNull("parentMenuId")); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "newParentMenuId is NOT null, so using eq"); - criteria.add(Restrictions.eq("parentMenuId", newParentMenuId)); - } - if (oldColumn > newColumn) { - logger.debug(EELFLoggerDelegate.debugLogger, "moving to a lower column under the same parent"); - // We are moving to a lower column under the same parent - criteria.add(Restrictions.ge("column", newColumn)); - criteria.add(Restrictions.lt("column", oldColumn)); - @SuppressWarnings("unchecked") - List menuItems = criteria.list(); - for (FunctionalMenuItem menuItem : menuItems) { - menuItem.column += 1; - localSession.save(menuItem); - } - } else if (oldColumn < newColumn) { - logger.debug(EELFLoggerDelegate.debugLogger, "moving to a higher column under the same parent"); - // We are moving to a higher column under the same parent - criteria.add(Restrictions.gt("column", oldColumn)); - criteria.add(Restrictions.le("column", newColumn)); - @SuppressWarnings("unchecked") - List menuItems = criteria.list(); - for (FunctionalMenuItem menuItem : menuItems) { - menuItem.column -= 1; - localSession.save(menuItem); - } - } else { - // No info has changed - logger.debug(EELFLoggerDelegate.debugLogger, "no info has changed, so we are not moving"); - } - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "moving under a new parent"); - // We are moving under a new parent. - - // Adjust the children under the old parent - logger.debug(EELFLoggerDelegate.debugLogger, "about to adjust the children under the old parent"); - - // If the parentId is null, must check for its children differently - if (oldParentMenuId == null) { - logger.debug(EELFLoggerDelegate.debugLogger, "oldParentMenuId is null, so using isNull"); - criteria.add(Restrictions.isNull("parentMenuId")); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "oldParentMenuId is NOT null, so using eq"); - criteria.add(Restrictions.eq("parentMenuId", oldParentMenuId)); - } - - criteria.add(Restrictions.gt("column", oldColumn)); - @SuppressWarnings("unchecked") - List menuItems1 = criteria.list(); - for (FunctionalMenuItem menuItem : menuItems1) { - menuItem.column -= 1; - localSession.save(menuItem); - } - // Adjust the children under the new parent. - logger.debug(EELFLoggerDelegate.debugLogger, "about to adjust the children under the new parent"); - logger.debug(EELFLoggerDelegate.debugLogger, "get all menu items where menuId!=" + menuId - + "; parentMenuId==" + newParentMenuId + "; column>=" + newColumn); - criteria = localSession.createCriteria(FunctionalMenuItem.class); - criteria.add(Restrictions.ne("menuId", menuId)); - if (newParentMenuId == null) { - logger.debug(EELFLoggerDelegate.debugLogger, "newParentMenuId is null, so using isNull"); - criteria.add(Restrictions.isNull("parentMenuId")); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "newParentMenuId is NOT null, so using eq"); - criteria.add(Restrictions.eq("parentMenuId", newParentMenuId)); - } - - criteria.add(Restrictions.ge("column", newColumn)); - @SuppressWarnings("unchecked") - List menuItems2 = criteria.list(); - if (menuItems2 != null) { - logger.debug(EELFLoggerDelegate.debugLogger, "found " + menuItems2.size() + " menu items"); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "found null menu items"); - } - for (FunctionalMenuItem menuItem : menuItems2) { - menuItem.column += 1; - localSession.save(menuItem); - } - } - logger.debug(EELFLoggerDelegate.debugLogger, "done with updateColumnForSiblings"); - } - - public void removeAppInfo(Session localSession, Long menuId) { - // Remove the url, role, and app info from a menu item - FunctionalMenuItem menuItem = (FunctionalMenuItem) localSession.get(FunctionalMenuItem.class, menuId); - menuItem.url = ""; - deleteRoles(menuId); - } - - public FieldsValidator editFunctionalMenuItem(FunctionalMenuItemWithRoles menuItemJson) { - boolean result = false; - Session localSession = null; - Transaction transaction = null; - Long menuId = menuItemJson.menuId; - - logger.debug(EELFLoggerDelegate.debugLogger, "LR: editFunctionalMenuItem: test 1"); - FieldsValidator fieldsValidator = menuItemFieldsChecker(menuItemJson); - if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { - // TODO: make sure menuId is here. And, it might not already exist - // in db table. - if (menuId == null) { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); - logger.error(EELFLoggerDelegate.errorLogger, - "FunctionalMenuServiceImpl.editFunctionalMenuItem: bad request"); - } else { - // To simplify the code, assume we will have a transaction - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - - // Get the existing info associated with menuItem from the DB - FunctionalMenuItem menuItem = (FunctionalMenuItem) localSession.get(FunctionalMenuItem.class, - menuId); - Integer oldColumn = menuItem.column; - Integer oldParentMenuId = menuItem.parentMenuId; - Integer newColumn = menuItemJson.column; - Integer newParentMenuId = menuItemJson.parentMenuId; - - logger.debug(EELFLoggerDelegate.debugLogger, - "prev info: column: " + oldColumn + "; parentMenuId: " + oldParentMenuId); - - if (menuItemJson.appid != null && menuItemJson.getRoles() != null - && !menuItemJson.getRoles().isEmpty() && menuItemJson.url != null - && !menuItemJson.url.isEmpty() && menuItemJson.text != null - && !menuItemJson.text.isEmpty()) { - // Scenario: appid, roles, url and text are all non-null. - // This menu item is associated with an app. - // (Note: this should only occur for a bottom-level menu - // item with no children.) - // 1) Remove all the records from fn_menu_functional_role - // for this menuId. - // 2) Add records to the fn_menu_function_role table for the - // appId and each roleId - // 3) Update the url and text for this menu item. - - // Because of foreign key constraints, delete the roles, - // then update the menuItem then add the roles. - deleteRoles(menuId); - // Assumption: this is not a Move, so don't change the - // parentMenuId and column. - menuItem.appid = menuItemJson.appid; - menuItem.setRoles(menuItemJson.getRoles()); - menuItem.url = menuItemJson.url; - menuItem.text = menuItemJson.text; - - // If the app is disabled, deactivate the menu item. - Long appidLong = Long.valueOf(menuItemJson.appid); - EPApp app = (EPApp) localSession.get(EPApp.class, appidLong); - if (app != null && !app.getEnabled()) { - menuItem.active_yn = "N"; - } else { - menuItem.active_yn = "Y"; - } - - localSession.update(menuItem); - addRoles(menuItemJson, localSession); - - } else if (menuItemJson.appid == null - && (menuItemJson.getRoles() == null || menuItemJson.getRoles().isEmpty()) - && (menuItemJson.url == null || menuItemJson.url.isEmpty()) && menuItemJson.text != null - && !menuItemJson.text.isEmpty()) { - // Scenario: appid, roles and url are all null; text is - // non-null. - // This menu item is NOT associated with an app. - // 1) Remove all the records from fn_menu_functional_role - // for this menuId - // (in case it was previously associated with an app). - // 2) Update the text for this menu item. - // 3) Set the url to "" - deleteRoles(menuId); - // Assumption: this is not a Move, so don't change the - // parentMenuId and column. - menuItem.text = menuItemJson.text; - menuItem.url = ""; - menuItem.active_yn = "Y"; - localSession.update(menuItem); - - } else if (newColumn != null) { - // This is a "move" request. - // Menu item has been moved to a different position under - // the same parent, or under a new parent. - logger.debug(EELFLoggerDelegate.debugLogger, "Doing a move operation."); - if (parentMenuIdEqual(oldParentMenuId, newParentMenuId)) { - // The parent is the same. We have just changed the - // column - logger.debug(EELFLoggerDelegate.debugLogger, "moving under the same parent"); - menuItem.column = newColumn; - localSession.update(menuItem); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "moving under a different parent"); - menuItem.parentMenuId = newParentMenuId; - menuItem.column = newColumn; - localSession.update(menuItem); - // If we are moving under a new parent, must delete any - // app/role info from - // the new parent, since it is no longer a leaf menu - // item and cannot have app info - // associated with it. The front end will have warned - // the user and gotten confirmation. - if (menuItemJson.parentMenuId != null) { - Long parentMenuIdLong = new Long(menuItemJson.parentMenuId); - removeAppInfo(localSession, parentMenuIdLong); - // deleteRoles(parentMenuIdLong); - } - } - // must update the column for all old and new sibling menu - // items - updateColumnForSiblings(localSession, menuId, oldParentMenuId, newParentMenuId, oldColumn, - newColumn); - } - - transaction.commit(); - logger.debug(EELFLoggerDelegate.debugLogger, - "LR: editFunctionalMenuItem: finished committing transaction"); - result = true; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "editFunctionalMenuItem failed", e); - EcompPortalUtils.rollbackTransaction(transaction, - "createFunctionalMenuItem rollback, exception = " + e.toString()); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "editFunctionalMenuItem"); - } - - if (result) { - } else { - logger.debug(EELFLoggerDelegate.debugLogger, - "LR: createFunctionalMenuItem: no result. setting httpStatusCode to " - + HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - } - } - - return fieldsValidator; - } - - public FieldsValidator deleteFunctionalMenuItem(Long menuId) { - FieldsValidator fieldsValidator = new FieldsValidator(); - logger.debug(EELFLoggerDelegate.debugLogger, "LR: deleteFunctionalMenuItem: test 1"); - boolean result = false; - Session localSession = null; - Transaction transaction = null; - - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - // We must turn off foreign keys before deleting a menu item. Otherwise there - // will be a - // constraint violation from the ancestors table. - setForeignKeys(localSession, false); - deleteRoles(menuId); - logger.debug(EELFLoggerDelegate.debugLogger, "deleteFunctionalMenuItem: after deleting roles"); - deleteFavorites(menuId); - logger.debug(EELFLoggerDelegate.debugLogger, "deleteFunctionalMenuItem: after deleting favorites"); - localSession.delete(localSession.get(FunctionalMenuItem.class, menuId)); - logger.debug(EELFLoggerDelegate.debugLogger, "deleteFunctionalMenuItem: about to commit"); - transaction.commit(); - result = true; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "deleteFunctionalMenuItem failed", e); - EcompPortalUtils.rollbackTransaction(transaction, - "deleteFunctionalMenuItem rollback, exception = " + e.toString()); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "deleteFunctionalMenuItem"); - } - if (result) { - } else { - logger.debug(EELFLoggerDelegate.debugLogger, - "LR: deleteFunctionalMenuItem: no result. setting httpStatusCode to " - + HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - return fieldsValidator; - } - - // Regenerate the fn_menu_functional_ancestors table, which is used - // by the queries that return the functional menu items. - public FieldsValidator regenerateAncestorTable() { - FieldsValidator fieldsValidator = new FieldsValidator(); - Session localSession = null; - Transaction transaction = null; - - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - String sql = "DELETE FROM fn_menu_functional_ancestors"; - logQuery(sql); - Query query = localSession.createSQLQuery(sql); - query.executeUpdate(); - logger.debug(EELFLoggerDelegate.debugLogger, "regenerateAncestorTable: finished query 1"); - - sql = "ALTER TABLE fn_menu_functional_ancestors AUTO_INCREMENT=1"; - logQuery(sql); - query = localSession.createSQLQuery(sql); - query.executeUpdate(); - logger.debug(EELFLoggerDelegate.debugLogger, "regenerateAncestorTable: reset AUTO_INCREMENT to 1"); - - int depth = 0; - sql = "INSERT INTO fn_menu_functional_ancestors(menu_id, ancestor_menu_id, depth) " - + "SELECT m.menu_id, m.menu_id, " + depth + " FROM fn_menu_functional m"; - logQuery(sql); - query = localSession.createSQLQuery(sql); - query.executeUpdate(); - logger.debug(EELFLoggerDelegate.debugLogger, "regenerateAncestorTable: finished query 2"); - for (depth = 0; depth < 3; depth++) { - int depthPlusOne = depth + 1; - sql = "INSERT INTO fn_menu_functional_ancestors(menu_id, ancestor_menu_id, depth) " - + " SELECT a.menu_id, m.parent_menu_id, " + depthPlusOne - + " FROM fn_menu_functional m, fn_menu_functional_ancestors a " + " WHERE a.depth='" + depth - + "' AND " + " a.ancestor_menu_id = m.menu_id AND " + " m.parent_menu_id != '-1'"; - logQuery(sql); - query = localSession.createSQLQuery(sql); - query.executeUpdate(); - } - logger.debug(EELFLoggerDelegate.debugLogger, "regenerateAncestorTable: finished query 3"); - transaction.commit(); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "regenerateAncestorTable failed", e); - EcompPortalUtils.rollbackTransaction(transaction, - "regenerateAncestorTable rollback, exception = " + e.toString()); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "regenerateAncestorTable"); - } - return fieldsValidator; - } - - private void logQuery(String sql) { - logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); - } - - public FieldsValidator setFavoriteItem(FavoritesFunctionalMenuItem menuItemJson) { - boolean result = false; - FieldsValidator fieldsValidator = new FieldsValidator(); - - Session localSession = null; - Transaction transaction = null; - - try { - logger.debug(EELFLoggerDelegate.debugLogger, - String.format("Before adding favorite for user id:{0} and menu id:{1} ", menuItemJson.userId, - menuItemJson.menuId)); - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - localSession.save(menuItemJson); - transaction.commit(); - result = true; - logger.debug(EELFLoggerDelegate.debugLogger, - String.format("After adding favorite for user id:{0} and menu id:{1} ", menuItemJson.userId, - menuItemJson.menuId)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "setFavoriteItem failed", e); - EcompPortalUtils.rollbackTransaction(transaction, "setFavoriteItem rollback, exception = " + e.toString()); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "setFavoriteItem"); - } - - if (result) { - } else { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - - return fieldsValidator; - } - - public List getFavoriteItems(Long userId) { - try { - logger.debug(EELFLoggerDelegate.debugLogger, "Before getting favorites for user id: " + userId); - - // Divide this into 2 queries: one which returns the favorites items associated - // with Restricted apps, - // and one that returns all the other favorites items. Then we can easily add - // the boolean flag - // restrictedApp to each FavoritesFunctionalMenuItemJson, to be used by the - // front end. - - String sql = "SELECT f.user_id,f.menu_id,m.text,m.url " - + " FROM fn_menu_favorites f, fn_menu_functional m, fn_menu_functional_roles mr " - + " WHERE f.user_id='" + userId + "' AND f.menu_id = m.menu_id " + " AND f.menu_id = mr.menu_id " - + " AND mr.role_id = '" + RESTRICTED_APP_ROLE_ID + "' "; - - @SuppressWarnings("unchecked") - List menuItems = dataAccessService.executeSQLQuery(sql, - FavoritesFunctionalMenuItemJson.class, null); - for (FavoritesFunctionalMenuItemJson menuItem : menuItems) { - menuItem.restrictedApp = true; - } - - sql = "SELECT DISTINCT f.user_id,f.menu_id,m.text,m.url " - + " FROM fn_menu_favorites f, fn_menu_functional m, fn_menu_functional_roles mr " - + " WHERE f.user_id='" + userId + "' AND f.menu_id = m.menu_id " + " AND f.menu_id = mr.menu_id " - + " AND mr.role_id != '" + RESTRICTED_APP_ROLE_ID + "' "; - @SuppressWarnings("unchecked") - List menuItems2 = dataAccessService.executeSQLQuery(sql, - FavoritesFunctionalMenuItemJson.class, null); - for (FavoritesFunctionalMenuItemJson menuItem : menuItems2) { - menuItem.restrictedApp = false; - menuItems.add(menuItem); - } - - return menuItems; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getFavoriteItems failed", e); - List menuItems = new ArrayList(); - return menuItems; - } - } - - public FieldsValidator removeFavoriteItem(Long userId, Long menuId) { - boolean result = false; - FieldsValidator fieldsValidator = new FieldsValidator(); - - Session localSession = null; - Transaction transaction = null; - - try { - - FavoritesFunctionalMenuItem menuItemJson = new FavoritesFunctionalMenuItem(); - menuItemJson.userId = userId; - menuItemJson.menuId = menuId; - - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - localSession.delete(menuItemJson); - localSession.flush(); - transaction.commit(); - result = true; - logger.debug(EELFLoggerDelegate.debugLogger, - String.format("After removing favorite for user id: " + userId + "; menu id: " + menuId)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "removeFavoriteItem failed", e); - EcompPortalUtils.rollbackTransaction(transaction, - "removeFavoriteItem rollback, exception = " + e.toString()); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "removeFavoriteItem"); - } - - if (result) { - } else { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - - return fieldsValidator; - } - - @Override - public void assignHelpURLs(List menuItems) { - try { - String user_guide_link = SystemProperties.getProperty(EPCommonSystemProperties.USER_GUIDE_URL); - - for (FunctionalMenuItem menuItem : menuItems) { - if (menuItem.text.equalsIgnoreCase("Contact Us")) { - menuItem.setUrl("contactUs"); - // menuItem.setRestrictedApp(true); - } - if (menuItem.text.equalsIgnoreCase("Get Access")) { - menuItem.setUrl("getAccess"); - } - if (menuItem.text.equalsIgnoreCase("User Guide")) { - menuItem.setUrl(user_guide_link); - menuItem.setRestrictedApp(true); - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "assignHelpURLs process failed", e); - } - - } - - public List getFunctionalMenuRole() { - String sql = "SELECT * from fn_menu_functional_roles"; - logQuery(sql); - logger.debug(EELFLoggerDelegate.debugLogger, "getFunctionalMenuRole: logged the query"); - - @SuppressWarnings("unchecked") - List functionalMenuRole = dataAccessService.executeSQLQuery(sql, FunctionalMenuRole.class, - null); - - return functionalMenuRole; - } - - @SuppressWarnings("unchecked") - @Override - public List getUserAppRolesList(String userId) { - Map params = new HashMap<>(); - params.put("userId", userId); - - List userAppRoles = null; - try { - userAppRoles = dataAccessService.executeNamedQuery("getUserApproles", params, null); - } catch (Exception e) { - // TODO Auto-generated catch block - logger.error(EELFLoggerDelegate.errorLogger, "getUserAppRolesList failed", e); - } - return userAppRoles; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/GetAccessService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/GetAccessService.java deleted file mode 100644 index 5857658d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/GetAccessService.java +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.GetAccessResult; - -public interface GetAccessService { - /** - * @return One entry per application function AND role; i.e., each application - * appears many times. - */ - List getAppAccessList(EPUser user); -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/GetAccessServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/GetAccessServiceImpl.java deleted file mode 100644 index 317e838e..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/GetAccessServiceImpl.java +++ /dev/null @@ -1,79 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.GetAccessResult; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; - -@Service("getAccessService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class GetAccessServiceImpl implements GetAccessService{ - - @Autowired - private DataAccessService dataAccessService; - - /* - * (non-Javadoc) - * @see org.openecomp.portalapp.portal.service.GetAccessService#getAppAccessList() - */ - @SuppressWarnings("unchecked") - @Override - public List getAppAccessList(EPUser user) { - final Map params = new HashMap<>(); - List appAccessList = null; - params.put("userId", user.getId()); - appAccessList = dataAccessService - .executeNamedQuery("getAppAccessFunctionRole", params, null); - return appAccessList; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ManifestService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ManifestService.java deleted file mode 100644 index 5e4c96a7..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ManifestService.java +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.io.IOException; -import java.util.jar.Attributes; - -public interface ManifestService { - /** - * Gets the content of the webapp manifest file META-INF/MANIFEST.MF. - * - * @return Attributes object with key-value pairs from the manifest - * @throws IOException - */ - public Attributes getWebappManifest() throws IOException; -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ManifestServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ManifestServiceImpl.java deleted file mode 100644 index 0e5da802..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/ManifestServiceImpl.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.io.IOException; -import java.io.InputStream; -import java.util.jar.Attributes; -import java.util.jar.Manifest; - -import javax.servlet.ServletContext; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; - -@Service("manifestService") -@EnableAspectJAutoProxy -@EPMetricsLog -public class ManifestServiceImpl implements ManifestService { - @Autowired - ServletContext context; - - /* - * (non-Javadoc) - * @see org.openecomp.portalapp.portal.service.ManifestService#getWebappManifest() - */ - public Attributes getWebappManifest() throws IOException { - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ManifestServiceImpl.class); - // Path to resource on classpath - final String MANIFEST_RESOURCE_PATH = "/META-INF/MANIFEST.MF"; - // Manifest is formatted as Java-style properties - try { - InputStream inputStream = context.getResourceAsStream(MANIFEST_RESOURCE_PATH); - Manifest manifest = new Manifest(inputStream); - inputStream.close(); - return manifest.getMainAttributes(); - } catch (IOException e) { - logger.error(EELFLoggerDelegate.errorLogger, "getWebappManifest: failed to read/find manifest"); - throw e; - } - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceProxyService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceProxyService.java deleted file mode 100644 index 85977ef1..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceProxyService.java +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.springframework.web.client.RestClientException; - -public interface MicroserviceProxyService { - - /** - * Gets the specific microservice from table ep_microservice, communicates - * to microservice with the specified security type. The microservice sends - * back the response. - * - * Gets the data while testing the microservice with no widget associated with - * - * @param serviceId - * Id of microservice to be used - * @return response sent from microservice - * @throws Exception - */ - String proxyToDestination(long serviceId, EPUser user, HttpServletRequest request) throws Exception; - - - - /** - * Gets the microservice data based on the user id and widget id. Different - * users have his/her own parameters for one widget. The method sends back - * the response. - * - * @param widgetId - * Id of widget to be used - * @param user - * User information - * @param request - * @return response sent from microserivce - * @throws Exception - */ - String proxyToDestinationByWidgetId(long widgetId, EPUser user, HttpServletRequest request) throws Exception; -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceProxyServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceProxyServiceImpl.java deleted file mode 100644 index acd8524a..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceProxyServiceImpl.java +++ /dev/null @@ -1,242 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import org.apache.commons.codec.binary.Base64; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.MicroserviceData; -import org.openecomp.portalapp.portal.domain.MicroserviceParameter; -import org.openecomp.portalapp.portal.domain.WidgetCatalogParameter; -import org.openecomp.portalapp.portal.domain.WidgetServiceHeaders; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; -import org.springframework.web.client.HttpClientErrorException; -import org.springframework.web.client.RestTemplate; - -@Service("microserviceProxyService") -@EnableAspectJAutoProxy -@EPMetricsLog -public class MicroserviceProxyServiceImpl implements MicroserviceProxyService { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MicroserviceProxyServiceImpl.class); - - private static final String BASIC_AUTH = "Basic Authentication"; - private static final String NO_AUTH = "No Authentication"; - private static final String COOKIE_AUTH = "Cookie based Authentication"; - private static final String QUESTION_MARK = "?"; - private static final String ADD_MARK = "&"; - - @Autowired - private ConsulHealthService consulHealthService; - @Autowired - MicroserviceService microserviceService; - @Autowired - WidgetParameterService widgetParameterService; - - private String whatService = "widgets-service"; - - private RestTemplate template = new RestTemplate(); - - @Override - public String proxyToDestination(long serviceId, EPUser user, HttpServletRequest request) throws Exception { - // get the microservice object by the id - MicroserviceData data = microserviceService.getMicroserviceDataById(serviceId); - // No such microservice available - if (data == null) { - // can we return a better response than null? - return null; - } - return authenticateAndRespond(data, request, composeParams(data, user)); - } - - @Override - public String proxyToDestinationByWidgetId(long widgetId, EPUser user, HttpServletRequest request) - throws Exception { - @SuppressWarnings({ "rawtypes", "unchecked" }) - ResponseEntity ans = (ResponseEntity) template.exchange( - EcompPortalUtils.widgetMsProtocol() + "://" - + consulHealthService.getServiceLocation(whatService, - SystemProperties.getProperty("microservices.widget.local.port")) - + "/widget/microservices/widgetCatalog/parameters/" + widgetId, - HttpMethod.GET, new HttpEntity(WidgetServiceHeaders.getInstance()), Long.class); - Long serviceId = ans.getBody(); - // get the microservice object by the id - MicroserviceData data = microserviceService.getMicroserviceDataById(serviceId); - // No such microservice available - if (data == null) - return null; - - List params = composeParams(data, user); - for (MicroserviceParameter p : params) { - WidgetCatalogParameter userValue = widgetParameterService.getUserParamById(widgetId, user.getId(), - p.getId()); - if (userValue != null) - p.setPara_value(userValue.getUser_value()); - } - return authenticateAndRespond(data, request, params); - } - - private String authenticateAndRespond(MicroserviceData data, HttpServletRequest request, - List params) throws HttpClientErrorException, IllegalArgumentException { - String response = null; - if (data.getSecurityType().equals(NO_AUTH)) { - HttpEntity entity = new HttpEntity(headersForNoAuth()); - String url = microserviceUrlConverter(data, params); - logger.debug(EELFLoggerDelegate.debugLogger, - "authenticateAndRespond: Before making no authentication call: {}", url); - response = template.exchange(url, HttpMethod.GET, entity, String.class).getBody(); - logger.debug(EELFLoggerDelegate.debugLogger, "authenticateAndRespond: No authentication call response: {}", - response); - } else if (data.getSecurityType().equals(BASIC_AUTH)) { - // encoding the username and password - String plainCreds = null; - try { - plainCreds = data.getUsername() + ":" + decryptedPassword(data.getPassword()); - } catch (Exception e) { - logger.error("authenticateAndRespond failed to decrypt password", e); - throw new IllegalArgumentException("Failed to decrypt password", e); - } - byte[] plainCredsBytes = plainCreds.getBytes(); - byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes); - String base64Creds = new String(base64CredsBytes); - - HttpEntity entity = new HttpEntity(headersForBasicAuth(request, base64Creds)); - - String url = microserviceUrlConverter(data, params); - try { - response = template.exchange(url, HttpMethod.GET, entity, String.class).getBody(); - } catch (HttpClientErrorException e) { - logger.error("authenticateAndRespond failed for basic security url " + url, e); - throw e; - } - } else if (data.getSecurityType().equals(COOKIE_AUTH)) { - HttpEntity entity = new HttpEntity(headersForCookieAuth(request)); - String url = microserviceUrlConverter(data, params); - try { - response = template.exchange(url, HttpMethod.GET, entity, String.class).getBody(); - } catch (HttpClientErrorException e) { - logger.error("authenticateAndRespond failed for cookie auth url " + url, e); - throw e; - } - } - - return response; - } - - private String decryptedPassword(String encryptedPwd) throws Exception { - String result = ""; - if (encryptedPwd != null && encryptedPwd.length() > 0) { - try { - result = CipherUtil.decrypt(encryptedPwd, - SystemProperties.getProperty(SystemProperties.Decryption_Key)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword failed", e); - throw e; - } - } - - return result; - } - - private String microserviceUrlConverter(MicroserviceData data, List params) { - String url = data.getUrl(); - for (int i = 0; i < params.size(); i++) { - if (i == 0) { - url += QUESTION_MARK; - } - url += params.get(i).getPara_key() + "=" + params.get(i).getPara_value(); - if (i != (params.size() - 1)) { - url += ADD_MARK; - } - } - - return url; - } - - private HttpHeaders headersForNoAuth() { - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON); - - return headers; - } - - // TODO: why is this generically named cookie used? - private final static String Cookie = "Cookie"; - - private HttpHeaders headersForBasicAuth(HttpServletRequest request, String base64Creds) { - HttpHeaders headers = new HttpHeaders(); - headers.add("Authorization", "Basic " + base64Creds); - headers.setContentType(MediaType.APPLICATION_JSON); - String rawCookie = request.getHeader(Cookie); - if (rawCookie != null) - headers.add(Cookie, rawCookie); - return headers; - } - - private HttpHeaders headersForCookieAuth(HttpServletRequest request) { - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON); - String rawCookie = request.getHeader(Cookie); - if (rawCookie != null) - headers.add(Cookie, rawCookie); - return headers; - } - - private List composeParams(MicroserviceData data, EPUser user) { - List params = data.getParameterList(); - MicroserviceParameter userIdParam = new MicroserviceParameter(); - userIdParam.setPara_key("userId"); - userIdParam.setPara_value(user.getOrgUserId()); - params.add(userIdParam); - return params; - } -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceService.java deleted file mode 100644 index d2ef3647..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceService.java +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.MicroserviceData; -import org.openecomp.portalapp.portal.domain.MicroserviceParameter; - -public interface MicroserviceService { - - /** - * Get all microservices from the ep_microservice - * - * @return list of all microservices - * @throws Exception - */ - List getMicroserviceData() throws Exception; - - /** - * Gets the specified microservice with id from ep_microservice - * - * @param id - * ID of microservice to be fetched - * @return the microservice with the specified id - */ - MicroserviceData getMicroserviceDataById(long id); - - /** - * Saves the specified microservice to the table ep_microservice - * - * @param newService - * Content of microservice to be saved - * @return new microservice id - * @throws Exception - */ - Long saveMicroservice(MicroserviceData newService) throws Exception; - - void saveServiceParameters(long serviceId, List list) throws Exception; - - /** - * Deletes the specified microservice from all tables where the serviceId is - * used - * - * @param serviceId - * @throws Exception - */ - void deleteMicroservice(long serviceId) throws Exception; - - /** - * Updates the specified microservice from all tables where the serviceId is - * used - * - * @param serviceId - * Id of microservice to be updated - * @param newService - * Content of microservice to be updated - * @throws Exception - */ - void updateMicroservice(long serviceId, MicroserviceData newService) throws Exception; - - /** - * Gets the Service parameters by the service Id - * - * @param serviceId - * @return List - */ - List getParametersById(long serviceId); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceServiceImpl.java deleted file mode 100644 index 23a8c504..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/MicroserviceServiceImpl.java +++ /dev/null @@ -1,219 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.crypto.BadPaddingException; - -import org.hibernate.criterion.Criterion; -import org.hibernate.criterion.Restrictions; -import org.openecomp.portalapp.portal.domain.MicroserviceData; -import org.openecomp.portalapp.portal.domain.MicroserviceParameter; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -@Service("microserviceService") -@EnableAspectJAutoProxy -@EPMetricsLog -public class MicroserviceServiceImpl implements MicroserviceService { - - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MicroserviceServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - - public Long saveMicroservice(MicroserviceData newService) throws Exception { - if (newService.getPassword() != null) - newService.setPassword(encryptedPassword(newService.getPassword())); - getDataAccessService().saveDomainObject(newService, null); - return newService.getId(); - } - - public void saveServiceParameters(long serviceId, List list) throws Exception { - for (int i = 0; i < list.size(); i++) { - MicroserviceParameter para = list.get(i); - para.setServiceId(serviceId); - getDataAccessService().saveDomainObject(para, null); - } - } - - @Override - public MicroserviceData getMicroserviceDataById(long id) { - MicroserviceData data = null; - try { - data = (MicroserviceData) dataAccessService - .getList(MicroserviceData.class, " where id = '" + id + "'", null, null).get(0); - data.setParameterList(getServiceParameters(id)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getMicroserviceDataById failed", e); - throw e; - } - return data; - } - - @SuppressWarnings("unchecked") - @Override - public List getMicroserviceData() throws Exception { - List list = (List) dataAccessService.getList(MicroserviceData.class, null); - for (int i = 0; i < list.size(); i++) { - if (list.get(i).getPassword() != null) - try{ - list.get(i).setPassword(decryptedPassword(list.get(i).getPassword())); - } catch(BadPaddingException bpe){ - logger.error(EELFLoggerDelegate.errorLogger, "Couldn't decrypt - Check decryption key in system.properties - looks wrong. Still going ahead with list population though", bpe); - } - list.get(i).setParameterList(getServiceParameters(list.get(i).getId())); - } - return list; - } - - @SuppressWarnings("unchecked") - private List getServiceParameters(long serviceId) { - List list = (List) dataAccessService - .getList(MicroserviceParameter.class, " where service_id = '" + serviceId + "'", null, null); - return list; - } - - @Override - public void deleteMicroservice(long serviceId) throws Exception { - - try { - Map params = new HashMap(); - params.put("serviceId", Long.toString(serviceId)); - - dataAccessService.executeNamedQuery("deleteMicroserviceParameter", params, null); - dataAccessService.executeNamedQuery("deleteMicroservice", params, null); - - } catch (Exception e) { - e.printStackTrace(); - logger.error(EELFLoggerDelegate.errorLogger, "deleteMicroservice failed", e); - throw e; - } - } - - @SuppressWarnings("unchecked") - @Override - public void updateMicroservice(long serviceId, MicroserviceData newService) throws Exception { - try { - newService.setId(serviceId); - if (newService.getPassword() != null) - newService.setPassword(encryptedPassword(newService.getPassword())); - getDataAccessService().saveDomainObject(newService, null); - List oldService = getServiceParameters(serviceId); - boolean foundParam; - for (int i = 0; i < oldService.size(); i++) { - foundParam = false; - for (int n = 0; n < newService.getParameterList().size(); n++) { - if (newService.getParameterList().get(n).getId().equals(oldService.get(i).getId())) { - foundParam = true; - break; - } - } - if (foundParam == false) { - MicroserviceParameter pd = oldService.get(i); - getDataAccessService().deleteDomainObject(pd, null); - } - } - for (int i = 0; i < newService.getParameterList().size(); i++) { - MicroserviceParameter param = newService.getParameterList().get(i); - param.setServiceId(serviceId); - getDataAccessService().saveDomainObject(param, null); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "updateMicroservice failed", e); - throw e; - } - saveServiceParameters(serviceId, newService.getParameterList()); - } - - @Override - @SuppressWarnings("unchecked") - public List getParametersById(long serviceId) { - List restrictionsList = new ArrayList(); - Criterion contextIdCrit = Restrictions.eq("serviceId", serviceId); - restrictionsList.add(contextIdCrit); - List list = (List) dataAccessService - .getList(MicroserviceParameter.class, null, restrictionsList, null); - logger.debug(EELFLoggerDelegate.debugLogger, - "getParametersById: microservice parameters list size: " + list.size()); - return list; - } - - private String decryptedPassword(String encryptedPwd) throws Exception { - String result = ""; - if (encryptedPwd != null & encryptedPwd.length() > 0) { - try { - result = CipherUtil.decrypt(encryptedPwd, - SystemProperties.getProperty(SystemProperties.Decryption_Key)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword failed", e); - throw e; - } - } - return result; - } - - private String encryptedPassword(String decryptedPwd) throws Exception { - String result = ""; - if (decryptedPwd != null & decryptedPwd.length() > 0) { - try { - result = CipherUtil.encrypt(decryptedPwd, - SystemProperties.getProperty(SystemProperties.Decryption_Key)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "encryptedPassword failed", e); - throw e; - } - } - return result; - } - - public DataAccessService getDataAccessService() { - return dataAccessService; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserAppService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserAppService.java deleted file mode 100644 index af69f337..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserAppService.java +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; - -public interface PersUserAppService { - - /** - * Sets the appropriate code in the user personalization table to indicate - * the application is (de)selected and/or pending. - * - * @param user - * EP User - * @param app - * EP Application - * @param select - * True or false - * @param pending - * True or false - */ - void setPersUserAppValue(EPUser user, EPApp app, boolean select, boolean pending); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserAppServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserAppServiceImpl.java deleted file mode 100644 index c547a9de..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserAppServiceImpl.java +++ /dev/null @@ -1,159 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EPUserApp; -import org.openecomp.portalapp.portal.domain.PersUserAppSelection; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; - -@Service("persUserAppService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class PersUserAppServiceImpl implements PersUserAppService { - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PersUserAppServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - @Autowired - private AdminRolesService adminRolesService; - @Autowired - private UserRolesService userRolesService; - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserAppSelectService# - * setAppCatalogSelection(org.openecomp.portalapp.portal.domain.EPUser, - * org.openecomp.portalapp.portal.transport.AppCatalogSelection) - */ - @Override - public void setPersUserAppValue(EPUser user, EPApp app, boolean select, boolean pending) { - if (user == null || app == null) - throw new IllegalArgumentException("setPersUserAppValue: Null values"); - - // Find the record for this user-app combo, if any - String filter = " where user_id = " + Long.toString(user.getId()) + " and app_id = " - + Long.toString(app.getId()); - @SuppressWarnings("unchecked") - List persList = dataAccessService.getList(PersUserAppSelection.class, filter, null, null); - - // Key constraint limits to 1 row - PersUserAppSelection persRow = null; - if (persList.size() == 1) - persRow = persList.get(0); - else - persRow = new PersUserAppSelection(null, user.getId(), app.getId(), null); - - if (app.getOpen()) { - // Pending status is not meaningful for open apps. - if (pending) - logger.error(EELFLoggerDelegate.errorLogger, - "setPersUserAppValue: invalid request, ignoring set-pending for open app"); - - // Open apps have same behavior for regular and admin users - if (select) { - // Selection of an open app requires a record - persRow.setStatusCode("S"); // show - dataAccessService.saveDomainObject(persRow, null); - } else { - // De-selection of an open app requires no record - if (persRow.getId() != null) - dataAccessService.deleteDomainObject(persRow, null); - } - } else { - // Non-open app. - - // Pending overrides select. - if (pending) { - persRow.setStatusCode("P"); - dataAccessService.saveDomainObject(persRow, null); - } else { - // Behavior depends on Portal (super) admin status, bcos an - // admin can force an app onto the dashboard. - boolean isPortalAdmin = adminRolesService.isSuperAdmin(user); - boolean adminUserHasAppRole = false; - if (isPortalAdmin) { - List roles = userRolesService.getCachedAppRolesForUser(app.getId(), user.getId()); - adminUserHasAppRole = (roles.size() > 0); - logger.debug(EELFLoggerDelegate.debugLogger, "setPersUserAppValue: app {}, admin user {}, role count {}", - app.getId(), user.getId(), roles.size()); - } - - if (select) { - if (isPortalAdmin) { - // The special case: portal admin - persRow.setStatusCode("S"); // show - dataAccessService.saveDomainObject(persRow, null); - } else { - // User has role-based access to the app. - // Showing an accessible app requires no record. - if (persRow.getId() != null) - dataAccessService.deleteDomainObject(persRow, null); - } - } // select - else { - if (isPortalAdmin && !adminUserHasAppRole) { - // The special case: portal admin, no role - if (persRow.getId() != null) - dataAccessService.deleteDomainObject(persRow, null); - } else { - // User has role-based access to the app. - // Hiding an accessible app requires a record - persRow.setStatusCode("H"); // hide - dataAccessService.saveDomainObject(persRow, null); - } - } // deselect - } - } - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserWidgetService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserWidgetService.java deleted file mode 100644 index a59e43e5..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserWidgetService.java +++ /dev/null @@ -1,57 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import org.openecomp.portalapp.portal.domain.EPUser; - -public interface PersUserWidgetService { - - /** - * Sets the appropriate code in the user personalization table to indicate - * the application is (de)selected and/or pending. - * - * @param user - * EP User - * @param widgetId - * widget - * @param select - * True or false - */ - void setPersUserAppValue(EPUser user, Long widgetId, boolean select); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserWidgetServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserWidgetServiceImpl.java deleted file mode 100644 index 5c38997f..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PersUserWidgetServiceImpl.java +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.PersUserWidgetSelection; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; - -@Service("persUserWidgetService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class PersUserWidgetServiceImpl implements PersUserWidgetService{ - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PersUserAppServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - - @Override - public void setPersUserAppValue(EPUser user, Long widgetId, boolean select) { - if (user == null || widgetId == null) - throw new IllegalArgumentException("setPersUserAppValue: Null values"); - - String filter = " where user_id = " + Long.toString(user.getId()) + " and widget_id = " - + Long.toString(widgetId); - @SuppressWarnings("unchecked") - List persList = dataAccessService.getList(PersUserWidgetSelection.class, filter, null, null); - - // Key constraint limits to 1 row - PersUserWidgetSelection persRow = null; - if (persList.size() == 1){ - persRow = persList.get(0); - } - else { - persRow = new PersUserWidgetSelection(null, user.getId(), widgetId, null); - } - if(select){ - if (persRow.getId() != null){ - dataAccessService.deleteDomainObject(persRow, null); - } - persRow.setStatusCode("S"); // show - dataAccessService.saveDomainObject(persRow, null); - } else{ - if (persRow.getId() != null){ - dataAccessService.deleteDomainObject(persRow, null); - } - persRow.setStatusCode("H"); // Hide - dataAccessService.saveDomainObject(persRow, null); - } - - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PortalAdminService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PortalAdminService.java deleted file mode 100644 index 03257f97..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PortalAdminService.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.PortalAdmin; - -public interface PortalAdminService { - List getPortalAdmins (); - FieldsValidator createPortalAdmin(String orgUserId); - FieldsValidator deletePortalAdmin(Long userId); -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PortalAdminServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PortalAdminServiceImpl.java deleted file mode 100644 index bc4c3390..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/PortalAdminServiceImpl.java +++ /dev/null @@ -1,308 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.PostConstruct; -import javax.servlet.http.HttpServletResponse; - -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.Transaction; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.transport.ExternalAccessUser; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.PortalAdmin; -import org.openecomp.portalapp.portal.transport.PortalAdminUserRole; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; - -import com.fasterxml.jackson.databind.ObjectMapper; - -@Service("portalAdminService") -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class PortalAdminServiceImpl implements PortalAdminService { - - private String SYS_ADMIN_ROLE_ID = "1"; - private String ECOMP_APP_ID = "1"; - - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PortalAdminServiceImpl.class); - - @Autowired - private SessionFactory sessionFactory; - @Autowired - private DataAccessService dataAccessService; - @Autowired - SearchService searchService; - @Autowired - private EPAppService epAppService; - - RestTemplate template = new RestTemplate(); - - @PostConstruct - private void init() { - SYS_ADMIN_ROLE_ID = SystemProperties.getProperty(SystemProperties.SYS_ADMIN_ROLE_ID); - ECOMP_APP_ID = SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID); - } - - public List getPortalAdmins() { - try { - Map params = new HashMap<>(); - params.put("adminRoleId", SYS_ADMIN_ROLE_ID); - @SuppressWarnings("unchecked") - List portalAdmins = (List) dataAccessService.executeNamedQuery("getPortalAdmins", - params, null); - logger.debug(EELFLoggerDelegate.debugLogger, "getPortalAdmins was successful"); - return portalAdmins; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getPortalAdmins failed", e); - return null; - } - } - - @SuppressWarnings("unchecked") - public FieldsValidator createPortalAdmin(String orgUserId) { - FieldsValidator fieldsValidator = new FieldsValidator(); - logger.debug(EELFLoggerDelegate.debugLogger, "LR: createPortalAdmin: test 1"); - boolean result = false; - EPUser user = null; - boolean createNewUser = false; - List localUserList = dataAccessService.getList(EPUser.class, " where orgUserId='" + orgUserId + "'", - null, null); - if (localUserList.size() > 0) { - user = localUserList.get(0); - } else { - createNewUser = true; - } - - if (user != null && isLoggedInUserPortalAdmin(user.getId())) { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); - logger.error(EELFLoggerDelegate.errorLogger, - "User '" + user.getOrgUserId() + "' already has PortalAdmin role assigned."); - } else if (user != null || createNewUser) { - Session localSession = null; - Transaction transaction = null; - try { - localSession = sessionFactory.openSession(); - - transaction = localSession.beginTransaction(); - if (createNewUser) { - user = this.searchService.searchUserByUserId(orgUserId); - if (user != null) { - // insert the user with active true in order to - // pass login phase. - user.setActive(true); - localSession.save(EPUser.class.getName(), user); - } - } - if (user != null) { - Long userid = user.getId(); - PortalAdminUserRole userRole = new PortalAdminUserRole(); - userRole.userId = userid; - userRole.roleId = Long.valueOf(SYS_ADMIN_ROLE_ID); - userRole.appId = Long.valueOf(ECOMP_APP_ID); - - localSession.save(PortalAdminUserRole.class.getName(), userRole); - } - - transaction.commit(); - // Add role in the external central auth system - if(user != null) - result = addPortalAdminInExternalCentralAuth(user.getOrgUserId(), PortalConstants.PORTAL_ADMIN_ROLE); - else - logger.error(EELFLoggerDelegate.errorLogger, "PortalAdminServiceImpl createPortalAdmin: failed to Add role in the external central auth system since User obj is null" ); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "createPortalAdmin failed", e); - EcompPortalUtils.rollbackTransaction(transaction, "createPortalAdmin rollback, exception = " + e.toString()); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "createPortalAdmin"); - } - if (!result) { - logger.debug(EELFLoggerDelegate.debugLogger, - "LR: createPortalAdmin: no result. setting httpStatusCode to " - + HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - logger.error(EELFLoggerDelegate.errorLogger, "PortalAdminServiceImpl.createPortalAdmin: bad request"); - } - } - return fieldsValidator; - } - - private boolean addPortalAdminInExternalCentralAuth(String loginId, String portalAdminRole){ - boolean result = false; - try{ - String name = ""; - if (EPCommonSystemProperties.containsProperty( - EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { - name = loginId + SystemProperties - .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); - } - EPApp app = epAppService.getApp(PortalConstants.PORTAL_APP_ID); - String extRole = app.getNameSpace()+"."+portalAdminRole.replaceAll(" ", "_"); - ObjectMapper addUserRoleMapper = new ObjectMapper(); - ExternalAccessUser extUser = new ExternalAccessUser(name, extRole); - String userRole = addUserRoleMapper.writeValueAsString(extUser); - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - - HttpEntity addUserRole = new HttpEntity<>(userRole, headers); - template.exchange( - SystemProperties.getProperty( - EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "userRole", - HttpMethod.POST, addUserRole, String.class); - result = true; - } catch (Exception e) { - // This happens only if role already exists in external central access system but not in local DB thats where we logging here - if (e.getMessage().equalsIgnoreCase("409 Conflict")) { - result = true; - logger.debug(EELFLoggerDelegate.debugLogger, "Portal Admin role already exists", e.getMessage()); - } else{ - logger.error(EELFLoggerDelegate.errorLogger, "Failed to add Portal Admin role ", e); - result = false; - } - } - return result; - } - - public FieldsValidator deletePortalAdmin(Long userId) { - FieldsValidator fieldsValidator = new FieldsValidator(); - logger.debug(EELFLoggerDelegate.debugLogger, "deletePortalAdmin: test 1"); - boolean result = false; - Session localSession = null; - Transaction transaction = null; - - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - dataAccessService.deleteDomainObjects(PortalAdminUserRole.class, - "user_id='" + userId + "' AND role_id='" + SYS_ADMIN_ROLE_ID + "'", null); - transaction.commit(); - result = deletePortalAdminInExternalCentralAuth(userId, PortalConstants.PORTAL_ADMIN_ROLE); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "deletePortalAdmin failed", e); - EcompPortalUtils.rollbackTransaction(transaction, "deletePortalAdmin rollback, exception = " + e.toString()); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "deletePortalAdmin"); - } - if (result) { - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "deletePortalAdmin: no result. setting httpStatusCode to " - + HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - return fieldsValidator; - } - - - @SuppressWarnings("unchecked") - private boolean deletePortalAdminInExternalCentralAuth(Long userId, String portalAdminRole){ - boolean result = false; - try{ - String name = ""; - List localUserList = dataAccessService.getList(EPUser.class, " where user_id = " + userId, - null, null); - if (EPCommonSystemProperties.containsProperty( - EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { - name = localUserList.get(0).getOrgUserId() + SystemProperties - .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); - } - EPApp app = epAppService.getApp(PortalConstants.PORTAL_APP_ID); - String extRole = app.getNameSpace()+"."+portalAdminRole.replaceAll(" ", "_"); - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - HttpEntity addUserRole = new HttpEntity<>(headers); - template.exchange( - SystemProperties.getProperty( - EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "userRole/"+name+"/"+extRole, - HttpMethod.DELETE, addUserRole, String.class); - result = true; - } catch (Exception e) { - if (e.getMessage().equalsIgnoreCase("404 Not Found")) { - logger.debug(EELFLoggerDelegate.debugLogger, "Portal Admin role already deleted or may not be found", e.getMessage()); - } else{ - logger.error(EELFLoggerDelegate.errorLogger, "Failed to add Portal Admin role ", e); - result = false; - } - } - return result; - } - - private void logQuery(String sql) { - logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql); - } - - private boolean isLoggedInUserPortalAdmin(Long userId) { - try { - String sql = "SELECT u.user_id, u.first_name, u.last_name, u.login_id " - + " FROM fn_user u, fn_user_role ur " + " WHERE u.user_id = ur.user_id " + " AND ur.user_id=" - + userId + " AND ur.role_id=" + SYS_ADMIN_ROLE_ID; - - logQuery(sql); - - @SuppressWarnings("unchecked") - List portalAdmins = dataAccessService.executeSQLQuery(sql, PortalAdmin.class, null); - logger.debug(EELFLoggerDelegate.debugLogger, portalAdmins.toString()); - if (portalAdmins == null || portalAdmins.size() <= 0) { - return false; - } - return true; - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "isLoggedInUserPortalAdmin failed", e); - return false; - } - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SearchService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SearchService.java deleted file mode 100644 index 56e64405..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SearchService.java +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import org.openecomp.portalapp.portal.domain.EPUser; - -public interface SearchService { - - public String searchUsersInPhoneBook(String searchString); - - public EPUser searchUserByUserId(String orgUserId); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SearchServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SearchServiceImpl.java deleted file mode 100644 index df0c3886..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SearchServiceImpl.java +++ /dev/null @@ -1,193 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.List; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.transport.UserWithNameSurnameTitle; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -@Service("searchService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class SearchServiceImpl implements SearchService { - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SearchServiceImpl.class); - - // TODO: the values below should be defined in other place - private static final int maxSizeOfSearchResult = 100; - - - @Autowired - EPLdapService ldapService; - - @Override - public String searchUsersInPhoneBook(String searchString) { - String orgUserId = null; - List tokens = EcompPortalUtils.parsingByRegularExpression(searchString, " "); - for (int i = 0; i < tokens.size(); i++) { // find orgUserId if possible and remove it from tokens - if (tokens.get(i).matches(".*\\d+.*")) { - orgUserId = tokens.get(i); - tokens.remove(i); - } - } - while (tokens.size() > 2) { // we use no more then first 2 tokens (orgUserId is removed, see above) - tokens.remove(tokens.size() - 1); - } - EPUser attrUser = new EPUser(); - attrUser.setOrgUserId(orgUserId); - List resultOfSearch = new ArrayList(), resultOfAdditionalSearch = null; - if (tokens.size() == 2) { - attrUser.setFirstName(tokens.get(0)); - attrUser.setLastName(tokens.get(1)); - resultOfSearch = this.searchUsersByAttrs(attrUser); - resultOfSearch = this.removeWrongFirstNames(resultOfSearch, tokens.get(0)); - resultOfSearch = this.removeWrongLastNames(resultOfSearch, tokens.get(1)); - if (resultOfSearch.size() < maxSizeOfSearchResult) { - attrUser.setFirstName(tokens.get(1)); - attrUser.setLastName(tokens.get(0)); - resultOfAdditionalSearch = this.searchUsersByAttrs(attrUser); - resultOfAdditionalSearch = this.removeWrongFirstNames(resultOfAdditionalSearch, tokens.get(1)); - resultOfAdditionalSearch = this.removeWrongLastNames(resultOfAdditionalSearch, tokens.get(0)); - } - } else if (tokens.size() == 1) { - attrUser.setFirstName(tokens.get(0)); - resultOfSearch = this.searchUsersByAttrs(attrUser); - resultOfSearch = this.removeWrongFirstNames(resultOfSearch, tokens.get(0)); - if (resultOfSearch.size() < maxSizeOfSearchResult) { - attrUser.setFirstName(null); - attrUser.setLastName(tokens.get(0)); - resultOfAdditionalSearch = this.searchUsersByAttrs(attrUser); - resultOfAdditionalSearch = this.removeWrongLastNames(resultOfAdditionalSearch, tokens.get(0)); - } - } else if (orgUserId != null) { - resultOfSearch = this.searchUsersByAttrs(attrUser); - } - if (resultOfAdditionalSearch != null) { - resultOfSearch.addAll(resultOfAdditionalSearch); - } - resultOfSearch = this.cutSearchResultToMaximumSize(resultOfSearch); - ObjectMapper mapper = new ObjectMapper(); - String result = "[]"; - try { - result = mapper.writeValueAsString(resultOfSearch); - } catch (JsonProcessingException e) { - logger.error(EELFLoggerDelegate.errorLogger, "searchUsersInPhoneBook failed", e); - } - return result; - } - - private List searchUsersByAttrs(EPUser attrUser) { - List foundUsers = new ArrayList(); - try { - org.openecomp.portalsdk.core.command.support.SearchResult searchResult = this.ldapService.searchPost(attrUser, null, null, null, 0, 0, -1); - for (Object obj : searchResult) { - EPUser user = (EPUser) obj; - UserWithNameSurnameTitle foundUser = new UserWithNameSurnameTitle(user.getOrgUserId(), user.getFirstName(), user.getLastName(), user.getJobTitle()); - foundUsers.add(foundUser); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "searchUsersByAttrs failed", e); - } - return foundUsers; - } - - private List removeWrongFirstNames(List resultOfSearch, String firstName) { - firstName = firstName.toUpperCase(); - for (int i = resultOfSearch.size() - 1; i >= 0; i--) { - UserWithNameSurnameTitle user = resultOfSearch.get(i); - if ((user.firstName == null) || !user.firstName.toUpperCase().startsWith(firstName)) { - resultOfSearch.remove(i); - } - } - return resultOfSearch; - } - - private List removeWrongLastNames(List resultOfSearch, String lastName) { - lastName = lastName.toUpperCase(); - for (int i = resultOfSearch.size() - 1; i >= 0; i--) { - UserWithNameSurnameTitle user = resultOfSearch.get(i); - if ((user.lastName == null) || !user.lastName.toUpperCase().startsWith(lastName)) { - resultOfSearch.remove(i); - } - } - return resultOfSearch; - } - - private List cutSearchResultToMaximumSize(List resultOfSearch) { - for (int i = resultOfSearch.size() - 1; i >= maxSizeOfSearchResult; i--) { - resultOfSearch.remove(i); - } - return resultOfSearch; - } - - @Override - @SuppressWarnings("unchecked") - public EPUser searchUserByUserId(String orgUserId) { - EPUser user = null; - EPUser searchedUser = new EPUser(); - searchedUser.setOrgUserId(orgUserId); - try { - List searchResult = ldapService.searchPost(searchedUser, "", null, null, 0, -1, 1); - for (Object obj : searchResult) { - if (obj instanceof EPUser) { - user = (EPUser) obj; - // This assignment should be checked later! - user.setLoginId(orgUserId); - break; - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "searchUserByUserId failed", e); - } - return user; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SharedContextService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SharedContextService.java deleted file mode 100644 index 24b164ed..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SharedContextService.java +++ /dev/null @@ -1,118 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.SharedContext; - -/** - * Defines the methods exposed by the service that manages shared context - * objects in the database. - */ -public interface SharedContextService { - - /** - * Gets all shared context objects for the specified context ID. - * - * @param contextId - * SharedContext ID - * @return List of SharedContext objects - */ - List getSharedContexts(String contextId); - - /** - * Gets the shared context with the specified context ID and key. - * - * @param contextId - * Context ID; usually a session ID - * @param key - * Key for the key-value pair - * @return Value found in the database, null if any parameter is null or no - * shared context exists with that context ID - key pair. - */ - SharedContext getSharedContext(String contextId, String key); - - /** - * Creates a new shared context entry with the specified context ID, key and - * value. - * - * @param contextId - * SharedContext ID - * @param key - * Key for the key-value pair. - * @param value - * Value for the key-value pair. - */ - void addSharedContext(String contextId, String key, String value); - - /** - * Saves the specified shared context. - * - * @param context - * SharedContext object to save. - */ - void saveSharedContext(SharedContext context); - - /** - * Deletes the specified shared context. - * - * @param context - * SharedContext object to delete. - */ - void deleteSharedContext(SharedContext context); - - /** - * Deletes all shared contexts with the specified context ID. - * - * @param contextId - * Context ID; usually a session ID - * @return number of shared-context objects deleted - */ - int deleteSharedContexts(String contextId); - - /** - * Deletes all shared contexts with a creation time that is older than the - * specified value. - * - * @param ageInSeconds - * Expiration threshold in seconds - */ - void expireSharedContexts(int ageInSeconds); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SharedContextServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SharedContextServiceImpl.java deleted file mode 100644 index 37b38703..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/SharedContextServiceImpl.java +++ /dev/null @@ -1,195 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import org.hibernate.criterion.Criterion; -import org.hibernate.criterion.Restrictions; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalapp.portal.domain.SharedContext; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; - -/** - * Implementation of the shared-context service that talks to the database. - */ -@Service("sharedContextService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class SharedContextServiceImpl implements SharedContextService { - - @Autowired - private DataAccessService dataAccessService; - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SharedContextServiceImpl.class); - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalsdk.core.service.SharedContextService# - * getSharedContexts() - */ - @Override - @SuppressWarnings("unchecked") - public List getSharedContexts(String contextId) { - List restrictionsList = new ArrayList(); - Criterion contextIdCrit = Restrictions.eq("context_id", contextId); - restrictionsList.add(contextIdCrit); - List contexts = (List) getDataAccessService().getList(SharedContext.class, null, - restrictionsList, null); - - return contexts; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalsdk.core.service.SharedContextService# - * getSharedContext(java. lang.String, java.lang.String) - */ - @Override - public SharedContext getSharedContext(String contextId, String key) { - SharedContext context = null; - List restrictionsList = new ArrayList(); - Criterion contextIdCrit = Restrictions.eq("context_id", contextId); - Criterion keyCrit = Restrictions.eq("ckey", key); - restrictionsList.add(contextIdCrit); - restrictionsList.add(keyCrit); - @SuppressWarnings("unchecked") - List contexts = (List) getDataAccessService().getList(SharedContext.class, null, - restrictionsList, null); - if (contexts != null && contexts.size() == 1) - context = contexts.get(0); - - return context; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.SharedContextService# - * addSharedContext(java.lang.String, java.lang.String, java.lang.String) - */ - @Override - public void addSharedContext(String contextId, String key, String value) { - SharedContext context = new SharedContext(contextId, key, value); - saveSharedContext(context); - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalsdk.core.service.SharedContextService# - * saveSharedContext(org.openecomp.portalapp.portal.domain.SharedContext) - */ - @Override - public void saveSharedContext(SharedContext context) { - getDataAccessService().saveDomainObject(context, null); - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalsdk.core.service.SharedContextService# - * deleteSharedContext(org.openecomp.portalapp.portal.domain.SharedContext) - */ - @Override - public void deleteSharedContext(SharedContext context) { - getDataAccessService().deleteDomainObject(context, null); - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.SharedContextService# - * deleteSharedContexts(java.lang.String) - */ - @Override - public int deleteSharedContexts(String contextId) { - // Uses an inefficient method to avoid a where clause - // that could be used to mount a SQL injection attack. - List contexts = getSharedContexts(contextId); - if (contexts == null) - return 0; - - logger.debug(EELFLoggerDelegate.debugLogger, "deleteSharedContexts: count is " + contexts.size()); - for (SharedContext sc : contexts) - deleteSharedContext(sc); - - return contexts.size(); - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.SharedContextService# - * expireSharedContexts(int) - */ - @Override - public void expireSharedContexts(int ageInSeconds) { - // Specific to the MySQL database. - // final String whereClause = " where create_time < ADDDATE(NOW(), - // INTERVAL - " + ageInSeconds + " SECOND)"; - final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date expiredDateTime = new Date(System.currentTimeMillis() - ageInSeconds * 1000); - logger.debug(EELFLoggerDelegate.debugLogger, - "expireSharedContexts: expire time is " + expiredDateTime.toString()); - final String whereClause = " create_time < '" + dateFormat.format(expiredDateTime) + "'"; - getDataAccessService().deleteDomainObjects(SharedContext.class, whereClause, null); - } - - public DataAccessService getDataAccessService() { - return dataAccessService; - } - - public void setDataAccessService(DataAccessService dataAccessService) { - this.dataAccessService = dataAccessService; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/TicketEventService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/TicketEventService.java deleted file mode 100644 index 4219e035..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/TicketEventService.java +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import com.fasterxml.jackson.databind.JsonNode; - -public interface TicketEventService { - - public String getNotificationHyperLink(JsonNode application, String ticket, String eventSource); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserNotificationService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserNotificationService.java deleted file mode 100644 index 4aa6a180..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserNotificationService.java +++ /dev/null @@ -1,158 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EcompAppRole; -import org.openecomp.portalapp.portal.transport.EpNotificationItem; -import org.openecomp.portalapp.portal.transport.EpNotificationItemVO; -import org.openecomp.portalapp.portal.transport.EpRoleNotificationItem; - -public interface UserNotificationService { - - /** - * Gets the specified notifications with userId from ep_notification - * - * @param userId - * - * @return the notifications with the specified userId - */ - - List getNotifications(Long userId); - - /** - * Gets the specified roles from ep_role_notification - * - * @param notificationId - * - * @return the roles for a specified notification - */ - - List getNotificationRoles(Long notificationId); - - /** - * Get all app role list from the fn_app and fn_role table - * - * @return list of all roles associated with the applications - */ - List getAppRoleList(); - - /** - * Marks the notification as viewed by the specified user. - * - * @param notificationId - * @param userId - */ - void setNotificationRead(Long notificationId, int userId); - - /** - * Saves the specified notification to the table ep_notification - * - * @param notificationItem - * @throws Exception - */ - - String saveNotification(EpNotificationItem notificationItem) throws Exception; - - /** - * Gets the specified notification with the userId for view all recent - * notifications - * - * @param userId - * - * @return the notification list - */ - - List getNotificationHistoryVO(Long userId); - - /** - * Gets the notifications with the userId for user notifications - * - * @param userId - * - * @return the notification list - */ - - List getAdminNotificationVOS(Long userId); - - /** - * Gets the user list from fn_user - * - * @param OrgIds - * - * @return the users list - */ - - List getUsersByOrgIds(List OrgIds); - - /** - * Gets the received recipient to whom the notification is delivered from - * external system - * - * @param notificationId - * - * @return the active users - */ - - List getMessageRecipients(Long notificationId); - - /** - * delete the records from ep_notification table when the endtime is more - * than 3 months - * - */ - - void deleteNotificationsFromEpNotificationTable(); - - /** - * delete the records from ep_user_notification table when the endtime is - * more than 3 months - * - */ - void deleteNotificationsFromEpUserNotificationTable(); - - /** - * delete the records from ep_role_notification table when the endtime is - * more than 3 months - * - */ - void deleteNotificationsFromEpRoleNotificationTable(); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserNotificationServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserNotificationServiceImpl.java deleted file mode 100644 index 329d4e8a..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserNotificationServiceImpl.java +++ /dev/null @@ -1,262 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.hibernate.SessionFactory; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EPUserNotification; -import org.openecomp.portalapp.portal.domain.EcompAppRole; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.transport.EpNotificationItem; -import org.openecomp.portalapp.portal.transport.EpNotificationItemVO; -import org.openecomp.portalapp.portal.transport.EpRoleNotificationItem; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -@Service("userNotificationService") -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class UserNotificationServiceImpl implements UserNotificationService { - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FunctionalMenuServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - @Autowired - private SessionFactory sessionFactory; - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserNotificationService# - * getNotifications(java.lang.Long) - */ - @Override - public List getNotifications(Long userId) { - Map params = new HashMap(); - params.put("user_id", userId.toString()); - @SuppressWarnings("unchecked") - List notificationList = dataAccessService.executeNamedQuery("getNotifications", params, - null); - // set the roles to null for pure retrieval of all notifications - for (EpNotificationItem item : notificationList) { - item.setRoles(null); - } - return notificationList; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserNotificationService# - * getNotificationHistoryVO(java.lang.Long) - */ - @Override - public List getNotificationHistoryVO(Long userId) { - Map params = new HashMap(); - params.put("user_id", userId.toString()); - @SuppressWarnings("unchecked") - List notificationList = dataAccessService.executeNamedQuery("getNotificationHistoryVO", - params, null); - return notificationList; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserNotificationService# - * getAdminNotificationVOS() - */ - @Override - public List getAdminNotificationVOS(Long userId) { - Map params = new HashMap(); - params.put("user_id", userId.toString()); - @SuppressWarnings("unchecked") - List notificationList = dataAccessService - .executeNamedQuery("getAdminNotificationHistoryVO", params, null); - return notificationList; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserNotificationService# - * getNotificationRoles(java.lang.Long) - */ - @Override - public List getNotificationRoles(Long notificationId) { - Map params = new HashMap(); - params.put("notificationId", Long.toString(notificationId)); - @SuppressWarnings("unchecked") - List roleNotifList = dataAccessService.executeNamedQuery("getNotificationRoles", params, - null); - return roleNotifList; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserNotificationService# - * getAppRoleList() - */ - @SuppressWarnings("unchecked") - @Override - public List getAppRoleList() { - List appRoleList = (List) dataAccessService - .executeNamedQuery("getEpNotificationAppRoles", null, null); - return appRoleList; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserNotificationService# - * setNotificationsRead(java.lang.Long, int) - */ - @Override - public void setNotificationRead(Long notificationId, int userId) { - EPUserNotification userNotification = new EPUserNotification(); - userNotification.setNotificationId(notificationId); - userNotification.setUpdateTime(new Date()); - userNotification.setViewed("Y"); - userNotification.setUserId((long) userId); - getDataAccessService().saveDomainObject(userNotification, null); - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserNotificationService# - * saveNotification(org.openecomp.portalapp.portal.transport. - * EpNotificationItem) - */ - @Override - public String saveNotification(EpNotificationItem notificationItem) throws Exception { - - // gather the roles - if (notificationItem.getRoleIds() != null && !notificationItem.getIsForAllRoles().equals("Y")) { - if (notificationItem.getRoles() == null) { - Set roleSet = new HashSet(); - notificationItem.setRoles(roleSet); - } - for (Long roleId : notificationItem.getRoleIds()) { - EpRoleNotificationItem roleItem = new EpRoleNotificationItem(); - roleItem.setNotificationId(notificationItem.getNotificationId()); - roleItem.setRoleId(roleId.intValue()); - notificationItem.getRoles().add(roleItem); - } - } - - // for updates fetch roles and then save - if (notificationItem.getNotificationId() != null) { - EpNotificationItem updateNotificationItem = (EpNotificationItem) getDataAccessService() - .getDomainObject(EpNotificationItem.class, notificationItem.getNotificationId(), null); - notificationItem.setRoles(updateNotificationItem.getRoles()); - } - if (notificationItem.msgSource == null) { - notificationItem.setMsgSource("EP"); - } - getDataAccessService().saveDomainObject(notificationItem, null); - return ""; - - } - - @Override - public List getUsersByOrgIds(List OrgIds) { - Map params = new HashMap(); - params.put("OrgIds", OrgIds); - @SuppressWarnings("unchecked") - List userList = dataAccessService.executeNamedQuery("getUsersByOrgIdsNotifications", params, null); - return userList; - } - - @Override - public List getMessageRecipients(Long notificationId) { - Map params = new HashMap<>(); - params.put("notificationId", Long.toString(notificationId)); - @SuppressWarnings("unchecked") - List activeUsers = dataAccessService.executeNamedQuery("messageRecipients", params, null); - return activeUsers; - } - - public DataAccessService getDataAccessService() { - return dataAccessService; - } - - public void setDataAccessService(DataAccessService dataAccessService) { - this.dataAccessService = dataAccessService; - } - - public SessionFactory getSessionFactory() { - return sessionFactory; - } - - public void setSessionFactory(SessionFactory sessionFactory) { - this.sessionFactory = sessionFactory; - } - - @Override - public void deleteNotificationsFromEpNotificationTable() { - Map params = new HashMap(); - dataAccessService.executeNamedUpdateQuery("deleteNotificationsFromEpNotificationTable", params, null); - } - - @Override - public void deleteNotificationsFromEpUserNotificationTable() { - Map params = new HashMap(); - dataAccessService.executeNamedUpdateQuery("deleteNotificationsFromEpUserNotificationTable", params, null); - - } - - @Override - public void deleteNotificationsFromEpRoleNotificationTable() { - Map params = new HashMap(); - dataAccessService.executeNamedUpdateQuery("deleteNotificationsFromEpRoleNotificationTable", params, null); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesCommonServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesCommonServiceImpl.java deleted file mode 100644 index f5bdca77..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesCommonServiceImpl.java +++ /dev/null @@ -1,1952 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.service; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.lang.StringUtils; -import org.apache.cxf.transport.http.HTTPException; -import org.hibernate.SQLQuery; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.Transaction; -import org.json.JSONArray; -import org.json.JSONObject; -import org.openecomp.portalapp.externalsystemapproval.model.ExternalSystemRoleApproval; -import org.openecomp.portalapp.externalsystemapproval.model.ExternalSystemUser; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EPUserApp; -import org.openecomp.portalapp.portal.domain.EPUserAppCatalogRoles; -import org.openecomp.portalapp.portal.domain.EPUserAppRoles; -import org.openecomp.portalapp.portal.domain.EPUserAppRolesRequest; -import org.openecomp.portalapp.portal.domain.EPUserAppRolesRequestDetail; -import org.openecomp.portalapp.portal.domain.ExternalSystemAccess; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.transport.AppWithRolesForUser; -import org.openecomp.portalapp.portal.transport.CentralRole; -import org.openecomp.portalapp.portal.transport.EPUserAppCurrentRoles; -import org.openecomp.portalapp.portal.transport.EcompUserAppRoles; -import org.openecomp.portalapp.portal.transport.ExternalAccessUser; -import org.openecomp.portalapp.portal.transport.ExternalAccessUserRoleDetail; -import org.openecomp.portalapp.portal.transport.ExternalRequestFieldsValidator; -import org.openecomp.portalapp.portal.transport.ExternalRoleDescription; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItem; -import org.openecomp.portalapp.portal.transport.FunctionalMenuRole; -import org.openecomp.portalapp.portal.transport.RemoteRole; -import org.openecomp.portalapp.portal.transport.RemoteUserWithRoles; -import org.openecomp.portalapp.portal.transport.RoleInAppForUser; -import org.openecomp.portalapp.portal.transport.RolesInAppForUser; -import org.openecomp.portalapp.portal.transport.UserApplicationRoles; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.portal.utils.PortalConstants; -import org.openecomp.portalsdk.core.domain.Role; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.restful.domain.EcompRole; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.service.RoleService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; -import org.springframework.web.client.RestTemplate; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; - -@EPMetricsLog -public class UserRolesCommonServiceImpl { - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserRolesCommonServiceImpl.class); - - private static final Object syncRests = new Object(); - - @Autowired - private DataAccessService dataAccessService; - @Autowired - private SessionFactory sessionFactory; - @Autowired - private SearchService searchService; - @Autowired - private EPAppService appsService; - @Autowired - private ApplicationsRestClientService applicationsRestClientService; - @Autowired - private EPRoleService epRoleService; - @Autowired - private RoleService roleService; - - @Autowired - private ExternalAccessRolesService externalAccessRolesService; - - RestTemplate template = new RestTemplate(); - - /** - * - * @param ecompRoles - * @return HashMap - */ - private static HashMap hashMapFromEcompRoles(EcompRole[] ecompRoles) { - HashMap result = new HashMap(); - if (ecompRoles != null) { - for (int i = 0; i < ecompRoles.length; i++) { - if (ecompRoles[i].getId() != null) { - result.put(ecompRoles[i].getId(), ecompRoles[i]); - } - } - } - return result; - } - - /** - * - * @param userId - */ - protected void createLocalUserIfNecessary(String userId) { - if (StringUtils.isEmpty(userId)) { - logger.error(EELFLoggerDelegate.errorLogger, "createLocalUserIfNecessary : empty userId!"); - return; - } - Session localSession = null; - Transaction transaction = null; - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - @SuppressWarnings("unchecked") - List userList = localSession - .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + userId + "'").list(); - if (userList.size() == 0) { - EPUser client = searchService.searchUserByUserId(userId); - if (client == null) { - String msg = "createLocalUserIfNecessary: cannot create user " + userId - + ", because not found in phonebook"; - logger.error(EELFLoggerDelegate.errorLogger, msg); - } else { - client.setLoginId(userId); - client.setActive(true); - localSession.save(client); - } - } - transaction.commit(); - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - EcompPortalUtils.rollbackTransaction(transaction, "searchOrCreateUser rollback, exception = " + e); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "searchOrCreateUser"); - } - } - - /** - * This method return nothing and remove roles before adding any roles for an - * app - * - * @param userRole - * @param appId - * @param localSession - * @param userAppRoles - * @param newUserAppRolesMap - */ - private static void syncUserRolesExtension(EPUserApp userRole, Long appId, Session localSession, - EcompRole[] userAppRoles, HashMap newUserAppRolesMap) { - - Long userAppRoleId = 0L; - if (appId == PortalConstants.PORTAL_APP_ID) { // local app - userAppRoleId = userRole.getRoleId(); - } else { // remote app - userAppRoleId = userRole.getAppRoleId(); - } - - if (!newUserAppRolesMap.containsKey(userAppRoleId)) { - localSession.delete(userRole); - } else { - newUserAppRolesMap.remove(userAppRoleId); - } - } - - /** - * Checks whether the role is inactive - * - * @param epRole - * @throws Exception - * if role is inactive, throws exception - */ - private void checkIfRoleInactive(EPRole epRole) throws Exception { - if (!epRole.getActive()) { - throw new Exception(epRole.getName() + " role is unavailable"); - } - } - - /** - * - * @param sessionFactory - * @param userId - * @param appId - * @param userAppRoles - * @param extRequestValue - * set to false if request is from users page otherwise true - * @throws Exception - */ - protected void syncUserRoles(SessionFactory sessionFactory, String userId, Long appId, EcompRole[] userAppRoles, - Boolean extRequestValue, String reqType) throws Exception { - boolean result = false; - Session localSession = null; - Transaction transaction = null; - String roleActive = null; - final Map userAppParams = new HashMap<>(); - final Map appParams = new HashMap<>(); - HashMap newUserAppRolesMap = hashMapFromEcompRoles(userAppRoles); - - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - @SuppressWarnings("unchecked") - List userList = localSession - .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + userId + "'").list(); - if (userList.size() > 0) { - EPUser client = userList.get(0); - roleActive = ("DELETE".equals(reqType)) ? "" : " and role.active = 'Y'"; - @SuppressWarnings("unchecked") - List userRoles = localSession.createQuery("from " + EPUserApp.class.getName() - + " where app.id=" + appId + roleActive + " and userId=" + client.getId()).list(); - - if ("DELETE".equals(reqType)) { - for (EPUserApp userAppRoleList : userRoles) { - userAppParams.put("roleName", String.valueOf(userAppRoleList.getRole().getName())); - userAppParams.put("appId", String.valueOf(appId)); - appParams.put("appRoleName", userAppRoleList.getRole().getName()); - @SuppressWarnings("unchecked") - List rolesList = (!userAppRoleList.getRole().getName() - .equals(PortalConstants.ADMIN_ROLE)) - ? (List) dataAccessService.executeNamedQuery("getAppRoles", - userAppParams, null) - : (List) dataAccessService.executeNamedQuery("getPortalAppRoles", - appParams, null); - if (rolesList.size() > 0 || !rolesList.isEmpty()) { - checkIfRoleInactive(rolesList.get(0)); - } - } - } - - for (EPUserApp userRole : userRoles) { - if (!userRole.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID) - && userRole.getRoleId() != PortalConstants.SYS_ADMIN_ROLE_ID && !extRequestValue) { - syncUserRolesExtension(userRole, appId, localSession, userAppRoles, newUserAppRolesMap); - } else if (extRequestValue - && ("PUT".equals(reqType) || "POST".equals(reqType) || "DELETE".equals(reqType))) { - syncUserRolesExtension(userRole, appId, localSession, userAppRoles, newUserAppRolesMap); - } else if (extRequestValue && !userRole.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)) { - syncUserRolesExtension(userRole, appId, localSession, userAppRoles, newUserAppRolesMap); - } - } - Collection newRolesToAdd = newUserAppRolesMap.values(); - if (newRolesToAdd.size() > 0) { - EPApp app = (EPApp) localSession.get(EPApp.class, appId); - - HashMap rolesMap = new HashMap(); - if (appId.equals(PortalConstants.PORTAL_APP_ID)) { // local app - String appIdValue = ""; - if (!extRequestValue) { - appIdValue = "and id != " + PortalConstants.SYS_ADMIN_ROLE_ID; - } - @SuppressWarnings("unchecked") - List roles = localSession - .createQuery("from " + EPRole.class.getName() + " where appId is null " + appIdValue) - .list(); - for (EPRole role : roles) { - role.setAppId(1L); - rolesMap.put(role.getId(), role); - } - } else { // remote app - @SuppressWarnings("unchecked") - List roles = localSession - .createQuery("from " + EPRole.class.getName() + " where appId=" + appId).list(); - for (EPRole role : roles) { - if (!extRequestValue && app.getCentralAuth()) { - rolesMap.put(role.getId(), role); - } else { - rolesMap.put(role.getAppRoleId(), role); - } - } - } - - EPRole role = null; - for (EcompRole userRole : newRolesToAdd) { - EPUserApp userApp = new EPUserApp(); - if (("PUT".equals(reqType) || "POST".equals(reqType)) - && userRole.getName().equals(PortalConstants.ADMIN_ROLE)) { - role = (EPRole) localSession.get(EPRole.class, - new Long(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)); - userApp.setRole(role); - } else if ((userRole.getId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)) - && !extRequestValue) { - continue; - } else if ((userRole.getId().equals(PortalConstants.SYS_ADMIN_ROLE_ID)) - && app.getId().equals(PortalConstants.PORTAL_APP_ID) && !extRequestValue) { - continue; - } else { - userApp.setRole(rolesMap.get(userRole.getId())); - } - - userApp.setUserId(client.getId()); - userApp.setApp(app); - localSession.save(userApp); - localSession.flush(); - } - - if (appId == PortalConstants.PORTAL_APP_ID) { - /* - * for local app -- hack - always make sure fn_role table's app_id is null and - * not 1 for primary app in this case being ecomp portal app; reason: hibernate - * is rightly setting this to 1 while persisting to fn_role as per the mapping - * but SDK role management code expects the app_id to be null as there is no - * concept of App_id in SDK - */ - localSession.flush(); - SQLQuery sqlQuery = localSession - .createSQLQuery("update fn_role set app_id = null where app_id = 1 "); - sqlQuery.executeUpdate(); - - } - } - } - transaction.commit(); - result = true; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "syncUserRoles failed", e); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - EcompPortalUtils.rollbackTransaction(transaction, - "Exception occurred in syncUserRoles, Details: " + e.toString()); - if ("DELETE".equals(reqType)) { - throw new Exception(e.getMessage()); - } - } finally { - localSession.close(); - if (!result && !"DELETE".equals(reqType)) { - throw new Exception( - "Exception occurred in syncUserRoles while closing database session for app: '" + appId + "'."); - } - } - } - - /** - * Called when getting the list of roles for the user - * - * @param appRoles - * @param userAppRoles - * @return List - */ - protected List constructRolesInAppForUserGet(EcompRole[] appRoles, EcompRole[] userAppRoles) { - List rolesInAppForUser = new ArrayList(); - - Set userAppRolesMap = new HashSet(); - if (userAppRoles != null) { - for (EcompRole ecompRole : userAppRoles) { - userAppRolesMap.add(ecompRole.getId()); - } - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "constructRolesInAppForUserGet has received userAppRoles list empty"); - } - - if (appRoles != null) { - for (EcompRole ecompRole : appRoles) { - RoleInAppForUser roleForUser = new RoleInAppForUser(ecompRole.getId(), ecompRole.getName()); - roleForUser.isApplied = userAppRolesMap.contains(ecompRole.getId()); - rolesInAppForUser.add(roleForUser); - } - } else { - logger.error(EELFLoggerDelegate.errorLogger, "constructRolesInAppForUser has received appRoles list empty"); - } - return rolesInAppForUser; - } - - /** - * Called when getting the list of roles for the user - * - * @param appRoles - * @param userAppRoles - * @param extRequestValue - * set to false if request is from users page otherwise true - * @return List - */ - protected List constructRolesInAppForUserGet(List appRoles, EPRole[] userAppRoles, - Boolean extRequestValue) { - List rolesInAppForUser = new ArrayList(); - - Set userAppRolesMap = new HashSet(); - if (userAppRoles != null) { - for (EPRole ecompRole : userAppRoles) { - userAppRolesMap.add(ecompRole.getId()); - } - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "constructRolesInAppForUserGet has received userAppRoles list empty."); - } - - if (appRoles != null) { - for (Role ecompRole : appRoles) { - if (ecompRole.getId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID) && !extRequestValue) - continue; - RoleInAppForUser roleForUser = new RoleInAppForUser(ecompRole.getId(), ecompRole.getName()); - roleForUser.isApplied = userAppRolesMap.contains(ecompRole.getId()); - rolesInAppForUser.add(roleForUser); - } - } else { - logger.error(EELFLoggerDelegate.errorLogger, - "constructRolesInAppForUser has received appRoles list empty."); - } - return rolesInAppForUser; - } - - /** - * copies of methods in GetAppsWithUserRoleState - * - * @param sessionFactory - * @param appId - * @param appRoles - * @throws Exception - */ - protected void syncAppRoles(SessionFactory sessionFactory, Long appId, EcompRole[] appRoles) throws Exception { - logger.debug(EELFLoggerDelegate.debugLogger, "entering syncAppRoles for appId: " + appId); - HashMap newRolesMap = hashMapFromEcompRoles(appRoles); - Session localSession = null; - Transaction transaction = null; - - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - // Attention! All roles from remote application supposed to be - // active! - @SuppressWarnings("unchecked") - List currentAppRoles = localSession - .createQuery("from " + EPRole.class.getName() + " where appId=" + appId).list(); - List obsoleteRoles = new ArrayList(); - for (int i = 0; i < currentAppRoles.size(); i++) { - EPRole oldAppRole = currentAppRoles.get(i); - if (oldAppRole.getAppRoleId() != null) { - EcompRole role = null; - role = newRolesMap.get(oldAppRole.getAppRoleId()); - if (role != null) { - if (!(role.getName() == null || oldAppRole.getName().equals(role.getName()))) { - oldAppRole.setName(role.getName()); - localSession.update(oldAppRole); - } - newRolesMap.remove(oldAppRole.getAppRoleId()); - } else { - obsoleteRoles.add(oldAppRole); - } - } else { - obsoleteRoles.add(oldAppRole); - } - } - Collection newRolesToAdd = newRolesMap.values(); - if (obsoleteRoles.size() > 0) { - logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: we have obsolete roles to delete"); - for (EPRole role : obsoleteRoles) { - logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: obsolete role: " + role.toString()); - Long roleId = role.getId(); - // delete obsolete roles here - // Must delete all records with foreign key constraints on - // fn_role: - // fn_user_role, fn_role_composite, fn_role_function, - // fn_user_pseudo_role, fn_menu_functional_roles. - // And for fn_menu_functional, if no other roles for that - // menu item, remove the url. - - // Delete from fn_user_role - @SuppressWarnings("unchecked") - List userRoles = localSession.createQuery( - "from " + EPUserApp.class.getName() + " where app.id=" + appId + " and role_id=" + roleId) - .list(); - - logger.debug(EELFLoggerDelegate.debugLogger, - "syncAppRoles: number of userRoles to delete: " + userRoles.size()); - for (EPUserApp userRole : userRoles) { - logger.debug(EELFLoggerDelegate.debugLogger, - "syncAppRoles: about to delete userRole: " + userRole.toString()); - localSession.delete(userRole); - logger.debug(EELFLoggerDelegate.debugLogger, - "syncAppRoles: finished deleting userRole: " + userRole.toString()); - } - - // Delete from fn_menu_functional_roles - @SuppressWarnings("unchecked") - List funcMenuRoles = localSession - .createQuery("from " + FunctionalMenuRole.class.getName() + " where roleId=" + roleId) - .list(); - int numMenuRoles = funcMenuRoles.size(); - logger.debug(EELFLoggerDelegate.debugLogger, - "syncAppRoles: number of funcMenuRoles for roleId: " + roleId + ": " + numMenuRoles); - for (FunctionalMenuRole funcMenuRole : funcMenuRoles) { - Long menuId = funcMenuRole.menuId; - // If this is the only role for this menu item, then the - // app and roles will be gone, - // so must null out the url too, to be consistent - @SuppressWarnings("unchecked") - List funcMenuRoles2 = localSession - .createQuery("from " + FunctionalMenuRole.class.getName() + " where menuId=" + menuId) - .list(); - int numMenuRoles2 = funcMenuRoles2.size(); - logger.debug(EELFLoggerDelegate.debugLogger, - "syncAppRoles: number of funcMenuRoles for menuId: " + menuId + ": " + numMenuRoles2); - localSession.delete(funcMenuRole); - if (numMenuRoles2 == 1) { - // If this is the only role for this menu item, then - // the app and roles will be gone, - // so must null out the url too, to be consistent - logger.debug(EELFLoggerDelegate.debugLogger, - "syncAppRoles: There is exactly 1 menu item for this role, so emptying the url"); - @SuppressWarnings("unchecked") - List funcMenuItems = localSession - .createQuery( - "from " + FunctionalMenuItem.class.getName() + " where menuId=" + menuId) - .list(); - if (funcMenuItems.size() > 0) { - logger.debug(EELFLoggerDelegate.debugLogger, "got the menu item"); - FunctionalMenuItem funcMenuItem = funcMenuItems.get(0); - funcMenuItem.url = ""; - localSession.update(funcMenuItem); - } - } - } - externalAccessRolesService.deleteRoleDependencyRecords(localSession, roleId, appId); - logger.debug(EELFLoggerDelegate.debugLogger, - "syncAppRoles: about to delete the role: " + role.toString()); - localSession.delete(role); - localSession.flush(); - logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: deleted the role"); - } - } - for (EcompRole role : newRolesToAdd) { - logger.debug(EELFLoggerDelegate.debugLogger, - "syncAppRoles: about to add missing role: " + role.toString()); - EPRole newRole = new EPRole(); - // Attention! All roles from remote application supposed to be - // active! - newRole.setActive(true); - newRole.setName(role.getName()); - newRole.setAppId(appId); - newRole.setAppRoleId(role.getId()); - localSession.save(newRole); - } - logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: about to commit the transaction"); - transaction.commit(); - logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: committed the transaction"); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "syncAppRoles failed", e); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - EcompPortalUtils.rollbackTransaction(transaction, - "Exception occurred in syncAppRoles, Details: " + e.toString()); - throw new Exception(e); - } finally { - localSession.close(); - } - } - - /** - * Called when updating the list of roles for the user - * - * @param userId - * @param appId - * @param userRolesInRemoteApp - * @return RolesInAppForUser - */ - protected RolesInAppForUser constructRolesInAppForUserUpdate(String userId, Long appId, - Set userRolesInRemoteApp) { - RolesInAppForUser result; - result = new RolesInAppForUser(); - result.appId = appId; - result.orgUserId = userId; - for (EcompRole role : userRolesInRemoteApp) { - RoleInAppForUser roleInAppForUser = new RoleInAppForUser(); - roleInAppForUser.roleId = role.getId(); - roleInAppForUser.roleName = role.getName(); - roleInAppForUser.isApplied = new Boolean(true); - result.roles.add(roleInAppForUser); - } - return result; - } - - /** - * - * @param roleInAppForUserList - * @return boolean - */ - protected boolean remoteUserShouldBeCreated(List roleInAppForUserList) { - for (RoleInAppForUser roleInAppForUser : roleInAppForUserList) { - if (roleInAppForUser.isApplied.booleanValue()) { - return true; - } - } - return false; - } - - /** - * Builds JSON and posts it to a remote application to update user roles. - * - * @param roleInAppForUserList - * @param mapper - * @param applicationsRestClientService - * @param appId - * @param userId - * @return Set of roles as sent; NOT the response from the app. - * @throws JsonProcessingException - * @throws HTTPException - */ - protected Set postUsersRolesToRemoteApp(List roleInAppForUserList, ObjectMapper mapper, - ApplicationsRestClientService applicationsRestClientService, Long appId, String userId) - throws JsonProcessingException, HTTPException { - Set updatedUserRolesinRemote = constructUsersRemoteAppRoles(roleInAppForUserList); - Set updateUserRolesInEcomp = constructUsersEcompRoles(roleInAppForUserList); - String userRolesAsString = mapper.writeValueAsString(updatedUserRolesinRemote); - applicationsRestClientService.post(EcompRole.class, appId, userRolesAsString, - String.format("/user/%s/roles", userId)); - // TODO: We should add code that verifies that the post operation did - // succeed. Because the SDK may still return 200 OK with an html page - // even when it fails! - return updateUserRolesInEcomp; - } - - /** - * - * @param roleInAppForUserList - * @return Set - */ - protected Set constructUsersEcompRoles(List roleInAppForUserList) { - Set existingUserRoles = new TreeSet(); - for (RoleInAppForUser roleInAppForUser : roleInAppForUserList) { - if (roleInAppForUser.isApplied) { - EcompRole ecompRole = new EcompRole(); - ecompRole.setId(roleInAppForUser.roleId); - ecompRole.setName(roleInAppForUser.roleName); - existingUserRoles.add(ecompRole); - } - } - return existingUserRoles; - } - - /** - * Constructs user app roles excluding Account Administrator role - * - * @param roleInAppForUserList - * @return List of roles with Role name, Role Id - */ - protected Set constructUsersRemoteAppRoles(List roleInAppForUserList) { - Set existingUserRoles = new TreeSet(); - for (RoleInAppForUser roleInAppForUser : roleInAppForUserList) { - if (roleInAppForUser.isApplied - && !roleInAppForUser.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)) { - EcompRole ecompRole = new EcompRole(); - ecompRole.setId(roleInAppForUser.roleId); - ecompRole.setName(roleInAppForUser.roleName); - existingUserRoles.add(ecompRole); - } - } - return existingUserRoles; - } - - /** - * This is for a single app - * - * @param rolesInAppForUser - * @param externalSystemRequest - * set to false if requests from Users page otherwise true - * @return true on success, false otherwise - */ - protected boolean applyChangesInUserRolesForAppToEcompDB(RolesInAppForUser rolesInAppForUser, - boolean externalSystemRequest, String reqType) throws Exception { - boolean result = false; - String userId = rolesInAppForUser.orgUserId; - Long appId = rolesInAppForUser.appId; - synchronized (syncRests) { - if (rolesInAppForUser != null) { - createLocalUserIfNecessary(userId); - } - - if (rolesInAppForUser != null) { - EcompRole[] userAppRoles = new EcompRole[rolesInAppForUser.roles.stream().distinct() - .collect(Collectors.toList()).size()]; - for (int i = 0; i < rolesInAppForUser.roles.stream().distinct().collect(Collectors.toList()) - .size(); i++) { - RoleInAppForUser roleInAppForUser = rolesInAppForUser.roles.get(i); - EcompRole role = new EcompRole(); - role.setId(roleInAppForUser.roleId); - role.setName(roleInAppForUser.roleName); - userAppRoles[i] = role; - } - try { - syncUserRoles(sessionFactory, userId, appId, userAppRoles, externalSystemRequest, reqType); - result = true; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - "applyChangesInUserRolesForAppToEcompDB: failed to syncUserRoles for orgUserId " + userId, - e); - if ("DELETE".equals(reqType)) { - throw new Exception(e.getMessage()); - } - } - } - } - return result; - } - - /** - * - * @param appId - * @param remoteUser - * @return UserApplicationRoles - */ - protected UserApplicationRoles convertToUserApplicationRoles(Long appId, RemoteUserWithRoles remoteUser) { - UserApplicationRoles userWithRemoteAppRoles = new UserApplicationRoles(); - userWithRemoteAppRoles.setAppId(appId); - userWithRemoteAppRoles.setOrgUserId(remoteUser.getOrgUserId()); - userWithRemoteAppRoles.setFirstName(remoteUser.getFirstName()); - userWithRemoteAppRoles.setLastName(remoteUser.getLastName()); - userWithRemoteAppRoles.setRoles(remoteUser.getRoles()); - return userWithRemoteAppRoles; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserRolesService# - * importRolesFromRemoteApplication(java.lang.Long) - */ - public List importRolesFromRemoteApplication(Long appId) throws HTTPException { - EPRole[] appRolesFull = applicationsRestClientService.get(EPRole[].class, appId, "/rolesFull"); - List rolesList = Arrays.asList(appRolesFull); - for (EPRole externalAppRole : rolesList) { - - // Try to find an existing extern role for the app in the local - // ecomp DB. If so, then use its id to update the existing external - // application role record. - Long externAppId = externalAppRole.getId(); - EPRole existingAppRole = epRoleService.getRole(appId, externAppId); - if (existingAppRole != null) { - logger.debug(EELFLoggerDelegate.debugLogger, - String.format("ecomp role already exists for app=%s; appRoleId=%s. No need to import this one.", - appId, externAppId)); - continue; - } - // persistExternalRoleInEcompDb(externalAppRole, appId, - // roleService); - } - - return rolesList; - } - - /** - * It adds new user for remote application - * - * @param roleInAppForUserList - * @param remoteAppUser - * @param userId - * @param app - * @param mapper - * @param searchService - * @param applicationsRestClientService - * @return - * @throws Exception - */ - private EPUser addRemoteUser(List roleInAppForUserList, String userId, EPApp app, - ObjectMapper mapper, SearchService searchService, - ApplicationsRestClientService applicationsRestClientService) throws Exception { - EPUser addRemoteUser = null; - if (remoteUserShouldBeCreated(roleInAppForUserList)) { - - createNewUserOnRemoteApp(userId, app, applicationsRestClientService, searchService, mapper, - isAppUpgradeVersion(app)); - // If we succeed, we know that the new user was - // persisted on remote app. - addRemoteUser = getUserFromApp(userId, app, applicationsRestClientService); - if (addRemoteUser == null) { - logger.error(EELFLoggerDelegate.errorLogger, - "Failed to persist new user: " + userId + " in remote app. appId = " + app.getId()); - // return null; - } - } - return addRemoteUser; - } - - /** - * It checks whether the remote user exists or not if exits returns user object - * else null - * - * @param userId - * @param app - * @param applicationsRestClientService - * @return - * @throws HTTPException - */ - private EPUser checkIfRemoteUserExits(String userId, EPApp app, - ApplicationsRestClientService applicationsRestClientService) throws HTTPException { - EPUser checkRemoteUser = null; - try { - checkRemoteUser = getUserFromApp(userId, app, applicationsRestClientService); - } catch (HTTPException e) { - // Some apps are returning 400 if user is not found. - if (e.getResponseCode() == 400) { - logger.debug(EELFLoggerDelegate.debugLogger, - "setAppWithUserRoleStateForUser: getuserFromApp threw exception with response code 400; continuing", - e); - } else if (e.getResponseCode() == 404) { - logger.debug(EELFLoggerDelegate.debugLogger, - "setAppWithUserRoleStateForUser: getuserFromApp threw exception with response code 404; continuing", - e); - } else { - // Other response code, let it come thru. - throw e; - } - } - return checkRemoteUser; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserRolesService# - * setAppWithUserRoleStateForUser(org.openecomp.portalapp.portal.domain. EPUser, - * org.openecomp.portalapp.portal.transport.AppWithRolesForUser) - */ - public boolean setAppWithUserRoleStateForUser(EPUser user, AppWithRolesForUser newAppRolesForUser) { - boolean result = false; - boolean epRequestValue = false; - String userId = ""; - if (newAppRolesForUser != null && newAppRolesForUser.orgUserId != null) { - userId = newAppRolesForUser.orgUserId.trim(); - } - Long appId = newAppRolesForUser.appId; - List roleInAppForUserList = newAppRolesForUser.appRoles; - if (userId.length() > 0) { - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - - try { - EPApp app = appsService.getApp(appId); - applyChangesToUserAppRolesForMyLoginsRequest(user, appId); - - // if centralized app - if (app.getCentralAuth()) { - // We should add If user does not exist in remote application - if (!app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - EPUser remoteAppUser = null; - remoteAppUser = checkIfRemoteUserExits(userId, app, applicationsRestClientService); - - if (remoteAppUser == null) { - addRemoteUser(roleInAppForUserList, userId, app, mapper, searchService, - applicationsRestClientService); - } - } - - Set userRolesInLocalApp = postUsersRolesToLocalApp(roleInAppForUserList, mapper, - applicationsRestClientService, appId, userId); - RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(userId, appId, - userRolesInLocalApp); - List roleAppUserList = rolesInAppForUser.roles; - // Apply changes in external Access system - updateUserRolesInExternalSystem(app, rolesInAppForUser.orgUserId, roleAppUserList, epRequestValue); - result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, epRequestValue, "Portal"); - } - // In case if portal is not centralized then follow existing approach - else if (!app.getCentralAuth() && app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - Set userRolesInLocalApp = postUsersRolesToLocalApp(roleInAppForUserList, mapper, - applicationsRestClientService, appId, userId); - RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(userId, appId, - userRolesInLocalApp); - result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, epRequestValue, "Portal"); - } else {// remote app - EPUser remoteAppUser = null; - if (!app.getCentralAuth() && !app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - - remoteAppUser = checkIfRemoteUserExits(userId, app, applicationsRestClientService); - - if (remoteAppUser == null) { - remoteAppUser = addRemoteUser(roleInAppForUserList, userId, app, mapper, searchService, - applicationsRestClientService); - } - if (remoteAppUser != null) { - Set userRolesInRemoteApp = postUsersRolesToRemoteApp(roleInAppForUserList, - mapper, applicationsRestClientService, appId, userId); - RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(userId, appId, - userRolesInRemoteApp); - result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, epRequestValue, null); - - // If no roles remain, request app to set user inactive. - if (userRolesInRemoteApp.size() == 0) { - logger.debug(EELFLoggerDelegate.debugLogger, - "setAppWithUserRoleStateForUser: no roles in app {}, set user {} to inactive", - app, userId); - remoteAppUser.setActive(false); - postUserToRemoteApp(userId, user, app, applicationsRestClientService); - } - } - } - } - } catch (Exception e) { - String message = String.format("Failed to create user or update user roles for User %s, AppId %s", - userId, Long.toString(appId)); - logger.error(EELFLoggerDelegate.errorLogger, message, e); - result = false; - } - - } - return result; - } - - /** - * It adds user roles in External system and also make data consistent in both - * local and in External System - * - * @param app - * details - * @param orgUserId - * @param roleInAppUser - * Contains list of active roles - */ - @SuppressWarnings("unchecked") - private void updateUserRolesInExternalSystem(EPApp app, String orgUserId, List roleInAppUser, - boolean isPortalRequest) { - try { - // check if user exists - final Map userParams = new HashMap<>(); - userParams.put("orgUserIdValue", orgUserId); - List userInfo = checkIfUserExists(userParams); - if (userInfo.isEmpty()) { - createLocalUserIfNecessary(orgUserId); - } - String name = ""; - if (EPCommonSystemProperties - .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) { - name = orgUserId - + SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN); - } - ObjectMapper mapper = new ObjectMapper(); - HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); - HttpEntity getUserRolesEntity = new HttpEntity<>(headers); - logger.debug(EELFLoggerDelegate.debugLogger, "Connecting to external system to get current user roles"); - ResponseEntity getResponse = template - .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "roles/user/" + name, HttpMethod.GET, getUserRolesEntity, String.class); - if (getResponse.getStatusCode().value() == 200) { - logger.debug(EELFLoggerDelegate.debugLogger, - "updateUserRolesInExternalSystem: Finished GET user roles from external system and received user roles {}", - getResponse.getBody()); - - } - List userRoleDetailList = new ArrayList<>(); - String res = getResponse.getBody(); - JSONObject jsonObj = null; - JSONArray extRoles = null; - if (!res.equals("{}")) { - jsonObj = new JSONObject(res); - extRoles = jsonObj.getJSONArray("role"); - } - ExternalAccessUserRoleDetail userRoleDetail = null; - if (extRoles != null) { - for (int i = 0; i < extRoles.length(); i++) { - if (extRoles.getJSONObject(i).getString("name").startsWith(app.getNameSpace() + ".") - && !extRoles.getJSONObject(i).getString("name").equals(app.getNameSpace() + ".admin") - && !extRoles.getJSONObject(i).getString("name").equals(app.getNameSpace() + ".owner")) { - ObjectMapper descMapper = new ObjectMapper(); - if (extRoles.getJSONObject(i).has("description")) { - ExternalRoleDescription desc = descMapper.readValue( - extRoles.getJSONObject(i).getString("description"), ExternalRoleDescription.class); - userRoleDetail = new ExternalAccessUserRoleDetail( - extRoles.getJSONObject(i).getString("name"), desc); - userRoleDetailList.add(userRoleDetail); - } else { - userRoleDetail = new ExternalAccessUserRoleDetail( - extRoles.getJSONObject(i).getString("name"), null); - userRoleDetailList.add(userRoleDetail); - } - - } - } - } - // If request coming from portal not from external role approval system then we - // have to check if user already - // have account admin or system admin as GUI will not send these roles - if (!isPortalRequest) { - final Map loginIdParams = new HashMap<>(); - loginIdParams.put("orgUserIdValue", orgUserId); - EPUser user = (EPUser) dataAccessService.executeNamedQuery("epUserAppId", loginIdParams, null).get(0); - final Map params = new HashMap<>(); - params.put("appId", app.getId()); - params.put("userId", user.getId()); - List userAppList = dataAccessService.executeNamedQuery("getUserAppExistingRoles", - params, null); - if (!roleInAppUser.isEmpty()) { - for (EcompUserAppRoles userApp : userAppList) { - if (userApp.getRoleId().equals(PortalConstants.SYS_ADMIN_ROLE_ID) - || userApp.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)) { - RoleInAppForUser addSpecialRole = new RoleInAppForUser(); - addSpecialRole.setIsApplied(true); - addSpecialRole.setRoleId(userApp.getRoleId()); - addSpecialRole.setRoleName(userApp.getRoleName()); - roleInAppUser.add(addSpecialRole); - } - } - } - } - List roleInAppUserNonDupls = roleInAppUser.stream().distinct() - .collect(Collectors.toList()); - final Map currentUserRolesToUpdate = new HashMap<>(); - for (RoleInAppForUser roleInAppUserNew : roleInAppUser) { - currentUserRolesToUpdate.put(roleInAppUserNew.getRoleName(), roleInAppUserNew); - } - final Map currentUserRolesInExternalSystem = new HashMap<>(); - for (ExternalAccessUserRoleDetail extAccessUserRole : userRoleDetailList) { - currentUserRolesInExternalSystem.put(extAccessUserRole.getName(), extAccessUserRole); - } - // Check if roles does not exists in local but still there in External Central - // Auth System delete them all - for (ExternalAccessUserRoleDetail userRole : userRoleDetailList) { - if (!(currentUserRolesToUpdate - .containsKey(userRole.getName().substring(app.getNameSpace().length() + 1).replaceAll("_", " ")) - || currentUserRolesToUpdate - .containsKey(userRole.getName().substring(app.getNameSpace().length() + 1)))) { - HttpEntity entity = new HttpEntity<>(headers); - logger.debug(EELFLoggerDelegate.debugLogger, - "updateUserRolesInExternalSystem: Connecting to external system to DELETE user role {}", - userRole); - ResponseEntity deleteResponse = template.exchange( - SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "userRole/" + name + "/" + userRole.getName(), - HttpMethod.DELETE, entity, String.class); - logger.debug(EELFLoggerDelegate.debugLogger, - "updateUserRolesInExternalSystem: Finished DELETE operation in external system for user role {} and the response is {}", - userRole, deleteResponse.getBody()); - } - } - // Check if user roles does not exists in External Central Auth System add them - // all - for (RoleInAppForUser addUserRole : roleInAppUserNonDupls) { - if (!(currentUserRolesInExternalSystem - .containsKey(app.getNameSpace() + "." + addUserRole.getRoleName().replaceAll(" ", "_")))) { - ExternalAccessUser extUser = new ExternalAccessUser(name, - app.getNameSpace() + "." + addUserRole.getRoleName().replaceAll(" ", "_")); - String formattedUserRole = mapper.writeValueAsString(extUser); - HttpEntity entity = new HttpEntity<>(formattedUserRole, headers); - logger.debug(EELFLoggerDelegate.debugLogger, - "updateUserRolesInExternalSystem: Connecting to external system and adding user role", - addUserRole.getRoleName()); - ResponseEntity addResponse = template - .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "userRole", HttpMethod.POST, entity, String.class); - logger.debug(EELFLoggerDelegate.debugLogger, - "updateUserRolesInExternalSystem: Finished adding user role in external system {} and added user role {}", - getResponse.getBody(), addUserRole.getRoleName()); - if (addResponse.getStatusCode().value() != 201 && addResponse.getStatusCode().value() != 404) { - logger.debug(EELFLoggerDelegate.debugLogger, - "Finished POST operation in external system but unable to save user role", - getResponse.getBody(), addUserRole.getRoleName()); - throw new Exception(addResponse.getBody()); - } - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - "updateUserRolesInExternalSystem: Failed to add user role for application {} due to {}", - app.getId(), e); - } - - } - - /** - * - * @param userId - * @param app - * @param applicationsRestClientService - * @param searchService - * @param mapper - * @throws Exception - */ - protected void createNewUserOnRemoteApp(String userId, EPApp app, - ApplicationsRestClientService applicationsRestClientService, SearchService searchService, - ObjectMapper mapper, boolean postOpenSource) throws Exception { - - EPUser client = searchService.searchUserByUserId(userId); - - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - - if (client == null) { - String msg = "cannot create user " + userId + ", because he/she cannot be found in phonebook."; - logger.error(EELFLoggerDelegate.errorLogger, msg); - throw new Exception(msg); - } - - client.setLoginId(userId); - client.setActive(true); - - String userInString = null; - userInString = mapper.writerFor(EPUser.class).writeValueAsString(client); - logger.debug(EELFLoggerDelegate.debugLogger, - "about to post new client to remote application, users json = " + userInString); - applicationsRestClientService.post(EPUser.class, app.getId(), userInString, String.format("/user", userId)); - - } - - @SuppressWarnings("unchecked") - protected void applyChangesToAppRolesRequest(Long appId, Long userId, String updateStatus, - EPUserAppRolesRequest epUserAppRolesRequest) { - final Map epRequestParams = new HashMap<>(); - try { - EPUserAppRolesRequest epAppRolesRequestData = epUserAppRolesRequest; - epAppRolesRequestData.setUpdatedDate(new Date()); - epAppRolesRequestData.setRequestStatus(updateStatus); - HashMap addiotonalUpdateParam = new HashMap(); - addiotonalUpdateParam.put("userId", userId); - dataAccessService.saveDomainObject(epAppRolesRequestData, addiotonalUpdateParam); - epRequestParams.put("reqId", epUserAppRolesRequest.getId()); - List epUserAppRolessDetailList = new ArrayList(); - epUserAppRolessDetailList = dataAccessService.executeNamedQuery("userAppRolesRequestDetailList", - epRequestParams, null); - if (epUserAppRolessDetailList.size() > 0) { - for (EPUserAppRolesRequestDetail epRequestUpdateData : epUserAppRolessDetailList) { - EPUserAppRolesRequestDetail epAppRoleDetailData = epRequestUpdateData; - epAppRoleDetailData.setReqType(updateStatus); - epAppRoleDetailData.setEpRequestIdData(epAppRolesRequestData); - HashMap updateDetailsParam = new HashMap(); - addiotonalUpdateParam.put("reqId", epUserAppRolesRequest.getId()); - dataAccessService.saveDomainObject(epAppRoleDetailData, updateDetailsParam); - } - } - logger.debug(EELFLoggerDelegate.debugLogger, "The request is set to complete"); - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "applyChangesToAppRolesRequest failed", e); - } - } - - @SuppressWarnings("unchecked") - public void applyChangesToUserAppRolesForMyLoginsRequest(EPUser user, Long appId) { - final Map params = new HashMap<>(); - final Map epDetailParams = new HashMap<>(); - List epRequestIdVal = new ArrayList(); - params.put("appId", appId); - params.put("userId", user.getId()); - try { - epRequestIdVal = (List) dataAccessService - .executeNamedQuery("userAppRolesRequestList", params, null); - if (epRequestIdVal.size() > 0) { - EPUserAppRolesRequest epAppRolesRequestData = epRequestIdVal.get(0); - epAppRolesRequestData.setUpdatedDate(new Date()); - epAppRolesRequestData.setRequestStatus("O"); - HashMap addiotonalUpdateParam = new HashMap(); - addiotonalUpdateParam.put("userId", user.getId()); - dataAccessService.saveDomainObject(epAppRolesRequestData, addiotonalUpdateParam); - epDetailParams.put("reqId", epAppRolesRequestData.getId()); - List epUserAppRolesDetailList = new ArrayList(); - epUserAppRolesDetailList = dataAccessService.executeNamedQuery("userAppRolesRequestDetailList", - epDetailParams, null); - if (epUserAppRolesDetailList.size() > 0) { - for (EPUserAppRolesRequestDetail epRequestUpdateList : epUserAppRolesDetailList) { - EPUserAppRolesRequestDetail epAppRoleDetailData = epRequestUpdateList; - epAppRoleDetailData.setReqType("O"); - epAppRoleDetailData.setEpRequestIdData(epAppRolesRequestData); - HashMap updateDetailsParams = new HashMap(); - addiotonalUpdateParam.put("reqId", epAppRolesRequestData.getId()); - dataAccessService.saveDomainObject(epAppRoleDetailData, updateDetailsParams); - } - logger.debug(EELFLoggerDelegate.debugLogger, "User App roles request from User Page is overridden"); - } - } - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "applyChangesToUserAppRolesRequest failed", e); - } - } - - /** - * Pushes specified user details to the specified remote app. - * - * @param userId - * OrgUserId identifying user at remote app in REST endpoint path - * @param user - * User details to be pushed - * @param app - * Remote app - * @param applicationsRestClientService - * @throws HTTPException - */ - protected void postUserToRemoteApp(String userId, EPUser user, EPApp app, - ApplicationsRestClientService applicationsRestClientService) throws HTTPException { - - getUser(userId, app, applicationsRestClientService); - - } - - /** - * It returns user details for single org user id - * - * @param userParams - * @return if user exists it returns list of user details otherwise empty value - */ - @SuppressWarnings("unchecked") - private List checkIfUserExists(Map userParams) { - return (List) dataAccessService.executeNamedQuery("epUserAppId", userParams, null); - } - - /** - * It checks whether the new user is valid or not otherwise throws exception - * - * @param orgUserId - * @param app - * @return Checks if user is valid and returns message otherwise throws - * exception - * @throws Exception - */ - private String validateNewUser(String orgUserId, EPApp app) throws Exception { - EPUser epUser = searchService.searchUserByUserId(orgUserId); - if (epUser == null) { - throw new Exception("User does not exist"); - } else if (!epUser.getOrgUserId().equals(orgUserId)) { - throw new Exception("User does not exist"); - } else if (app == null) { - throw new Exception("Application does not exist"); - } - return "Saved Successfully"; - } - - /** - * Checks if the fields exists or not - * - * @param userList - * contains user information - * @param app - * contains app name - * @throws Exception - * throws exception if the field is not valid - */ - private void validateExternalRequestFields(List userList, EPApp app) throws Exception { - if (userList.size() == 0 || userList.isEmpty()) { - throw new Exception("User does not exist"); - } else if (app == null) { - throw new Exception("Application does not exist"); - } else if (!app.getEnabled() && !app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - throw new Exception(app.getMlAppName() + " application is unavailable"); - } - } - - @SuppressWarnings("unchecked") - public ExternalRequestFieldsValidator setExternalRequestUserAppRole(ExternalSystemUser newAppRolesForUser, - String reqType) { - boolean result = false; - boolean externalSystemRequest = true; - final Map params = new HashMap<>(); - final Map userParams = new HashMap<>(); - List userInfo = null; - EPUser userId = null; - List epRequestId = null; - String orgUserId = ""; - String updateStatus = ""; - String reqMessage = ""; - EPApp app = null; - if (newAppRolesForUser != null && newAppRolesForUser.getLoginId() != null) { - orgUserId = newAppRolesForUser.getLoginId().trim(); - } - String appName = newAppRolesForUser.getApplicationName(); - String logMessage = ("DELETE").equals(reqType) ? "Deleting" : "Assigning/Updating"; - if (orgUserId.length() > 0) { - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - int epRequestIdSize = 0; - try { - app = appsService.getAppDetail(appName); - userParams.put("orgUserIdValue", orgUserId); - userInfo = checkIfUserExists(userParams); - reqMessage = "Updated Successfully"; - if (!reqType.equals("DELETE") && (userInfo.size() == 0 || userInfo.isEmpty())) { - reqMessage = validateNewUser(orgUserId, app); - } - if (userInfo.size() != 0 || !userInfo.isEmpty()) { - validateExternalRequestFields(userInfo, app); - userId = userInfo.get(0); - params.put("appId", app.getId()); - params.put("userId", userId.getId()); - epRequestId = (List) dataAccessService - .executeNamedQuery("userAppRolesRequestList", params, null); - epRequestIdSize = epRequestId.size(); - } - - // If Non-Centralized app make sure you sync app roles before assigning to user - if (!app.getId().equals(PortalConstants.PORTAL_APP_ID) && !app.getCentralAuth()) { - EcompRole[] appRoles = applicationsRestClientService.get(EcompRole[].class, app.getId(), "/roles"); - syncAppRoles(sessionFactory, app.getId(), appRoles); - } - List roleInAppForUserList = roleInAppForUserList(newAppRolesForUser.getRoles(), - app.getId(), app.getMlAppName()); - List userRoleList = null; - if (!userInfo.isEmpty()) { - final Map appParams = new HashMap<>(); - appParams.put("userId", userId.getId()); - appParams.put("appId", app.getId()); - userRoleList = dataAccessService.executeNamedQuery("getUserAppExistingRoles", appParams, null); - } - // Check if list contains just account admin role - boolean checkIfAdminRoleExists = false; - if (reqType.equals("DELETE") && userRoleList != null) { - checkIfAdminRoleExists = userRoleList.stream() - .anyMatch(userRole -> userRole.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)); - } else { - checkIfAdminRoleExists = roleInAppForUserList.stream() - .anyMatch(roleList -> roleList.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)); - } - // if Centralized app - if (app.getCentralAuth()) { - // We should add If user does not exist in remote application - try { - // If adding just account admin role dont make remote application user call - if (!app.getId().equals(PortalConstants.PORTAL_APP_ID) - && !(checkIfAdminRoleExists && reqType.equals("DELETE")) - && roleInAppForUserList.size() > 1) { - EPUser remoteAppUser = null; - remoteAppUser = checkIfRemoteUserExits(orgUserId, app, applicationsRestClientService); - if (remoteAppUser == null) { - addRemoteUser(roleInAppForUserList, orgUserId, app, mapper, searchService, - applicationsRestClientService); - reqMessage = "Saved Successfully"; - } - } - } catch (Exception e) { - reqMessage = e.getMessage(); - logger.error(EELFLoggerDelegate.errorLogger, - "setExternalRequestUserAppRole: Failed to added remote user", e); - throw new Exception(reqMessage); - } - Set userRolesInLocalApp = postUsersRolesToLocalApp(roleInAppForUserList, mapper, - applicationsRestClientService, app.getId(), orgUserId); - RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(orgUserId, app.getId(), - userRolesInLocalApp); - List roleAppUserList = rolesInAppForUser.roles; - // Apply changes in external Access system - updateUserRolesInExternalSystem(app, rolesInAppForUser.orgUserId, roleAppUserList, - externalSystemRequest); - logger.info(EELFLoggerDelegate.debugLogger, - "setExternalRequestUserAppRole: {} user app roles: for app {}, user {}", logMessage, - newAppRolesForUser.getApplicationName(), newAppRolesForUser.getLoginId()); - result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, externalSystemRequest, reqType); - } - // If local application is not centralized - else if (!app.getCentralAuth() && app.getId().equals(PortalConstants.PORTAL_APP_ID)) { - Set userRolesInLocalApp = postUsersRolesToLocalApp(roleInAppForUserList, mapper, - applicationsRestClientService, app.getId(), orgUserId); - RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(orgUserId, app.getId(), - userRolesInLocalApp); - result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, externalSystemRequest, reqType); - } else {// remote app - // If adding just account admin role don't do remote application user call - if (!((roleInAppForUserList.size() == 1 || reqType.equals("DELETE")) && checkIfAdminRoleExists)) { - EPUser remoteAppUser = null; - remoteAppUser = checkIfRemoteUserExits(orgUserId, app, applicationsRestClientService); - if (remoteAppUser == null) { - remoteAppUser = addRemoteUser(roleInAppForUserList, orgUserId, app, mapper, searchService, - applicationsRestClientService); - reqMessage = "Saved Successfully"; - } - if (remoteAppUser != null) { - Set userRolesInRemoteApp = postUsersRolesToRemoteApp(roleInAppForUserList, - mapper, applicationsRestClientService, app.getId(), orgUserId); - - RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(orgUserId, - app.getId(), userRolesInRemoteApp); - logger.info(EELFLoggerDelegate.debugLogger, - "setExternalRequestUserAppRole: {} user app roles: for app {}, user {}", logMessage, - newAppRolesForUser.getApplicationName(), newAppRolesForUser.getLoginId()); - result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, externalSystemRequest, - reqType); - // If no roles remain, request app to set user inactive. - /* - * if (userRolesInRemoteApp.size() == 0) { - * logger.debug(EELFLoggerDelegate.debugLogger, - * "setAppWithUserRoleStateForUser: no roles in app {}, set user {} to inactive" - * , app, orgUserId); //TODO Need to fix the logged in user is not set to - * inactive remoteAppUser.setActive(false); postUserToRemoteApp(orgUserId, user, - * app, applicationsRestClientService); } - */ - } - } else { - // Here we are adding only we have single account admin in roleInAppForUserList - // and this should not add in remote - if (!(reqType.equals("DELETE")) && userInfo.isEmpty()) { - reqMessage = "Saved Successfully"; - } - Set userRolesInRemoteApp = constructUsersEcompRoles(roleInAppForUserList); - - RolesInAppForUser rolesInAppForUser = constructRolesInAppForUserUpdate(orgUserId, app.getId(), - userRolesInRemoteApp); - logger.info(EELFLoggerDelegate.debugLogger, - "setExternalRequestUserAppRole: {} user app roles: for app {}, user {}", logMessage, - newAppRolesForUser.getApplicationName(), newAppRolesForUser.getLoginId()); - result = applyChangesInUserRolesForAppToEcompDB(rolesInAppForUser, externalSystemRequest, - reqType); - } - if (!result) { - reqMessage = "Failed to save the user app role(s)"; - } - if (epRequestIdSize > 0 && !userInfo.isEmpty()) { - updateStatus = "C"; - applyChangesToAppRolesRequest(app.getId(), userId.getId(), updateStatus, epRequestId.get(0)); - } - } - } catch (Exception e) { - String message = String.format( - "setExternalRequestUserAppRole: Failed to create user or update user roles for User %s, AppId %s", - orgUserId, appName); - logger.error(EELFLoggerDelegate.errorLogger, message, e); - result = false; - reqMessage = e.getMessage(); - if (epRequestIdSize > 0 && userInfo != null && !userInfo.isEmpty()) { - updateStatus = "F"; - applyChangesToAppRolesRequest(app.getId(), userId.getId(), updateStatus, epRequestId.get(0)); - } - } - - } - return new ExternalRequestFieldsValidator(result, reqMessage); - } - - /** - * - * @param roleInAppForUserList - * @param mapper - * @param applicationsRestClientService - * @param appId - * @param userId - * @return Set - * @throws JsonProcessingException - * @throws HTTPException - */ - private Set postUsersRolesToLocalApp(List roleInAppForUserList, ObjectMapper mapper, - ApplicationsRestClientService applicationsRestClientService, Long appId, String userId) - throws JsonProcessingException, HTTPException { - Set updatedUserRoles = constructUsersEcompRoles(roleInAppForUserList); - return updatedUserRoles; - } - - /** - * It constructs and returns list of user app roles when the external API role - * approval system calls this method - * - * @param roleInAppForUserList - * @param appId - * @return list of user app roles - * @throws Exception - * throws exceptions if role id does not exits - */ - private List roleInAppForUserList(List roleInAppForUserList, - Long appId, String appName) throws Exception { - List existingUserRoles = new ArrayList(); - EPRole existingAppRole = null; - for (ExternalSystemRoleApproval roleInAppForUser : roleInAppForUserList) { - RoleInAppForUser ecompRole = new RoleInAppForUser(); - existingAppRole = epRoleService.getAppRole(roleInAppForUser.getRoleName(), appId); - if (existingAppRole == null) { - logger.error(EELFLoggerDelegate.errorLogger, "roleInAppForUserList failed for the roles {}", - roleInAppForUserList); - throw new Exception("'" + roleInAppForUser.getRoleName() + "'" + " role does not exist for " + appName - + " application"); - } - if (!existingAppRole.getActive()) { - logger.error(EELFLoggerDelegate.errorLogger, "roleInAppForUserList failed for the roles {}", - roleInAppForUserList); - throw new Exception( - roleInAppForUser.getRoleName() + " role is unavailable for " + appName + " application"); - } else { - ecompRole.roleId = (appId == 1 || roleInAppForUser.getRoleName().equals(PortalConstants.ADMIN_ROLE)) - ? existingAppRole.getId() - : existingAppRole.getAppRoleId(); - ecompRole.roleName = roleInAppForUser.getRoleName(); - ecompRole.isApplied = true; - existingUserRoles.add(ecompRole); - } - } - return existingUserRoles; - } - - /** - * - * @param userId - * @param app - * @param applicationsRestClientService - * @return EPUser - * @throws HTTPException - */ - protected EPUser getUserFromApp(String userId, EPApp app, - ApplicationsRestClientService applicationsRestClientService) throws HTTPException { - // local app - if (app.getId() == PortalConstants.PORTAL_APP_ID) { - // Map params = new HashMap(); - // params.put("sbcid",userId); - @SuppressWarnings("unchecked") - List userList = (List) dataAccessService - .executeQuery("from EPUser where orgUserId='" + userId + "'", null); - if (userList != null && !userList.isEmpty()) - return userList.get(0); - else - return null; - } - // remote app - - return getUser(userId, app, applicationsRestClientService); - } - - protected EPUser getUser(String userId, EPApp app, ApplicationsRestClientService applicationsRestClientService) - throws HTTPException { - return applicationsRestClientService.get(EPUser.class, app.getId(), String.format("/user/%s", userId), true); - - } - - protected boolean isAppUpgradeVersion(EPApp app) { - return true; - } - - public ExternalSystemAccess getExternalRequestAccess() { - ExternalSystemAccess res = null; - try { - res = new ExternalSystemAccess(EPCommonSystemProperties.EXTERNAL_ACCESS_ENABLE, Boolean - .parseBoolean(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_ACCESS_ENABLE))); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getExternalRequestAccess failed" + e.getMessage()); - } - return res; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserRolesService# - * getAppRolesForUser(java.lang.Long, java.lang.String) - */ - @SuppressWarnings("unchecked") - public List getAppRolesForUser(Long appId, String userId, Boolean extRequestValue) { - - List rolesInAppForUser = null; - EPApp app = appsService.getApp(appId); - try { - // for ecomp portal app, no need to make a remote call - List roleList = new ArrayList<>(); - if (appId == PortalConstants.PORTAL_APP_ID) { - if (app.getCentralAuth()) { - List cenRoleList = externalAccessRolesService.getRolesForApp(app.getUebKey()); - for (CentralRole cenRole : cenRoleList) { - Role role = new Role(); - role.setActive(cenRole.isActive()); - role.setId(cenRole.getId()); - role.setName(cenRole.getName()); - role.setPriority(cenRole.getPriority()); - roleList.add(role); - } - } else { - roleList = roleService.getAvailableRoles(userId); - } - List activeRoleList = new ArrayList(); - for (Role role : roleList) { - if (role.getActive()) { - if (role.getId() != 1) { // prevent portal admin from being added - activeRoleList.add(role); - } else if (extRequestValue) { - activeRoleList.add(role); - } - } - - } - EPUser localUser = getUserFromApp(userId, app, applicationsRestClientService); - // If localUser does not exists return roles - Set roleSet = null; - EPRole[] roleSetList = null; - if (localUser != null) { - roleSet = localUser.getAppEPRoles(app); - roleSetList = roleSet.toArray(new EPRole[0]); - } - rolesInAppForUser = constructRolesInAppForUserGet(activeRoleList, roleSetList, extRequestValue); - return rolesInAppForUser; - } - - EcompRole[] appRoles = null; - List roles = new ArrayList<>(); - if (app.getCentralAuth()) { - // Sync application functions from External Access System - externalAccessRolesService.syncRoleFunctionFromExternalAccessSystem(app); - List applicationRoles = dataAccessService.getList(EPRole.class, - " where app_id = " + app.getId() + " and active_yn = 'Y'", null, null); - ; - for (EPRole role : applicationRoles) { - EcompRole ecompRole = new EcompRole(); - ecompRole.setId(role.getId()); - ecompRole.setName(role.getName()); - roles.add(ecompRole); - } - appRoles = roles.toArray(new EcompRole[roles.size()]); - } else { - appRoles = applicationsRestClientService.get(EcompRole[].class, appId, "/roles"); - } - // Test this error case, for generating an internal Ecomp Portal - // error - // EcompRole[] appRoles = null; - // If there is an exception in the rest client api, then null will - // be returned. - if (appRoles != null) { - if (!app.getCentralAuth()) { - syncAppRoles(sessionFactory, appId, appRoles); - } - EcompRole[] userAppRoles = null; - try { - try { - if (app.getCentralAuth()) { - final Map params = new HashMap<>(); - final Map userParams = new HashMap<>(); - params.put("orgUserIdValue", userId); - List user = dataAccessService.executeNamedQuery("epUserAppId", params, null); - userParams.put("appId", app.getId()); - userParams.put("userId", user.get(0).getId()); - List userAppsRolesList = dataAccessService - .executeNamedQuery("getUserAppCurrentRoles", userParams, null); - List setUserRoles = new ArrayList<>(); - for (EPUserAppCurrentRoles role : userAppsRolesList) { - EcompRole ecompRole = new EcompRole(); - ecompRole.setId(role.getRoleId()); - ecompRole.setName(role.getRoleName()); - setUserRoles.add(ecompRole); - } - userAppRoles = setUserRoles.toArray(new EcompRole[setUserRoles.size()]); - rolesInAppForUser = constructRolesInAppForUserGet(appRoles, userAppRoles); - return rolesInAppForUser; - } else { - userAppRoles = applicationsRestClientService.get(EcompRole[].class, appId, - String.format("/user/%s/roles", userId)); - } - } catch (HTTPException e) { - // Some apps are returning 400 if user is not found. - if (e.getResponseCode() == 400) { - logger.debug(EELFLoggerDelegate.debugLogger, - "getAppRolesForUser caught exception with response code 400; continuing", e); - } else { - // Other response code, let it come thru. - throw e; - } - } - if (userAppRoles == null) { - if (EcompPortalUtils.getExternalAppResponseCode() == 400) { - EcompPortalUtils.setExternalAppResponseCode(200); - String message = String.format( - "getAppRolesForUser: App %s, User %, endpoint /user/{userid}/roles returned 400, " - + "assuming user doesn't exist, app is framework SDK based, and things are ok. " - + "Overriding to 200 until framework SDK returns a useful response.", - Long.toString(appId), userId); - logger.warn(EELFLoggerDelegate.applicationLogger, message); - } - } - - HashMap appRolesActiveMap = hashMapFromEcompRoles(appRoles); - ArrayList activeRoles = new ArrayList(); - if (userAppRoles != null) { - for (int i = 0; i < userAppRoles.length; i++) { - if (appRolesActiveMap.containsKey(userAppRoles[i].getId())) { - EcompRole role = new EcompRole(); - role.setId(userAppRoles[i].getId()); - role.setName(userAppRoles[i].getName()); - activeRoles.add(role); - } - } - } - EcompRole[] userAppRolesActive = activeRoles.toArray(new EcompRole[activeRoles.size()]); - - // If the remote application isn't down we MUST sync user - // roles here in case we have this user here! - syncUserRoles(sessionFactory, userId, appId, userAppRolesActive, extRequestValue, null); - } catch (Exception e) { - // TODO: we may need to check if user exists, maybe remote - // app is down. - String message = String.format( - "getAppRolesForUser: user %s does not exist in remote application %s", userId, - Long.toString(appId)); - logger.error(EELFLoggerDelegate.errorLogger, message, e); - userAppRoles = new EcompRole[0]; - } - rolesInAppForUser = constructRolesInAppForUserGet(appRoles, userAppRoles); - } - } catch (Exception e) { - String message = String.format("getAppRolesForUser: failed for User %s, AppId %s", userId, - Long.toString(appId)); - logger.error(EELFLoggerDelegate.errorLogger, message, e); - } - return rolesInAppForUser; - - } - - private boolean postUserRolesToMylogins(AppWithRolesForUser userAppRolesData, - ApplicationsRestClientService applicationsRestClientService, Long appId, Long userId) - throws JsonProcessingException, HTTPException { - boolean result = false; - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - String userRolesAsString = mapper.writeValueAsString(userAppRolesData); - logger.error(EELFLoggerDelegate.errorLogger, - "Should not be reached here, as the endpoint is not defined yet from the Mylogins"); - applicationsRestClientService.post(AppWithRolesForUser.class, appId, userRolesAsString, - String.format("/user/%s/myLoginroles", userId)); - return result; - } - - public FieldsValidator putUserAppRolesRequest(AppWithRolesForUser userAppRolesData, EPUser user) { - FieldsValidator fieldsValidator = new FieldsValidator(); - final Map params = new HashMap<>(); - EPUserAppRoles appRole = new EPUserAppRoles(); - try { - logger.error(EELFLoggerDelegate.errorLogger, - "Should not be reached here, still the endpoint is yet to be defined"); - boolean result = postUserRolesToMylogins(userAppRolesData, applicationsRestClientService, - userAppRolesData.appId, user.getId()); - logger.debug(EELFLoggerDelegate.debugLogger, "putUserAppRolesRequest: result {}", result); - - params.put("appId", userAppRolesData.appId); - EPUserAppRolesRequest epAppRolesRequestData = new EPUserAppRolesRequest(); - epAppRolesRequestData.setCreatedDate(new Date()); - epAppRolesRequestData.setUpdatedDate(new Date()); - epAppRolesRequestData.setUserId(user.getId()); - epAppRolesRequestData.setAppId(userAppRolesData.appId); - epAppRolesRequestData.setRequestStatus("P"); - List appRoleIdList = userAppRolesData.appRoles; - Set appRoleDetails = new LinkedHashSet(); - dataAccessService.saveDomainObject(epAppRolesRequestData, null); - for (RoleInAppForUser userAppRoles : appRoleIdList) { - Boolean isAppliedVal = userAppRoles.isApplied; - params.put("appRoleId", userAppRoles.roleId); - if (isAppliedVal) { - appRole = (EPUserAppRoles) dataAccessService.executeNamedQuery("appRoles", params, null).get(0); - EPUserAppRolesRequestDetail epAppRoleDetail = new EPUserAppRolesRequestDetail(); - epAppRoleDetail.setReqRoleId(appRole.getRoleId()); - epAppRoleDetail.setReqType("P"); - epAppRoleDetail.setEpRequestIdData(epAppRolesRequestData); - dataAccessService.saveDomainObject(epAppRoleDetail, null); - } - } - epAppRolesRequestData.setEpRequestIdDetail(appRoleDetails); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK); - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "putUserAppRolesRequest failed", e); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - return fieldsValidator; - } - - public List getUserAppCatalogRoles(EPUser userid, String appName) { - Map params = new HashMap<>(); - params.put("userid", userid.getId().toString()); - // params.put("appid", appid); - params.put("appName", appName); - - @SuppressWarnings("unchecked") - List userAppRoles = (List) dataAccessService - .executeNamedQuery("userAppCatalogRoles", params, null); - return userAppRoles; - } - - public String updateRemoteUserProfile(String orgUserId, Long appId) { - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - EPUser client = searchService.searchUserByUserId(orgUserId); - EPUser newUser = new EPUser(); - newUser.setActive(client.getActive()); - newUser.setFirstName(client.getFirstName()); - newUser.setLastName(client.getLastName()); - newUser.setLoginId(client.getLoginId()); - newUser.setLoginPwd(client.getLoginPwd()); - newUser.setMiddleInitial(client.getMiddleInitial()); - newUser.setEmail(client.getEmail()); - newUser.setOrgUserId(client.getLoginId()); - try { - String userAsString = mapper.writeValueAsString(newUser); - List appList = appsService.getUserRemoteApps(client.getId().toString()); - // applicationsRestClientService.post(EPUser.class, appId, - // userAsString, String.format("/user", orgUserId)); - for (EPApp eachApp : appList) { - try { - applicationsRestClientService.post(EPUser.class, eachApp.getId(), userAsString, - String.format("/user/%s", orgUserId)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "Failed to update user: " + client.getOrgUserId() - + " in remote app. appId = " + eachApp.getId()); - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "updateRemoteUserProfile failed", e); - return "failure"; - } - - return "success"; - } - - /* - * (non-Javadoc) - * - * @see org.openecomp.portalapp.portal.service.UserRolesService# - * getCachedAppRolesForUser(java.lang.Long, java.lang.Long) - */ - public List getCachedAppRolesForUser(Long appId, Long userId) { - // Find the records for this user-app combo, if any - String filter = " where user_id = " + Long.toString(userId) + " and app_id = " + Long.toString(appId); - @SuppressWarnings("unchecked") - List roleList = dataAccessService.getList(EPUserApp.class, filter, null, null); - logger.debug(EELFLoggerDelegate.debugLogger, "getCachedAppRolesForUser: list size is {}", roleList.size()); - return roleList; - } - - /** - * Retrieves and returns a list of user app roles for local and remote - * applications based on the app id. - * - * @param appId - * @return list of user app roles - * @throws HTTPException - */ - public List getUsersFromAppEndpoint(Long appId) throws HTTPException { - ArrayList userApplicationRoles = new ArrayList(); - - EPApp app = appsService.getApp(appId); - // If local or centralized application - if (appId == PortalConstants.PORTAL_APP_ID || app.getCentralAuth()) { - @SuppressWarnings("unchecked") - List userList = (List) dataAccessService.executeNamedQuery("getActiveUsers", null, null); - for (EPUser user : userList) { - UserApplicationRoles userWithAppRoles = convertToUserApplicationRoles(appId, user, app); - if (userWithAppRoles.getRoles() != null && userWithAppRoles.getRoles().size() > 0) - userApplicationRoles.add(userWithAppRoles); - } - } - // remote app - else { - RemoteUserWithRoles[] remoteUsers = null; - String remoteUsersString = applicationsRestClientService.getIncomingJsonString(appId, "/users"); - remoteUsers = doGetUsers(isAppUpgradeVersion(app), remoteUsersString); - userApplicationRoles = new ArrayList(); - for (RemoteUserWithRoles remoteUser : remoteUsers) { - UserApplicationRoles userWithRemoteAppRoles = convertToUserApplicationRoles(appId, remoteUser); - if (userWithRemoteAppRoles.getRoles() != null && userWithRemoteAppRoles.getRoles().size() > 0) { - userApplicationRoles.add(userWithRemoteAppRoles); - } else { - logger.debug(EELFLoggerDelegate.debugLogger, "User " + userWithRemoteAppRoles.getOrgUserId() - + " doesn't have any roles assigned to any app."); - } - } - } - return userApplicationRoles; - } - - /** - * - * @param appId - * @param user - * @param appgetUsersFromAppEndpoint - * @return - */ - private UserApplicationRoles convertToUserApplicationRoles(Long appId, EPUser user, EPApp app) { - UserApplicationRoles userWithRemoteAppRoles = new UserApplicationRoles(); - userWithRemoteAppRoles.setAppId(appId); - userWithRemoteAppRoles.setOrgUserId(user.getOrgUserId()); - userWithRemoteAppRoles.setFirstName(user.getFirstName()); - userWithRemoteAppRoles.setLastName(user.getLastName()); - userWithRemoteAppRoles.setRoles(convertToRemoteRoleList(user, app)); - return userWithRemoteAppRoles; - } - - /** - * - * @param user - * @param app - * @return - */ - private List convertToRemoteRoleList(EPUser user, EPApp app) { - List roleList = new ArrayList(); - SortedSet roleSet = user.getAppEPRoles(app); - for (EPRole role : roleSet) { - RemoteRole rRole = new RemoteRole(); - rRole.setId(role.getId()); - rRole.setName(role.getName()); - roleList.add(rRole); - } - return roleList; - } - - /** - * - * Returns RemoteUserWithRoles reading the value from remote application user in the form a string from an ObjectMapper - * @param postOpenSource - * @param remoteUsersString - * @return RemoteUserWithRoles - */ - public RemoteUserWithRoles[] doGetUsers(boolean postOpenSource, String remoteUsersString) { - ObjectMapper mapper = new ObjectMapper(); - try { - return mapper.readValue(remoteUsersString, RemoteUserWithRoles[].class); - } catch (IOException e) { - logger.error(EELFLoggerDelegate.errorLogger, "doGetUsers : Failed : Unexpected property in incoming JSON", - e); - logger.error(EELFLoggerDelegate.errorLogger, - "doGetUsers : Incoming JSON that caused it --> " + remoteUsersString); - } - - return new RemoteUserWithRoles[0]; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesService.java deleted file mode 100644 index 57188947..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesService.java +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.apache.cxf.transport.http.HTTPException; -import org.openecomp.portalapp.externalsystemapproval.model.ExternalSystemUser; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EPUserApp; -import org.openecomp.portalapp.portal.domain.EPUserAppCatalogRoles; -import org.openecomp.portalapp.portal.domain.ExternalSystemAccess; -import org.openecomp.portalapp.portal.transport.AppWithRolesForUser; -import org.openecomp.portalapp.portal.transport.ExternalRequestFieldsValidator; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.RoleInAppForUser; -import org.openecomp.portalapp.portal.transport.UserApplicationRoles; - -public interface UserRolesService { - - /** - * Returns list of app roles of a single app - * - * @param appId - * ID of row in fn_app - * @param userId - * ID of row in fn_user - * @param extRequestValue - * set to false if request is from users page otherwise true - * @return List - */ - public List getAppRolesForUser(Long appId, String userId, Boolean extRequestValue); - - public boolean setAppWithUserRoleStateForUser(EPUser user, AppWithRolesForUser newAppRolesForUser); - - public List getUsersFromAppEndpoint(Long appId) throws HTTPException; - - public List importRolesFromRemoteApplication(Long appId) throws HTTPException; - - /** - * Gets entries from the local fn_user_role table for the specified user and - * app. - * - * @param appId - * ID of row in fn_app - * @param userId - * ID of row in fn_user - * @return List of EPRole; empty if none found. - */ - public List getCachedAppRolesForUser(Long appId, Long userId); - - public FieldsValidator putUserAppRolesRequest(AppWithRolesForUser userAppRolesData, EPUser user); - - /** - * Save user app roles in the database from the external request - * - * @param newAppRolesForUser - * - * contains login id, app name, request id, and list of role - * names - * @param reqType - * @return if any exceptions, returns detail message and true or false - */ - ExternalRequestFieldsValidator setExternalRequestUserAppRole(ExternalSystemUser newAppRolesForUser, String reqType); - - public List getUserAppCatalogRoles(EPUser user, String appName); - - public String updateRemoteUserProfile(String orgUserId, Long appId); - - public ExternalSystemAccess getExternalRequestAccess(); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserService.java deleted file mode 100644 index 38c7fa33..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserService.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.EPUser; - -public interface UserService { - - List getUserByUserId(String orgUserId); - - List getUserByFirstLastName(String firstName, String lastName); - - public String saveNewUser(EPUser newUser, String checkDuplicate) throws Exception; - - public void saveUser(EPUser user) throws Exception; - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserServiceImpl.java deleted file mode 100644 index 49831435..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserServiceImpl.java +++ /dev/null @@ -1,283 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; - -import org.json.JSONArray; -import org.json.JSONObject; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalsdk.core.FusionObject.Utilities; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service("userService") -@Transactional -public class UserServiceImpl implements UserService { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - - public DataAccessService getDataAccessService() { - return dataAccessService; - } - - public void setDataAccessService(DataAccessService dataAccessService) { - this.dataAccessService = dataAccessService; - } - - @SuppressWarnings("unchecked") - @Override - public List getUserByUserId(String userId) { - - if (SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM).trim().equalsIgnoreCase("OIDC")) { - List users = new ArrayList(); - List filterdUsers = new ArrayList(); - BufferedReader in = null; - HttpURLConnection con = null; - try { - String url = EPCommonSystemProperties.getProperty(EPCommonSystemProperties.AUTH_USER_SERVER); - URL obj = new URL(url); - - con = (HttpURLConnection) obj.openConnection(); - - // optional default is GET - con.setRequestMethod("GET"); - con.setConnectTimeout(3000); - con.setReadTimeout(8000); - - StringBuffer response = new StringBuffer(); - - in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); - String inputLine; - while ((inputLine = in.readLine()) != null) - response.append(inputLine); - JSONObject jObject = new JSONObject(response.toString()); // json - JSONArray jsonUsers = jObject.getJSONArray("response"); // get - // data - // object - for (int i = 0; i < jsonUsers.length(); i++) { - JSONObject eachObject = jsonUsers.getJSONObject(i); - EPUser eachUser = new EPUser(); - eachUser.setOrgUserId(eachObject.get("id").toString()); - eachUser.setFirstName(eachObject.get("givenName").toString()); - eachUser.setLastName(eachObject.get("familyName").toString()); - eachUser.setEmail(eachObject.get("email").toString()); - users.add(eachUser); - } - - for (int i = 0; i < users.size(); i++) { - if (Utilities.nvl(userId).length() > 0) { - if (!userId.equalsIgnoreCase(users.get(i).getOrgUserId())) { - continue; - } - } - filterdUsers.add(users.get(i)); - } - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUserByUserId failed", e); - } finally { - try { - in.close(); - con.disconnect(); - } catch (IOException e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUserByUserId failed to close", e); - } - } - - return filterdUsers; - - } else { - - List list = null; - StringBuffer criteria = new StringBuffer(); - criteria.append(" where org_user_id = '").append(userId).append("'"); - list = getDataAccessService().getList(EPUser.class, criteria.toString(), null, null); - return (list == null || list.size() == 0) ? null : list; - - } - - } - - @SuppressWarnings("unchecked") - @Override - public List getUserByFirstLastName(String firstName, String lastName) { - - if (!SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM).trim().equalsIgnoreCase("OIDC")) { - - List list = null; - StringBuffer criteria = new StringBuffer(); - if (firstName != null) - criteria.append(" where first_name = '").append(firstName).append("'"); - if (lastName != null) - criteria.append(" where last_name = '").append(lastName).append("'"); - list = getDataAccessService().getList(EPUser.class, criteria.toString(), null, null); - return (list == null || list.size() == 0) ? null : list; - - } else { - - List users = new ArrayList(); - List filterdUsers = new ArrayList(); - BufferedReader in = null; - HttpURLConnection con = null; - try { - String url = EPCommonSystemProperties.getProperty(EPCommonSystemProperties.AUTH_USER_SERVER); - URL obj = new URL(url); - - con = (HttpURLConnection) obj.openConnection(); - - // optional default is GET - con.setRequestMethod("GET"); - con.setConnectTimeout(3000); - con.setReadTimeout(8000); - - StringBuffer response = new StringBuffer(); - - in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); - String inputLine; - while ((inputLine = in.readLine()) != null) - response.append(inputLine); - JSONObject jObject = new JSONObject(response.toString()); // json - JSONArray jsonUsers = jObject.getJSONArray("response"); // get - // data - // object - for (int i = 0; i < jsonUsers.length(); i++) { - JSONObject eachObject = jsonUsers.getJSONObject(i); - EPUser eachUser = new EPUser(); - eachUser.setOrgUserId(eachObject.get("id").toString());// getString("id")); - eachUser.setFirstName(eachObject.get("givenName").toString()); - eachUser.setLastName(eachObject.get("familyName").toString()); - eachUser.setEmail(eachObject.get("email").toString()); - users.add(eachUser); - } - - for (int i = 0; i < users.size(); i++) { - - if (Utilities.nvl(firstName).length() > 0) { - if (!firstName.equalsIgnoreCase(users.get(i).getFirstName())) { - continue; - } - } - if (Utilities.nvl(lastName).length() > 0) { - if (!lastName.equalsIgnoreCase(users.get(i).getLastName())) { - continue; - } - } - - filterdUsers.add(users.get(i)); - - } - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUserByFirstLastName failed", e); - } finally { - try { - in.close(); - con.disconnect(); - } catch (IOException e) { - logger.error(EELFLoggerDelegate.errorLogger, "getUserByFirstLastName failed to close", e); - } - } - - return filterdUsers; - } - - } - - @SuppressWarnings("unchecked") - public String saveNewUser(EPUser newUser, String checkDuplicate) throws Exception { - - try { - - List list = null; - StringBuffer criteria = new StringBuffer(); - criteria.append(" where org_user_id = '").append(newUser.getLoginId()).append("'"); - list = getDataAccessService().getList(EPUser.class, criteria.toString(), null, null); - if (list == null || list.size() == 0) { - newUser.setActive(true); - newUser.setOrgUserId(newUser.getLoginId()); - newUser.setLoginPwd(CipherUtil.encrypt(newUser.getLoginPwd())); - getDataAccessService().saveDomainObject(newUser, null); - } else { - if (checkDuplicate.equals("Yes")) { - // userId already exist in database - return "Record already exist"; - } else { - - EPUser oldUser = (EPUser) list.get(0); - oldUser.setFirstName(newUser.getFirstName()); - oldUser.setLastName(newUser.getLastName()); - oldUser.setMiddleInitial(newUser.getMiddleInitial()); - if (!oldUser.getLoginPwd().equals(newUser.getLoginPwd())) - oldUser.setLoginPwd(CipherUtil.encrypt(newUser.getLoginPwd())); - else - oldUser.setLoginPwd(newUser.getLoginPwd()); - getDataAccessService().saveDomainObject(oldUser, null); - - } - - } - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "saveNewUser failed", e); - throw new Exception(e); - } - return "success"; - }; - - @Override - public void saveUser(EPUser user) throws Exception { - getDataAccessService().saveDomainObject(user, null); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetParameterService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetParameterService.java deleted file mode 100644 index 81b5e1e2..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetParameterService.java +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.WidgetCatalogParameter; - -public interface WidgetParameterService { - - /** - * Saves the specified user-defined widget parameters to the table ep_widget_parameters - * - * @param newParameter - */ - void saveUserParameter(WidgetCatalogParameter newParameter); - - /** - * Gets the specified user-defined widget parameter where paramId is used from all users - * - * @param paramId - * @return - * List of widget parameters - */ - List getUserParameterById(Long paramId); - - - /** - * Deletes the specified user-defined widget parameters from ep_widget_parameters table - * where paramId is used - * - * @param paramId - */ - void deleteUserParameterById(Long paramId); - - - /** - * Gets the specified user-defined widget parameter where paramId is used from the specified - * user with userId - * @param widgetId - * @param userId - * @param paramId - * @return WidgetCatalogParameter - */ - WidgetCatalogParameter getUserParamById(Long widgetId, Long userId, Long paramId); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetParameterServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetParameterServiceImpl.java deleted file mode 100644 index e69c7275..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetParameterServiceImpl.java +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.hibernate.criterion.Criterion; -import org.hibernate.criterion.Restrictions; -import org.openecomp.portalapp.portal.domain.WidgetCatalogParameter; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -@Service("widgetParameterService") -@EnableAspectJAutoProxy -@EPMetricsLog -public class WidgetParameterServiceImpl implements WidgetParameterService{ - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetParameterServiceImpl.class); - - @Autowired - private DataAccessService dataAccessService; - - @SuppressWarnings("unchecked") - @Override - public WidgetCatalogParameter getUserParamById(Long widgetId, Long userId, Long paramId) { - List restrictionsList = new ArrayList(); - Criterion widgetIdCrit = Restrictions.eq("widgetId", widgetId); - restrictionsList.add(widgetIdCrit); - Criterion userIdCrit = Restrictions.eq("userId", userId); - restrictionsList.add(userIdCrit); - Criterion paramIdCrit = Restrictions.eq("paramId", paramId); - restrictionsList.add(paramIdCrit); - - - WidgetCatalogParameter widgetParam = null; - List list = (List) dataAccessService - .getList(WidgetCatalogParameter.class, null, restrictionsList, null); - if(list.size() != 0) - widgetParam = list.get(0); - logger.debug(EELFLoggerDelegate.debugLogger, - "getUserParamById: widget parameters: " + widgetParam); - return widgetParam; - } - - @Override - public void saveUserParameter(WidgetCatalogParameter newParameter) { - dataAccessService.saveDomainObject(newParameter, null); - } - - @SuppressWarnings("unchecked") - @Override - public List getUserParameterById(Long paramId) { - List restrictionsList = new ArrayList(); - Criterion paramIdCrit = Restrictions.eq("paramId", paramId); - restrictionsList.add(paramIdCrit); - List list = (List) dataAccessService - .getList(WidgetCatalogParameter.class, null, restrictionsList, null); - return list; - } - - @Override - public void deleteUserParameterById(Long paramId) { - Map params = new HashMap(); - params.put("paramId", Long.toString(paramId)); - dataAccessService.executeNamedQuery("deleteWidgetCatalogParameter", params, null); - dataAccessService.executeNamedQuery("deleteMicroserviceParameterById", params, null); - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetService.java deleted file mode 100644 index a90fc4e2..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetService.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.OnboardingWidget; - -public interface WidgetService { - - List getOnboardingWidgets(EPUser user, boolean managed); - - FieldsValidator setOnboardingWidget(EPUser user, OnboardingWidget onboardingWidget); - - FieldsValidator deleteOnboardingWidget(EPUser user, Long onboardingWidgetId); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetServiceImpl.java deleted file mode 100644 index 7633e34a..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/WidgetServiceImpl.java +++ /dev/null @@ -1,294 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.List; - -import javax.annotation.PostConstruct; -import javax.servlet.http.HttpServletResponse; - -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.Transaction; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EPUserApp; -import org.openecomp.portalapp.portal.domain.Widget; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.OnboardingWidget; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; - -@Service("widgetService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class WidgetServiceImpl implements WidgetService { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetServiceImpl.class); - - private static final String baseSqlToken = " widget.WIDGET_ID, widget.WDG_NAME, widget.APP_ID, app.APP_NAME, widget.WDG_WIDTH, widget.WDG_HEIGHT, widget.WDG_URL" - + " from FN_WIDGET widget join FN_APP app ON widget.APP_ID = app.APP_ID"; - - private String validAppsFilter = ""; - - private Long LONG_ECOMP_APP_ID = 1L; - private Long ACCOUNT_ADMIN_ROLE_ID = 999L; - private static final Long DUBLICATED_FIELD_VALUE_ECOMP_ERROR = new Long(EPCommonSystemProperties.DUBLICATED_FIELD_VALUE_ECOMP_ERROR); - - private static final String urlField = "url"; - - private static final String nameField = "name"; - @Autowired - AdminRolesService adminRolesService; - @Autowired - private SessionFactory sessionFactory; - @Autowired - private DataAccessService dataAccessService; - - @PostConstruct - private void init() { - try { - validAppsFilter = " AND app.ENABLED = 'Y' AND app.APP_ID != " + SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID); - ACCOUNT_ADMIN_ROLE_ID = Long.valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ACCOUNT_ADMIN_ROLE_ID)); - LONG_ECOMP_APP_ID = Long.valueOf(SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID)); - } catch(Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "init failed", e); - } - } - - private String sqlWidgetsForAllApps() { - return "SELECT" + baseSqlToken + validAppsFilter; - } - - private String sqlWidgetsForAllAppsWhereUserIsAdmin(Long userId) { - return "SELECT" + baseSqlToken + " join FN_USER_ROLE ON FN_USER_ROLE.APP_ID = app.APP_ID where FN_USER_ROLE.USER_ID = " + userId - + " AND FN_USER_ROLE.ROLE_ID = " + ACCOUNT_ADMIN_ROLE_ID + validAppsFilter; - } - - private String sqlWidgetsForAllAppsWhereUserHasAnyRole(Long userId) { - return "SELECT DISTINCT" + baseSqlToken + " join FN_USER_ROLE ON FN_USER_ROLE.APP_ID = app.APP_ID where FN_USER_ROLE.USER_ID = " - + userId + validAppsFilter; - } - - @SuppressWarnings("unchecked") - @Override - public List getOnboardingWidgets(EPUser user, boolean managed) { - List onboardingWidgets = new ArrayList(); - String sql = null; - if (adminRolesService.isSuperAdmin(user)) { - sql = this.sqlWidgetsForAllApps(); - } else if (managed) { - if (adminRolesService.isAccountAdmin(user)) { - sql = this.sqlWidgetsForAllAppsWhereUserIsAdmin(user.getId()); - } - } else if (adminRolesService.isAccountAdmin(user) || adminRolesService.isUser(user)) { - sql = this.sqlWidgetsForAllAppsWhereUserHasAnyRole(user.getId()); - } - if (sql != null) { - onboardingWidgets = dataAccessService.executeSQLQuery(sql, OnboardingWidget.class, null); - } - return onboardingWidgets; - } - - private static final Object syncRests = new Object(); - - private boolean isUserAdminOfAppForWidget(boolean superAdmin, Long userId, Long appId) { - if (!superAdmin) { - @SuppressWarnings("unchecked") - List userRoles = dataAccessService.getList(EPUserApp.class, - " where userId = " + userId + " and role.id = " + ACCOUNT_ADMIN_ROLE_ID + " and app.id = " + appId, null, null); - return (userRoles.size() > 0); - } - return true; - } - - private void validateOnboardingWidget(OnboardingWidget onboardingWidget, FieldsValidator fieldsValidator) { - @SuppressWarnings("unchecked") - List widgets = dataAccessService.getList(Widget.class, - " where url = '" + onboardingWidget.url + "'" + " or name = '" + onboardingWidget.name + "'", null, null); - boolean dublicatedUrl = false; - boolean dublicatedName = false; - for (Widget widget : widgets) { - if (onboardingWidget.id != null && onboardingWidget.id.equals(widget.getId())) { - // widget should not be compared with itself - continue; - } - if (!dublicatedUrl && widget.getUrl().equals(onboardingWidget.url)) { - dublicatedUrl = true; - if (dublicatedName) { - break; - } - } - if (!dublicatedName && widget.getName().equalsIgnoreCase(onboardingWidget.name) && widget.getAppId().equals(onboardingWidget.appId)) { - dublicatedName = true; - if (dublicatedUrl) { - break; - } - } - } - if (dublicatedUrl || dublicatedName) { - if (dublicatedUrl) { - fieldsValidator.addProblematicFieldName(urlField); - } - if (dublicatedName) { - fieldsValidator.addProblematicFieldName(nameField); - } - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); - fieldsValidator.errorCode = DUBLICATED_FIELD_VALUE_ECOMP_ERROR; - } - } - - private void applyOnboardingWidget(OnboardingWidget onboardingWidget, FieldsValidator fieldsValidator) { - boolean result = false; - Session localSession = null; - Transaction transaction = null; - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - Widget widget; - if (onboardingWidget.id == null) { - widget = new Widget(); - } else { - widget = (Widget) localSession.get(Widget.class, onboardingWidget.id); - } - widget.setAppId(onboardingWidget.appId); - widget.setName(onboardingWidget.name); - widget.setWidth(onboardingWidget.width); - widget.setHeight(onboardingWidget.height); - widget.setUrl(onboardingWidget.url); - localSession.saveOrUpdate(widget); - transaction.commit(); - result = true; - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - EcompPortalUtils.rollbackTransaction(transaction, "applyOnboardingWidget rollback, exception = " + e); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "applyOnboardingWidget"); - } - if (!result) { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - } - - private FieldsValidator updateOrSaveWidget(boolean superAdmin, Long userId, OnboardingWidget onboardingWidget) { - FieldsValidator fieldsValidator = new FieldsValidator(); - if (!this.isUserAdminOfAppForWidget(superAdmin, userId, onboardingWidget.appId)) { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_FORBIDDEN); - return fieldsValidator; - } - synchronized (syncRests) { - // onboardingWidget.id is null for POST and not null for PUT - if (onboardingWidget.id == null) { - this.validateOnboardingWidget(onboardingWidget, fieldsValidator); - } else { - Widget widget = (Widget) dataAccessService.getDomainObject(Widget.class, onboardingWidget.id, null); - if (widget == null || widget.getId() == null) { - // Widget not found - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_NOT_FOUND); - return fieldsValidator; - } - this.validateOnboardingWidget(onboardingWidget, fieldsValidator); - } - if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) { - this.applyOnboardingWidget(onboardingWidget, fieldsValidator); - } - } - return fieldsValidator; - } - - @Override - public FieldsValidator setOnboardingWidget(EPUser user, OnboardingWidget onboardingWidget) { - if (onboardingWidget.name.length() == 0 || onboardingWidget.url.length() == 0 || onboardingWidget.appId == null - || onboardingWidget.appId.equals(LONG_ECOMP_APP_ID) || onboardingWidget.width.intValue() <= 0 || onboardingWidget.height.intValue() <= 0) { - if (onboardingWidget.appId.equals(LONG_ECOMP_APP_ID)) { - // logger.error("Alarm!!! Security breach attempt on user " + user.getFullName() + ", userId = " + user.getUserId()); - } - FieldsValidator fieldsValidator = new FieldsValidator(); - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST); - return fieldsValidator; - } - return this.updateOrSaveWidget(adminRolesService.isSuperAdmin(user), user.getId(), onboardingWidget); - } - - @Override - public FieldsValidator deleteOnboardingWidget(EPUser user, Long onboardingWidgetId) { - FieldsValidator fieldsValidator = new FieldsValidator(); - synchronized (syncRests) { - Widget widget = (Widget) dataAccessService.getDomainObject(Widget.class, onboardingWidgetId, null); - if (widget != null && widget.getId() != null) { // widget exists - if (!this.isUserAdminOfAppForWidget(adminRolesService.isSuperAdmin(user), user.getId(), widget.getAppId())) { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_FORBIDDEN); - } else { - boolean result = false; - Session localSession = null; - Transaction transaction = null; - try { - localSession = sessionFactory.openSession(); - transaction = localSession.beginTransaction(); - localSession.delete(localSession.get(Widget.class, onboardingWidgetId)); - transaction.commit(); - result = true; - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e); - EcompPortalUtils.rollbackTransaction(transaction, "deleteOnboardingWidget rollback, exception = " + e); - } finally { - EcompPortalUtils.closeLocalSession(localSession, "deleteOnboardingWidget"); - } - if (!result) { - fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - } - } - } - } - return fieldsValidator; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AllAppsWithRolesForUser.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AllAppsWithRolesForUser.java deleted file mode 100644 index b08eafef..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AllAppsWithRolesForUser.java +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.List; - -public class AllAppsWithRolesForUser { - - public String orgUserId; - - public List apps; - - public static class AppWithUserRoles { - - public Long appId; - - public String appName; - - public List appRoles; - - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/Analytics.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/Analytics.java deleted file mode 100644 index fc84012d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/Analytics.java +++ /dev/null @@ -1,84 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@JsonInclude(JsonInclude.Include.NON_NULL) -public class Analytics { - - private String action; - private String page; - private String function; - private String userid; - private String type; - - public String getType() { - return type; - } - public void setType(String type) { - this.type = type; - } - public String getAction() { - return action; - } - public void setAction(String action) { - this.action = action; - } - public String getPage() { - return page; - } - public void setPage(String page) { - this.page = page; - } - public String getFunction() { - return function; - } - public void setFunction(String function) { - this.function = function; - } - public String getUserid() { - return userid; - } - public void setUserid(String userId) { - this.userid = userId; - } - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppCatalogPersonalization.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppCatalogPersonalization.java deleted file mode 100644 index 0480f1bb..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppCatalogPersonalization.java +++ /dev/null @@ -1,112 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -/** - * Model for the object PUT to the controller when the user takes an action on - * an application in the catalog. - */ -public class AppCatalogPersonalization { - - public Long appId; - public Boolean select; - public Boolean pending; - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public Boolean getSelect() { - return select; - } - - public void setSelect(Boolean select) { - this.select = select; - } - - public Boolean getPending() { - return pending; - } - - public void setPending(Boolean pending) { - this.pending = pending; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((appId == null) ? 0 : appId.hashCode()); - result = prime * result + ((pending == null) ? 0 : pending.hashCode()); - result = prime * result + ((select == null) ? 0 : select.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - AppCatalogPersonalization other = (AppCatalogPersonalization) obj; - if (appId == null) { - if (other.appId != null) - return false; - } else if (!appId.equals(other.appId)) - return false; - if (pending == null) { - if (other.pending != null) - return false; - } else if (!pending.equals(other.pending)) - return false; - if (select == null) { - if (other.select != null) - return false; - } else if (!select.equals(other.select)) - return false; - return true; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppNameIdIsAdmin.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppNameIdIsAdmin.java deleted file mode 100644 index 2d44b672..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppNameIdIsAdmin.java +++ /dev/null @@ -1,132 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class AppNameIdIsAdmin { - - public Long id; - - public String appName; - - public Boolean isAdmin; - - public Boolean restrictedApp; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getAppName() { - return appName; - } - - public void setAppName(String appName) { - this.appName = appName; - } - - public Boolean getIsAdmin() { - return isAdmin; - } - - public void setIsAdmin(Boolean isAdmin) { - this.isAdmin = isAdmin; - } - - public Boolean getRestrictedApp() { - return restrictedApp; - } - - public void setRestrictedApp(Boolean restrictedApp) { - this.restrictedApp = restrictedApp; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((appName == null) ? 0 : appName.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((isAdmin == null) ? 0 : isAdmin.hashCode()); - result = prime * result + ((restrictedApp == null) ? 0 : restrictedApp.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - AppNameIdIsAdmin other = (AppNameIdIsAdmin) obj; - if (appName == null) { - if (other.appName != null) - return false; - } else if (!appName.equals(other.appName)) - return false; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - if (isAdmin == null) { - if (other.isAdmin != null) - return false; - } else if (!isAdmin.equals(other.isAdmin)) - return false; - if (restrictedApp == null) { - if (other.restrictedApp != null) - return false; - } else if (!restrictedApp.equals(other.restrictedApp)) - return false; - return true; - } - - @Override - public String toString() { - return "AppNameIdIsAdmin [id=" + id + ", appName=" + appName + ", isAdmin=" + isAdmin + ", restrictedApp=" - + restrictedApp + "]"; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppWithRolesForUser.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppWithRolesForUser.java deleted file mode 100644 index 7c217813..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppWithRolesForUser.java +++ /dev/null @@ -1,90 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.List; - -public class AppWithRolesForUser { - - public String orgUserId; - - public Long appId; - - public String appName; - - public List appRoles; - - public String getOrgUserId() { - return orgUserId; - } - - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public String getAppName() { - return appName; - } - - public void setAppName(String appName) { - this.appName = appName; - } - - public List getAppRoles() { - return appRoles; - } - - public void setAppRoles(List appRoles) { - this.appRoles = appRoles; - } - - @Override - public String toString() { - return "AppWithRolesForUser [orgUserId=" + orgUserId + ", appId=" + appId + ", appName=" + appName - + ", appRoles=" + appRoles + "]"; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppsListWithAdminRole.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppsListWithAdminRole.java deleted file mode 100644 index 4bcf21a8..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/AppsListWithAdminRole.java +++ /dev/null @@ -1,104 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.ArrayList; - -public class AppsListWithAdminRole { - - public String orgUserId; - - public ArrayList appsRoles; - - public AppsListWithAdminRole() { - appsRoles = new ArrayList(); - } - - public String getOrgUserId() { - return orgUserId; - } - - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } - - public ArrayList getAppsRoles() { - return appsRoles; - } - - public void setAppsRoles(ArrayList appsRoles) { - this.appsRoles = appsRoles; - } - - @Override - public String toString() { - return "AppsListWithAdminRole [orgUserId=" + orgUserId + ", appsRoles=" + appsRoles + "]"; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((appsRoles == null) ? 0 : appsRoles.hashCode()); - result = prime * result + ((orgUserId == null) ? 0 : orgUserId.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - AppsListWithAdminRole other = (AppsListWithAdminRole) obj; - if (appsRoles == null) { - if (other.appsRoles != null) - return false; - } else if (!appsRoles.equals(other.appsRoles)) - return false; - if (orgUserId == null) { - if (other.orgUserId != null) - return false; - } else if (!orgUserId.equals(other.orgUserId)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BulkUploadRoleFunction.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BulkUploadRoleFunction.java deleted file mode 100644 index e1924fa5..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BulkUploadRoleFunction.java +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@Entity -@JsonInclude(JsonInclude.Include.NON_NULL) -public class BulkUploadRoleFunction implements Serializable{ - - - private static final long serialVersionUID = -1880947347092068841L; - - @Id - @Column(name="function_name") - private String functionName; - @Id - @Column(name="function_cd") - private String functionCd; - - public String getFunctionName() { - return functionName; - } - public void setFunctionName(String functionName) { - this.functionName = functionName; - } - public String getFunctionCd() { - return functionCd; - } - public void setFunctionCd(String functionCd) { - this.functionCd = functionCd; - } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((functionCd == null) ? 0 : functionCd.hashCode()); - result = prime * result + ((functionName == null) ? 0 : functionName.hashCode()); - return result; - } - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BulkUploadRoleFunction other = (BulkUploadRoleFunction) obj; - if (functionCd == null) { - if (other.functionCd != null) - return false; - } else if (!functionCd.equals(other.functionCd)) - return false; - if (functionName == null) { - if (other.functionName != null) - return false; - } else if (!functionName.equals(other.functionName)) - return false; - return true; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BulkUploadUserRoles.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BulkUploadUserRoles.java deleted file mode 100644 index d2add21d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BulkUploadUserRoles.java +++ /dev/null @@ -1,120 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@Entity -@JsonInclude(JsonInclude.Include.NON_NULL) -public class BulkUploadUserRoles implements Serializable{ - - private static final long serialVersionUID = -7478654947593502185L; - - @Id - @Column(name="role_name") - private String roleName; - @Id - @Column(name="org_user_id") - private String orgUserId; - @Id - @Column(name="auth_namespace") - private String appNameSpace; - - public String getRoleName() { - return roleName; - } - public void setRoleName(String roleName) { - this.roleName = roleName; - } - public String getOrgUserId() { - return orgUserId; - } - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } - public String getAppNameSpace() { - return appNameSpace; - } - public void setAppNameSpace(String appNameSpace) { - this.appNameSpace = appNameSpace; - } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((appNameSpace == null) ? 0 : appNameSpace.hashCode()); - result = prime * result + ((orgUserId == null) ? 0 : orgUserId.hashCode()); - result = prime * result + ((roleName == null) ? 0 : roleName.hashCode()); - return result; - } - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BulkUploadUserRoles other = (BulkUploadUserRoles) obj; - if (appNameSpace == null) { - if (other.appNameSpace != null) - return false; - } else if (!appNameSpace.equals(other.appNameSpace)) - return false; - if (orgUserId == null) { - if (other.orgUserId != null) - return false; - } else if (!orgUserId.equals(other.orgUserId)) - return false; - if (roleName == null) { - if (other.roleName != null) - return false; - } else if (!roleName.equals(other.roleName)) - return false; - return true; - } - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRole.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRole.java deleted file mode 100644 index fff72827..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRole.java +++ /dev/null @@ -1,126 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@Entity -@JsonInclude(JsonInclude.Include.NON_NULL) -public class BusinessCardApplicationRole implements Serializable{ - - /** - * - */ - private static final long serialVersionUID = 1L; - - - public BusinessCardApplicationRole() { - } - - - @Id - @Column(name="app_name") - private String appName; - - @Id - @Column(name="role_name") - private String roleName; - - - public String getAppName() { - return appName; - } - - public void setAppName(String appName) { - this.appName = appName; - } - - - - public String getRoleName() { - return roleName; - } - - public void setRoleName(String roleName) { - this.roleName = roleName; - } - - @Override - public String toString() { - return "BusinessCardUserApplicationRoles [appName=" + appName + ", roleName=" + roleName + "]"; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((appName == null) ? 0 : appName.hashCode()); - result = prime * result + ((roleName == null) ? 0 : roleName.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BusinessCardApplicationRole other = (BusinessCardApplicationRole) obj; - if (appName == null) { - if (other.appName != null) - return false; - } else if (!appName.equals(other.appName)) - return false; - if (roleName == null) { - if (other.roleName != null) - return false; - } else if (!roleName.equals(other.roleName)) - return false; - return true; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRolesList.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRolesList.java deleted file mode 100644 index 74c83700..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRolesList.java +++ /dev/null @@ -1,104 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.List; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@JsonInclude(JsonInclude.Include.NON_NULL) -public class BusinessCardApplicationRolesList { - - public BusinessCardApplicationRolesList(){} - - private String appName; - private List roleNames; - - - public String getAppName() { - return appName; - } - public void setAppName(String appName) { - this.appName = appName; - } - public List getRoleNames() { - return roleNames; - } - public void setRoleNames(List roleNames) { - this.roleNames = roleNames; - } - public BusinessCardApplicationRolesList(String appName, List roleNames) { - super(); - this.appName = appName; - this.roleNames = roleNames; - } - @Override - public String toString() { - return "BusinessCardUserAppRoles [appName=" + appName + ", roleNames=" + roleNames + "]"; - } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((appName == null) ? 0 : appName.hashCode()); - result = prime * result + ((roleNames == null) ? 0 : roleNames.hashCode()); - return result; - } - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BusinessCardApplicationRolesList other = (BusinessCardApplicationRolesList) obj; - if (appName == null) { - if (other.appName != null) - return false; - } else if (!appName.equals(other.appName)) - return false; - if (roleNames == null) { - if (other.roleNames != null) - return false; - } else if (!roleNames.equals(other.roleNames)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralApp.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralApp.java deleted file mode 100644 index 6f7861b9..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralApp.java +++ /dev/null @@ -1,452 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.Arrays; -import java.util.Date; - -public class CentralApp { - public Long id; - public Date created; - public Date modified; - public Long createdId; - public Long modifiedId; - public Long rowNum; - public String name; // app_name - public String imageUrl; // app_image_url - public String description; // app_description - public String notes; // app_notes - public String url; // app_url - public String alternateUrl; // app_alternate_url - public String restEndpoint; // app_rest_endpoint - public String mlAppName; // ml_app_name - public String mlAppAdminId; // ml_app_admin_id; - public String motsId; // mots_id - public String appPassword; // app_password - public String open; - public String enabled; - public byte[] thumbnail; - public String username; // app_username - public String uebKey; // ueb_key - public String uebSecret; // ueb_secret - public String uebTopicName; // ueb_topic_name - - public CentralApp(Long id, Date created, Date modified, Long createdId, Long modifiedId, Long rowNum, String name, - String imageUrl, String description, String notes, String url, String alternateUrl, String restEndpoint, - String mlAppName, String mlAppAdminId, String motsId, String appPassword, String open, String enabled, - byte[] thumbnail, String username, String uebKey, String uebSecret, String uebTopicName) { - super(); - this.id = id; - this.created = created; - this.modified = modified; - this.createdId = createdId; - this.modifiedId = modifiedId; - this.rowNum = rowNum; - this.name = name; - this.imageUrl = imageUrl; - this.description = description; - this.notes = notes; - this.url = url; - this.alternateUrl = alternateUrl; - this.restEndpoint = restEndpoint; - this.mlAppName = mlAppName; - this.mlAppAdminId = mlAppAdminId; - this.motsId = motsId; - this.appPassword = appPassword; - this.open = open; - this.enabled = enabled; - this.thumbnail = thumbnail; - this.username = username; - this.uebKey = uebKey; - this.uebSecret = uebSecret; - this.uebTopicName = uebTopicName; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Date getCreated() { - return created; - } - - public void setCreated(Date created) { - this.created = created; - } - - public Date getModified() { - return modified; - } - - public void setModified(Date modified) { - this.modified = modified; - } - - public Long getCreatedId() { - return createdId; - } - - public void setCreatedId(Long createdId) { - this.createdId = createdId; - } - - public Long getModifiedId() { - return modifiedId; - } - - public void setModifiedId(Long modifiedId) { - this.modifiedId = modifiedId; - } - - public Long getRowNum() { - return rowNum; - } - - public void setRowNum(Long rowNum) { - this.rowNum = rowNum; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getImageUrl() { - return imageUrl; - } - - public void setImageUrl(String imageUrl) { - this.imageUrl = imageUrl; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getNotes() { - return notes; - } - - public void setNotes(String notes) { - this.notes = notes; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getAlternateUrl() { - return alternateUrl; - } - - public void setAlternateUrl(String alternateUrl) { - this.alternateUrl = alternateUrl; - } - - public String getRestEndpoint() { - return restEndpoint; - } - - public void setRestEndpoint(String restEndpoint) { - this.restEndpoint = restEndpoint; - } - - public String getMlAppName() { - return mlAppName; - } - - public void setMlAppName(String mlAppName) { - this.mlAppName = mlAppName; - } - - public String getMlAppAdminId() { - return mlAppAdminId; - } - - public void setMlAppAdminId(String mlAppAdminId) { - this.mlAppAdminId = mlAppAdminId; - } - - public String getMotsId() { - return motsId; - } - - public void setMotsId(String motsId) { - this.motsId = motsId; - } - - public String getAppPassword() { - return appPassword; - } - - public void setAppPassword(String appPassword) { - this.appPassword = appPassword; - } - - public String getOpen() { - return open; - } - - public void setOpen(String open) { - this.open = open; - } - - public String getEnabled() { - return enabled; - } - - public void setEnabled(String enabled) { - this.enabled = enabled; - } - - public byte[] getThumbnail() { - return thumbnail; - } - - public void setThumbnail(byte[] thumbnail) { - this.thumbnail = thumbnail; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getUebKey() { - return uebKey; - } - - public void setUebKey(String uebKey) { - this.uebKey = uebKey; - } - - public String getUebSecret() { - return uebSecret; - } - - public void setUebSecret(String uebSecret) { - this.uebSecret = uebSecret; - } - - public String getUebTopicName() { - return uebTopicName; - } - - public void setUebTopicName(String uebTopicName) { - this.uebTopicName = uebTopicName; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((alternateUrl == null) ? 0 : alternateUrl.hashCode()); - result = prime * result + ((appPassword == null) ? 0 : appPassword.hashCode()); - result = prime * result + ((created == null) ? 0 : created.hashCode()); - result = prime * result + ((createdId == null) ? 0 : createdId.hashCode()); - result = prime * result + ((description == null) ? 0 : description.hashCode()); - result = prime * result + ((enabled == null) ? 0 : enabled.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((imageUrl == null) ? 0 : imageUrl.hashCode()); - result = prime * result + ((mlAppAdminId == null) ? 0 : mlAppAdminId.hashCode()); - result = prime * result + ((mlAppName == null) ? 0 : mlAppName.hashCode()); - result = prime * result + ((modified == null) ? 0 : modified.hashCode()); - result = prime * result + ((modifiedId == null) ? 0 : modifiedId.hashCode()); - result = prime * result + ((motsId == null) ? 0 : motsId.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((notes == null) ? 0 : notes.hashCode()); - result = prime * result + ((open == null) ? 0 : open.hashCode()); - result = prime * result + ((restEndpoint == null) ? 0 : restEndpoint.hashCode()); - result = prime * result + ((rowNum == null) ? 0 : rowNum.hashCode()); - result = prime * result + Arrays.hashCode(thumbnail); - result = prime * result + ((uebKey == null) ? 0 : uebKey.hashCode()); - result = prime * result + ((uebSecret == null) ? 0 : uebSecret.hashCode()); - result = prime * result + ((uebTopicName == null) ? 0 : uebTopicName.hashCode()); - result = prime * result + ((url == null) ? 0 : url.hashCode()); - result = prime * result + ((username == null) ? 0 : username.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - CentralApp other = (CentralApp) obj; - if (alternateUrl == null) { - if (other.alternateUrl != null) - return false; - } else if (!alternateUrl.equals(other.alternateUrl)) - return false; - if (appPassword == null) { - if (other.appPassword != null) - return false; - } else if (!appPassword.equals(other.appPassword)) - return false; - if (created == null) { - if (other.created != null) - return false; - } else if (!created.equals(other.created)) - return false; - if (createdId == null) { - if (other.createdId != null) - return false; - } else if (!createdId.equals(other.createdId)) - return false; - if (description == null) { - if (other.description != null) - return false; - } else if (!description.equals(other.description)) - return false; - if (enabled == null) { - if (other.enabled != null) - return false; - } else if (!enabled.equals(other.enabled)) - return false; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - if (imageUrl == null) { - if (other.imageUrl != null) - return false; - } else if (!imageUrl.equals(other.imageUrl)) - return false; - if (mlAppAdminId == null) { - if (other.mlAppAdminId != null) - return false; - } else if (!mlAppAdminId.equals(other.mlAppAdminId)) - return false; - if (mlAppName == null) { - if (other.mlAppName != null) - return false; - } else if (!mlAppName.equals(other.mlAppName)) - return false; - if (modified == null) { - if (other.modified != null) - return false; - } else if (!modified.equals(other.modified)) - return false; - if (modifiedId == null) { - if (other.modifiedId != null) - return false; - } else if (!modifiedId.equals(other.modifiedId)) - return false; - if (motsId == null) { - if (other.motsId != null) - return false; - } else if (!motsId.equals(other.motsId)) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (notes == null) { - if (other.notes != null) - return false; - } else if (!notes.equals(other.notes)) - return false; - if (open == null) { - if (other.open != null) - return false; - } else if (!open.equals(other.open)) - return false; - if (restEndpoint == null) { - if (other.restEndpoint != null) - return false; - } else if (!restEndpoint.equals(other.restEndpoint)) - return false; - if (rowNum == null) { - if (other.rowNum != null) - return false; - } else if (!rowNum.equals(other.rowNum)) - return false; - if (!Arrays.equals(thumbnail, other.thumbnail)) - return false; - if (uebKey == null) { - if (other.uebKey != null) - return false; - } else if (!uebKey.equals(other.uebKey)) - return false; - if (uebSecret == null) { - if (other.uebSecret != null) - return false; - } else if (!uebSecret.equals(other.uebSecret)) - return false; - if (uebTopicName == null) { - if (other.uebTopicName != null) - return false; - } else if (!uebTopicName.equals(other.uebTopicName)) - return false; - if (url == null) { - if (other.url != null) - return false; - } else if (!url.equals(other.url)) - return false; - if (username == null) { - if (other.username != null) - return false; - } else if (!username.equals(other.username)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralRole.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralRole.java deleted file mode 100644 index eb90fcd9..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralRole.java +++ /dev/null @@ -1,284 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.Date; -import java.util.SortedSet; - -import org.openecomp.portalapp.portal.domain.CentralRoleFunction; -import org.openecomp.portalapp.portal.domain.EPRole; - -public class CentralRole implements Comparable { - public Long id; - public Date created; - public Date modified; - public Long createdId; - public Long modifiedId; - public Long rowNum; - - public String name; - public boolean active; - public Integer priority; - - public SortedSet roleFunctions = null; - - public SortedSet childRoles = null; - - public SortedSet parentRoles = null; - - public CentralRole(Long id, Date created, Date modified, Long createdId, Long modifiedId, Long rowNum, String name, - boolean active, Integer priority, SortedSet roleFunctions, - SortedSet childRoles, SortedSet parentRoles) { - super(); - this.id = id; - this.created = created; - this.modified = modified; - this.createdId = createdId; - this.modifiedId = modifiedId; - this.rowNum = rowNum; - this.name = name; - this.active = active; - this.priority = priority; - this.roleFunctions = roleFunctions; - this.childRoles = childRoles; - this.parentRoles = parentRoles; - } - - public CentralRole() { - - } - - public CentralRole(Long id, String name) { - this.id = id; - this.name = name; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Date getCreated() { - return created; - } - - public void setCreated(Date created) { - this.created = created; - } - - public Date getModified() { - return modified; - } - - public void setModified(Date modified) { - this.modified = modified; - } - - public Long getCreatedId() { - return createdId; - } - - public void setCreatedId(Long createdId) { - this.createdId = createdId; - } - - public Long getModifiedId() { - return modifiedId; - } - - public void setModifiedId(Long modifiedId) { - this.modifiedId = modifiedId; - } - - public Long getRowNum() { - return rowNum; - } - - public void setRowNum(Long rowNum) { - this.rowNum = rowNum; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public boolean isActive() { - return active; - } - - public void setActive(boolean active) { - this.active = active; - } - - public Integer getPriority() { - return priority; - } - - public void setPriority(Integer priority) { - this.priority = priority; - } - - public SortedSet getRoleFunctions() { - return roleFunctions; - } - - public void setRoleFunctions(SortedSet roleFunctions) { - this.roleFunctions = roleFunctions; - } - - public SortedSet getChildRoles() { - return childRoles; - } - - public void setChildRoles(SortedSet childRoles) { - this.childRoles = childRoles; - } - - public SortedSet getParentRoles() { - return parentRoles; - } - - public void setParentRoles(SortedSet parentRoles) { - this.parentRoles = parentRoles; - } - - public int compareTo(Object obj) { - EPRole other = (EPRole) obj; - - String c1 = getName(); - String c2 = other.getName(); - - return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + (active ? 1231 : 1237); - result = prime * result + ((childRoles == null) ? 0 : childRoles.hashCode()); - result = prime * result + ((created == null) ? 0 : created.hashCode()); - result = prime * result + ((createdId == null) ? 0 : createdId.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((modified == null) ? 0 : modified.hashCode()); - result = prime * result + ((modifiedId == null) ? 0 : modifiedId.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((parentRoles == null) ? 0 : parentRoles.hashCode()); - result = prime * result + ((priority == null) ? 0 : priority.hashCode()); - result = prime * result + ((roleFunctions == null) ? 0 : roleFunctions.hashCode()); - result = prime * result + ((rowNum == null) ? 0 : rowNum.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - CentralRole other = (CentralRole) obj; - if (active != other.active) - return false; - if (childRoles == null) { - if (other.childRoles != null) - return false; - } else if (!childRoles.equals(other.childRoles)) - return false; - if (created == null) { - if (other.created != null) - return false; - } else if (!created.equals(other.created)) - return false; - if (createdId == null) { - if (other.createdId != null) - return false; - } else if (!createdId.equals(other.createdId)) - return false; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - if (modified == null) { - if (other.modified != null) - return false; - } else if (!modified.equals(other.modified)) - return false; - if (modifiedId == null) { - if (other.modifiedId != null) - return false; - } else if (!modifiedId.equals(other.modifiedId)) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (parentRoles == null) { - if (other.parentRoles != null) - return false; - } else if (!parentRoles.equals(other.parentRoles)) - return false; - if (priority == null) { - if (other.priority != null) - return false; - } else if (!priority.equals(other.priority)) - return false; - if (roleFunctions == null) { - if (other.roleFunctions != null) - return false; - } else if (!roleFunctions.equals(other.roleFunctions)) - return false; - if (rowNum == null) { - if (other.rowNum != null) - return false; - } else if (!rowNum.equals(other.rowNum)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralUser.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralUser.java deleted file mode 100644 index e402456b..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralUser.java +++ /dev/null @@ -1,500 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.Date; -import java.util.Set; - -public class CentralUser { - - public Long id; - public Date created; - public Date modified; - public Long createdId; - public Long modifiedId; - public Long rowNum; - - public Long orgId; - public Long managerId; - public String firstName; - public String middleInitial; - public String lastName; - public String phone; - public String fax; - public String cellular; - public String email; - public Long addressId; - public String alertMethodCd; - public String hrid; - public String orgUserId; - public String orgCode; - public String address1; - public String address2; - public String city; - public String state; - public String zipCode; - public String country; - public String orgManagerUserId; - public String locationClli; - public String businessCountryCode; - public String businessCountryName; - public String businessUnit; - public String businessUnitName; - public String department; - public String departmentName; - public String companyCode; - public String company; - public String zipCodeSuffix; - public String jobTitle; - public String commandChain; - public String siloStatus; - public String costCenter; - public String financialLocCode; - - public String loginId; - public String loginPwd; - public Date lastLoginDate; - public boolean active; - public boolean internal; - public Long selectedProfileId; - public Long timeZoneId; - public boolean online; - public String chatId; - - public Set userApps = null; - public Set pseudoRoles = null; - - public CentralUser() { - - } - - public CentralUser(Long id, Date created, Date modified, Long createdId, Long modifiedId, Long rowNum, Long orgId, - Long managerId, String firstName, String middleInitial, String lastName, String phone, String fax, - String cellular, String email, Long addressId, String alertMethodCd, String hrid, String orgUserId, - String orgCode, String address1, String address2, String city, String state, String zipCode, String country, - String orgManagerUserId, String locationClli, String businessCountryCode, String businessCountryName, - String businessUnit, String businessUnitName, String department, String departmentName, String companyCode, - String company, String zipCodeSuffix, String jobTitle, String commandChain, String siloStatus, - String costCenter, String financialLocCode, String loginId, String loginPwd, Date lastLoginDate, - boolean active, boolean internal, Long selectedProfileId, Long timeZoneId, boolean online, String chatId, - Set userApps, Set pseudoRoles) { - super(); - this.id = id; - this.created = created; - this.modified = modified; - this.createdId = createdId; - this.modifiedId = modifiedId; - this.rowNum = rowNum; - this.orgId = orgId; - this.managerId = managerId; - this.firstName = firstName; - this.middleInitial = middleInitial; - this.lastName = lastName; - this.phone = phone; - this.fax = fax; - this.cellular = cellular; - this.email = email; - this.addressId = addressId; - this.alertMethodCd = alertMethodCd; - this.hrid = hrid; - this.orgUserId = orgUserId; - this.orgCode = orgCode; - this.address1 = address1; - this.address2 = address2; - this.city = city; - this.state = state; - this.zipCode = zipCode; - this.country = country; - this.orgManagerUserId = orgManagerUserId; - this.locationClli = locationClli; - this.businessCountryCode = businessCountryCode; - this.businessCountryName = businessCountryName; - this.businessUnit = businessUnit; - this.businessUnitName = businessUnitName; - this.department = department; - this.departmentName = departmentName; - this.companyCode = companyCode; - this.company = company; - this.zipCodeSuffix = zipCodeSuffix; - this.jobTitle = jobTitle; - this.commandChain = commandChain; - this.siloStatus = siloStatus; - this.costCenter = costCenter; - this.financialLocCode = financialLocCode; - this.loginId = loginId; - this.loginPwd = loginPwd; - this.lastLoginDate = lastLoginDate; - this.active = active; - this.internal = internal; - this.selectedProfileId = selectedProfileId; - this.timeZoneId = timeZoneId; - this.online = online; - this.chatId = chatId; - this.userApps = userApps; - this.pseudoRoles = pseudoRoles; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + (active ? 1231 : 1237); - result = prime * result + ((address1 == null) ? 0 : address1.hashCode()); - result = prime * result + ((address2 == null) ? 0 : address2.hashCode()); - result = prime * result + ((addressId == null) ? 0 : addressId.hashCode()); - result = prime * result + ((alertMethodCd == null) ? 0 : alertMethodCd.hashCode()); - result = prime * result + ((businessCountryCode == null) ? 0 : businessCountryCode.hashCode()); - result = prime * result + ((businessCountryName == null) ? 0 : businessCountryName.hashCode()); - result = prime * result + ((businessUnit == null) ? 0 : businessUnit.hashCode()); - result = prime * result + ((businessUnitName == null) ? 0 : businessUnitName.hashCode()); - result = prime * result + ((cellular == null) ? 0 : cellular.hashCode()); - result = prime * result + ((chatId == null) ? 0 : chatId.hashCode()); - result = prime * result + ((city == null) ? 0 : city.hashCode()); - result = prime * result + ((commandChain == null) ? 0 : commandChain.hashCode()); - result = prime * result + ((company == null) ? 0 : company.hashCode()); - result = prime * result + ((companyCode == null) ? 0 : companyCode.hashCode()); - result = prime * result + ((costCenter == null) ? 0 : costCenter.hashCode()); - result = prime * result + ((country == null) ? 0 : country.hashCode()); - result = prime * result + ((created == null) ? 0 : created.hashCode()); - result = prime * result + ((createdId == null) ? 0 : createdId.hashCode()); - result = prime * result + ((department == null) ? 0 : department.hashCode()); - result = prime * result + ((departmentName == null) ? 0 : departmentName.hashCode()); - result = prime * result + ((email == null) ? 0 : email.hashCode()); - result = prime * result + ((fax == null) ? 0 : fax.hashCode()); - result = prime * result + ((financialLocCode == null) ? 0 : financialLocCode.hashCode()); - result = prime * result + ((firstName == null) ? 0 : firstName.hashCode()); - result = prime * result + ((hrid == null) ? 0 : hrid.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + (internal ? 1231 : 1237); - result = prime * result + ((jobTitle == null) ? 0 : jobTitle.hashCode()); - result = prime * result + ((lastLoginDate == null) ? 0 : lastLoginDate.hashCode()); - result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); - result = prime * result + ((locationClli == null) ? 0 : locationClli.hashCode()); - result = prime * result + ((loginId == null) ? 0 : loginId.hashCode()); - result = prime * result + ((loginPwd == null) ? 0 : loginPwd.hashCode()); - result = prime * result + ((managerId == null) ? 0 : managerId.hashCode()); - result = prime * result + ((middleInitial == null) ? 0 : middleInitial.hashCode()); - result = prime * result + ((modified == null) ? 0 : modified.hashCode()); - result = prime * result + ((modifiedId == null) ? 0 : modifiedId.hashCode()); - result = prime * result + (online ? 1231 : 1237); - result = prime * result + ((orgCode == null) ? 0 : orgCode.hashCode()); - result = prime * result + ((orgId == null) ? 0 : orgId.hashCode()); - result = prime * result + ((orgManagerUserId == null) ? 0 : orgManagerUserId.hashCode()); - result = prime * result + ((orgUserId == null) ? 0 : orgUserId.hashCode()); - result = prime * result + ((phone == null) ? 0 : phone.hashCode()); - result = prime * result + ((pseudoRoles == null) ? 0 : pseudoRoles.hashCode()); - result = prime * result + ((rowNum == null) ? 0 : rowNum.hashCode()); - result = prime * result + ((selectedProfileId == null) ? 0 : selectedProfileId.hashCode()); - result = prime * result + ((siloStatus == null) ? 0 : siloStatus.hashCode()); - result = prime * result + ((state == null) ? 0 : state.hashCode()); - result = prime * result + ((timeZoneId == null) ? 0 : timeZoneId.hashCode()); - result = prime * result + ((userApps == null) ? 0 : userApps.hashCode()); - result = prime * result + ((zipCode == null) ? 0 : zipCode.hashCode()); - result = prime * result + ((zipCodeSuffix == null) ? 0 : zipCodeSuffix.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - CentralUser other = (CentralUser) obj; - if (active != other.active) - return false; - if (address1 == null) { - if (other.address1 != null) - return false; - } else if (!address1.equals(other.address1)) - return false; - if (address2 == null) { - if (other.address2 != null) - return false; - } else if (!address2.equals(other.address2)) - return false; - if (addressId == null) { - if (other.addressId != null) - return false; - } else if (!addressId.equals(other.addressId)) - return false; - if (alertMethodCd == null) { - if (other.alertMethodCd != null) - return false; - } else if (!alertMethodCd.equals(other.alertMethodCd)) - return false; - if (businessCountryCode == null) { - if (other.businessCountryCode != null) - return false; - } else if (!businessCountryCode.equals(other.businessCountryCode)) - return false; - if (businessCountryName == null) { - if (other.businessCountryName != null) - return false; - } else if (!businessCountryName.equals(other.businessCountryName)) - return false; - if (businessUnit == null) { - if (other.businessUnit != null) - return false; - } else if (!businessUnit.equals(other.businessUnit)) - return false; - if (businessUnitName == null) { - if (other.businessUnitName != null) - return false; - } else if (!businessUnitName.equals(other.businessUnitName)) - return false; - if (cellular == null) { - if (other.cellular != null) - return false; - } else if (!cellular.equals(other.cellular)) - return false; - if (chatId == null) { - if (other.chatId != null) - return false; - } else if (!chatId.equals(other.chatId)) - return false; - if (city == null) { - if (other.city != null) - return false; - } else if (!city.equals(other.city)) - return false; - if (commandChain == null) { - if (other.commandChain != null) - return false; - } else if (!commandChain.equals(other.commandChain)) - return false; - if (company == null) { - if (other.company != null) - return false; - } else if (!company.equals(other.company)) - return false; - if (companyCode == null) { - if (other.companyCode != null) - return false; - } else if (!companyCode.equals(other.companyCode)) - return false; - if (costCenter == null) { - if (other.costCenter != null) - return false; - } else if (!costCenter.equals(other.costCenter)) - return false; - if (country == null) { - if (other.country != null) - return false; - } else if (!country.equals(other.country)) - return false; - if (created == null) { - if (other.created != null) - return false; - } else if (!created.equals(other.created)) - return false; - if (createdId == null) { - if (other.createdId != null) - return false; - } else if (!createdId.equals(other.createdId)) - return false; - if (department == null) { - if (other.department != null) - return false; - } else if (!department.equals(other.department)) - return false; - if (departmentName == null) { - if (other.departmentName != null) - return false; - } else if (!departmentName.equals(other.departmentName)) - return false; - if (email == null) { - if (other.email != null) - return false; - } else if (!email.equals(other.email)) - return false; - if (fax == null) { - if (other.fax != null) - return false; - } else if (!fax.equals(other.fax)) - return false; - if (financialLocCode == null) { - if (other.financialLocCode != null) - return false; - } else if (!financialLocCode.equals(other.financialLocCode)) - return false; - if (firstName == null) { - if (other.firstName != null) - return false; - } else if (!firstName.equals(other.firstName)) - return false; - if (hrid == null) { - if (other.hrid != null) - return false; - } else if (!hrid.equals(other.hrid)) - return false; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - if (internal != other.internal) - return false; - if (jobTitle == null) { - if (other.jobTitle != null) - return false; - } else if (!jobTitle.equals(other.jobTitle)) - return false; - if (lastLoginDate == null) { - if (other.lastLoginDate != null) - return false; - } else if (!lastLoginDate.equals(other.lastLoginDate)) - return false; - if (lastName == null) { - if (other.lastName != null) - return false; - } else if (!lastName.equals(other.lastName)) - return false; - if (locationClli == null) { - if (other.locationClli != null) - return false; - } else if (!locationClli.equals(other.locationClli)) - return false; - if (loginId == null) { - if (other.loginId != null) - return false; - } else if (!loginId.equals(other.loginId)) - return false; - if (loginPwd == null) { - if (other.loginPwd != null) - return false; - } else if (!loginPwd.equals(other.loginPwd)) - return false; - if (managerId == null) { - if (other.managerId != null) - return false; - } else if (!managerId.equals(other.managerId)) - return false; - if (middleInitial == null) { - if (other.middleInitial != null) - return false; - } else if (!middleInitial.equals(other.middleInitial)) - return false; - if (modified == null) { - if (other.modified != null) - return false; - } else if (!modified.equals(other.modified)) - return false; - if (modifiedId == null) { - if (other.modifiedId != null) - return false; - } else if (!modifiedId.equals(other.modifiedId)) - return false; - if (online != other.online) - return false; - if (orgCode == null) { - if (other.orgCode != null) - return false; - } else if (!orgCode.equals(other.orgCode)) - return false; - if (orgId == null) { - if (other.orgId != null) - return false; - } else if (!orgId.equals(other.orgId)) - return false; - if (orgManagerUserId == null) { - if (other.orgManagerUserId != null) - return false; - } else if (!orgManagerUserId.equals(other.orgManagerUserId)) - return false; - if (orgUserId == null) { - if (other.orgUserId != null) - return false; - } else if (!orgUserId.equals(other.orgUserId)) - return false; - if (phone == null) { - if (other.phone != null) - return false; - } else if (!phone.equals(other.phone)) - return false; - if (pseudoRoles == null) { - if (other.pseudoRoles != null) - return false; - } else if (!pseudoRoles.equals(other.pseudoRoles)) - return false; - if (rowNum == null) { - if (other.rowNum != null) - return false; - } else if (!rowNum.equals(other.rowNum)) - return false; - if (selectedProfileId == null) { - if (other.selectedProfileId != null) - return false; - } else if (!selectedProfileId.equals(other.selectedProfileId)) - return false; - if (siloStatus == null) { - if (other.siloStatus != null) - return false; - } else if (!siloStatus.equals(other.siloStatus)) - return false; - if (state == null) { - if (other.state != null) - return false; - } else if (!state.equals(other.state)) - return false; - if (timeZoneId == null) { - if (other.timeZoneId != null) - return false; - } else if (!timeZoneId.equals(other.timeZoneId)) - return false; - if (userApps == null) { - if (other.userApps != null) - return false; - } else if (!userApps.equals(other.userApps)) - return false; - if (zipCode == null) { - if (other.zipCode != null) - return false; - } else if (!zipCode.equals(other.zipCode)) - return false; - if (zipCodeSuffix == null) { - if (other.zipCodeSuffix != null) - return false; - } else if (!zipCodeSuffix.equals(other.zipCodeSuffix)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralUserApp.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralUserApp.java deleted file mode 100644 index 8f6c15bd..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CentralUserApp.java +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -@SuppressWarnings("rawtypes") -public class CentralUserApp implements Comparable { - - private Long userId; - private CentralApp app; - private CentralRole role; - private Short priority; - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public CentralApp getApp() { - return app; - } - - public void setApp(CentralApp app) { - this.app = app; - } - - public CentralRole getRole() { - return role; - } - - public void setRole(CentralRole role) { - this.role = role; - } - - public Short getPriority() { - return priority; - } - - public void setPriority(Short priority) { - this.priority = priority; - } - - public int compareTo(Object other) { - CentralUserApp castOther = (CentralUserApp) other; - - Long c1 = (this.getUserId() == null ? 0 : this.getUserId()) + (this.priority == null ? 0 : this.priority); - Long c2 = (castOther.getUserId() == null ? 0 : castOther.getUserId()) - + (castOther.getApp() == null || castOther.getApp().getId() == null ? 0 : castOther.getApp().getId()) - + (castOther.priority == null ? 0 : castOther.priority); - - return c1.compareTo(c2); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CommonWidget.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CommonWidget.java deleted file mode 100644 index ae759868..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CommonWidget.java +++ /dev/null @@ -1,156 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; -import com.fasterxml.jackson.annotation.JsonInclude; - -/** - * This is to handle portal admins - */ -@Entity -@Table(name="fn_common_widget_data") -@JsonInclude(JsonInclude.Include.NON_NULL) -public class CommonWidget extends DomainVo{ - - private static final long serialVersionUID = 7897021982887364557L; - - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - @Column(name = "id") - private Long id; - - @Column(name = "category") - public String category; - - @Column(name = "href") - public String href; - - @Column(name = "title") - public String title; - - @Column(name = "content") - public String content; - - @Column(name = "event_date") - public String eventDate; - - @Column(name = "sort_order") - public Integer sortOrder; - - - public CommonWidget(){ - - } - - public CommonWidget(String category, String href, String title, String content, String eventDate, Integer sortOrder){ - this.category = category; - this.href = href; - this.title = title; - this.content = content; - this.eventDate = eventDate; - this.sortOrder = sortOrder; - } - - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - public String getHref() { - return href; - } - - public void setHref(String href) { - this.href = href; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public Integer getSortOrder() { - return sortOrder; - } - - public void setSortOrder(Integer sortOrder) { - this.sortOrder = sortOrder; - } - - public static long getSerialversionuid() { - return serialVersionUID; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getEventDate() { - return eventDate; - } - - public void setEventDate(String eventDate) { - this.eventDate = eventDate; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CommonWidgetMeta.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CommonWidgetMeta.java deleted file mode 100644 index 2e82f579..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/CommonWidgetMeta.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.List; - -public class CommonWidgetMeta { - - private String category; - private List items; - - public CommonWidgetMeta(){ - - } - - public CommonWidgetMeta(String category, List items){ - this.category = category; - this.items = items; - } - - public String getCategory() { - return category; - } - public void setCategory(String category) { - this.category = category; - } - public List getItems() { - return items; - } - public void setItems(List items) { - this.items = items; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPAppsManualPreference.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPAppsManualPreference.java deleted file mode 100644 index cd59cdb0..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPAppsManualPreference.java +++ /dev/null @@ -1,132 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class EPAppsManualPreference { - - private Long appid; - private int col; - private String headerText; - private String imageLink; - private int order; - private boolean restrictedApp; - private int row; - private int sizeX; - private int sizeY; - private String subHeaderText; - private String url; - private boolean addRemoveApps; - - - public boolean isAddRemoveApps() { - return addRemoveApps; - } - public void setAddRemoveApps(boolean addRemoveApps) { - this.addRemoveApps = addRemoveApps; - } - public Long getAppid() { - return appid; - } - public void setAppid(Long appid) { - this.appid = appid; - } - public int getCol() { - return col; - } - public void setCol(int col) { - this.col = col; - } - public String getHeaderText() { - return headerText; - } - public void setHeaderText(String headerText) { - this.headerText = headerText; - } - public String getImageLink() { - return imageLink; - } - public void setImageLink(String imageLink) { - this.imageLink = imageLink; - } - public int getOrder() { - return order; - } - public void setOrder(int order) { - this.order = order; - } - public boolean isRestrictedApp() { - return restrictedApp; - } - public void setRestrictedApp(boolean restrictedApp) { - this.restrictedApp = restrictedApp; - } - public int getRow() { - return row; - } - public void setRow(int row) { - this.row = row; - } - public int getSizeX() { - return sizeX; - } - public void setSizeX(int sizeX) { - this.sizeX = sizeX; - } - public int getSizeY() { - return sizeY; - } - public void setSizeY(int sizeY) { - this.sizeY = sizeY; - } - public String getSubHeaderText() { - return subHeaderText; - } - public void setSubHeaderText(String subHeaderText) { - this.subHeaderText = subHeaderText; - } - public String getUrl() { - return url; - } - public void setUrl(String url) { - this.url = url; - } - - public boolean isValid(){ - return appid != null; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPAppsSortPreference.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPAppsSortPreference.java deleted file mode 100644 index eef43c63..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPAppsSortPreference.java +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class EPAppsSortPreference { - - private int index; - private String value; - private String title; - - public int getIndex() { - return index; - } - public void setIndex(int index) { - this.index = index; - } - public String getValue() { - return value; - } - public void setValue(String value) { - this.value = value; - } - public String getTitle() { - return title; - } - public void setTitle(String title) { - this.title = title; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPDeleteAppsManualSortPref.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPDeleteAppsManualSortPref.java deleted file mode 100644 index 341ed48b..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPDeleteAppsManualSortPref.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class EPDeleteAppsManualSortPref { - private Long appId; - private boolean select; - private boolean pending; - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public boolean isSelect() { - return select; - } - - public void setSelect(boolean select) { - this.select = select; - } - - public boolean isPending() { - return pending; - } - - public void setPending(boolean pending) { - this.pending = pending; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPUserAppCurrentRoles.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPUserAppCurrentRoles.java deleted file mode 100644 index 8e140ad8..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPUserAppCurrentRoles.java +++ /dev/null @@ -1,135 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@Entity -@JsonInclude(JsonInclude.Include.NON_NULL) -public class EPUserAppCurrentRoles implements Serializable{ - - private static final long serialVersionUID = -8145807875293949759L; - - @Id - @Column(name="role_name") - private String roleName; - @Id - @Column(name="user_id") - private Long userId; - @Id - @Column(name="priority") - private String priority ; - @Id - @Column(name="role_id") - private Long roleId; - public String getRoleName() { - return roleName; - } - public void setRoleName(String roleName) { - this.roleName = roleName; - } - public Long getUserId() { - return userId; - } - public void setUserId(Long userId) { - this.userId = userId; - } - public String getPriority() { - return priority; - } - public void setPriority(String priority) { - this.priority = priority; - } - public Long getRoleId() { - return roleId; - } - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((priority == null) ? 0 : priority.hashCode()); - result = prime * result + ((roleId == null) ? 0 : roleId.hashCode()); - result = prime * result + ((roleName == null) ? 0 : roleName.hashCode()); - result = prime * result + ((userId == null) ? 0 : userId.hashCode()); - return result; - } - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - EPUserAppCurrentRoles other = (EPUserAppCurrentRoles) obj; - if (priority == null) { - if (other.priority != null) - return false; - } else if (!priority.equals(other.priority)) - return false; - if (roleId == null) { - if (other.roleId != null) - return false; - } else if (!roleId.equals(other.roleId)) - return false; - if (roleName == null) { - if (other.roleName != null) - return false; - } else if (!roleName.equals(other.roleName)) - return false; - if (userId == null) { - if (other.userId != null) - return false; - } else if (!userId.equals(other.userId)) - return false; - return true; - } - - - -} - \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPWidgetsSortPreference.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPWidgetsSortPreference.java deleted file mode 100644 index d8a2b2dc..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EPWidgetsSortPreference.java +++ /dev/null @@ -1,110 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.List; - -public class EPWidgetsSortPreference { - - private int SizeX; - private int SizeY; - private String headerText; - private String url; - private Long widgetid; - private List attrb; - private String widgetIdentifier; - private int row; - private int col; - - public String getWidgetIdentifier() { - return widgetIdentifier; - } - public List getAttrb() { - return attrb; - } - public void setAttrb(List attrb) { - this.attrb = attrb; - } - public void setWidgetIdentifier(String widgetIdentifier) { - this.widgetIdentifier = widgetIdentifier; - } - public int getSizeX() { - return SizeX; - } - public void setSizeX(int sizeX) { - SizeX = sizeX; - } - public int getSizeY() { - return SizeY; - } - public void setSizeY(int sizeY) { - SizeY = sizeY; - } - public String getHeaderText() { - return headerText; - } - public void setHeaderText(String headerText) { - this.headerText = headerText; - } - public String getUrl() { - return url; - } - public void setUrl(String url) { - this.url = url; - } - public Long getWidgetid() { - return widgetid; - } - public void setWidgetid(Long widgetid) { - this.widgetid = widgetid; - } - public int getRow() { - return row; - } - public void setRow(int row) { - this.row = row; - } - public int getCol() { - return col; - } - public void setCol(int col) { - this.col = col; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EcompUserAppRoles.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EcompUserAppRoles.java deleted file mode 100644 index e98421f6..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EcompUserAppRoles.java +++ /dev/null @@ -1,103 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@Entity -@JsonInclude(JsonInclude.Include.NON_NULL) -public class EcompUserAppRoles implements Serializable { - - private static final long serialVersionUID = -3394219387296578741L; - - @Id - @Column(name="app_id") - private String appId; - @Id - @Column(name="user_id") - private Long userId; - @Id - @Column(name="priority") - private String priority ; - @Id - @Column(name="role_id") - private Long roleId; - @Id - @Column(name="role_name") - private String roleName; - public String getAppId() { - return appId; - } - public void setAppId(String appId) { - this.appId = appId; - } - public Long getUserId() { - return userId; - } - public void setUserId(Long userId) { - this.userId = userId; - } - public String getPriority() { - return priority; - } - public void setPriority(String priority) { - this.priority = priority; - } - public Long getRoleId() { - return roleId; - } - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - public String getRoleName() { - return roleName; - } - public void setRoleName(String roleName) { - this.roleName = roleName; - } - - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EcompUserRoles.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EcompUserRoles.java deleted file mode 100644 index 953b7b81..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EcompUserRoles.java +++ /dev/null @@ -1,209 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -public class EcompUserRoles implements Serializable{ - - private static final long serialVersionUID = 1L; - - @Id - @Column(name = "org_id") - private Long orgId; - @Id - @Column(name = "manager_id") - private String managerId; - @Id - @Column(name = "first_name") - private String firstName; - @Id - @Column(name = "middle_name") - private String middleInitial; - @Id - @Column(name = "last_name") - private String lastName; - @Id - @Column(name = "phone") - private String phone; - @Id - @Column(name = "email") - private String email; - @Id - @Column(name = "hrid") - private String hrid; - @Id - @Column(name = "org_user_id") - private String orgUserId; - @Id - @Column(name = "org_code") - private String orgCode; - @Id - @Column(name = "org_manager_userid") - private String orgManagerUserId; - @Id - @Column(name = "job_title") - private String jobTitle; - @Id - @Column(name = "login_id") - private String loginId; - - @Id - @Column(name = "app_role_id") - private Long roleId; - @Id - @Column(name = "role_name") - private String roleName; - @Id - @Column(name = "active_yn") - private boolean active; - - public Long getOrgId() { - return orgId; - } - public void setOrgId(Long orgId) { - this.orgId = orgId; - } - public String getManagerId() { - return managerId; - } - public void setManagerId(String managerId) { - this.managerId = managerId; - } - public String getFirstName() { - return firstName; - } - public void setFirstName(String firstName) { - this.firstName = firstName; - } - public String getMiddleInitial() { - return middleInitial; - } - public void setMiddleInitial(String middleInitial) { - this.middleInitial = middleInitial; - } - public String getLastName() { - return lastName; - } - public void setLastName(String lastName) { - this.lastName = lastName; - } - public String getPhone() { - return phone; - } - public void setPhone(String phone) { - this.phone = phone; - } - public String getEmail() { - return email; - } - public void setEmail(String email) { - this.email = email; - } - public String getHrid() { - return hrid; - } - public void setHrid(String hrid) { - this.hrid = hrid; - } - public String getOrgUserId() { - return orgUserId; - } - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } - public String getOrgCode() { - return orgCode; - } - public void setOrgCode(String orgCode) { - this.orgCode = orgCode; - } - public String getOrgManagerUserId() { - return orgManagerUserId; - } - public void setOrgManagerUserId(String orgManagerUserId) { - this.orgManagerUserId = orgManagerUserId; - } - public String getJobTitle() { - return jobTitle; - } - public void setJobTitle(String jobTitle) { - this.jobTitle = jobTitle; - } - public String getLoginId() { - return loginId; - } - public void setLoginId(String loginId) { - this.loginId = loginId; - } - - public Long getRoleId() { - return roleId; - } - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - public String getRoleName() { - return roleName; - } - public void setRoleName(String roleName) { - this.roleName = roleName; - } - - public boolean isActive() { - return active; - } - public void setActive(boolean active) { - this.active = active; - } - @Override - public String toString() { - return "EcompUserRoles [orgId=" + orgId + ", managerId=" + managerId + ", firstName=" + firstName - + ", middleInitial=" + middleInitial + ", lastName=" + lastName + ", phone=" + phone + ", email=" - + email + ", hrid=" + hrid + ", orgUserId=" + orgUserId + ", orgCode=" + orgCode + ", orgManagerUserId=" - + orgManagerUserId + ", jobTitle=" + jobTitle + ", loginId=" + loginId + ", active=" + active - + ", roleId=" + roleId + ", roleName=" + roleName + "]"; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItem.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItem.java deleted file mode 100644 index c5256957..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItem.java +++ /dev/null @@ -1,357 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.Date; -import java.util.List; -import java.util.Set; - -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToMany; -import javax.persistence.Table; -import javax.persistence.Transient; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - - -/** - * This is to handle notifications in notification PopUp - */ - - -@Entity -@Table(name = "ep_notification") -public class EpNotificationItem extends DomainVo { - public EpNotificationItem() { - }; - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "notification_ID") - public Long notificationId; - - @Column(name = "is_for_online_users") - public String isForOnlineUsers; - - @Column(name = "is_for_all_roles") - public String isForAllRoles; - - @Column(name = "active_YN") - public String activeYn; - - @Column(name = "msg_header") - public String msgHeader; - - @Column(name = "msg_description") - public String msgDescription; - - @Column(name = "msg_source") - public String msgSource; - - @Column(name = "start_time") - public Date startTime; - - @Column(name = "end_time") - public Date endTime; - - @Column(name = "priority") - public Long priority; - - @Column(name = "creator_ID") - public Long creatorId; - - @Column(name = "created_date") - public Date createdDate; - - @Column(name = "notification_hyperlink") - public String notificationHyperlink; - - - @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL}, orphanRemoval = true) - @JoinColumn(name="notification_ID") - private Set roles; - - @Transient - private List roleIds; - - public Long getNotificationId() { - return notificationId; - } - - public void setNotificationId(Long notificationId) { - this.notificationId = notificationId; - } - - public String getIsForOnlineUsers() { - return isForOnlineUsers; - } - - public void setIsForOnlineUsers(String isForOnlineUsers) { - this.isForOnlineUsers = isForOnlineUsers; - } - - public String getIsForAllRoles() { - return isForAllRoles; - } - - public void setIsForAllRoles(String isForAllRoles) { - this.isForAllRoles = isForAllRoles; - } - - public String getActiveYn() { - return activeYn; - } - - public void setActiveYn(String activeYn) { - this.activeYn = activeYn; - } - - public String getMsgHeader() { - return msgHeader; - } - - public void setMsgHeader(String msgHeader) { - this.msgHeader = msgHeader; - } - - public String getMsgDescription() { - return msgDescription; - } - - public void setMsgDescription(String msgDescription) { - this.msgDescription = msgDescription; - } - - public Date getStartTime() { - return startTime; - } - - public void setStartTime(Date startTime) { - this.startTime = startTime; - } - - public Date getEndTime() { - return endTime; - } - - public void setEndTime(Date endTime) { - this.endTime = endTime; - } - - public Long getPriority() { - return priority; - } - - public void setPriority(Long priority) { - this.priority = priority; - } - - public Long getCreatorId() { - return creatorId; - } - - public void setCreatorId(Long creatorId) { - this.creatorId = creatorId; - } - - public Date getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Date createdDate) { - this.createdDate = createdDate; - } - - public static long getSerialversionuid() { - return serialVersionUID; - } - - public Set getRoles() { - return roles; - } - - public void setRoles(Set roles) { - this.roles = roles; - } - - public List getRoleIds() { - return roleIds; - } - - public void setRoleIds(List roleIds) { - this.roleIds = roleIds; - } - - public String getMsgSource() { - return msgSource; - } - - public void setMsgSource(String msgSource) { - this.msgSource = msgSource; - } - - public String getNotificationHyperlink() { - return notificationHyperlink; - } - - public void setNotificationHyperlink(String notificationHyperlink) { - this.notificationHyperlink = notificationHyperlink; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((activeYn == null) ? 0 : activeYn.hashCode()); - result = prime * result + ((createdDate == null) ? 0 : createdDate.hashCode()); - result = prime * result + ((creatorId == null) ? 0 : creatorId.hashCode()); - result = prime * result + ((endTime == null) ? 0 : endTime.hashCode()); - result = prime * result + ((isForAllRoles == null) ? 0 : isForAllRoles.hashCode()); - result = prime * result + ((isForOnlineUsers == null) ? 0 : isForOnlineUsers.hashCode()); - result = prime * result + ((msgDescription == null) ? 0 : msgDescription.hashCode()); - result = prime * result + ((msgHeader == null) ? 0 : msgHeader.hashCode()); - result = prime * result + ((msgSource == null) ? 0 : msgSource.hashCode()); - result = prime * result + ((notificationId == null) ? 0 : notificationId.hashCode()); - result = prime * result + ((priority == null) ? 0 : priority.hashCode()); - result = prime * result + ((roleIds == null) ? 0 : roleIds.hashCode()); - result = prime * result + ((roles == null) ? 0 : roles.hashCode()); - result = prime * result + ((startTime == null) ? 0 : startTime.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - EpNotificationItem other = (EpNotificationItem) obj; - if (activeYn == null) { - if (other.activeYn != null) - return false; - } else if (!activeYn.equals(other.activeYn)) - return false; - if (createdDate == null) { - if (other.createdDate != null) - return false; - } else if (!createdDate.equals(other.createdDate)) - return false; - if (creatorId == null) { - if (other.creatorId != null) - return false; - } else if (!creatorId.equals(other.creatorId)) - return false; - if (endTime == null) { - if (other.endTime != null) - return false; - } else if (!endTime.equals(other.endTime)) - return false; - if (isForAllRoles == null) { - if (other.isForAllRoles != null) - return false; - } else if (!isForAllRoles.equals(other.isForAllRoles)) - return false; - if (isForOnlineUsers == null) { - if (other.isForOnlineUsers != null) - return false; - } else if (!isForOnlineUsers.equals(other.isForOnlineUsers)) - return false; - if (msgDescription == null) { - if (other.msgDescription != null) - return false; - } else if (!msgDescription.equals(other.msgDescription)) - return false; - if (msgHeader == null) { - if (other.msgHeader != null) - return false; - } else if (!msgHeader.equals(other.msgHeader)) - return false; - if (msgSource == null) { - if (other.msgSource != null) - return false; - } else if (!msgSource.equals(other.msgSource)) - return false; - if (notificationId == null) { - if (other.notificationId != null) - return false; - } else if (!notificationId.equals(other.notificationId)) - return false; - if (priority == null) { - if (other.priority != null) - return false; - } else if (!priority.equals(other.priority)) - return false; - if (roleIds == null) { - if (other.roleIds != null) - return false; - } else if (!roleIds.equals(other.roleIds)) - return false; - if (roles == null) { - if (other.roles != null) - return false; - } else if (!roles.equals(other.roles)) - return false; - if (startTime == null) { - if (other.startTime != null) - return false; - } else if (!startTime.equals(other.startTime)) - return false; - return true; - } - - @Override - public String toString() { - return "EpNotificationItem [notificationId=" + notificationId + ", isForOnlineUsers=" + isForOnlineUsers - + ", isForAllRoles=" + isForAllRoles + ", activeYn=" + activeYn + ", msgHeader=" + msgHeader - + ", msgDescription=" + msgDescription + ", msgSource=" + msgSource + ", startTime=" + startTime - + ", endTime=" + endTime + ", priority=" + priority + ", creatorId=" + creatorId + ", createdDate=" - + createdDate + ", roles=" + roles + ", roleIds=" + roleIds + "]"; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItemExtVO.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItemExtVO.java deleted file mode 100644 index d7170fea..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItemExtVO.java +++ /dev/null @@ -1,137 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.Date; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@JsonInclude(JsonInclude.Include.NON_NULL) -public class EpNotificationItemExtVO { - - private Character activeYn; - - private String msgHeader; - - private String msgDescription; - - private Date startTime; - - private Date endTime; - - private Integer priority; - - private Integer creatorId; - - private Date createdDate; - - private String loginId; - - public Character getActiveYn() { - return activeYn; - } - - public void setActiveYn(Character activeYn) { - this.activeYn = activeYn; - } - - public String getMsgHeader() { - return msgHeader; - } - - public void setMsgHeader(String msgHeader) { - this.msgHeader = msgHeader; - } - - public String getMsgDescription() { - return msgDescription; - } - - public void setMsgDescription(String msgDescription) { - this.msgDescription = msgDescription; - } - - public Date getStartTime() { - return startTime; - } - - public void setStartTime(Date startTime) { - this.startTime = startTime; - } - - public Date getEndTime() { - return endTime; - } - - public void setEndTime(Date endTime) { - this.endTime = endTime; - } - - public Integer getPriority() { - return priority; - } - - public void setPriority(Integer priority) { - this.priority = priority; - } - - public Integer getCreatorId() { - return creatorId; - } - - public void setCreatorId(Integer creatorId) { - this.creatorId = creatorId; - } - - public Date getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Date createdDate) { - this.createdDate = createdDate; - } - - public String getLoginId() { - return loginId; - } - - public void setLoginId(String loginId) { - this.loginId = loginId; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItemVO.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItemVO.java deleted file mode 100644 index 2bf5a105..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpNotificationItemVO.java +++ /dev/null @@ -1,221 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.Date; - -import javax.persistence.Entity; -import javax.persistence.Id; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -/** - * This is to handle notifications in user notifications and in notification history - */ - -/** - * POJO that models a single notification with the org user ID (not integer - * user_id). - */ -@Entity -public class EpNotificationItemVO extends DomainVo { - - private static final long serialVersionUID = 9095479701352339201L; - - @Id - private Integer notificationId; - - private Character isForOnlineUsers; - - private Character isForAllRoles; - - private Character activeYn; - - private String msgHeader; - - private String msgDescription; - - private String msgSource; - - private Date startTime; - - private Date endTime; - - private Integer priority; - - private Integer creatorId; - - private Date createdDate; - - private String loginId; - - private String notificationHyperlink; - - - /** - * Answers whether the notification is expired. - * - * @return true if the end time is past the current time, else false. - */ - public boolean isExpired() { - boolean result = false; - if (endTime != null) { - int expired = endTime.compareTo(new Date()); - result = (expired == -1) ? true : false; - } - return result; - } - - public String getLoginId() { - return loginId; - } - - public void setLoginId(String loginId) { - this.loginId = loginId; - } - - public Integer getNotificationId() { - return notificationId; - } - - public void setNotificationId(Integer notificationId) { - this.notificationId = notificationId; - } - - public Character getIsForOnlineUsers() { - return isForOnlineUsers; - } - - public void setIsForOnlineUsers(Character isForOnlineUsers) { - this.isForOnlineUsers = isForOnlineUsers; - } - - public Character getIsForAllRoles() { - return isForAllRoles; - } - - public void setIsForAllRoles(Character isForAllRoles) { - this.isForAllRoles = isForAllRoles; - } - - public Character getActiveYn() { - return activeYn; - } - - public void setActiveYn(Character activeYn) { - this.activeYn = activeYn; - } - - public String getMsgHeader() { - return msgHeader; - } - - public void setMsgHeader(String msgHeader) { - this.msgHeader = msgHeader; - } - - public String getMsgDescription() { - return msgDescription; - } - - public void setMsgDescription(String msgDescription) { - this.msgDescription = msgDescription; - } - - public Date getStartTime() { - return startTime; - } - - public void setStartTime(Date startTime) { - this.startTime = startTime; - } - - public Date getEndTime() { - return endTime; - } - - public void setEndTime(Date endTime) { - this.endTime = endTime; - } - - public Integer getPriority() { - return priority; - } - - public void setPriority(Integer priority) { - this.priority = priority; - } - - public Integer getCreatorId() { - return creatorId; - } - - public void setCreatorId(Integer creatorId) { - this.creatorId = creatorId; - } - - public Date getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Date createdDate) { - this.createdDate = createdDate; - } - - public static long getSerialversionuid() { - return serialVersionUID; - } - - - public String getMsgSource() { - return msgSource; - } - - public void setMsgSource(String msgSource) { - this.msgSource = msgSource; - } - - public String getNotificationHyperlink() { - return notificationHyperlink; - } - - public void setNotificationHyperlink(String notificationHyperlink) { - this.notificationHyperlink = notificationHyperlink; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpRoleNotificationItem.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpRoleNotificationItem.java deleted file mode 100644 index 5ec117d9..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EpRoleNotificationItem.java +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -@Entity -@Table(name="ep_role_notification") -public class EpRoleNotificationItem extends DomainVo { - public EpRoleNotificationItem(){}; - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy=GenerationType.IDENTITY) - @Column(name = "ID") - public Long id; - - @Column(name = "notification_ID") - public Long notificationId; - - @Column(name = "role_ID") - public Integer roleId; - - @Column(name = "recv_user_id") - public Integer RecvUserId; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getNotificationId() { - return notificationId; - } - - public void setNotificationId(Long notificationId) { - this.notificationId = notificationId; - } - - public Integer getRoleId() { - return roleId; - } - - public void setRoleId(Integer roleId) { - this.roleId = roleId; - } - - public static long getSerialversionuid() { - return serialVersionUID; - } - - public Integer getRecvUserId() { - return RecvUserId; - } - - public void setRecvUserId(Integer recvUserId) { - RecvUserId = recvUserId; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EventWidget.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EventWidget.java deleted file mode 100644 index 1da7f7ff..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EventWidget.java +++ /dev/null @@ -1,155 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -/*package org.openecomp.portalapp.portal.transport; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; -import com.fasterxml.jackson.annotation.JsonInclude; - -*//** - * This is to handle portal admins - *//* -@Entity -@Table(name="fn_event_widget_data") -@JsonInclude(JsonInclude.Include.NON_NULL) -public class EventWidget extends DomainVo{ - - *//** - * - *//* - private static final long serialVersionUID = -2784849102886421352L; - - - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - @Column(name = "id") - private Long id; - - @Column(name = "category") - private String category; - - @Column(name = "title") - private String title; - - @Column(name = "href") - private String href; - - @Column(name = "content") - private String content; - - @Column(name = "month_val") - private String mon; - - @Column(name = "day_val") - private Integer day; - - @Column(name = "year_val") - private Integer year; - - @Column(name = "sort_order") - private Integer sortOrder; - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getHref() { - return href; - } - - public void setHref(String href) { - this.href = href; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getMon() { - return mon; - } - - public void setMonth(String mon) { - this.mon = mon; - } - - public Integer getDay() { - return day; - } - - public void setDay(Integer day) { - this.day = day; - } - - public Integer getYear() { - return year; - } - - public void setYear(Integer year) { - this.year = year; - } - - public Integer getSortOrder() { - return sortOrder; - } - - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - -} -*/ diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EventWidgetMeta.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EventWidgetMeta.java deleted file mode 100644 index 34471087..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/EventWidgetMeta.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -/*package org.openecomp.portalapp.portal.transport; - -import java.util.List; - -public class EventWidgetMeta { - - private String category; - private List items; - - public EventWidgetMeta(){ - - } - - public EventWidgetMeta(String category, List items){ - this.category = category; - this.items = items; - } - - public String getCategory() { - return category; - } - public void setCategory(String category) { - this.category = category; - } - public List getItems() { - return items; - } - public void setItems(List items) { - this.items = items; - } -} -*/ diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessPerms.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessPerms.java deleted file mode 100644 index aeb2ad36..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessPerms.java +++ /dev/null @@ -1,178 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -public class ExternalAccessPerms implements Serializable, Comparable { - - /** - * - */ - private static final long serialVersionUID = -200964838466882602L; - public String type; - public String instance; - public String action; - public String description; - - public ExternalAccessPerms() { - super(); - } - - public ExternalAccessPerms(String type, String instance, String action, String description) { - super(); - this.type = type; - this.instance = instance; - this.action = action; - this.description = description; - } - - public ExternalAccessPerms(String type, String instance, String action) { - super(); - this.type = type; - this.instance = instance; - this.action = action; - } - - /** - * @return the type - */ - public String getType() { - return type; - } - - /** - * @param type - * the type to set - */ - public void setType(String type) { - this.type = type; - } - - /** - * @return the instance - */ - public String getInstance() { - return instance; - } - - /** - * @param instance - * the instance to set - */ - public void setInstance(String instance) { - this.instance = instance; - } - - /** - * @return the action - */ - public String getAction() { - return action; - } - - /** - * @param action - * the action to set - */ - public void setAction(String action) { - this.action = action; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - @Override - public int compareTo(Object obj) { - ExternalAccessPerms other = (ExternalAccessPerms) obj; - - String c1 = getInstance(); - String c2 = other.getInstance(); - - return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((action == null) ? 0 : action.hashCode()); - result = prime * result + ((description == null) ? 0 : description.hashCode()); - result = prime * result + ((instance == null) ? 0 : instance.hashCode()); - result = prime * result + ((type == null) ? 0 : type.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ExternalAccessPerms other = (ExternalAccessPerms) obj; - if (action == null) { - if (other.action != null) - return false; - } else if (!action.equals(other.action)) - return false; - if (description == null) { - if (other.description != null) - return false; - } else if (!description.equals(other.description)) - return false; - if (instance == null) { - if (other.instance != null) - return false; - } else if (!instance.equals(other.instance)) - return false; - if (type == null) { - if (other.type != null) - return false; - } else if (!type.equals(other.type)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsDetail.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsDetail.java deleted file mode 100644 index 554aebb5..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsDetail.java +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.List; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonRootName; - -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonRootName(value = "perm") -public class ExternalAccessPermsDetail { - - private String type; - private String instance; - private String action; - private List roles; - private String description; - - public ExternalAccessPermsDetail() { - super(); - } - - /** - * @param type - * @param instance - * @param action - * @param roles - * @param description - */ - public ExternalAccessPermsDetail(String type, String instance, String action, List roles, - String description) { - super(); - this.type = type; - this.instance = instance; - this.action = action; - this.roles = roles; - this.description = description; - } - - /** - * @param type - * @param instance - * @param action - * @param description - */ - public ExternalAccessPermsDetail(String type, String instance, String action, String description) { - super(); - this.type = type; - this.instance = instance; - this.action = action; - this.description = description; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getInstance() { - return instance; - } - - public void setInstance(String instance) { - this.instance = instance; - } - - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - - public List getRoles() { - return roles; - } - - public void setRoles(List roles) { - this.roles = roles; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessRole.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessRole.java deleted file mode 100644 index 415665a5..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessRole.java +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -public class ExternalAccessRole implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 3439986826362436339L; - public String name; - public String description; - - public ExternalAccessRole() { - - } - - public ExternalAccessRole(String name, String description) { - super(); - this.name = name; - this.description = description; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessRolePerms.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessRolePerms.java deleted file mode 100644 index 314df1d6..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessRolePerms.java +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class ExternalAccessRolePerms { - - private ExternalAccessPerms perm; - private String role; - - public ExternalAccessRolePerms(ExternalAccessPerms perm, String role) { - super(); - this.perm = perm; - this.role = role; - } - - public ExternalAccessPerms getPerm() { - return perm; - } - - public void setPerm(ExternalAccessPerms perm) { - this.perm = perm; - } - - public String getRole() { - return role; - } - - public void setRole(String role) { - this.role = role; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessUser.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessUser.java deleted file mode 100644 index 4b181302..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessUser.java +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class ExternalAccessUser { - - private String user; - private String role; - - public ExternalAccessUser(String user, String role) { - super(); - this.user = user; - this.role = role; - } - - public String getUser() { - return user; - } - public void setUser(String user) { - this.user = user; - } - public String getRole() { - return role; - } - public void setRole(String role) { - this.role = role; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserRoleDetail.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserRoleDetail.java deleted file mode 100644 index 45b2819e..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserRoleDetail.java +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class ExternalAccessUserRoleDetail { - - private String name; - private ExternalRoleDescription description; - - /** - * - */ - public ExternalAccessUserRoleDetail() { - super(); - } - - public ExternalAccessUserRoleDetail(String name, ExternalRoleDescription description) { - super(); - this.name = name; - this.description = description; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public ExternalRoleDescription getDescription() { - return description; - } - - public void setDescription(ExternalRoleDescription description) { - this.description = description; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((description == null) ? 0 : description.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ExternalAccessUserRoleDetail other = (ExternalAccessUserRoleDetail) obj; - if (description == null) { - if (other.description != null) - return false; - } else if (!description.equals(other.description)) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalRequestFieldsValidator.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalRequestFieldsValidator.java deleted file mode 100644 index 0e7581af..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalRequestFieldsValidator.java +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class ExternalRequestFieldsValidator { - - private boolean result; - private String detailMessage; - - public ExternalRequestFieldsValidator(boolean result, String detailMessage) { - super(); - this.result = result; - this.detailMessage = detailMessage; - } - public boolean isResult() { - return result; - } - public void setResult(boolean result) { - this.result = result; - } - public String getDetailMessage() { - return detailMessage; - } - public void setDetailMessage(String detailMessage) { - this.detailMessage = detailMessage; - } - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalRoleDescription.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalRoleDescription.java deleted file mode 100644 index 5c73c1fc..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ExternalRoleDescription.java +++ /dev/null @@ -1,140 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class ExternalRoleDescription { - - private String id; - private String name; - private String active; - private String priority; - private String appId; - private String appRoleId; - - public String getId() { - return id; - } - public void setId(String id) { - this.id = id; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public String getActive() { - return active; - } - public void setActive(String active) { - this.active = active; - } - public String getPriority() { - return priority; - } - public void setPriority(String priority) { - this.priority = priority; - } - public String getAppId() { - return appId; - } - public void setAppId(String appId) { - this.appId = appId; - } - public String getAppRoleId() { - return appRoleId; - } - public void setAppRoleId(String appRoleId) { - this.appRoleId = appRoleId; - } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((active == null) ? 0 : active.hashCode()); - result = prime * result + ((appId == null) ? 0 : appId.hashCode()); - result = prime * result + ((appRoleId == null) ? 0 : appRoleId.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((priority == null) ? 0 : priority.hashCode()); - return result; - } - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ExternalRoleDescription other = (ExternalRoleDescription) obj; - if (active == null) { - if (other.active != null) - return false; - } else if (!active.equals(other.active)) - return false; - if (appId == null) { - if (other.appId != null) - return false; - } else if (!appId.equals(other.appId)) - return false; - if (appRoleId == null) { - if (other.appRoleId != null) - return false; - } else if (!appRoleId.equals(other.appRoleId)) - return false; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (priority == null) { - if (other.priority != null) - return false; - } else if (!priority.equals(other.priority)) - return false; - return true; - } - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FavoritesFunctionalMenuItem.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FavoritesFunctionalMenuItem.java deleted file mode 100644 index df382721..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FavoritesFunctionalMenuItem.java +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - - -/** - * This is to handle functional menu favorites - */ -@Entity -@Table(name="fn_menu_favorites") -public class FavoritesFunctionalMenuItem implements Serializable { - private static final long serialVersionUID = 1L; - - @Id - @Column(name = "user_id") - public Long userId; - - @Id - @Column(name = "menu_id") - public Long menuId; -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FavoritesFunctionalMenuItemJson.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FavoritesFunctionalMenuItemJson.java deleted file mode 100644 index ea64f13a..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FavoritesFunctionalMenuItemJson.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.Transient; - - - -/** - * This is to handle functional menu favorites - */ -@Entity -@Table(name="fn_menu_favorites") -public class FavoritesFunctionalMenuItemJson implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @Column(name = "user_id") - public Long userId; - - @Id - @Column(name = "menu_id") - public Long menuId; - - @Column(name = "text") - public String text; - - @Column(name = "url") - public String url; - - @Transient - public Boolean restrictedApp; -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FieldsValidator.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FieldsValidator.java deleted file mode 100644 index f029e8af..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FieldsValidator.java +++ /dev/null @@ -1,143 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletResponse; - -public class FieldsValidator { - - public Long httpStatusCode = new Long(HttpServletResponse.SC_OK); - - public Long errorCode; - - public class FieldName { - - public String name; - - public FieldName(String name) { - this.name = name; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - } - - - public List fields = new ArrayList(); - - public void addProblematicFieldName(String name) { - fields.add(new FieldName(name)); - } - - public Long getHttpStatusCode() { - return httpStatusCode; - } - - public void setHttpStatusCode(Long httpStatusCode) { - this.httpStatusCode = httpStatusCode; - } - - public Long getErrorCode() { - return errorCode; - } - - public void setErrorCode(Long errorCode) { - this.errorCode = errorCode; - } - - public List getFields() { - return fields; - } - - public void setFields(List fields) { - this.fields = fields; - } - - @Override - public String toString() { - return "FieldsValidator [httpStatusCode=" + httpStatusCode + ", errorCode=" + errorCode + ", fields=" + fields - + "]"; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((errorCode == null) ? 0 : errorCode.hashCode()); - result = prime * result + ((fields == null) ? 0 : fields.hashCode()); - result = prime * result + ((httpStatusCode == null) ? 0 : httpStatusCode.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - FieldsValidator other = (FieldsValidator) obj; - if (errorCode == null) { - if (other.errorCode != null) - return false; - } else if (!errorCode.equals(other.errorCode)) - return false; - if (fields == null) { - if (other.fields != null) - return false; - } else if (!fields.equals(other.fields)) - return false; - if (httpStatusCode == null) { - if (other.httpStatusCode != null) - return false; - } else if (!httpStatusCode.equals(other.httpStatusCode)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItem.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItem.java deleted file mode 100644 index 3deb49b1..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItem.java +++ /dev/null @@ -1,118 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.Transient; - -@Entity -@Table(name="fn_menu_functional") -public class FunctionalMenuItem implements Serializable { - public FunctionalMenuItem(){}; - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy=GenerationType.IDENTITY) - @Column(name = "MENU_ID") - public Long menuId; - - @Column(name = "COLUMN_NUM") - public Integer column; - - @Column(name = "TEXT") - public String text; - - @Column(name = "PARENT_MENU_ID") - public Integer parentMenuId; - - @Column(name = "URL") - public String url; - - @Column(name="ACTIVE_YN") - public String active_yn; - - @Transient - public Integer appid; - - public List getRoles() { - return roles; - } - - public void setRoles(List roles) { - this.roles = roles; - } - - @Transient - private List roles; - - @Transient - public Boolean restrictedApp; - - public void normalize() { - if (this.column == null) - this.column = new Integer(1); - this.text = (this.text == null) ? "" : this.text.trim(); - if (this.parentMenuId == null) - this.parentMenuId = new Integer(-1); - this.url = (this.url == null) ? "" : this.url.trim(); - } - - @Override - public String toString() { - return "FunctionalMenuItem [menuId=" + menuId + ", column=" + column + ", text=" + text + ", parentMenuId=" - + parentMenuId + ", url=" + url + ", active_yn=" + active_yn + ", appid=" + appid + ", roles=" + roles - + ", restrictedApp=" + restrictedApp + "]"; - } - - public void setUrl(String url) { - this.url = url; - } - - public void setRestrictedApp(Boolean restrictedApp) { - this.restrictedApp = restrictedApp; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItemWithRoles.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItemWithRoles.java deleted file mode 100644 index 0dc64023..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItemWithRoles.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; -import java.util.List; - -// This type is used to read the Json in from the API call from the Front End -public class FunctionalMenuItemWithRoles implements Serializable { - private static final long serialVersionUID = 1L; - - public Long menuId; - - public Integer column; - - public String text; - - public Integer parentMenuId; - - public String url; - - public Integer appid; - - private List roles; - - public List getRoles() { - return roles; - } - - public void setRoles(List roles) { - this.roles = roles; - } - - public void normalize() { - if (this.column == null) - this.column = new Integer(1); - this.text = (this.text == null) ? "" : this.text.trim(); - if (this.parentMenuId == null) - this.parentMenuId = new Integer(-1); - this.url = (this.url == null) ? "" : this.url.trim(); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuRole.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuRole.java deleted file mode 100644 index 83aab184..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/FunctionalMenuRole.java +++ /dev/null @@ -1,133 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name="fn_menu_functional_roles") -public class FunctionalMenuRole implements Serializable { - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy=GenerationType.IDENTITY) - @Column(name = "ID") - public Integer id; - - @Column(name = "MENU_ID") - public Long menuId; - - @Column(name = "APP_ID") - public Integer appId; - - @Column(name = "ROLE_ID") - public Integer roleId; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Long getMenuId() { - return menuId; - } - - public void setMenuId(Long menuId) { - this.menuId = menuId; - } - - public Integer getAppId() { - return appId; - } - - public void setAppId(Integer appId) { - this.appId = appId; - } - - public Integer getRoleId() { - return roleId; - } - - public void setRoleId(Integer roleId) { - this.roleId = roleId; - } - - @Override - public String toString() { - return "FunctionalMenuRole [id=" + id + ", menuId=" + menuId + ", appId=" + appId + ", roleId=" + roleId + "]"; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((appId == null) ? 0 : appId.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((menuId == null) ? 0 : menuId.hashCode()); - result = prime * result + ((roleId == null) ? 0 : roleId.hashCode()); - return result; - } - - @Override - public boolean equals(Object o) { - - if (o == this) return true; - if (!(o instanceof FunctionalMenuRole)) { - return false; - } - FunctionalMenuRole functionalMenuRole = (FunctionalMenuRole) o; - System.out.println("test"); - return id.equals(functionalMenuRole.getId()) && - menuId.equals(functionalMenuRole.menuId) && - appId.equals(functionalMenuRole.appId) && - roleId.equals(functionalMenuRole.roleId) ; - } - - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/LocalRole.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/LocalRole.java deleted file mode 100644 index 05dfc5bb..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/LocalRole.java +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -public class LocalRole implements Serializable { - private static final long serialVersionUID = 1L; - - @Id - @Column(name = "ROLE_ID") - public Integer roleId; - - @Column(name = "ROLE_NAME") - public String rolename; - - public void normalize() { - this.rolename = (this.rolename == null) ? "" : this.rolename.trim(); - } - - public Integer getRoleId() { - return roleId; - } - - public void setRoleId(Integer roleId) { - this.roleId = roleId; - } - - public String getRolename() { - return rolename; - } - - public void setRolename(String rolename) { - this.rolename = rolename; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingApp.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingApp.java deleted file mode 100644 index 54fe7fba..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingApp.java +++ /dev/null @@ -1,123 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -/** - * Model of rows in the fn_app table; serialized as a message add or update an - * on-boarded application. - */ -public class OnboardingApp { - - public Long id; - - public String name; - - public String imageUrl; - - public String imageLink; - - public String description; - - public String notes; - - public String url; - - public String alternateUrl; - - public String restUrl; - - public Boolean isOpen; - - public Boolean isEnabled; - - public Long motsId; - - public String myLoginsAppName; - - public String myLoginsAppOwner; - - public String username; - - public String appPassword; - - public String thumbnail; - - public String uebTopicName; - - public String uebKey; - - public String uebSecret; - - public Boolean restrictedApp; - - public Boolean isCentralAuth; - - public String nameSpace; - - /** - * Sets the name, myLoginsAppName, myLoginsAppOwner, username and - * appPassword fields to the empty string OR trims leading/trailing space, - * as appropriate. - */ - public void normalize() { - this.name = (this.name == null) ? "" : this.name.trim(); - this.myLoginsAppName = (this.myLoginsAppName == null) ? "" : this.myLoginsAppName.trim(); - this.myLoginsAppOwner = (this.myLoginsAppOwner == null) ? "" : this.myLoginsAppOwner.trim(); - this.username = (this.username == null) ? "" : this.username.trim(); - this.appPassword = (this.appPassword == null) ? "" : this.appPassword.trim(); - } - - public void setUebTopicName(String topicName) { - this.uebTopicName = topicName; - } - - public void setUebKey(String key) { - this.uebKey = key; - } - - public void setUebSecret(String secret) { - this.uebSecret = secret; - } - - // Hide the implementation of restricted and normal app from the front end. - // The json sent and received will include restrictedApp but not appType. - - public void setRestrictedApp(Boolean restrictedApp) { - this.restrictedApp = restrictedApp; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingWidget.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingWidget.java deleted file mode 100644 index 26a6d6ae..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/OnboardingWidget.java +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -public class OnboardingWidget implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @Column(name = "WIDGET_ID") - public Long id; - - @Column(name = "WDG_NAME") - public String name; - - @Column(name = "APP_ID") - public Long appId; - - @Column(name = "APP_NAME") - public String appName; - - @Column(name = "WDG_WIDTH") - public Integer width; - - @Column(name = "WDG_HEIGHT") - public Integer height; - - @Column(name = "WDG_URL") - public String url; - - public void normalize() { - this.name = (this.name == null) ? "" : this.name.trim(); - this.appName = (this.appName == null) ? "" : this.appName.trim(); - if (this.width == null) - this.width = new Integer(0); - if (this.height == null) - this.height = new Integer(0); - this.url = (this.url == null) ? "" : this.url.trim(); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/PortalAdmin.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/PortalAdmin.java deleted file mode 100644 index 643af75c..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/PortalAdmin.java +++ /dev/null @@ -1,103 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * This is to handle portal admins - */ -@Entity -@Table(name = "fn_user") -public class PortalAdmin implements Serializable { - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "user_id") - public Long userId; - - @Column(name = "login_id") - public String loginId; - - @Column(name = "first_name") - public String firstName; - - @Column(name = "last_name") - public String lastName; - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public String getLoginId() { - return loginId; - } - - public void setLoginId(String loginId) { - this.loginId = loginId; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/PortalAdminUserRole.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/PortalAdminUserRole.java deleted file mode 100644 index 9e187162..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/PortalAdminUserRole.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * This is to handle portal admins - */ -@Entity -@Table(name="fn_user_role") -public class PortalAdminUserRole implements Serializable{ - private static final long serialVersionUID = 1L; - - @Id - @Column(name = "user_id") - public Long userId; - - @Id - @Column(name = "role_id") - public Long roleId; - - @Column(name = "app_id") - public Long appId; - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ProfileDetail.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ProfileDetail.java deleted file mode 100644 index cbc6b692..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/ProfileDetail.java +++ /dev/null @@ -1,110 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class ProfileDetail { - - private String firstName; - private String lastName; - private String middleName; - private String email; - private String loginId; - private String loginPassword; - - public ProfileDetail() { - } - - public ProfileDetail(String firstName, String lastName, String middleName, String email, String loginId, - String loginPassword) { - this.firstName = firstName; - this.lastName = lastName; - this.middleName = middleName; - this.email = email; - this.loginId = loginId; - this.loginPassword = loginPassword; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getMiddleName() { - return middleName; - } - - public void setMiddleName(String middleName) { - this.middleName = middleName; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getLoginId() { - return loginId; - } - - public void setLoginId(String loginId) { - this.loginId = loginId; - } - - public String getLoginPassword() { - return loginPassword; - } - - public void setLoginPassword(String loginPassword) { - this.loginPassword = loginPassword; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RemoteRole.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RemoteRole.java deleted file mode 100644 index 6de32280..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RemoteRole.java +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class RemoteRole { - - private Long id; - private String name; - - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - - @Override - public String toString() { - return "RemoteRole [id=" + id + ", name=" + name + "]"; - } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - return result; - } - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - RemoteRole other = (RemoteRole) obj; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - return true; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RemoteUserWithRoles.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RemoteUserWithRoles.java deleted file mode 100644 index 4aa30577..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RemoteUserWithRoles.java +++ /dev/null @@ -1,215 +0,0 @@ -package org.openecomp.portalapp.portal.transport; - -import java.util.ArrayList; -import java.util.List; - -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -/** - * User description which we receive in response from request to remote - * application: applicationsRestClientService.get(RemoteUserWithRoles[].class, - * appId, "/users"). It contains the most important info about remote - * application user including his roles in this application. - */ -public class RemoteUserWithRoles { - - private Long orgId; - - private Long managerId; - - private String firstName; - - private String middleInitial; - - private String lastName; - - private String phone; - - private String email; - - private String hrid; - - private String orgUserId; - - private String orgCode; - - private String orgManagerUserId; - - private String jobTitle; - - private String loginId; - - private Boolean active; - - private List roles = new ArrayList(); - - public Long getOrgId() { - return orgId; - } - - public void setOrgId(Long orgId) { - this.orgId = orgId; - } - - public Long getManagerId() { - return managerId; - } - - public void setManagerId(Long managerId) { - this.managerId = managerId; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getMiddleInitial() { - return middleInitial; - } - - public void setMiddleInitial(String middleInitial) { - this.middleInitial = middleInitial; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getHrid() { - return hrid; - } - - public void setHrid(String hrid) { - this.hrid = hrid; - } - - public String getOrgUserId() { - return orgUserId; - } - - public void setOrgUserId(String orgUserId) { - if(this.orgUserId == null) - this.orgUserId = orgUserId; - } - - public String getOrgCode() { - return orgCode; - } - - public void setOrgCode(String orgCode) { - this.orgCode = orgCode; - } - - public String getOrgManagerUserId() { - return orgManagerUserId; - } - - public void setOrgManagerUserId(String orgManagerUserId) { - this.orgManagerUserId = orgManagerUserId; - } - - public String getJobTitle() { - return jobTitle; - } - - public void setJobTitle(String jobTitle) { - this.jobTitle = jobTitle; - } - - public String getLoginId() { - return loginId; - } - - public void setLoginId(String loginId) { - this.loginId = loginId; - } - - public Boolean getActive() { - return active; - } - - public void setActive(Boolean active) { - this.active = active; - } - - public List getRoles() { - return roles; - } - - public void setRoles(List roles) { - this.roles = roles; - } - - @Override - public String toString() { - return "RemoteUserWithRoles [orgId=" + orgId + ", managerId=" + managerId + ", firstName=" + firstName - + ", middleInitial=" + middleInitial + ", lastName=" + lastName + ", phone=" + phone + ", email=" - + email + ", hrid=" + hrid + ", orgUserId=" + orgUserId + ", orgCode=" + orgCode + ", orgManagerUserId=" - + orgManagerUserId + ", jobTitle=" + jobTitle + ", loginId=" + loginId + ", active=" + active - + ", roles=" + roles + "]"; - } - - - - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RoleInAppForUser.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RoleInAppForUser.java deleted file mode 100644 index 76018b39..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RoleInAppForUser.java +++ /dev/null @@ -1,123 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class RoleInAppForUser { - - - public RoleInAppForUser() { - } - - public RoleInAppForUser(Long id, String name) { - this.roleId = id; - this.roleName = name; - } - - public Long roleId; - - public String roleName; - - public Boolean isApplied; - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public String getRoleName() { - return roleName; - } - - public void setRoleName(String roleName) { - this.roleName = roleName; - } - - public Boolean getIsApplied() { - return isApplied; - } - - public void setIsApplied(Boolean isApplied) { - this.isApplied = isApplied; - } - - @Override - public String toString() { - return "RoleInAppForUser [roleId=" + roleId + ", roleName=" + roleName + ", isApplied=" + isApplied + "]"; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((isApplied == null) ? 0 : isApplied.hashCode()); - result = prime * result + ((roleId == null) ? 0 : roleId.hashCode()); - result = prime * result + ((roleName == null) ? 0 : roleName.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - RoleInAppForUser other = (RoleInAppForUser) obj; - if (isApplied == null) { - if (other.isApplied != null) - return false; - } else if (!isApplied.equals(other.isApplied)) - return false; - if (roleId == null) { - if (other.roleId != null) - return false; - } else if (!roleId.equals(other.roleId)) - return false; - if (roleName == null) { - if (other.roleName != null) - return false; - } else if (!roleName.equals(other.roleName)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RolesInAppForUser.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RolesInAppForUser.java deleted file mode 100644 index ea6f92b8..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/RolesInAppForUser.java +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.ArrayList; -import java.util.List; - -public class RolesInAppForUser { - - public String orgUserId; - - public Long appId; - - public List roles = new ArrayList(); - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/UserApplicationRoles.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/UserApplicationRoles.java deleted file mode 100644 index b1af0818..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/UserApplicationRoles.java +++ /dev/null @@ -1,104 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.ArrayList; -import java.util.List; - -/** - * A specific application user and his application specific roles. - * - */ -public class UserApplicationRoles { - - private Long appId; - - private String orgUserId; - - private String firstName; - - private String lastName; - - private List roles = new ArrayList(); - - public Long getAppId() { - return appId; - } - - public void setAppId(Long appId) { - this.appId = appId; - } - - public String getOrgUserId() { - return orgUserId; - } - - public void setOrgUserId(String orgUserId) { - this.orgUserId = orgUserId; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public List getRoles() { - return roles; - } - - public void setRoles(List roles) { - this.roles = roles; - } - - @Override - public String toString() { - return "UserApplicationRoles [appId=" + appId + ", orgUserId=" + orgUserId + ", firstName=" + firstName - + ", lastName=" + lastName + ", roles=" + roles + "]"; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/UserWithNameSurnameTitle.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/UserWithNameSurnameTitle.java deleted file mode 100644 index b14fc8de..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/UserWithNameSurnameTitle.java +++ /dev/null @@ -1,100 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -public class UserWithNameSurnameTitle { - - public String orgUserId; - - public String firstName; - - public String lastName; - - public String jobTitle; - - public UserWithNameSurnameTitle(String orgUserId, String firstName, String lastName, String jobTitle) { - this.orgUserId = orgUserId; - this.firstName = firstName; - this.lastName = lastName; - this.jobTitle = jobTitle; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((firstName == null) ? 0 : firstName.hashCode()); - result = prime * result + ((jobTitle == null) ? 0 : jobTitle.hashCode()); - result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); - result = prime * result + ((orgUserId == null) ? 0 : orgUserId.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - UserWithNameSurnameTitle other = (UserWithNameSurnameTitle) obj; - if (firstName == null) { - if (other.firstName != null) - return false; - } else if (!firstName.equals(other.firstName)) - return false; - if (jobTitle == null) { - if (other.jobTitle != null) - return false; - } else if (!jobTitle.equals(other.jobTitle)) - return false; - if (lastName == null) { - if (other.lastName != null) - return false; - } else if (!lastName.equals(other.lastName)) - return false; - if (orgUserId == null) { - if (other.orgUserId != null) - return false; - } else if (!orgUserId.equals(other.orgUserId)) - return false; - return true; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/WidgetCatalogPersonalization.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/WidgetCatalogPersonalization.java deleted file mode 100644 index bc39014d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/transport/WidgetCatalogPersonalization.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -/** - * Model for the object PUT to the controller when the user takes an action on - * a widget in the catalog. - */ - -public class WidgetCatalogPersonalization { - - public Long widgetId; - public Boolean select; - // not needed as only 'SHOW' and 'HIDE' status_cd is expected from the micro service now - //public Boolean pending; - - public Long getWidgetId() { - return widgetId; - } - - public void setWidgetId(Long widgetId) { - this.widgetId = widgetId; - } - - public Boolean getSelect() { - return select; - } - - public void setSelect(Boolean select) { - this.select = select; - } - - /*public Boolean getPending() { - return pending; - } - - public void setPending(Boolean pending) { - this.pending = pending; - }*/ -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ueb/EPUebHelper.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ueb/EPUebHelper.java deleted file mode 100644 index a56cfb62..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ueb/EPUebHelper.java +++ /dev/null @@ -1,227 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.ueb; - -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.LinkedList; -import java.util.List; - -import javax.annotation.PostConstruct; - -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EcompApp; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.service.EPAppService; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.ueb.Helper; -import org.openecomp.portalsdk.core.onboarding.ueb.Publisher; -import org.openecomp.portalsdk.core.onboarding.ueb.UebException; -import org.openecomp.portalsdk.core.onboarding.ueb.UebManager; -import org.openecomp.portalsdk.core.onboarding.ueb.UebMsg; -import org.openecomp.portalsdk.core.onboarding.util.PortalApiConstants; -import org.openecomp.portalsdk.core.onboarding.util.PortalApiProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -@Component -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -public class EPUebHelper { - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPUebHelper.class); - - @Autowired - private EPAppService appsService; - - @Autowired - private SessionFactory sessionFactory; - - @SuppressWarnings("unused") - private Publisher epPublisher; - - public EPUebHelper() { - - } - // - // This should only be called by the ECOMP Portal App, other Apps have just one publisher and use appPublisher - // - @SuppressWarnings("unused") - @EPMetricsLog - public void refreshPublisherList() - { - Session localSession = null; - boolean addedPublisher = false; - - try { - localSession = sessionFactory.openSession(); - - List apps = appsService.getEcompAppAppsFullList(); - for (int i = 0; i < apps.size(); i++) - { - if ((apps.get(i).isEnabled()) && - (apps.get(i).getUebTopicName() != null) && - !(apps.get(i).getUebTopicName().toUpperCase().contains("ECOMP-PORTAL-INBOX"))) - { - logger.debug(EELFLoggerDelegate.debugLogger, "UEBManager adding publisher for " + apps.get(i).getUebTopicName()); - UebManager.getInstance().addPublisher(apps.get(i).getUebTopicName()); - addedPublisher = true; - } - else if ((apps.get(i).getId() != 1) && // App may have been disabled, remove the publisher - !(apps.get(i).isEnabled())) - { - if(apps.get(i).getUebTopicName()!=null){ - UebManager.getInstance().removePublisher(apps.get(i).getUebTopicName()); - } - } - } - } - catch (Exception e) - { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebSystemError, e, "add/remove Publisher"); - logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while refreshing the publisher list", e); - } - - //publisherList.print(); - - if (addedPublisher == true) // Give publishers time to initialize - { - Helper.sleep(400); - } - } - - @PostConstruct - @EPMetricsLog - public void initUeb() { - try { - epPublisher = new Publisher(PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), - PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET), - PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "initUeb failed", e); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebConnectionError, e); - } - - Thread thread = new Thread("EPUebManager: postConstructMethod - refreshPublisherList") { - public void run(){ - refreshPublisherList(); - } - }; - thread.start(); - - } - - @EPMetricsLog - public void addPublisher(EPApp app) { - // TODO Auto-generated method stub - try { - UebManager.getInstance().addPublisher(app.getUebTopicName()); - } catch (UebException e) { - logger.error(EELFLoggerDelegate.errorLogger, "addPublisher failed", e); - } - } - - public boolean checkAvailability() { - // - // Test existence of topic at UEB url - // - // (ie http://uebsb91kcdc.it.com:3904/topics/ECOMP-PORTAL-INBOX) - // - boolean available = true; - LinkedList urlList = Helper.uebUrlList(); - if (!urlList.isEmpty()) { - String url = "http://" + urlList.getFirst() + ":3904/topics/" + PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME); - if (!url.isEmpty()) { - try { - URL siteURL = new URL(url); - HttpURLConnection connection = (HttpURLConnection) siteURL.openConnection(); - connection.setRequestMethod("GET"); - connection.connect(); - - int code = connection.getResponseCode(); - if (code == 200) { - available = true; - } - else { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebConnectionError, url); - available = false; - logger.warn(EELFLoggerDelegate.errorLogger, "Warning! UEB topic existence check failed, topic = " + url ); - logger.debug(EELFLoggerDelegate.debugLogger, "Warning! UEB topic existence check failed, topic = " + url ); - } - } - catch (Exception e) { - available = false; - logger.error(EELFLoggerDelegate.errorLogger, "checkAvailability failed", e); - } - } - } - return available; - } - - public boolean MessageCanBeSentToTopic() { - - boolean sentMsgSuccessfully = false; - - UebMsg msg = new UebMsg(); - msg.putSourceTopicName(PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME)); - msg.putPayload("Pinging topic for health check"); - msg.putMsgType(EPUebMsgTypes.UEB_MSG_TYPE_HEALTH_CHECK); - - try { - // epPublisher.send(msg); - sentMsgSuccessfully = true; - } - catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHealthCheckUebClusterError, e); - sentMsgSuccessfully = false; - logger.warn(EELFLoggerDelegate.errorLogger, "Warning! could not successfully publish a UEB msg to " - + PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME), e); - } - - return sentMsgSuccessfully; - } - -} - - diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ueb/EPUebMsgTypes.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ueb/EPUebMsgTypes.java deleted file mode 100644 index 720e0615..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/ueb/EPUebMsgTypes.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.ueb; - -import org.openecomp.portalsdk.core.onboarding.ueb.UebMsgTypes; - -public interface EPUebMsgTypes extends UebMsgTypes { - - public static final String UEB_MSG_TYPE_HEALTH_CHECK = "uebHealthCheckPing"; -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/CustomLoggingFilter.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/CustomLoggingFilter.java deleted file mode 100644 index ab41daac..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/CustomLoggingFilter.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.utils; - -import ch.qos.logback.classic.Level; -import ch.qos.logback.classic.spi.ILoggingEvent; -import ch.qos.logback.core.filter.Filter; -import ch.qos.logback.core.spi.FilterReply; - -/** - * Custom Filter class bind with logback.xml - * configuration file to strip out certain log messages - * coming out of special packages or classes. - * - */ -public class CustomLoggingFilter extends Filter { - - /** - * Custom Filter is added to strip out the continuous U-EB logging messages - * But make sure we log the ERROR & WARNING Level messages. - */ - @Override - public FilterReply decide(ILoggingEvent event) { - try { - if ((event.getLevel() != Level.ERROR || event.getLevel() != Level.WARN) && - (event.getThreadName().equalsIgnoreCase("UEBConsumerThread")) && - (event.getLoggerName().contains("org.openecomp.nsa") || event.getLoggerName().contains("org.apache.http")) - ) { - return FilterReply.DENY; - } else { - return FilterReply.NEUTRAL; - } - } catch(Exception e) { - return FilterReply.NEUTRAL; - } - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EPCommonSystemProperties.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EPCommonSystemProperties.java deleted file mode 100644 index fd15634b..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EPCommonSystemProperties.java +++ /dev/null @@ -1,92 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.utils; - -import org.openecomp.portalsdk.core.util.SystemProperties; - -public class EPCommonSystemProperties extends SystemProperties { - - public static final String LOGIN_URL_NO_RET_VAL = "login_url_no_ret_val"; - public static final String ECOMP_APP_ID = "ecomp_app_id"; - public static final String SYS_ADMIN_ROLE_ID = "sys_admin_role_id"; - public static final String DUBLICATED_FIELD_VALUE_ECOMP_ERROR = "1201"; - public static final String ACCOUNT_ADMIN_ROLE_ID = "account_admin_role_id"; - public static final String RESTRICTED_APP_ROLE_ID = "restricted_app_role_id"; - public static final String FE_URL = "frontend_url"; - public static final String HEALTH_POLL_INTERVAL_SECONDS = "health_poll_interval_seconds"; - public static final String HEALTHFAIL_ALERT_EVERY_X_INTERVALS = "health_fail_alert_every_x_intervals"; - public static final String USER_GUIDE_URL = "user_guide_link"; - - public static final String USER_FIRST_NAME = "USER_FIRST_NAME"; - public static final String USER_LAST_NAME = "USER_LAST_NAME"; - public static final String USER_EMAIL = "USER_EMAIL"; - public static final String USER_ORG_USERID = "USER_ORG_USERID"; - - public static final String USH_TICKET_URL = "ush_ticket_url"; - - public static final String EXTERNAL_API_RESPONSE_CODE = "External_API_ResponseCode"; - public static final String COOKIE_DOMAIN = "cookie_domain"; - - public static final String FEEDBACK_EMAIL_ADDRESS = "feedback_email_address"; - public static final String PORTAL_INFO_URL = "portal_info_url"; - - public static final String ONLINE_USER_UPDATE_RATE = "online_user_update_rate"; - public static final String ONLINE_USER_UPDATE_DURATION = "online_user_update_duration"; - - public static final String NOTIFICATION_UPDATE_RATE = "notification_update_rate"; - public static final String NOTIFICATION_UPDATE_DURATION = "notification_update_duration"; - - public static final String WINDOW_WIDTH_THRESHOLD_LEFT_MENU = "window_width_threshold_left_menu"; - public static final String WINDOW_WIDTH_THRESHOLD_RIGHT_MENU = "window_width_threshold_right_menu"; - - public static final String AUDITLOG_DEL_DAY_FROM = "auditlog_del_day_from"; - public static final String AUDITLOG_DELETE_CRON = "auditlog_delete_cron"; - - public static final String AUTH_USER_SERVER = "auth_user_server"; - public static final String EXTERNAL_ACCESS_ENABLE = "external_access_enable"; - - public static final String EXTERNAL_SYSTEM_NOTIFICATION_URL = "external_system_notification_url"; - public static final String EXTERNAL_CENTRAL_AUTH_USER_NAME = "ext_central_access_user_name"; - public static final String EXTERNAL_CENTRAL_AUTH_PASSWORD = "ext_central_access_password"; - public static final String EXTERNAL_CENTRAL_ACCESS_URL = "ext_central_access_url"; - public static final String EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN = "ext_central_access_user_domain"; - - public static final String WIDGET_MS_PROTOCOL = "microservices.widget.protocol"; - public static final String WIDGET_MS_HOSTNAME = "microservices.widget.hostname"; - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EcompPortalUtils.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EcompPortalUtils.java deleted file mode 100644 index 2d4d214f..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EcompPortalUtils.java +++ /dev/null @@ -1,436 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.utils; - -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import javax.servlet.http.HttpServletResponse; -import javax.xml.bind.DatatypeConverter; - -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.slf4j.MDC; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class EcompPortalUtils { - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EcompPortalUtils.class); - - // TODO: GLOBAL_LOGIN_URL is the same as in SessionTimeoutInterceptor. - // It should be defined in SystemProperties. - private static final String GLOBAL_LOGIN_URL = "global-login-url"; - - /** - * @param orgUserId - * User ID to validate - * @return true if orgUserId is not empty and contains only alphanumeric, false - * otherwise - */ - public static boolean legitimateUserId(String orgUserId) { - return orgUserId.matches("^[a-zA-Z0-9]+$"); - } - - /** - * Splits the string into a list of tokens using the specified regular - * expression - * - * @param source - * String to split - * @param regex - * tokens - * @return List of tokens split from the source - */ - public static List parsingByRegularExpression(String source, String regex) { - List tokens = new ArrayList(); - if (source != null && source.length() > 0) { - String[] parsed = source.split(regex); - for (String token : parsed) { - if (token.length() > 0) { - tokens.add(token); - } - } - } - return tokens; - } - - /** - * Builds a JSON object with error code and message information. - * - * @param errorCode - * error code - * @param errorMessage - * message - * @return JSON object as a String - */ - public static String jsonErrorMessageResponse(int errorCode, String errorMessage) { - return "{\"error\":{\"code\":" + errorCode + "," + "\"message\":\"" + errorMessage + "\"}}"; - } - - /** - * Builds a JSON object with the specified message - * - * @param message - * Message to embed - * @return JSON object as a String - */ - public static String jsonMessageResponse(String message) { - return String.format("{\"message\":\"%s\"}", message); - } - - /** - * Serializes the specified object as JSON and writes the result to the debug - * log. If serialization fails, logs a message to the error logger. - * - * @param logger - * Logger for the class where the object was built; the logger - * carries the class name. - * @param source - * First portion of the log message - * @param msg - * Second portion of the log message - * @param obj - * Object to serialize as JSON - */ - public static void logAndSerializeObject(EELFLoggerDelegate logger, String source, String msg, Object obj) { - try { - String objectAsJson = new ObjectMapper().writeValueAsString(obj); - logger.debug(EELFLoggerDelegate.debugLogger, - String.format("source= [%s]; %s [%s];", source, msg, objectAsJson)); - } catch (JsonProcessingException e) { - logger.warn(EELFLoggerDelegate.errorLogger, "logAndSerializedObject failed to serialize", e); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "logAndSerializedObject failed", e); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); - } - } - - /** - * Serializes the specified object as JSON and writes the result to the debug - * log. If serialization fails, logs a message to the error logger. - * - * @param source - * First portion of the log message - * @param msg - * Second portion of the log message - * @param obj - * Object to serialize as JSON - */ - public static void logAndSerializeObject(String source, String msg, Object obj) { - logAndSerializeObject(logger, source, msg, obj); - } - - public static void rollbackTransaction(Transaction transaction, String errorMessage) { - logger.error(EELFLoggerDelegate.errorLogger, errorMessage); - try { - if (transaction != null) { - transaction.rollback(); - } - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeExecuteRollbackError, e); - logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while performing a rollback transaction", - e); - } - } - - public static void closeLocalSession(Session localSession, String errorMessage) { - logger.error(EELFLoggerDelegate.errorLogger, errorMessage); - try { - if (localSession != null) { - localSession.close(); - } - } catch (Exception e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoCloseSessionError, e); - logger.error(EELFLoggerDelegate.errorLogger, errorMessage + ", closeLocalSession exception", e); - } - } - - /** - * Set response status to Unauthorized if user == null and to Forbidden in all - * (!) other cases. Logging is not performed if invocator == null - * - * @param user - * User object - * @param response - * HttpServletResponse - * @param invocator - * may be null - */ - public static void setBadPermissions(EPUser user, HttpServletResponse response, String invocator) { - if (user == null) { - String loginUrl = SystemProperties.getProperty(EPCommonSystemProperties.LOGIN_URL_NO_RET_VAL); - response.setHeader(GLOBAL_LOGIN_URL, loginUrl); - response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); - MDC.put(EPCommonSystemProperties.RESPONSE_CODE, Integer.toString(HttpServletResponse.SC_UNAUTHORIZED)); - } else { - response.setStatus(HttpServletResponse.SC_FORBIDDEN); - MDC.put(EPCommonSystemProperties.RESPONSE_CODE, Integer.toString(HttpServletResponse.SC_FORBIDDEN)); - } - if (invocator != null) { - logger.warn(EELFLoggerDelegate.errorLogger, - invocator + ", permissions problem, response status = " + response.getStatus()); - } - } - - public static int getExternalAppResponseCode() { - String responseCode = MDC.get(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE); - int responseCodeInt = 0; - try { - if (responseCode != null && responseCode != "") { - responseCodeInt = Integer.valueOf(responseCode); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getExternalAppResponseCode failed", e); - } - return responseCodeInt; - } - - // This method might be just for testing purposes. - public static void setExternalAppResponseCode(int responseCode) { - try { - String responseCodeString = String.valueOf(responseCode); - MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, responseCodeString); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "setExternalAppResponseCode failed", e); - } - } - - public static String getHTTPStatusString(int httpStatusCode) { - String httpStatusString = "unknown_error"; - try { - httpStatusString = org.springframework.http.HttpStatus.valueOf(httpStatusCode).name(); - if (httpStatusString != null) { - httpStatusString = httpStatusString.toLowerCase(); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getHTTPStatusString failed", e); - } - return httpStatusString; - } - - public static String getFEErrorString(Boolean internal, int responseCode) { - // Return a String like the following: - // "Internal Ecomp Error: 500 internal_server_error" or - // "External App Error: 404 not_found" - // TODO: create our own Ecomp error codes, starting with 1000 and up. - String internalExternalString = internal ? "Ecomp Error: " : "App Error: "; - String httpStatusString = "unknown_error"; - try { - if (responseCode < 1000) { - httpStatusString = getHTTPStatusString(responseCode); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getFEErrorString failed", e); - } - String responseString = internalExternalString + responseCode + " " + httpStatusString; - return responseString; - } - - public static boolean isProductionBuild() { - boolean productionBuild = true; - String epVersion = EcompVersion.buildNumber; - if (epVersion != null) { - int buildNum = epVersion.lastIndexOf('.'); - if (buildNum > 0) { - int buildNumber = Integer.parseInt(epVersion.substring(buildNum + 1)); - if (buildNumber < 3000) // Production versions are 3000+, (ie - // 1.0.3003) - { - productionBuild = false; - } - } - } - return productionBuild; - } - - public static String getMyIpAdddress() { - InetAddress ip; - String localIp; - try { - ip = InetAddress.getLocalHost(); - localIp = ip.getHostAddress(); - } catch (UnknownHostException e) { - localIp = "unknown"; - logger.error(EELFLoggerDelegate.errorLogger, "getMyIpAdddress failed ", e); - } - return localIp; - } - - public static String getMyHostName() { - InetAddress ip; - String hostName; - try { - ip = InetAddress.getLocalHost(); - hostName = ip.getHostName(); - } catch (UnknownHostException e) { - hostName = "unknown"; - logger.error(EELFLoggerDelegate.errorLogger, "getMyHostName failed", e); - } - return hostName; - } - - /** - * Returns a default property if the expected one is not available - * - * @param property - * Key - * @param defaultValue - * default Value - * @return Default value if property is not defined or yields the empty string; - * else the property value. - */ - public static String getPropertyOrDefault(String property, String defaultValue) { - if (!SystemProperties.containsProperty(property)) - return defaultValue; - String value = SystemProperties.getProperty(property); - if (value == null || "".equals(value)) - return defaultValue; - return value; - } - - /** - * Calculates the time duration of a function call for logging purpose. It - * stores the result by using "MDC.put(SystemProperties.MDC_TIMER, - * timeDifference);" It is important to call - * "MDC.remove(SystemProperties.MDC_TIMER);" after this method call to clean up - * the record in MDC - * - * @param beginDateTime - * the given begin time for the call - * @param endDateTime - * the given end time for the call - * - */ - public static void calculateDateTimeDifferenceForLog(String beginDateTime, String endDateTime) { - if (beginDateTime != null && endDateTime != null) { - try { - SimpleDateFormat ecompLogDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); - - Date beginDate = ecompLogDateFormat.parse(beginDateTime); - Date endDate = ecompLogDateFormat.parse(endDateTime); - String timeDifference = String.format("%d", endDate.getTime() - beginDate.getTime()); - MDC.put(SystemProperties.MDC_TIMER, timeDifference); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "calculateDateTimeDifferenceForLog failed", e); - } - } - } - - /** - * Answers the protocol to use. - * - * @return Protocol name from property file; defaults to https. - */ - public static String widgetMsProtocol() { - return getPropertyOrDefault(EPCommonSystemProperties.WIDGET_MS_PROTOCOL, "https"); - } - - /** - * Answers the host to use. - * - * @return Host name from property file; defaults to localhost. - */ - public static String localOrDockerHost() { - return getPropertyOrDefault(EPCommonSystemProperties.WIDGET_MS_HOSTNAME, "localhost"); - } - - /** - * It returns headers where username and password of external central auth is - * encoded to base64 - * - * @return header which contains external central auth username and password - * base64 encoded - * @throws Exception - * if unable to decrypt the password - */ - public static HttpHeaders base64encodeKeyForAAFBasicAuth() throws Exception { - String userName = ""; - String decryptedPass = ""; - if (EPCommonSystemProperties.containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_USER_NAME) - && EPCommonSystemProperties.containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_PASSWORD)) { - decryptedPass = SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_PASSWORD); - userName = SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_USER_NAME); - } - String decPass = decrypted(decryptedPass); - String usernamePass = userName + ":" + decPass; - String encToBase64 = String.valueOf((DatatypeConverter.printBase64Binary(usernamePass.getBytes()))); - HttpHeaders headers = new HttpHeaders(); - headers.add("Authorization", "Basic " + encToBase64); - headers.setContentType(MediaType.APPLICATION_JSON); - return headers; - } - - private static String decrypted(String encrypted) throws Exception { - String result = ""; - if (encrypted != null && encrypted.length() > 0) { - try { - result = CipherUtil.decrypt(encrypted, SystemProperties.getProperty(SystemProperties.Decryption_Key)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword failed", e); - throw e; - } - } - return result; - } - - public static String truncateString(String originString, int size){ - if(originString.length()>=size){ - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(originString); - stringBuilder.setLength(size); - stringBuilder.append("..."); - return stringBuilder.toString(); - } - return originString; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EcompVersion.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EcompVersion.java deleted file mode 100644 index 9e9c5aab..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/EcompVersion.java +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.utils; - -// -// Hardcoded for now, wanted to use maven and resource file. Possibly just read -// pom.properties file with version added, but spent several hours already running -// into issues with that and other ideas not working. So, for 1604 deadlines I -// am just putting the version in the code here... for now. -// -public final class EcompVersion { - - // TODO - not used - manifest service reads from manifest - public static final String buildNumber="1610.1.999"; - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/HashMapFromList.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/HashMapFromList.java deleted file mode 100644 index 5abc498d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/HashMapFromList.java +++ /dev/null @@ -1,115 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.utils; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.List; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -/** - * - * @author Vladimir Turovets This class is used to create HashMap - * from the list of T objects. We suppose that - * 1) T object contains field 'parmName' or getter 'getParmName()'. - * The value of object.parmName or object.getParmName() is used as - * a key in created hashMap. - * 2) for all objects in the list 'parmName' or getter - * 'getParmName().toString' has to be unique and not null. - * This class has one function only: - * HashMap hashMap(List list, String name) and returns - * hash map created from list. - * - * @param - * Type - */ -public class HashMapFromList { - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(HashMapFromList.class); - - public HashMap hashMap(List list, String name) { - HashMap result = new HashMap(); - if (list == null || list.size() == 0 || name == null) { - return result; - } - name = name.trim(); - if (name.length() > 0) { - T object = list.get(0); - try { - String parmName = name; - Field field = object.getClass().getField(parmName); - for (T obj : list) { - try { - Object o = field.get(obj); - if (o != null) - result.put(o.toString(), obj); - } catch (Exception e1) { - logger.error(EELFLoggerDelegate.errorLogger, "hashMap failed 1: object of class " + object.getClass().getName() + ", field " + parmName, e1); - return new HashMap(); - } - } - } catch (Exception e) { - String getterName = "get" + (name.length() == 1 ? name.toUpperCase() : (name.substring(0, 1).toUpperCase() + name.substring(1))); - try { - Class[] parmClasses = null; - Method method = object.getClass().getMethod(getterName, parmClasses); - Object[] parmValues = new Object[0]; - for (T obj : list) { - try { - Object o = method.invoke(obj, parmValues); - if (o != null) - result.put(o.toString(), obj); - } catch (Exception e2) { - logger.error(EELFLoggerDelegate.errorLogger, "hashMap failed 2: object of class " + object.getClass().getName() + ", method " + getterName, e2); - return new HashMap(); - } - } - } catch (Exception e3) { - logger.error(EELFLoggerDelegate.errorLogger, "hashMap failed 3: object of class " + object.getClass().getName() + ", bad field '" + name + "' or method '" + getterName + "()", e3); - return new HashMap(); - } - } - } - if (list.size() != result.size()) { - logger.warn(EELFLoggerDelegate.errorLogger, "Duplicated or empty keys were found!!!"); - } - return result; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/ParallelExecutor.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/ParallelExecutor.java deleted file mode 100644 index 8dfacb5c..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/ParallelExecutor.java +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.utils; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; - -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -public abstract class ParallelExecutor { - - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ParallelExecutor.class); - - protected static abstract class ThreadOperation { - public abstract T execute(List parms); - } - - protected abstract ThreadOperation getThreadOperation(); - - private static class CallableOperationThread implements Callable { - - List parms; - - private ThreadOperation operation; - - public CallableOperationThread(ThreadOperation operation, List parms) { - this.parms = parms; - this.operation = operation; - } - - @Override - public T call() throws Exception { - return this.operation.execute(this.parms); - } - - } - - public List performAllOperations(int ThreadPoolSize, List> listOfParms) { - List result = new ArrayList(); - if (ThreadPoolSize > 0 && listOfParms != null) { - ExecutorService executor = Executors.newFixedThreadPool(ThreadPoolSize); - List> list = new ArrayList>(); - for (List parms : listOfParms) { - CallableOperationThread getter = new CallableOperationThread(this.getThreadOperation(), parms); - Future submit = executor.submit(getter); - list.add(submit); - } - for (Future future : list) { - try { - if (future != null) { - result.add(future.get()); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "performAllOperations failed", e); - } - } - executor.shutdown(); - } - return result; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/PortalConstants.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/PortalConstants.java deleted file mode 100644 index 413b11a7..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/utils/PortalConstants.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.utils; - -public interface PortalConstants { - public static final Long PORTAL_APP_ID = 1L; - public static final Long DEFAULT_NOTIFICATION_CREATOR = 1L; - public static final String REST_AUX_API = "/auxapi"; - public static final Long ACCOUNT_ADMIN_ROLE_ID = 999L; - public static final Long SYS_ADMIN_ROLE_ID = 1L; - public static final String ADMIN_ROLE = "Account Administrator"; - public static final String PORTAL_ADMIN_ROLE = "System Administrator"; - public static final Integer AUDIT_LOG_COMMENT_SIZE = 990; -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/AdminAuthExtension.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/AdminAuthExtension.java deleted file mode 100644 index fc88d4fa..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/AdminAuthExtension.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.service; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import org.openecomp.portalapp.portal.domain.EPUser; - - -@Service("adminAuthExtension") -@Transactional -public class AdminAuthExtension { - - public void saveUserExtension(EPUser user){ - //app's developer implement their own logic here, like updating app's related tables - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/EPProfileService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/EPProfileService.java deleted file mode 100644 index 54ce80b7..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/EPProfileService.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.service; - -import java.util.List; - -import org.openecomp.portalsdk.core.domain.Profile; -import org.openecomp.portalapp.portal.domain.EPUser; - - -public interface EPProfileService { - List findAll(); - - Profile getProfile(int id); - - EPUser getUser(String id); - - void saveUser(EPUser user); -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/EPProfileServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/EPProfileServiceImpl.java deleted file mode 100644 index 373b2b00..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/EPProfileServiceImpl.java +++ /dev/null @@ -1,89 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.service; - -import java.util.List; - -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalsdk.core.dao.ProfileDao; -import org.openecomp.portalsdk.core.domain.Profile; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service("epProfileService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class EPProfileServiceImpl implements EPProfileService { - - @Autowired - private ProfileDao profileDao; - - @Autowired - private DataAccessService dataAccessService; - - @SuppressWarnings("unchecked") - public List findAll() { - return getDataAccessService().getList(Profile.class, null); - } - - public EPUser getUser(String userId) { - return (EPUser) getDataAccessService().getDomainObject(EPUser.class, Long.parseLong(userId), null); - } - - public void saveUser(EPUser user) { - getDataAccessService().saveDomainObject(user, null); - } - - public Profile getProfile(int id) { - return profileDao.getProfile(id); - } - - public DataAccessService getDataAccessService() { - return dataAccessService; - } - - public void setDataAccessService(DataAccessService dataAccessService) { - this.dataAccessService = dataAccessService; - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/RemoteWebServiceCallService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/RemoteWebServiceCallService.java deleted file mode 100644 index be2fe7cf..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/RemoteWebServiceCallService.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.service; - -public interface RemoteWebServiceCallService { - - /** - * Answers whether the specified credentials match application information - * in the database. - * - * @param secretKey - * Key used to decrypt passwords; ignored if null. - * @param requestUebKey - * UEB key that identifies the application - * @param requestUserName - * User name for the application - * @param requestPassword - * Password for the application - * @return True if the UEB key and the credentials match the database - * entries; else false. - * @throws Exception - * If decryption fails. - */ - public boolean verifyRESTCredential(String secretKey, String requestUebKey, String requestUserName, - String requestPassword) throws Exception; - - /** - * - * @param requestUebKey - * UEB key - * @return boolean - * @throws Exception - * on error - */ - public boolean verifyAppKeyCredential(String requestUebKey) throws Exception; - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/CoreTimeoutHandler.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/CoreTimeoutHandler.java deleted file mode 100644 index 152c68b1..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/CoreTimeoutHandler.java +++ /dev/null @@ -1,183 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.service.sessionmgt; - -import java.util.Calendar; -import java.util.Hashtable; -import java.util.Map; - -import javax.servlet.http.HttpSession; - -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalsdk.core.domain.sessionmgt.TimeoutVO; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.util.PortalApiConstants; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; - -@Service -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class CoreTimeoutHandler { - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(CoreTimeoutHandler.class); - - public static final Map sessionMap = new Hashtable(); - public static final Integer repeatInterval = 15 * 60; // 15 minutes - ObjectMapper mapper = new ObjectMapper(); - - public static void sessionCreated(String portalJSessionId, String jSessionId, HttpSession session) { - - storeMaxInactiveTime(session); - - // this key is a combination of portal jsession id and app session id - session.setAttribute(PortalApiConstants.PORTAL_JSESSION_ID, jSessionKey(jSessionId, portalJSessionId)); - sessionMap.put((String) session.getAttribute(PortalApiConstants.PORTAL_JSESSION_ID), session); - - } - - protected static void storeMaxInactiveTime(HttpSession session) { - - if (session.getAttribute(PortalApiConstants.GLOBAL_SESSION_MAX_IDLE_TIME) == null) - session.setAttribute(PortalApiConstants.GLOBAL_SESSION_MAX_IDLE_TIME, session.getMaxInactiveInterval()); - } - - public static void sessionDestroyed(HttpSession session) { - - try { - sessionMap.remove((String) session.getAttribute(PortalApiConstants.PORTAL_JSESSION_ID)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "sessionDestroyed failed on session " + session.getId(), e); - } - - } - - public String gatherSessionExtenstions() { - - Map sessionTimeoutMap = new Hashtable(); - String jsonMap = ""; - - for (String jSessionKey : sessionMap.keySet()) { - - try { - // get the expirytime in seconds - HttpSession session = sessionMap.get(jSessionKey); - - Long lastAccessedTimeMilliSec = session.getLastAccessedTime(); - Long maxIntervalMilliSec = session.getMaxInactiveInterval() * 1000L; - // Long currentTimeMilliSec = Calendar.getInstance().getTimeInMillis() ; - // (maxIntervalMilliSec - (currentTimeMilliSec - lastAccessedTimeMilliSec) + ; - Calendar instance = Calendar.getInstance(); - instance.setTimeInMillis(session.getLastAccessedTime()); - logger.info(EELFLoggerDelegate.errorLogger, - "gatherSessionExtenstions: Session Management: Last Accessed time for " + jSessionKey + ": " - + instance.getTime()); - - Long sessionTimOutMilliSec = maxIntervalMilliSec + lastAccessedTimeMilliSec; - - sessionTimeoutMap.put(portalJSessionId(jSessionKey), - new TimeoutVO(jSessionId(jSessionKey), sessionTimOutMilliSec)); - - jsonMap = mapper.writeValueAsString(sessionTimeoutMap); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "gatherSessionExtenstions failed", e); - } - } - - return jsonMap; - - } - - public void updateSessionExtensions(String sessionTimeoutMapStr) throws Exception { - - Map sessionTimeoutMap; - try { - TypeReference> typeRef = new TypeReference>() { - }; - - sessionTimeoutMap = mapper.readValue(sessionTimeoutMapStr, typeRef); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "updateSessionExtensions failed 1", e); - return; - } - for (String jPortalSessionId : sessionTimeoutMap.keySet()) { - try { - - TimeoutVO extendedTimeoutVO = mapper - .readValue(mapper.writeValueAsString(sessionTimeoutMap.get(jPortalSessionId)), TimeoutVO.class); - HttpSession session = sessionMap.get(jSessionKey(extendedTimeoutVO.getjSessionId(), jPortalSessionId)); - - if (session == null) { - continue; - } - - Long lastAccessedTimeMilliSec = session.getLastAccessedTime(); - Long maxIntervalMilliSec = session.getMaxInactiveInterval() * 1000L; - Long sessionTimOutMilliSec = maxIntervalMilliSec + lastAccessedTimeMilliSec; - - Long maxTimeoutTimeMilliSec = extendedTimeoutVO.getSessionTimOutMilliSec(); - if (maxTimeoutTimeMilliSec > sessionTimOutMilliSec) { - logger.debug(EELFLoggerDelegate.debugLogger, - "updateSessionExtensions: Session Management: updated session max idle time"); - session.setMaxInactiveInterval((int) (maxTimeoutTimeMilliSec - lastAccessedTimeMilliSec) / 1000); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, - "updateSessionExtensions failed", e); - } - - } - - } - - protected static String jSessionKey(String jSessionId, String portalJSessionId) { - return portalJSessionId + "-" + jSessionId; - } - - protected String portalJSessionId(String jSessionKey) { - return jSessionKey.split("-")[0]; - } - - protected String jSessionId(String jSessionKey) { - return jSessionKey.split("-")[1]; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/ManageService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/ManageService.java deleted file mode 100644 index 2628cd86..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/ManageService.java +++ /dev/null @@ -1,118 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.service.sessionmgt; - -import java.util.Calendar; -import java.util.Date; -import java.util.List; - -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.service.EPAppService; -import org.openecomp.portalapp.portal.transport.OnboardingApp; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.listener.PortalTimeoutHandler; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.quartz.CronExpression; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -@Service("manageService") -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class ManageService implements PortalTimeoutHandler.SessionCommInf { - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ManageService.class); - - @Autowired - private EPAppService appService; - - @Autowired - private SessionCommunication sessionCommunication; - - public Integer fetchSessionSlotCheckInterval(String... params) throws Exception { - - String defaultCronExpressionStr = "0 0/5 * * * ? *"; - String cronExpressionStr = SystemProperties.getProperty(SystemProperties.SESSIONTIMEOUT_FEED_CRON); - - if (cronExpressionStr == null) { - cronExpressionStr = defaultCronExpressionStr; - } - - CronExpression cal = new CronExpression(cronExpressionStr); - final Date nowTime = Calendar.getInstance().getTime(); - Date nextTime = cal.getNextValidTimeAfter(nowTime); - Date nextNextTime = cal.getNextValidTimeAfter(nextTime); - - final int timeDiff = (int)(nextNextTime.getTime()-nextTime.getTime()); - logger.debug(EELFLoggerDelegate.debugLogger, "Time interval between subsequent session checks " + timeDiff); - - return timeDiff; - } - - public void extendSessionTimeOuts(String... params) throws Exception { - try { - String sessionMap = params[3]; - - logger.debug(EELFLoggerDelegate.debugLogger, "Extending the App sessions for last minute request: " + sessionMap); - - if (StringUtils.isEmpty(sessionMap)) { - logger.error(EELFLoggerDelegate.errorLogger, "extendSessionTimeOuts: Skipping session updates since the portal session value is empty."); - } else { - List appList = appService.getEnabledNonOpenOnboardingApps(); - for (OnboardingApp onApp : appList) { - sessionCommunication.pingSession(onApp, sessionMap); - } - updateSessionExtensions(sessionMap); - sessionCommunication.clear(false); - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "extendSessionTimeOuts failed", e); - } - } - - public String gatherSessionExtenstions() { - return PortalTimeoutHandler.gatherSessionExtensions(); - } - - public void updateSessionExtensions(String sessionTimeoutMapStr) throws Exception { - PortalTimeoutHandler.updateSessionExtensions(sessionTimeoutMapStr); - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/SessionCommunication.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/SessionCommunication.java deleted file mode 100644 index 13044c4d..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/SessionCommunication.java +++ /dev/null @@ -1,290 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.service.sessionmgt; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.UUID; - -import javax.servlet.http.HttpServletResponse; - -import org.openecomp.portalapp.portal.logging.aop.EPAuditLog; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.transport.OnboardingApp; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.exception.UrlAccessRestrictedException; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.slf4j.MDC; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import com.att.eelf.configuration.Configuration; - -@Service("sessionCommunication") -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -public class SessionCommunication { - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SessionCommunication.class); - - @EPAuditLog - public String sendGet(OnboardingApp app) throws Exception { - String appResponse = ""; - String appName = ""; - int responseCode = 0; - if (app != null && app.name != null && app.name != "") { - try { - appName = app.name; - String url = app.restUrl + "/sessionTimeOuts"; - String encriptedPwdDB = app.appPassword; - String appUserName = app.username; - - setLocalMDCContext(app, "/sessionTimeOuts", url); - - URL obj = new URL(url); - - HttpURLConnection con = (HttpURLConnection) obj.openConnection(); - - // optional default is GET - con.setRequestMethod("GET"); - con.setConnectTimeout(3000); - con.setReadTimeout(8000); - // add request header - con.setRequestProperty("username", appUserName); - con.setRequestProperty("password", encriptedPwdDB); - - // con.set - responseCode = con.getResponseCode(); - logger.debug(EELFLoggerDelegate.debugLogger, "Response Code : " + responseCode); - - BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); - String inputLine; - StringBuffer response = new StringBuffer(); - - while ((inputLine = in.readLine()) != null) { - response.append(inputLine); - } - - in.close(); - appResponse = response.toString(); - } catch (UrlAccessRestrictedException e) { - responseCode = HttpServletResponse.SC_UNAUTHORIZED; - logger.error(EELFLoggerDelegate.errorLogger, String.format( - "SessionCommunication.sendGet received an un-authorized exception. AppName: %s", appName)); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError, e); - } catch (Exception e) { - responseCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; - String message = String.format( - "SessionCommunication.sendGet encountered an Exception. AppName: %s, Details: %s", appName, - e.toString()); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHttpConnectionError, e); - logger.error(EELFLoggerDelegate.errorLogger, message, e); - } finally { - EcompPortalUtils.setExternalAppResponseCode(responseCode); - } - } else { - logger.error(EELFLoggerDelegate.errorLogger, "SessionCommunication sendGet: app is null"); - } - return appResponse; - } - - @EPAuditLog - public Boolean pingSession(OnboardingApp app, String sessionTimeoutMap) throws Exception { - String appName = ""; - int responseCode = 0; - try { - if (app == null) - throw new Exception("SessionCommunication.pingSession: app is null"); - if (app != null && app.name != null && app.name != "") { - appName = app.name; - } - String url = app.restUrl + "/updateSessionTimeOuts"; - String encriptedPwdDB = app.appPassword; - String appUserName = app.username; - - setLocalMDCContext(app, "/updateSessionTimeOuts", url); - - URL obj = new URL(url); - - HttpURLConnection con = (HttpURLConnection) obj.openConnection(); - - // optional default is GET - con.setRequestMethod("POST"); - con.setConnectTimeout(3000); - con.setReadTimeout(15000); - - // add request header - con.setRequestProperty("username", appUserName); - con.setRequestProperty("password", encriptedPwdDB); - - con.setRequestProperty("sessionMap", sessionTimeoutMap); - con.setDoInput(true); - con.setDoOutput(true); - con.getOutputStream().write(sessionTimeoutMap.getBytes()); - con.getOutputStream().flush(); - con.getOutputStream().close(); - - responseCode = con.getResponseCode(); - logger.debug(EELFLoggerDelegate.debugLogger, "Response Code : " + responseCode); - } catch (UrlAccessRestrictedException e) { - responseCode = HttpServletResponse.SC_UNAUTHORIZED; - String message = String.format( - "SessionCommunication.pingSession received an un-authorized exception. AppName: %s", appName); - logger.error(EELFLoggerDelegate.errorLogger, message); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError, e); - } catch (Exception e) { - responseCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; - String message = String.format( - "SessionCommunication.pingSession encountered an Exception. AppName: %s, Details: %s", appName, e.toString()); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHttpConnectionError, e); - logger.error(EELFLoggerDelegate.errorLogger, message, e); - } finally { - EcompPortalUtils.setExternalAppResponseCode(responseCode); - } - - return true; - } - - @EPAuditLog - public Boolean timeoutSession(OnboardingApp app, String portalJSessionId) throws Exception { - String appName = "Unknwon"; - int responseCode = 0; - if (app != null && app.name != null && app.name != "") { - try { - appName = app.name; - String url = app.restUrl + "/timeoutSession" + "?portalJSessionId=" + portalJSessionId; - - String encriptedPwdDB = app.appPassword; - String appUserName = app.username; - // String decreptedPwd = CipherUtil.decrypt(encriptedPwdDB, - // SystemProperties.getProperty(SystemProperties.Decryption_Key)); - - setLocalMDCContext(app, "/timeoutSession", url); - - URL obj = new URL(url); - HttpURLConnection con = (HttpURLConnection) obj.openConnection(); - - // optional default is GET - con.setRequestMethod("POST"); - con.setConnectTimeout(3000); - con.setReadTimeout(15000); - - // add request header - con.setRequestProperty("username", appUserName); - con.setRequestProperty("password", encriptedPwdDB); - - // con.setRequestProperty("portalJSessionId", portalJSessionId); - con.setDoInput(true); - con.setDoOutput(true); - con.getOutputStream().flush(); - con.getOutputStream().close(); - - responseCode = con.getResponseCode(); - logger.debug(EELFLoggerDelegate.debugLogger, "Response Code : " + responseCode); - } catch (UrlAccessRestrictedException e) { - responseCode = HttpServletResponse.SC_UNAUTHORIZED; - String message = String.format( - "SessionCommunication.timeoutSession received an un-authorized exception. AppName: %s", - appName); - logger.error(EELFLoggerDelegate.errorLogger, message); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError, e); - } catch (Exception e) { - responseCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; - String message = String.format( - "SessionCommunication.timeoutSession encountered an Exception. AppName: %s, Details: %s", - appName, e.toString()); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHttpConnectionError, e); - logger.error(EELFLoggerDelegate.errorLogger, message, e); - } finally { - EcompPortalUtils.setExternalAppResponseCode(responseCode); - } - } else { - logger.error(EELFLoggerDelegate.errorLogger, "SessionCommunication pingSession: app is null"); - } - return true; - } - - @EPMetricsLog - private void setLocalMDCContext(OnboardingApp app, String restPath, String url) { - setRequestId(); - MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTP); - if (url != null && url.contains("https")) { - MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTPS); - } - MDC.put(EPCommonSystemProperties.FULL_URL, url); - MDC.put(EPCommonSystemProperties.TARGET_ENTITY, app.myLoginsAppName); - MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, restPath); - } - - /** - * Generates request id, service name fields and loads them into MDC, as these - * values could be empty as these session timeout requests are generated at - * scheduled intervals using quartz scheduler. - */ - @EPMetricsLog - public void setRequestId() { - String requestId = MDC.get(Configuration.MDC_KEY_REQUEST_ID); - if (StringUtils.isEmpty(requestId)) { - MDC.put(Configuration.MDC_KEY_REQUEST_ID, UUID.randomUUID().toString()); - } - - MDC.put(Configuration.MDC_SERVICE_NAME, "/quartz/keepSessionAlive"); - MDC.put(EPCommonSystemProperties.PARTNER_NAME, EPCommonSystemProperties.ECOMP_PORTAL_BE); - } - - /** - * Remove the values from MDC as these requests are executed at regular - * intervals based on quartz rather incoming REST API requests. - * - * @param bAll - */ - @EPMetricsLog - public void clear(Boolean bAll) { - MDC.remove(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE); - if (bAll) { - MDC.remove(Configuration.MDC_KEY_REQUEST_ID); - MDC.remove(Configuration.MDC_SERVICE_NAME); - MDC.remove(EPCommonSystemProperties.PARTNER_NAME); - } - } -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/TimeoutHandler.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/TimeoutHandler.java deleted file mode 100644 index d7945c53..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/TimeoutHandler.java +++ /dev/null @@ -1,269 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.service.sessionmgt; - -import java.util.Hashtable; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpSession; - -import org.quartz.DisallowConcurrentExecution; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.quartz.PersistJobDataAfterExecution; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.scheduling.quartz.QuartzJobBean; - -import org.openecomp.portalsdk.core.domain.sessionmgt.TimeoutVO; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.onboarding.util.PortalApiConstants; -import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; -import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; -import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; -import org.openecomp.portalapp.portal.service.EPAppService; -import org.openecomp.portalapp.portal.transport.OnboardingApp; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -/** - * Executed periodically by Quartz to discover remote application sessions and - * update timeouts suitably. - */ -@PersistJobDataAfterExecution -@DisallowConcurrentExecution -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -@EPMetricsLog -public class TimeoutHandler extends QuartzJobBean { - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(TimeoutHandler.class); - - private ObjectMapper mapper = new ObjectMapper(); - - /** - * Supports static call {@link #timeoutSessions(HttpSession)} - */ - private static List onboardedAppList = null; - - @Autowired - private SessionCommunication sessionCommunication; - - @Override - protected void executeInternal(JobExecutionContext context) throws JobExecutionException { - try { - //Create a request id if there is none available, - //and which will internally be used when making - //session extended timeout calls to the partner applications. - if (getSessionCommunication()!=null) { - getSessionCommunication().setRequestId(); - } - logger.info(EELFLoggerDelegate.debugLogger, "Quartz Cronjob for Session Management begins"); - - ManageService manageService = (ManageService) applicationContext.getBean("manageService"); - EPAppService appService = (EPAppService) applicationContext.getBean("epAppService"); - - List appList = appService.getEnabledNonOpenOnboardingApps(); - onboardedAppList = appList; - TypeReference> typeRef = new TypeReference>() { - }; - String portalJsonSessionStr; - Map portalSessionTimeoutMap = null; - - portalJsonSessionStr = manageService.gatherSessionExtenstions(); - if (portalJsonSessionStr == null || portalJsonSessionStr == "") { - logger.error(EELFLoggerDelegate.errorLogger, "Session Management: Portal session information is empty."); - return; - } - - try { - portalSessionTimeoutMap = mapper.readValue(portalJsonSessionStr, typeRef); - } catch (JsonMappingException | JsonParseException je) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, je); - logger.error(EELFLoggerDelegate.errorLogger, "Session Management: JSON Mapping Exception occurred while gathering the Session", je); - return; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "Session Management: Error while gather Session from portal", e); - return; - } - - Map> appSessionTimeOutMap = new Hashtable>(); - // determine the Max TimeOut Time for each of the managed sessions - for (OnboardingApp app : appList) { - if (app.restUrl == null) { - logger.info(EELFLoggerDelegate.debugLogger, "Session Management: null restUrl, not fetching from app " + app.name); - continue; - } - logger.info(EELFLoggerDelegate.debugLogger, "Session Management: Calling App " + app.name + " at URL " + app.restUrl); - String jsonSessionStr = fetchAppSessions(app); - logger.info(EELFLoggerDelegate.debugLogger, "Session Management: App " + app.name + " returned " + jsonSessionStr); - if (jsonSessionStr == null || jsonSessionStr.isEmpty()) - continue; - - try { - Map sessionTimeoutMap = mapper.readValue(jsonSessionStr, typeRef); - appSessionTimeOutMap.put(app.id, sessionTimeoutMap); - for (String portalJSessionId : sessionTimeoutMap.keySet()) { - final TimeoutVO maxTimeoutVO = portalSessionTimeoutMap.get(portalJSessionId); - final TimeoutVO compareTimeoutVO = sessionTimeoutMap.get(portalJSessionId); - if (maxTimeoutVO != null && compareTimeoutVO != null) { - if (maxTimeoutVO.compareTo(compareTimeoutVO) < 0) - portalSessionTimeoutMap.get(portalJSessionId) - .setSessionTimOutMilliSec(compareTimeoutVO.getSessionTimOutMilliSec()); - } - } - } catch (JsonParseException | JsonMappingException e) { - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e); - logger.error(EELFLoggerDelegate.errorLogger, - "JSON Mapping/Processing Exception occurred while mapping/parsing the jsonSessionStr", e); - continue; - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while mapping/parsing the jsonSessionStr", e); - continue; - } - - } - - // post the updated session timeouts back to the Apps - for (OnboardingApp app : appList) { - if (app.restUrl == null) { - logger.warn(EELFLoggerDelegate.errorLogger, "Session Management: null restUrl, not posting back to app " + app.name); - continue; - } - - Map sessionTimeoutMap = appSessionTimeOutMap.get(app.id); - if (sessionTimeoutMap == null || sessionTimeoutMap.isEmpty()) - continue; - - for (String portalJSessionId : sessionTimeoutMap.keySet()) { - try { - final TimeoutVO maxTimeoutVO = portalSessionTimeoutMap.get(portalJSessionId); - final TimeoutVO setTimeoutVO = sessionTimeoutMap.get(portalJSessionId); - if (maxTimeoutVO == null || setTimeoutVO == null) { - String message = String.format( - "Session Management: Failed to update the session timeouts for the app: %s and the sessionId: %s.", - app.name, portalJSessionId); - logger.warn(EELFLoggerDelegate.errorLogger, message); - continue; - } - setTimeoutVO.setSessionTimOutMilliSec(maxTimeoutVO.getSessionTimOutMilliSec()); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "Session Management: error while updating the session timeout map", e); - continue; - } - } - logger.info(EELFLoggerDelegate.debugLogger, "Session Management: Updating App " + app.restUrl); - String sessionTimeoutMapStr = ""; - try { - sessionTimeoutMapStr = mapper.writeValueAsString(sessionTimeoutMap); - } catch (JsonProcessingException je) { - logger.error(EELFLoggerDelegate.errorLogger, "executeInternal failed while processing sessionTimeOutMap object to a String", je); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, je); - } - pingAppSessions(app, sessionTimeoutMapStr); - } - String portalSessionTimeoutMapStr = ""; - try { - portalSessionTimeoutMapStr = mapper.writeValueAsString(portalSessionTimeoutMap); - } catch (JsonProcessingException je) { - logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while processing portalSessionTimeOutMap object to a String", je); - EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, je); - } - manageService.updateSessionExtensions(portalSessionTimeoutMapStr); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "************************ Session Management: error in managing session timeouts", e); - } finally { - getSessionCommunication().clear(true); - } - } - - private String fetchAppSessions(OnboardingApp app) throws Exception { - String jsonSessionValue = getSessionCommunication().sendGet(app); - getSessionCommunication().clear(false); - return jsonSessionValue; - } - - private void pingAppSessions(OnboardingApp app, String sessionTimeoutMapStr) throws Exception { - getSessionCommunication().pingSession(app, sessionTimeoutMapStr); - getSessionCommunication().clear(false); - } - - public void timeoutSessions(HttpSession session) throws Exception { - String portalJSessionId = portalJSessionId(session); - if (onboardedAppList == null) - return; - - for (OnboardingApp app : onboardedAppList) { - getSessionCommunication().timeoutSession(app, portalJSessionId); - getSessionCommunication().clear(false); - } - } - - protected static String portalJSessionId(HttpSession session) { - final Object attribute = session.getAttribute(PortalApiConstants.PORTAL_JSESSION_ID); - if (attribute == null) - return ""; - String jSessionKey = (String) attribute; - return jSessionKey.split("-")[0]; - } - - private static ApplicationContext applicationContext; - - public static void setApplicationContext(ApplicationContext _applicationContext) { - applicationContext = _applicationContext; - } - - public SessionCommunication getSessionCommunication() { - if(sessionCommunication == null){ - if (applicationContext != null) - sessionCommunication = (SessionCommunication)applicationContext.getBean("sessionCommunication"); - } - - return sessionCommunication; - } - - public void setSessionCommunication(SessionCommunication sessionCommunication) { - this.sessionCommunication = sessionCommunication; - } - -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/util/EPUserUtils.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/util/EPUserUtils.java deleted file mode 100644 index 4c3462af..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/util/EPUserUtils.java +++ /dev/null @@ -1,385 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.util; - -import java.util.Enumeration; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; -import java.util.UUID; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EPUserApp; -import org.openecomp.portalapp.portal.service.EPRoleFunctionService; -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalsdk.core.exception.SessionExpiredException; -import org.openecomp.portalsdk.core.lm.FusionLicenseManager; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.menu.MenuBuilder; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.web.support.AppUtils; -import org.springframework.beans.factory.annotation.Autowired; - -public class EPUserUtils { - - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPUserUtils.class); - - private final static Long ACCOUNT_ADMIN_ROLE_ID = 999L; - - public static final String ALL_ROLE_FUNCTIONS = "allRoleFunctions"; - - private static DataAccessService dataAccessService; - - /** - * Gets the EPUser object from the session. - * - * @param request - * HttpServletRequest - * @return EPUser object that was created upon login - * @throws SessionExpiredException - * if no session exists. - */ - public static EPUser getUserSession(HttpServletRequest request) { - HttpSession session = AppUtils.getSession(request); - if (session == null) - throw new SessionExpiredException(); - return (EPUser) session.getAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME)); - } - - /** - * Establishes the user's portal session - * - * @param request - * HttpServletRequest - * @param user - * EPUser - * @param applicationMenuData - * Menu data - * @param businessDirectMenuData - * Menu data - * @param loginMethod_ignored - * How the user authenticated; ignored - * @param ePRoleFunctionService - * role function service - */ - @SuppressWarnings("rawtypes") - public static void setUserSession(HttpServletRequest request, EPUser user, Set applicationMenuData, - Set businessDirectMenuData, String loginMethod_ignored, EPRoleFunctionService ePRoleFunctionService) { - HttpSession session = request.getSession(true); - - // clear the current user session to avoid any conflicts - EPUserUtils.clearUserSession(request); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); - - setAllRoleFunctions(ePRoleFunctionService.getRoleFunctions(), session); - - ePRoleFunctionService.getRoleFunctions(request, user); - - // truncate the role (and therefore the role function) data to save - // memory in the session - user.setEPRoles(null); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_NAME), user.getFullName()); - - ServletContext context = session.getServletContext(); - int licenseVerificationFlag = 3; - try { - licenseVerificationFlag = (Integer) context.getAttribute("licenseVerification"); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "setUserSession failed to get licenseVerification attribute", - e); - } - switch (licenseVerificationFlag) { - case FusionLicenseManager.DEVELOPER_LICENSE: - session.setAttribute(SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME), - "My Portal [Development Version]"); - break; - case FusionLicenseManager.EXPIRED_LICENSE: - session.setAttribute(SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME), - "My Portal [LICENSE EXPIRED]"); - break; - case FusionLicenseManager.VALID_LICENSE: - session.setAttribute(SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME), "My Portal"); - break; - default: - session.setAttribute(SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME), - "My Portal [INVALID LICENSE]"); - break; - } - - session.setAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME), - MenuBuilder.filterMenu(applicationMenuData, request)); - session.setAttribute(SystemProperties.getProperty(SystemProperties.BUSINESS_DIRECT_MENU_ATTRIBUTE_NAME), - MenuBuilder.filterMenu(businessDirectMenuData, request)); - } - - /** - * Creates a set of role function names and stores the set as a session - * attribute. - * - * @param allRoleFunctions - * List of role functions. - * @param session - * HttpSession - */ - private static void setAllRoleFunctions(List allRoleFunctions, HttpSession session) { - if (allRoleFunctions == null) - return; - Set roleFnSet = new HashSet(); - for (RoleFunction roleFn : allRoleFunctions) - roleFnSet.add(roleFn.getCode()); - session.setAttribute(ALL_ROLE_FUNCTIONS, roleFnSet); - } - - /** - * Removes all stored attributes from the user's session - * - * @param request - * HttpServletRequest - * @throws SessionExpiredException - * if no session exists - */ - private static void clearUserSession(HttpServletRequest request) { - HttpSession session = AppUtils.getSession(request); - if (session == null) - throw new SessionExpiredException(); - - // removes all stored attributes from the current user's session - session.removeAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME)); - session.removeAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME)); - session.removeAttribute(SystemProperties.getProperty(SystemProperties.BUSINESS_DIRECT_MENU_ATTRIBUTE_NAME)); - session.removeAttribute(SystemProperties.getProperty(SystemProperties.ROLES_ATTRIBUTE_NAME)); - session.removeAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME)); - } - - /** - * Gets role information from the user session, in the cached user object. As a - * side effect sets a session variable with the roles. - * - * @param request - * HttpServletRequest - * @return Map of role ID to role object - */ - @SuppressWarnings("rawtypes") - public static HashMap getRoles(HttpServletRequest request) { - HashMap roles = null; - - HttpSession session = AppUtils.getSession(request); - roles = (HashMap) session.getAttribute(SystemProperties.getProperty(SystemProperties.ROLES_ATTRIBUTE_NAME)); - - // if roles are not already cached, let's grab them from the user - // session - if (roles == null) { - EPUser user = getUserSession(request); - - // get all user roles (including the tree of child roles) - roles = getAllUserRoles(user); - - session.setAttribute(SystemProperties.getProperty(SystemProperties.ROLES_ATTRIBUTE_NAME), roles); - } - - return roles; - } - - /** - * Builds a map of role ID to role object. - * - * @param user - * EPUser - * @return Map of role ID to role object - */ - @SuppressWarnings({ "rawtypes", "unchecked" }) - private static HashMap getAllUserRoles(EPUser user) { - HashMap roles = new HashMap(); - Iterator i = user.getEPRoles().iterator(); - - while (i.hasNext()) { - EPRole role = (EPRole) i.next(); - - if (role.getActive()) { - roles.put(role.getId(), role); - - // let's take a recursive trip down the tree to add all child - // roles - addChildRoles(role, roles); - } - } - - // Additionally; the account admin role is overloaded between ecomp - // portal and partners; lets also include that - Iterator appRolesIterator = user.getEPUserApps().iterator(); - while (appRolesIterator.hasNext()) { - EPRole role = (EPRole) appRolesIterator.next().getRole(); - - if (role.getActive() && role.getId().equals(ACCOUNT_ADMIN_ROLE_ID)) { - roles.put(role.getId(), role); - - // let's take a recursive trip down the tree to add all child - // roles - addChildRoles(role, roles); - } - } - - return roles; - } - - /** - * Adds all child roles of the specified role to the map of roles. - * - * @param role - * EPRole - * @param roles - * Maps role id to role object - */ - @SuppressWarnings({ "rawtypes", "unchecked" }) - private static void addChildRoles(EPRole role, HashMap roles) { - Set childRoles = role.getChildRoles(); - - if (childRoles != null && childRoles.size() > 0) { - Iterator j = childRoles.iterator(); - while (j.hasNext()) { - EPRole childRole = (EPRole) j.next(); - - if (childRole.getActive()) { - roles.put(childRole.getId(), childRole); - - addChildRoles(childRole, roles); - } - } - } - - } - - public static boolean hasRole(EPUser user, String roleKey) { - return getAllUserRoles(user).keySet().contains(new Long(roleKey)); - } - - public static DataAccessService getDataAccessService() { - return dataAccessService; - } - - @Autowired - public void setDataAccessService(DataAccessService dataAccessService) { - EPUserUtils.dataAccessService = dataAccessService; - } - - /** - * Gets the user's ID from the user object in the session - * - * @param request - * HttpServletRequest - * @return Integer ID of current user - */ - public static int getUserId(HttpServletRequest request) { - return getUserIdAsLong(request).intValue(); - } - - /** - * Gets the user's ID from the user object in the session - * - * @param request - * HttpServletREquest - * @return Long ID of current user - */ - public static Long getUserIdAsLong(HttpServletRequest request) { - Long userId = new Long(SystemProperties.getProperty(SystemProperties.APPLICATION_USER_ID)); - if (request != null) { - if (getUserSession(request) != null) { - userId = getUserSession(request).getId(); - } - } - return userId; - } - - /** - * Gets the request ID from the request. - * - * @param request - * HttpServletRequest - * @return Request ID - */ - public static String getRequestId(HttpServletRequest request) { - Enumeration headerNames = request.getHeaderNames(); - - String requestId = ""; - try { - while (headerNames.hasMoreElements()) { - String headerName = (String) headerNames.nextElement(); - logger.debug(EELFLoggerDelegate.debugLogger, - "One header is " + headerName + " : " + request.getHeader(headerName)); - if (headerName.equalsIgnoreCase(SystemProperties.ECOMP_REQUEST_ID)) { - requestId = request.getHeader(headerName); - break; - } - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger, "getRequestId failed", e); - } - - return (requestId.isEmpty() ? UUID.randomUUID().toString() : requestId); - } - - /** - * Gets the full URL from the request. - * - * @param request - * HttpServletRequest - * @return Full URL - */ - public static String getFullURL(HttpServletRequest request) { - if (request != null) { - StringBuffer requestURL = request.getRequestURL(); - String queryString = request.getQueryString(); - - if (queryString == null) { - return requestURL.toString(); - } else { - return requestURL.append('?').append(queryString).toString(); - } - } - return ""; - } - -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/util/SystemType.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/util/SystemType.java deleted file mode 100644 index 31d54fda..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/util/SystemType.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.util; - -public enum SystemType { - - APPLICATION, -// SYSTEM -} diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalsdk/core/lm/FusionLicenseManagerUtils.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalsdk/core/lm/FusionLicenseManagerUtils.java deleted file mode 100644 index ecfc0ea4..00000000 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalsdk/core/lm/FusionLicenseManagerUtils.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalsdk.core.lm; - -import java.util.Date; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalsdk.core.util.SystemProperties; -//import org.openecomp.portalapp.lm.FusionLicenseManagerImpl; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.servlet.support.RequestContextUtils; - -@Component -public class FusionLicenseManagerUtils { - - @Autowired - private FusionLicenseManager licenseManager; - - @Autowired - private EPCommonSystemProperties sysProps; - static { - } - - public int verifyLicense(ServletContext context) { - if(sysProps == null) { - try { - sysProps = new EPCommonSystemProperties(); - sysProps.setServletContext(context); -// sysProps.load(); -// licenseManager = new FusionLicenseManagerImpl(new LicenseableClassImpl()); - System.out.println(licenseManager); - licenseManager.installLicense(); - } - catch(Exception ex) { - ex.printStackTrace(); - } - } - - - -// WebApplicationContext ctx =RequestContextUtils.getWebApplicationContext(request); -// int flag = ((FusionLicenseManager)ctx.getBean("fusionLicenseManager")).verifyLicense(request); -// logger.debug("****************FLAG ******************** " + flag); -// return flag; -// return 2; - return licenseManager.verifyLicense(context); - } - - public static Date getLicenseExpiryDate(HttpServletRequest request) { - WebApplicationContext ctx =RequestContextUtils.getWebApplicationContext(request); - return ((FusionLicenseManager)ctx.getBean("fusionLicenseManager")).getExpiredDate(); - } -} diff --git a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/defs/definitions.xml b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/defs/definitions.xml index f8207a1f..34995ae2 100644 --- a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/defs/definitions.xml +++ b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/defs/definitions.xml @@ -3,11 +3,11 @@ ============LICENSE_START========================================== ONAP Portal =================================================================== - Copyright © 2017 AT&T Intellectual Property. All rights reserved. + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. =================================================================== Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the “License”); + under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at @@ -20,7 +20,7 @@ limitations under the License. Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at diff --git a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/defs/definitions.xml b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/defs/definitions.xml index fd810ae8..2214b93a 100644 --- a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/defs/definitions.xml +++ b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/defs/definitions.xml @@ -3,11 +3,11 @@ ============LICENSE_START========================================== ONAP Portal =================================================================== - Copyright © 2017 AT&T Intellectual Property. All rights reserved. + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. =================================================================== Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the “License”); + under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at @@ -20,7 +20,7 @@ limitations under the License. Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at diff --git a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/EP.hbm.xml b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/EP.hbm.xml index 8fe369fa..f82d2cb7 100644 --- a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/EP.hbm.xml +++ b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/EP.hbm.xml @@ -3,11 +3,11 @@ ============LICENSE_START========================================== ONAP Portal =================================================================== - Copyright © 2017 AT&T Intellectual Property. All rights reserved. + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. =================================================================== Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the “License”); + under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at @@ -20,7 +20,7 @@ limitations under the License. Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at @@ -41,7 +41,7 @@ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> - + @@ -195,6 +195,7 @@ + @@ -209,7 +210,7 @@ - + @@ -282,9 +283,9 @@ + class="org.onap.portalapp.portal.domain.EPApp" column="app_id" /> + class="org.onap.portalapp.portal.domain.EPRole" column="role_id" /> @@ -408,21 +409,21 @@ sort="natural"> + class="org.onap.portalsdk.core.domain.RoleFunction" /> + class="org.onap.portalapp.portal.domain.EPRole" /> + class="org.onap.portalapp.portal.domain.EPRole" /> @@ -466,10 +467,11 @@ + - + @@ -507,7 +509,7 @@ lazy="false" cascade="save-update, persist" inverse="true" fetch="select"> + class="org.onap.portalapp.portal.domain.EPUserAppRolesRequestDetail" /> @@ -521,7 +523,7 @@ + class="org.onap.portalapp.portal.domain.EPUserAppRolesRequest"> @@ -550,7 +552,7 @@ + class="org.onap.portalapp.portal.ecomp.model.SearchResultItem" /> + class="org.onap.portalapp.portal.transport.EpNotificationItem" /> - - + @@ -743,7 +752,7 @@ + class="org.onap.portalapp.portal.transport.EpNotificationItemVO" /> + class="org.onap.portalapp.portal.domain.EcompAppRole" /> + class="org.onap.portalapp.portal.transport.EpNotificationItemVO" /> + class="org.onap.portalapp.portal.transport.EpRoleNotificationItem" /> + class="org.onap.portalapp.portal.ecomp.model.AppContactUsItem" /> + class="org.onap.portalapp.portal.ecomp.model.AppContactUsItem" /> + class="org.onap.portalapp.portal.ecomp.model.AppCategoryFunctionsItem" /> + class="org.onap.portalapp.portal.domain.GetAccessResult" /> - + - + - + @@ -1121,7 +1130,7 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y - + - + - + - + @@ -1241,8 +1270,7 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y - - + - - + - - + - - + - - + - - + + class="org.onap.portalapp.portal.ecomp.model.AppCatalogItem" /> - - + + + + + + - - + @@ -1565,19 +1653,56 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + @@ -1585,7 +1710,6 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y @@ -1593,7 +1717,6 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y @@ -1601,7 +1724,6 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y @@ -1609,17 +1731,14 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y - - + @@ -1627,10 +1746,8 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y - + class="org.onap.portalapp.portal.domain.EPUserAppsSortPreference" /> @@ -1638,10 +1755,8 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y - + class="org.onap.portalapp.portal.domain.EPUserAppsManualSortPreference" /> @@ -1649,7 +1764,7 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y + class="org.onap.portalapp.portal.domain.EPWidgetsManualSortPreference" /> @@ -1657,7 +1772,7 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y + class="org.onap.portalapp.portal.domain.EPUserAppRoles" /> + class="org.onap.portalapp.portal.domain.EPUserAppRolesRequest" /> + class="org.onap.portalapp.portal.domain.EPUserAppRolesRequestDetail" /> + class="org.onap.portalapp.portal.ecomp.model.AppCatalogItem" /> + class="org.onap.portalapp.portal.domain.EPUserAppCatalogRoles" /> - + class="org.onap.portalapp.portal.transport.BusinessCardApplicationRole" /> - = DATE_ADD(end_time,INTERVAL 3 MONTH) ]]> @@ -1773,7 +1886,6 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y - = DATE_ADD(end_time,INTERVAL 3 MONTH)) ]]> @@ -1781,7 +1893,6 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y - = DATE_ADD(end_time,INTERVAL 3 MONTH)) ]]> @@ -1790,7 +1901,7 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y + class="org.onap.portalapp.portal.domain.CentralV2RoleFunction" /> + class="org.onap.portalapp.portal.domain.CentralV2RoleFunction" /> + class="org.onap.portalapp.portal.domain.CentralV2RoleFunction" /> + class="org.onap.portalapp.portal.transport.EPUserAppCurrentRoles" /> + class="org.onap.portalapp.portal.transport.EcompUserAppRoles" /> + class="org.onap.portalsdk.core.domain.RoleFunction" /> + class="org.onap.portalapp.portal.transport.BulkUploadRoleFunction" /> - - + + - + + + + + + - + - - + - + + + + + + + - + - + - + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id,password from BasicAuthCredentials + + + + select id,password from MicroserviceData + + diff --git a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/Fusion.hbm.xml b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/Fusion.hbm.xml index 1a72eae7..819a5212 100644 --- a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/Fusion.hbm.xml +++ b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/Fusion.hbm.xml @@ -3,11 +3,11 @@ ============LICENSE_START========================================== ONAP Portal =================================================================== - Copyright © 2017 AT&T Intellectual Property. All rights reserved. + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. =================================================================== Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the “License”); + under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at @@ -20,7 +20,7 @@ limitations under the License. Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at @@ -45,7 +45,7 @@ Publishes mappings and queries for EP SDK library features ONLY. Portal app mappings and features are in EP.hbm.xml. --> - + @@ -104,12 +104,12 @@ Portal app mappings and features are in EP.hbm.xml. - + - + @@ -118,8 +118,8 @@ Portal app mappings and features are in EP.hbm.xml. - - + + @@ -149,17 +149,17 @@ Portal app mappings and features are in EP.hbm.xml. - + - + - + @@ -277,14 +277,14 @@ Portal app mappings and features are in EP.hbm.xml. - + - + @@ -309,6 +309,10 @@ Portal app mappings and features are in EP.hbm.xml. select email from User where id = :user_id + + select id,appPassword from App + + select id, firstName, lastName from User where active = true order by lastName, firstName diff --git a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/Workflow.hbm.xml b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/Workflow.hbm.xml index 6a4118b7..b85fa994 100644 --- a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/Workflow.hbm.xml +++ b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/Workflow.hbm.xml @@ -3,11 +3,11 @@ ============LICENSE_START========================================== ONAP Portal =================================================================== - Copyright © 2017 AT&T Intellectual Property. All rights reserved. + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. =================================================================== Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the “License”); + under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at @@ -20,7 +20,7 @@ limitations under the License. Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at @@ -41,7 +41,7 @@ "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> - + diff --git a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/jsp/error.jsp b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/jsp/error.jsp index ed3f0b9b..ec932022 100644 --- a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/jsp/error.jsp +++ b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/jsp/error.jsp @@ -2,11 +2,11 @@ ============LICENSE_START========================================== ONAP Portal =================================================================== - Copyright © 2017 AT&T Intellectual Property. All rights reserved. + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. =================================================================== Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the “License”); + under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at @@ -19,7 +19,7 @@ limitations under the License. Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at diff --git a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/jsp/index.jsp b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/jsp/index.jsp index 318ce4e3..5cd8060b 100644 --- a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/jsp/index.jsp +++ b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/jsp/index.jsp @@ -2,11 +2,11 @@ ============LICENSE_START========================================== ONAP Portal =================================================================== - Copyright © 2017 AT&T Intellectual Property. All rights reserved. + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. =================================================================== Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the “License”); + under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at @@ -19,7 +19,7 @@ limitations under the License. Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at diff --git a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/web.xml b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/web.xml index 55fa3444..613848cc 100644 --- a/ecomp-portal-BE-common/src/main/webapp/WEB-INF/web.xml +++ b/ecomp-portal-BE-common/src/main/webapp/WEB-INF/web.xml @@ -3,11 +3,11 @@ ============LICENSE_START========================================== ONAP Portal =================================================================== - Copyright © 2017 AT&T Intellectual Property. All rights reserved. + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. =================================================================== Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the “License”); + under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at @@ -20,7 +20,7 @@ limitations under the License. Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at diff --git a/ecomp-portal-BE-common/src/main/webapp/index.jsp b/ecomp-portal-BE-common/src/main/webapp/index.jsp index 58b9e3cd..0b39db04 100644 --- a/ecomp-portal-BE-common/src/main/webapp/index.jsp +++ b/ecomp-portal-BE-common/src/main/webapp/index.jsp @@ -2,11 +2,11 @@ ============LICENSE_START========================================== ONAP Portal =================================================================== - Copyright © 2017 AT&T Intellectual Property. All rights reserved. + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. =================================================================== Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the “License”); + under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at @@ -19,7 +19,7 @@ limitations under the License. Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/command/EPLoginBeanTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/command/EPLoginBeanTest.java new file mode 100644 index 00000000..88ba024b --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/command/EPLoginBeanTest.java @@ -0,0 +1,80 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.command; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import org.junit.Test; +import org.onap.portalapp.command.EPLoginBean; + +public class EPLoginBeanTest { + + +public EPLoginBean ePLoginBean(){ + + EPLoginBean ePLoginBean = new EPLoginBean(); + ePLoginBean.setLoginId("guestT"); + ePLoginBean.setLoginPwd("password"); + ePLoginBean.setHrid("hrId"); + ePLoginBean.setOrgUserId("guestT"); + ePLoginBean.setBusinessDirectMenu(null); + ePLoginBean.setSiteAccess("site_test"); + ePLoginBean.setLoginErrorMessage("error"); + ePLoginBean.setUser(null); + ePLoginBean.setMenu(null); + return ePLoginBean; + } + + @Test + public void ePLoginBeanTest(){ + EPLoginBean ePLoginBean = ePLoginBean(); + + assertEquals(ePLoginBean.getLoginId(), "guestT"); + assertEquals(ePLoginBean.getLoginPwd(), "password"); + assertEquals(ePLoginBean.getHrid(), "hrId"); + assertEquals(ePLoginBean.getOrgUserId(), "guestT"); + assertNull(ePLoginBean.getBusinessDirectMenu()); + assertEquals(ePLoginBean.getSiteAccess(), "site_test"); + assertEquals(ePLoginBean.getLoginErrorMessage(), "error"); + assertNull(ePLoginBean.getUser()); + assertNull(ePLoginBean.getMenu()); + + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/command/PostSearchBeanTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/command/PostSearchBeanTest.java new file mode 100644 index 00000000..2b095731 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/command/PostSearchBeanTest.java @@ -0,0 +1,150 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.command; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.mockito.InjectMocks; +import org.onap.portalapp.command.PostSearchBean; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; + +public class PostSearchBeanTest { + + @InjectMocks + PostSearchBean mockPostSearchBean = new PostSearchBean(); + + MockEPUser mockUser = new MockEPUser(); + public PostSearchBean mockPostSearchBean(){ + + PostSearchBean postSearchBean = new PostSearchBean(); + EPUser user = mockUser.mockEPUser(); + postSearchBean.setUser(user); + postSearchBean.setUserOrig(null); + postSearchBean.setSelected(null); + postSearchBean.setHrid(null); + postSearchBean.setPostUserId(null); + postSearchBean.setPostFirstName(null); + postSearchBean.setPostLastName(null); + postSearchBean.setPostOrgCode(null); + postSearchBean.setPostPhone(null); + postSearchBean.setPostEmail(null); + postSearchBean.setPostAddress1(null); + postSearchBean.setPostAddress2(null); + postSearchBean.setPostCity(null); + postSearchBean.setPostState(null); + postSearchBean.setPostZipCode(null); + postSearchBean.setPostLocationClli(null); + postSearchBean.setPostBusinessCountryCode(null); + postSearchBean.setPostBusinessCountryName(null); + postSearchBean.setPostDepartment(null); + postSearchBean.setPostDepartmentName(null); + postSearchBean.setPostBusinessUnit(null); + postSearchBean.setPostBusinessUnitName(null); + postSearchBean.setPostJobTitle(null); + postSearchBean.setOrgManagerUserId(null); + postSearchBean.setPostCommandChain(null); + postSearchBean.setPostCompanyCode(null); + postSearchBean.setPostCostCenter(null); + postSearchBean.setPostSiloStatus(null); + postSearchBean.setPostFinancialLocCode(null); + postSearchBean.setPostManagerUserId(null); + return postSearchBean; + } + + @Test + public void postSearchBeanTest() + { + PostSearchBean postSearchBean = mockPostSearchBean(); + EPUser user = mockUser.mockEPUser(); + assertEquals(postSearchBean.getUser().getActive(), user.getActive()); + assertNull(postSearchBean.getUserOrig()); + assertNull(postSearchBean.getSelected()); + assertNull(postSearchBean.getHrid()); + assertNull(postSearchBean.getPostOrgUserId()); + assertNull(postSearchBean.getPostFirstName()); + assertNull(postSearchBean.getPostLastName()); + assertNull(postSearchBean.getPostOrgCode()); + assertNull(postSearchBean.getPostPhone()); + assertNull(postSearchBean.getPostEmail()); + assertNull(postSearchBean.getPostAddress1()); + assertNull(postSearchBean.getPostAddress2()); + assertNull(postSearchBean.getPostCity()); + assertNull(postSearchBean.getPostState()); + assertNull(postSearchBean.getPostZipCode()); + assertNull(postSearchBean.getPostLocationClli()); + assertNull(postSearchBean.getPostBusinessCountryCode()); + assertNull(postSearchBean.getPostBusinessCountryName()); + assertNull(postSearchBean.getPostDepartment()); + assertNull(postSearchBean.getPostDepartmentName()); + assertNull(postSearchBean.getPostBusinessUnit()); + assertNull(postSearchBean.getPostBusinessUnitName()); + assertNull(postSearchBean.getPostJobTitle()); + assertNull(postSearchBean.getOrgManagerUserId()); + assertNull(postSearchBean.getPostCommandChain()); + assertNull(postSearchBean.getPostCompanyCode()); + assertNull(postSearchBean.getPostCostCenter()); + assertNull(postSearchBean.getPostSiloStatus()); + assertNull(postSearchBean.getPostFinancialLocCode()); + assertNull(postSearchBean.getPostManagerUserId()); + } + + @Test + public void isCriteriaUpdatedIfUserNotNullTest() + { + assertFalse(mockPostSearchBean.isCriteriaUpdated()); + } + + @Test + public void isCriteriaUpdatedIfUserNullTest() + { + mockPostSearchBean.setUser(null); + assertTrue(mockPostSearchBean.isCriteriaUpdated()); + } + + + @Test + public void isCriteriaUpdatedIfUserTest() + { + mockPostSearchBean.setUser(null); + mockPostSearchBean.setUserOrig(null); + assertFalse(mockPostSearchBean.isCriteriaUpdated()); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/config/NotificationCleanupTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/config/NotificationCleanupTest.java new file mode 100644 index 00000000..8d374526 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/config/NotificationCleanupTest.java @@ -0,0 +1,86 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.config; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.service.UserNotificationService; +import org.onap.portalapp.portal.service.UserNotificationServiceImpl; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.springframework.context.ApplicationContext; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(NotificationCleanupConfig.class) +public class NotificationCleanupTest { + + + @InjectMocks + NotificationCleanup notificationCleanup = new NotificationCleanup(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + @Mock + UserNotificationService userNotificationService = new UserNotificationServiceImpl(); + @Mock + ApplicationContext applicationContext ; + + + @Test + public void runTest() + { + PowerMockito.mockStatic(NotificationCleanupConfig.class); + Mockito.when(NotificationCleanupConfig.getApplicationContext()).thenReturn(applicationContext); + Mockito.when((applicationContext).getBean(UserNotificationService.class)).thenReturn(userNotificationService); + Mockito.doNothing().when(userNotificationService).deleteNotificationsFromEpUserNotificationTable(); + Mockito.doNothing().when(userNotificationService).deleteNotificationsFromEpRoleNotificationTable(); + + Mockito.doNothing().when(userNotificationService).deleteNotificationsFromEpNotificationTable(); + notificationCleanup.run(); + + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/config/PortalCentralAccessConfigurationTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/config/PortalCentralAccessConfigurationTest.java new file mode 100644 index 00000000..a472f05f --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/config/PortalCentralAccessConfigurationTest.java @@ -0,0 +1,82 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.config; + +import static org.junit.Assert.assertEquals; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.config.PortalCentralAccessConfiguration; +import org.onap.portalapp.portal.service.EPRoleFunctionService; +import org.onap.portalapp.portal.service.EPRoleFunctionServiceCentralizedImpl; +import org.onap.portalapp.portal.service.EPRoleFunctionServiceImpl; + +public class PortalCentralAccessConfigurationTest { + + @InjectMocks + PortalCentralAccessConfiguration portalCentralAccessConfiguration = new PortalCentralAccessConfiguration(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @Mock + EPRoleFunctionService ePRoleFunctionServiceImpl = new EPRoleFunctionServiceImpl(); + + @Mock + EPRoleFunctionService ePRoleFunctionServiceCentralizedImpl = new EPRoleFunctionServiceCentralizedImpl(); + + @Test + public void ePRoleFunctionServiceImplTest() + { + EPRoleFunctionService expectedPRoleFunctionServiceImpl = portalCentralAccessConfiguration.ePRoleFunctionServiceImpl(); + assertEquals(expectedPRoleFunctionServiceImpl.getClass(), EPRoleFunctionServiceImpl.class); + } + + @Test + public void ePRoleFunctionServiceCentralImplTest() + { + EPRoleFunctionService expectedPRoleFunctionServiceImpl = portalCentralAccessConfiguration.ePRoleFunctionServiceCentralizedImpl(); + assertEquals(expectedPRoleFunctionServiceImpl.getClass(), EPRoleFunctionServiceCentralizedImpl.class); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppCatalogControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppCatalogControllerTest.java new file mode 100644 index 00000000..7b099824 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppCatalogControllerTest.java @@ -0,0 +1,281 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.AppCatalogController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.AppCatalogItem; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.AdminRolesServiceImpl; +import org.onap.portalapp.portal.service.EPAppCommonServiceImpl; +import org.onap.portalapp.portal.service.EPAppService; +import org.onap.portalapp.portal.service.PersUserAppService; +import org.onap.portalapp.portal.service.PersUserAppServiceImpl; +import org.onap.portalapp.portal.transport.AppCatalogPersonalization; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.FieldsValidator.FieldName; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.util.SystemProperties; + +public class AppCatalogControllerTest extends MockitoTestSuite { + + @Mock + AdminRolesService adminRolesService = new AdminRolesServiceImpl(); + + @Mock + EPAppService appService = new EPAppCommonServiceImpl(); + + @InjectMocks + AppCatalogController appCatalogController = new AppCatalogController(); + + PersUserAppService persUserAppService = Mockito.spy(new PersUserAppServiceImpl()); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + + @Mock + EPUserUtils ePUserUtils = new EPUserUtils(); + + @Mock + EPUser epuser; + + NullPointerException nullPointerException = new NullPointerException(); + + MockEPUser mockUser = new MockEPUser(); + + public AppCatalogItem mockAppCatalogItem() { + AppCatalogItem appCatalogItem = new AppCatalogItem(); + appCatalogItem.setId((long) 1); + appCatalogItem.setName("Ecomp Portal"); + appCatalogItem.setImageUrl("Test_URL"); + appCatalogItem.setDescription("Testing"); + appCatalogItem.setNotes("Test"); + appCatalogItem.setUrl("test"); + appCatalogItem.setAlternateUrl("test"); + appCatalogItem.setRestricted(false); + appCatalogItem.setOpen(false); + appCatalogItem.setAccess(true); + appCatalogItem.setSelect(true); + appCatalogItem.setPending(false); + + return appCatalogItem; + } + + @Test + public void getAppCatalogTestIfUserNotAdmin() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List actualAppCatalogList = null; + + List expectedAppCatalog = new ArrayList<>(); + + AppCatalogItem appCatalogItem = mockAppCatalogItem(); + expectedAppCatalog.add(appCatalogItem); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(appService.getUserAppCatalog(user)).thenReturn(expectedAppCatalog); + actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse); + + assertTrue(actualAppCatalogList.contains(appCatalogItem)); + + } + + @Test + public void getAppCatalogTestIfUserIsAdmin() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List actualAppCatalogList = null; + + List expectedAppCatalog = new ArrayList<>(); + + AppCatalogItem appCatalogItem = mockAppCatalogItem(); + + expectedAppCatalog.add(appCatalogItem); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.getAdminAppCatalog(user)).thenReturn(expectedAppCatalog); + actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse); + + assertTrue(actualAppCatalogList.contains(appCatalogItem)); + + } + + @Test + public void getAppCatalogTestIfUserisNull() throws IOException { + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null); + List actualAppCatalogList = new ArrayList<>(); + ; + actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse); + assertNull(actualAppCatalogList); + + } + + @Test + public void getAppCatalogTestIfUserThrowsExceptionTest() throws IOException { + EPUser user = new EPUser(); + user.setFirstName("test"); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List actualAppCatalogList = new ArrayList<>(); + ; + + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + + Mockito.when(appCatalogController.getAppCatalog(mockedRequest, mockedResponse)).thenThrow(nullPointerException); + + actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse); + assertNull(actualAppCatalogList); + + } + + @Test + public void putAppCatalogSelectionTestWhenAppIsNull() throws IOException { + + AppCatalogPersonalization persRequest = new AppCatalogPersonalization(); + persRequest.setAppId((long) 1); + persRequest.setPending(false); + persRequest.setSelect(false); + + EPUser user = mockUser.mockEPUser(); + + FieldsValidator expectedFieldValidator = new FieldsValidator(); + + FieldsValidator actualFieldValidator = new FieldsValidator(); + List fields = new ArrayList<>(); + ; + + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(fields); + expectedFieldValidator.setErrorCode(null); + + EPApp app = null; + + Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app); + + HttpSession session = mockedRequest.getSession(); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); + + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse); + assertEquals(expectedFieldValidator, actualFieldValidator); + + } + + @Test + public void putAppCatalogSelectionTest() throws IOException { + + AppCatalogPersonalization persRequest = new AppCatalogPersonalization(); + persRequest.setAppId((long) 1); + persRequest.setPending(false); + persRequest.setSelect(false); + + EPUser user = mockUser.mockEPUser(); + + FieldsValidator expectedFieldValidator = new FieldsValidator(); + + FieldsValidator actualFieldValidator = new FieldsValidator(); + List fields = new ArrayList<>(); + ; + + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(fields); + expectedFieldValidator.setErrorCode(null); + + EPApp app = new EPApp(); + + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppRestEndpoint("test"); + app.setAlternateUrl("test"); + app.setName("test"); + app.setMlAppName("test"); + app.setMlAppAdminId("test"); + app.setUsername("test"); + app.setAppPassword("test"); + app.setOpen(false); + app.setEnabled(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.setAppType(1); + + Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app); + + HttpSession session = mockedRequest.getSession(); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); + + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.doNothing().when(persUserAppService).setPersUserAppValue(user, app, persRequest.getSelect(), + persRequest.getPending()); + + actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse); + + assertEquals(expectedFieldValidator, actualFieldValidator); + + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppContactUsControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppContactUsControllerTest.java new file mode 100644 index 00000000..522ef7ca --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppContactUsControllerTest.java @@ -0,0 +1,338 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.AppContactUsController; +import org.onap.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; +import org.onap.portalapp.portal.ecomp.model.AppContactUsItem; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AppContactUsService; +import org.onap.portalapp.portal.service.AppContactUsServiceImpl; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.support.CollaborateList; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({SystemProperties.class, EPCommonSystemProperties.class}) +public class AppContactUsControllerTest extends MockitoTestSuite{ + + @Mock + AppContactUsService contactUsService = new AppContactUsServiceImpl(); + + @InjectMocks + AppContactUsController appContactUsController = new AppContactUsController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Mock + EPUserUtils ePUserUtils = new EPUserUtils(); + + public List mockResponse() { + List appContactUsItemList = new ArrayList(); + AppContactUsItem appContactUsItem = new AppContactUsItem(); + appContactUsItem.setAppId((long) 1); + appContactUsItem.setAppName("ECOMP Portal"); + appContactUsItem.setDescription("Test"); + appContactUsItem.setContactName("Test"); + appContactUsItem.setContactEmail("person@onap.org"); + appContactUsItem.setUrl("Test_URL"); + appContactUsItem.setActiveYN("Y"); + appContactUsItemList.add(appContactUsItem); + + return appContactUsItemList; + + } + + public PortalRestResponse> successPortalRestResponse() { + PortalRestResponse> expectedportalRestResponse = new PortalRestResponse>(); + List appContactUsItemList = mockResponse(); + expectedportalRestResponse.setMessage("success"); + expectedportalRestResponse.setResponse(appContactUsItemList); + expectedportalRestResponse.setStatus(PortalRestStatusEnum.OK); + return expectedportalRestResponse; + + } + + public PortalRestResponse> exceptionPortalRestResponse() { + PortalRestResponse> expectedportalRestResponse = new PortalRestResponse>(); + expectedportalRestResponse.setMessage(null); + expectedportalRestResponse.setResponse(null); + expectedportalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + return expectedportalRestResponse; + + } + + @Test + public void getAppContactUsList() throws Exception { + PortalRestResponse> expectedportalRestResponse = successPortalRestResponse(); + List appContactUsItemList = mockResponse(); + PortalRestResponse> actualPortalRestResponse = new PortalRestResponse>(); + Mockito.when(contactUsService.getAppContactUs()).thenReturn(appContactUsItemList); + actualPortalRestResponse = appContactUsController.getAppContactUsList(mockedRequest); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + } + + @Test + public void getAppContactUsListCatchesExeptionTest() throws Exception { + + PortalRestResponse> expectedportalRestResponse = exceptionPortalRestResponse(); + PortalRestResponse> actualPortalRestResponse = new PortalRestResponse>(); + Mockito.when(contactUsService.getAppContactUs()).thenThrow(nullPointerException); + actualPortalRestResponse = appContactUsController.getAppContactUsList(mockedRequest); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + } + + @Test + public void getAppsAndContactsTest() throws Exception { + PortalRestResponse> expectedportalRestResponse = successPortalRestResponse(); + List appContactUsItemList = mockResponse(); + PortalRestResponse> actualPortalRestResponse = new PortalRestResponse>(); + Mockito.when(contactUsService.getAppsAndContacts()).thenReturn(appContactUsItemList); + actualPortalRestResponse = appContactUsController.getAppsAndContacts(mockedRequest); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + + } + + @Test + public void getAppsAndContactsCatchesExceptionTest() throws Exception { + PortalRestResponse> expectedportalRestResponse = exceptionPortalRestResponse(); + PortalRestResponse> actualPortalRestResponse = new PortalRestResponse>(); + Mockito.when(contactUsService.getAppsAndContacts()).thenThrow(nullPointerException); + actualPortalRestResponse = appContactUsController.getAppsAndContacts(mockedRequest); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + + } + + @Test + public void getAppCategoryFunctionsTest() throws Exception { + PortalRestResponse> actualportalRestResponse = null; + + List contents = new ArrayList(); + + AppCategoryFunctionsItem appCategoryFunctionsItem = new AppCategoryFunctionsItem(); + AppCategoryFunctionsItem appCategoryFunctionsItem1 = new AppCategoryFunctionsItem(); + + appCategoryFunctionsItem.setRowId("1"); + appCategoryFunctionsItem.setAppId("1"); + appCategoryFunctionsItem.setApplication("Ecomp-portal"); + appCategoryFunctionsItem.setCategory("test"); + appCategoryFunctionsItem.setFunctions("test"); + + appCategoryFunctionsItem1.setRowId("2"); + appCategoryFunctionsItem1.setAppId("2"); + appCategoryFunctionsItem1.setApplication("Ecomp-portal-test"); + appCategoryFunctionsItem1.setCategory("test"); + appCategoryFunctionsItem1.setFunctions("test"); + contents.add(appCategoryFunctionsItem); + contents.add(appCategoryFunctionsItem1); + + PortalRestResponse> expectedportalRestResponse = new PortalRestResponse>(); + expectedportalRestResponse.setMessage("success"); + expectedportalRestResponse.setResponse(contents); + expectedportalRestResponse.setStatus(PortalRestStatusEnum.OK); + + Mockito.when(contactUsService.getAppCategoryFunctions()).thenReturn(contents); + actualportalRestResponse = appContactUsController.getAppCategoryFunctions(mockedRequest); + assertEquals(actualportalRestResponse, expectedportalRestResponse); + + } + + @Test + public void getAppCategoryFunctionsCatchesExceptionTest() throws Exception { + PortalRestResponse> actualportalRestResponse = null; + PortalRestResponse> expectedportalRestResponse = exceptionPortalRestResponse(); + Mockito.when(contactUsService.getAppCategoryFunctions()).thenThrow(nullPointerException); + actualportalRestResponse = appContactUsController.getAppCategoryFunctions(mockedRequest); + assertEquals(actualportalRestResponse, expectedportalRestResponse); + + } + + @Test + public void saveTest() throws Exception { + PortalRestResponse actualSaveAppContactUS = null; + + AppContactUsItem contactUs = new AppContactUsItem(); + contactUs.setAppId((long) 1); + contactUs.setAppName("Ecomp Portal"); + contactUs.setDescription("Test"); + contactUs.setContactName("Test"); + contactUs.setContactEmail("person@onap.org"); + contactUs.setUrl("Test_URL"); + contactUs.setActiveYN("Y"); + + Mockito.when(contactUsService.saveAppContactUs(contactUs)).thenReturn("SUCCESS"); + actualSaveAppContactUS = appContactUsController.save(contactUs); + assertEquals(actualSaveAppContactUS.getMessage(), "SUCCESS"); + } + + @Test + public void saveExceptionTest() throws Exception { + PortalRestResponse actualSaveAppContactUS = null; + + AppContactUsItem contactUs = new AppContactUsItem(); + contactUs.setAppId((long) 1); + contactUs.setAppName("Ecomp Portal"); + contactUs.setDescription("Test"); + contactUs.setContactName("Test"); + contactUs.setContactEmail("person@onap.org"); + contactUs.setUrl("Test_URL"); + contactUs.setActiveYN("Y"); + + Mockito.when(contactUsService.saveAppContactUs(contactUs)).thenThrow(new Exception()); + actualSaveAppContactUS = appContactUsController.save(contactUs); + assertEquals(actualSaveAppContactUS.getMessage(), "failure"); + } + + @Test + public void saveWhenAppContactUsItemNullTest() throws Exception { + PortalRestResponse actualSaveAppContactUS = null; + AppContactUsItem contactUs = null; + actualSaveAppContactUS = appContactUsController.save(contactUs); + assertEquals(actualSaveAppContactUS.getMessage(), "failure"); + + } + + @Test + public void saveAllTest() throws Exception { + + List contactUs = mockResponse(); + PortalRestResponse actualSaveAppContactUS = null; + Mockito.when(contactUsService.saveAppContactUs(contactUs)).thenReturn("SUCCESS"); + actualSaveAppContactUS = appContactUsController.save(contactUs); + assertEquals(actualSaveAppContactUS.getMessage(), "SUCCESS"); + } + + @Test + public void saveAllExceptionTest() throws Exception { + + List contactUs = mockResponse(); + PortalRestResponse actualSaveAppContactUS = null; + Mockito.when(contactUsService.saveAppContactUs(contactUs)).thenThrow(new Exception()); + actualSaveAppContactUS = appContactUsController.save(contactUs); + assertEquals(actualSaveAppContactUS.getMessage(), "failure"); + } + + @Test + public void deleteTest() throws Exception { + + PortalRestResponse actualSaveAppContactUS = null; + Long id = (long) 1; + String saveAppContactUs = "SUCCESS"; + Mockito.when(contactUsService.deleteContactUs(id)).thenReturn(saveAppContactUs); + actualSaveAppContactUS = appContactUsController.delete(id); + assertEquals(actualSaveAppContactUS.getMessage(), "SUCCESS"); + } + + @Test + public void deleteExceptionTest() throws Exception { + + PortalRestResponse actualSaveAppContactUS = null; + Long id = (long) 1; + Mockito.when(contactUsService.deleteContactUs(id)).thenThrow(new Exception()); + actualSaveAppContactUS = appContactUsController.delete(id); + assertEquals(actualSaveAppContactUS.getMessage(), "failure"); + } + + @Test + public void getPortalDetailsTest(){ + PortalRestResponse actualResponse = new PortalRestResponse(); + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setStatus(PortalRestStatusEnum.OK); + expectedResponse.setMessage("success"); + expectedResponse.setResponse("\"ush_ticket_url\":\"http://todo_enter_ush_ticket_url\",\"portal_info_url\":\"https://todo_enter_portal_info_url\",\"feedback_email_address\":\"portal@lists.openecomp.org\""); + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.USH_TICKET_URL)).thenReturn("http://todo_enter_ush_ticket_url"); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.PORTAL_INFO_URL)).thenReturn("https://todo_enter_portal_info_url"); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS)).thenReturn("portal@lists.openecomp.org"); + + actualResponse = appContactUsController.getPortalDetails(mockedRequest); + assertTrue(actualResponse.getStatus().compareTo(PortalRestStatusEnum.OK) == 0); + } + + @Test + public void getPortalDetailsExceptionTest(){ + PortalRestResponse actualResponse = new PortalRestResponse(); + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setStatus(PortalRestStatusEnum.ERROR); + expectedResponse.setMessage("failure"); + expectedResponse.setResponse(null); + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.USH_TICKET_URL)).thenThrow(nullPointerException); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.PORTAL_INFO_URL)).thenReturn("https://todo_enter_portal_info_url"); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS)).thenReturn("portal@lists.openecomp.org"); + + actualResponse = appContactUsController.getPortalDetails(mockedRequest); + assertEquals(actualResponse, expectedResponse); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppsControllerExternalRequestTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppsControllerExternalRequestTest.java new file mode 100644 index 00000000..3a81a6f8 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppsControllerExternalRequestTest.java @@ -0,0 +1,310 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.AppsControllerExternalRequest; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.EPAppService; +import org.onap.portalapp.portal.service.PortalAdminService; +import org.onap.portalapp.portal.service.UserService; +import org.onap.portalapp.portal.service.UserServiceImpl; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.OnboardingApp; +import org.onap.portalapp.util.EPUserUtils; + +public class AppsControllerExternalRequestTest extends MockitoTestSuite { + + @Mock + AdminRolesService adminRolesService; + + @Mock + EPAppService appService; + + @Mock + PortalAdminService portalAdminService; + + @Mock + UserService userService = new UserServiceImpl(); + + @InjectMocks + AppsControllerExternalRequest appsControllerExternalRequest = new AppsControllerExternalRequest(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + MockEPUser mockUser = new MockEPUser(); + @Mock + EPUserUtils ePUserUtils = new EPUserUtils(); + + @Test + public void postPortalAdminIfUSerNullTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Missing required field: email, loginId, or loginPwd"); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + EPUser user = mockUser.mockEPUser(); + user.setEmail("guestT@test.portal.onap.org"); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest + .postPortalAdmin(mockedRequest, mockedResponse, user); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + } + + @Test + public void postPortalAdminTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("java.lang.NullPointerException"); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + EPUser user = mockUser.mockEPUser(); + user.setEmail("guestT@test.portal.onap.org"); + user.setLoginPwd("pwd"); + user.setLoginId("Test"); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenThrow(nullPointerException); + PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest + .postPortalAdmin(mockedRequest, mockedResponse, user); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + } + + @Test + public void postPortalAdminCreateUserIfNotFoundTest() throws Exception { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage(null); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + EPUser user = mockUser.mockEPUser(); + user.setEmail("guestT@test.portal.onap.org"); + user.setLoginPwd("pwd"); + user.setLoginId("Test"); + List expectedList = null; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList); + Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null); + PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest + .postPortalAdmin(mockedRequest, mockedResponse, user); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + } + + @Test + public void postPortalAdminCreateUserIfFoundTest() throws Exception { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage(null); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + EPUser user = mockUser.mockEPUser(); + user.setEmail("guestT@test.portal.onap.org"); + user.setLoginPwd("pwd"); + user.setLoginId("Test"); + List expectedList = new ArrayList(); + expectedList.add(user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList); + Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest + .postPortalAdmin(mockedRequest, mockedResponse, user); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + } + + @Test + public void postPortalAdminCreateUserIfNotSuperAdminTest() throws Exception { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage(null); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + EPUser user = mockUser.mockEPUser(); + user.setEmail("guestT@test.portal.onap.org"); + user.setLoginPwd("pwd"); + user.setLoginId("Test"); + List expectedList = new ArrayList(); + expectedList.add(user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList); + Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + + FieldsValidator expectedFieldValidator = new FieldsValidator(); + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(null); + expectedFieldValidator.setErrorCode(null); + Mockito.when(portalAdminService.createPortalAdmin(user.getOrgUserId())).thenReturn(expectedFieldValidator); + + PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest + .postPortalAdmin(mockedRequest, mockedResponse, user); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + } + + @Test + public void postPortalAdminCreateUserIfFieldValidatorErrorTest() throws Exception { + FieldsValidator expectedFieldValidator = new FieldsValidator(); + expectedFieldValidator.setHttpStatusCode((long) 500); + expectedFieldValidator.setFields(null); + expectedFieldValidator.setErrorCode(null); + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("FieldsValidator [httpStatusCode=500, errorCode=null, fields=null]"); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + EPUser user = mockUser.mockEPUser(); + user.setEmail("guestT@test.portal.onap.org"); + user.setLoginPwd("pwd"); + user.setLoginId("Test"); + List expectedList = new ArrayList(); + expectedList.add(user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList); + Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(portalAdminService.createPortalAdmin(user.getOrgUserId())).thenReturn(expectedFieldValidator); + PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest + .postPortalAdmin(mockedRequest, mockedResponse, user); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + } + + @Test + public void getOnboardAppExternalTest() { + EPApp epApp = new EPApp(); + Long appId = (long) 1; + Mockito.when(appService.getApp(appId)).thenReturn(epApp); + OnboardingApp expectedApp = new OnboardingApp(); + Mockito.doNothing().when(appService).createOnboardingFromApp(epApp, expectedApp); + OnboardingApp actualApp = appsControllerExternalRequest.getOnboardAppExternal(mockedRequest, mockedResponse, + appId); + assertEquals(expectedApp.getClass(), actualApp.getClass()); + } + + @Test + public void postOnboardAppExternalExceptionTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Unexpected field: id"); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + + OnboardingApp expectedOnboardingApp = new OnboardingApp(); + expectedOnboardingApp.id = (long) 1; + + PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest + .postOnboardAppExternal(mockedRequest, mockedResponse, expectedOnboardingApp); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + } + + @Test + public void postOnboardAppExternalTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage( + "Missing required field: name, url, restUrl, restrictedApp, isOpen, isEnabled, myLoginsAppOwner"); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + + OnboardingApp expectedOnboardingApp = new OnboardingApp(); + expectedOnboardingApp.id = null; + + PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest + .postOnboardAppExternal(mockedRequest, mockedResponse, expectedOnboardingApp); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + + } + + @Test + public void putOnboardAppExternalifAppNullTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Unexpected value for field: id"); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + Long appId = null; + OnboardingApp expectedOnboardingApp = new OnboardingApp(); + expectedOnboardingApp.id = null; + + PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest + .putOnboardAppExternal(mockedRequest, mockedResponse, appId, expectedOnboardingApp); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + } + + @Test + public void putOnboardAppExternalIfOnboardingAppDetailsNullTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage( + "Missing required field: name, url, restUrl, restrictedApp, isOpen, isEnabled, myLoginsAppOwner"); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + Long appId = (long) 1; + OnboardingApp expectedOnboardingApp = new OnboardingApp(); + expectedOnboardingApp.id = (long) 1; + PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest + .putOnboardAppExternal(mockedRequest, mockedResponse, appId, expectedOnboardingApp); + assertEquals(actualPortalRestResponse, expectedportalRestResponse); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppsControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppsControllerTest.java new file mode 100644 index 00000000..95f1d224 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppsControllerTest.java @@ -0,0 +1,955 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.*; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Matchers; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.AppsController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.AdminUserApplications; +import org.onap.portalapp.portal.domain.AppIdAndNameTransportModel; +import org.onap.portalapp.portal.domain.AppsResponse; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EcompApp; +import org.onap.portalapp.portal.domain.UserRole; +import org.onap.portalapp.portal.domain.UserRoles; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.AdminRolesServiceImpl; +import org.onap.portalapp.portal.service.EPAppCommonServiceImpl; +import org.onap.portalapp.portal.service.EPAppService; +import org.onap.portalapp.portal.service.EPLeftMenuService; +import org.onap.portalapp.portal.service.EPLeftMenuServiceImpl; +import org.onap.portalapp.portal.transport.EPAppsManualPreference; +import org.onap.portalapp.portal.transport.EPAppsSortPreference; +import org.onap.portalapp.portal.transport.EPDeleteAppsManualSortPref; +import org.onap.portalapp.portal.transport.EPWidgetsSortPreference; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.LocalRole; +import org.onap.portalapp.portal.transport.OnboardingApp; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.AppUtils; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.springframework.http.HttpEntity; +import org.springframework.http.MediaType; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({SystemProperties.class,AppUtils.class, EPUserUtils.class, MediaType.class}) +public class AppsControllerTest extends MockitoTestSuite{ + + @InjectMocks + AppsController appsController = new AppsController(); + + @Mock + AdminRolesService adminRolesService = new AdminRolesServiceImpl(); + + @Mock + EPAppService appService = new EPAppCommonServiceImpl(); + + @Mock + EPLeftMenuService leftMenuService = new EPLeftMenuServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Mock + EPUserUtils ePUserUtils = new EPUserUtils(); + + @Mock + AppUtils appUtils = new AppUtils(); + + MockEPUser mockUser = new MockEPUser(); + + @Test + public void getUserAppsTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedEcompApps = new ArrayList(); + + EcompApp ecompApp = new EcompApp(); + ecompApp.setId((long) 1); + ecompApp.setName("Test_app"); + ecompApp.setUrl("Test_URL"); + ecompApp.setUebKey("Test_key"); + ecompApp.setAlternateUrl("Test_alt_URL"); + expectedEcompApps.add(ecompApp); + List actualEcompApps = new ArrayList(); + Mockito.when(appService.transformAppsToEcompApps(appService.getUserApps(user))).thenReturn(expectedEcompApps); + actualEcompApps = appsController.getUserApps(mockedRequest, mockedResponse); + assertEquals(expectedEcompApps, actualEcompApps); + } + + @Test + public void getUserAppsNoUserTest() { + EPUser user = null; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(appService.transformAppsToEcompApps(appService.getUserApps(user))).thenReturn(null); + assertNull(appsController.getUserApps(mockedRequest, mockedResponse)); + + } + + @Test + public void getUserAppsExceptionTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(appService.transformAppsToEcompApps(appService.getUserApps(user))).thenThrow(nullPointerException); + assertNull(appsController.getUserApps(mockedRequest, mockedResponse)); + + } + + @Test + public void getPersUserAppsIfUserIsAdminTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedEcompApps = new ArrayList(); + + EcompApp ecompApp = new EcompApp(); + ecompApp.setId((long) 1); + ecompApp.setName("Test_app"); + ecompApp.setUrl("Test_URL"); + ecompApp.setUebKey("Test_key"); + ecompApp.setAlternateUrl("Test_alt_URL"); + expectedEcompApps.add(ecompApp); + List actualEcompApps = new ArrayList(); + + List expectedApps = new ArrayList(); + + EPApp app = new EPApp(); + + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppRestEndpoint("test"); + app.setAlternateUrl("test"); + app.setName("test"); + app.setMlAppName("test"); + app.setMlAppAdminId("test"); + app.setUsername("test"); + app.setAppPassword("test"); + app.setOpen(false); + app.setEnabled(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.setAppType(1); + + expectedApps.add(app); + + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.getPersAdminApps(user)).thenReturn(expectedApps); + + Mockito.when(appService.transformAppsToEcompApps(expectedApps)).thenReturn(expectedEcompApps); + actualEcompApps = appsController.getPersUserApps(mockedRequest, mockedResponse); + assertEquals(expectedEcompApps, actualEcompApps); + } + + @Test + public void getPersUserAppsIfUserNotAdminTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedEcompApps = new ArrayList(); + + EcompApp ecompApp = new EcompApp(); + ecompApp.setId((long) 1); + ecompApp.setName("Test_app"); + ecompApp.setUrl("Test_URL"); + ecompApp.setUebKey("Test_key"); + ecompApp.setAlternateUrl("Test_alt_URL"); + expectedEcompApps.add(ecompApp); + List actualEcompApps = new ArrayList(); + + List expectedApps = new ArrayList(); + + EPApp app = new EPApp(); + + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppRestEndpoint("test"); + app.setAlternateUrl("test"); + app.setName("test"); + app.setMlAppName("test"); + app.setMlAppAdminId("test"); + app.setUsername("test"); + app.setAppPassword("test"); + app.setOpen(false); + app.setEnabled(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.setAppType(1); + + expectedApps.add(app); + + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(appService.getPersUserApps(user)).thenReturn(expectedApps); + Mockito.when(appService.transformAppsToEcompApps(expectedApps)).thenReturn(expectedEcompApps); + actualEcompApps = appsController.getPersUserApps(mockedRequest, mockedResponse); + assertEquals(expectedEcompApps, actualEcompApps); + } + + @Test + public void getPersUserAppsIfUserNullTest() throws IOException { + EPUser user = null; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + assertNull(appsController.getPersUserApps(mockedRequest, mockedResponse)); + } + + @Test + public void getPersUserAppsExceptionTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.getPersAdminApps(user)).thenThrow(nullPointerException); + assertNull(appsController.getPersUserApps(mockedRequest, mockedResponse)); + } + + @Test + public void getAdminAppsIfNotAdminTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); + assertNull(appsController.getAdminApps(mockedRequest, mockedResponse)); + } + + @Test + public void getAdminAppsTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedAdminApps = new ArrayList(); + AppIdAndNameTransportModel appIdAndNameTransportModel = new AppIdAndNameTransportModel(); + appIdAndNameTransportModel.setId((long) 1); + appIdAndNameTransportModel.setName("Test_app"); + expectedAdminApps.add(appIdAndNameTransportModel); + List actualAdminApps = new ArrayList(); + Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(true); + Mockito.when(appService.getAdminApps(user)).thenReturn(expectedAdminApps); + actualAdminApps = appsController.getAdminApps(mockedRequest, mockedResponse); + assertEquals(actualAdminApps, expectedAdminApps); + + } + + @Test + public void getAdminAppsExceptionTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(true); + Mockito.when(appService.getAdminApps(user)).thenThrow(nullPointerException); + assertNull(appsController.getAdminApps(mockedRequest, mockedResponse)); + } + + @Test + public void getAppsForSuperAdminAndAccountAdminifOnlyAccountAdminTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); + assertNull(appsController.getAppsForSuperAdminAndAccountAdmin(mockedRequest, mockedResponse)); + } + + @Test + public void getAppsForSuperAdminAndAccountAdminTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedAdminApps = new ArrayList(); + AppIdAndNameTransportModel appIdAndNameTransportModel = new AppIdAndNameTransportModel(); + appIdAndNameTransportModel.setId((long) 1); + appIdAndNameTransportModel.setName("Test_app"); + expectedAdminApps.add(appIdAndNameTransportModel); + List actualAdminApps = new ArrayList(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(true); + Mockito.when(appService.getAppsForSuperAdminAndAccountAdmin(user)).thenReturn(expectedAdminApps); + actualAdminApps = appsController.getAppsForSuperAdminAndAccountAdmin(mockedRequest, mockedResponse); + assertEquals(actualAdminApps, expectedAdminApps); + + } + + @Test + public void getAppsForSuperAdminExceptionTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); + Mockito.when(appService.getAppsForSuperAdminAndAccountAdmin(user)).thenThrow(nullPointerException); + assertNull(appsController.getAppsForSuperAdminAndAccountAdmin(mockedRequest, mockedResponse)); + } + + @Test + public void putUserAppsSortingManualTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List ePAppsManualPreference = new ArrayList(); + FieldsValidator expectedFieldValidator = new FieldsValidator(); + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(null); + expectedFieldValidator.setErrorCode(null); + FieldsValidator actualFieldValidator = new FieldsValidator(); + Mockito.when(appService.saveAppsSortManual(ePAppsManualPreference, user)).thenReturn(expectedFieldValidator); + actualFieldValidator = appsController.putUserAppsSortingManual(mockedRequest, ePAppsManualPreference, + mockedResponse); + assertEquals(actualFieldValidator, expectedFieldValidator); + } + + @Test + public void putUserAppsSortingManualExceptionTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List ePAppsManualPreference = new ArrayList(); + Mockito.when(appService.saveAppsSortManual(ePAppsManualPreference, user)).thenThrow(nullPointerException); + assertNull(appsController.putUserAppsSortingManual(mockedRequest, ePAppsManualPreference, mockedResponse)); + } + + @Test + public void putUserWidgetsSortManualTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List ePWidgetsSortPreference = new ArrayList(); + FieldsValidator expectedFieldValidator = new FieldsValidator(); + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(null); + expectedFieldValidator.setErrorCode(null); + FieldsValidator actualFieldValidator = new FieldsValidator(); + Mockito.when(appService.saveWidgetsSortManual(ePWidgetsSortPreference, user)) + .thenReturn(expectedFieldValidator); + actualFieldValidator = appsController.putUserWidgetsSortManual(mockedRequest, ePWidgetsSortPreference, + mockedResponse); + assertEquals(actualFieldValidator, expectedFieldValidator); + } + + @Test + public void putUserWidgetsSortManualExceptionTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List ePAppsManualPreference = new ArrayList(); + Mockito.when(appService.saveAppsSortManual(ePAppsManualPreference, user)).thenThrow(nullPointerException); + assertNull(appsController.putUserAppsSortingManual(mockedRequest, ePAppsManualPreference, mockedResponse)); + } + + @Test + public void putUserWidgetsSortPrefTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List ePWidgetsSortPreference = new ArrayList(); + FieldsValidator expectedFieldValidator = new FieldsValidator(); + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(null); + expectedFieldValidator.setErrorCode(null); + FieldsValidator actualFieldValidator = new FieldsValidator(); + Mockito.when(appService.deleteUserWidgetSortPref(ePWidgetsSortPreference, user)) + .thenReturn(expectedFieldValidator); + actualFieldValidator = appsController.putUserWidgetsSortPref(mockedRequest, ePWidgetsSortPreference, + mockedResponse); + assertEquals(actualFieldValidator, expectedFieldValidator); + } + + @Test + public void putUserWidgetsSortPrefExceptionTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List ePWidgetsSortPreference = new ArrayList(); + Mockito.when(appService.deleteUserWidgetSortPref(ePWidgetsSortPreference, user)) + .thenThrow(nullPointerException); + assertNull(appsController.putUserWidgetsSortPref(mockedRequest, ePWidgetsSortPreference, mockedResponse)); + } + + @Test + public void deleteUserAppSortManualTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + EPDeleteAppsManualSortPref epDeleteAppsManualSortPref = new EPDeleteAppsManualSortPref(); + + FieldsValidator expectedFieldValidator = new FieldsValidator(); + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(null); + expectedFieldValidator.setErrorCode(null); + FieldsValidator actualFieldValidator = new FieldsValidator(); + Mockito.when(appService.deleteUserAppSortManual(epDeleteAppsManualSortPref, user)) + .thenReturn(expectedFieldValidator); + actualFieldValidator = appsController.deleteUserAppSortManual(mockedRequest, epDeleteAppsManualSortPref, + mockedResponse); + assertEquals(actualFieldValidator, expectedFieldValidator); + } + + @Test + public void deleteUserAppSortManualExceptionTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + EPDeleteAppsManualSortPref epDeleteAppsManualSortPref = new EPDeleteAppsManualSortPref(); + Mockito.when(appService.deleteUserAppSortManual(epDeleteAppsManualSortPref, user)) + .thenThrow(nullPointerException); + assertNull(appsController.deleteUserAppSortManual(mockedRequest, epDeleteAppsManualSortPref, mockedResponse)); + } + + @Test + public void putUserAppsSortingPreferenceTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + EPAppsSortPreference userAppsValue = new EPAppsSortPreference(); + + FieldsValidator expectedFieldValidator = new FieldsValidator(); + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(null); + expectedFieldValidator.setErrorCode(null); + FieldsValidator actualFieldValidator = new FieldsValidator(); + Mockito.when(appService.saveAppsSortPreference(userAppsValue, user)).thenReturn(expectedFieldValidator); + actualFieldValidator = appsController.putUserAppsSortingPreference(mockedRequest, userAppsValue, + mockedResponse); + assertEquals(actualFieldValidator, expectedFieldValidator); + } + + @Test + public void putUserAppsSortingPreferenceExceptionTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + EPAppsSortPreference userAppsValue = new EPAppsSortPreference(); + Mockito.when(appService.saveAppsSortPreference(userAppsValue, user)).thenThrow(nullPointerException); + assertNull(appsController.putUserAppsSortingPreference(mockedRequest, userAppsValue, mockedResponse)); + } + + @Test + public void getUserAppsSortTypePreferenceTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + String expectedUserSortPreference = "TEST_DECE"; + String actualUserSortPreference = new String(); + Mockito.when(appService.getUserAppsSortTypePreference(user)).thenReturn(expectedUserSortPreference); + actualUserSortPreference = appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse); + assertEquals(actualUserSortPreference, expectedUserSortPreference); + } + + @Test + public void getUserAppsSortTypePreferenceExceptionTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(appService.getUserAppsSortTypePreference(user)).thenThrow(nullPointerException); + assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); + } + + @Test + public void getUserAppsSortTypePreferenceIfUserNullTest() throws IOException { + EPUser user = null; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(appService.getUserAppsSortTypePreference(user)).thenThrow(nullPointerException); + assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); + } + + @Test + public void getAppsAdministratorsTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expecteAdminUserApplications = new ArrayList(); + List actualAdminUserApplications = new ArrayList(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.getAppsAdmins()).thenReturn(expecteAdminUserApplications); + actualAdminUserApplications = appsController.getAppsAdministrators(mockedRequest, mockedResponse); + assertEquals(expecteAdminUserApplications, actualAdminUserApplications); + } + + @Test + public void getAppsAdministratorsIfUserNotSuperAdminTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); + } + + @Test + public void getAppsAdministratorsExceptionTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.getAppsAdmins()).thenThrow(nullPointerException); + assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); + } + + @Test + public void getAppsTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedApps = new ArrayList(); + AppsResponse apps = new AppsResponse((long) 1, "test", true, true); + expectedApps.add(apps); + + List atualApps = new ArrayList(); + + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.getAllApps(false)).thenReturn(expectedApps); + atualApps = appsController.getApps(mockedRequest, mockedResponse); + assertEquals(expectedApps, atualApps); + } + + @Test + public void getAppsExceptionTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + assertNull(appsController.getApps(mockedRequest, mockedResponse)); + } + + @Test + public void getAppsIfUserNotSuperAdminTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.getAllApps(false)).thenThrow(nullPointerException); + assertNull(appsController.getApps(mockedRequest, mockedResponse)); + } + + @Test + public void getAllAppsTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedApps = new ArrayList(); + AppsResponse apps = new AppsResponse((long) 1, "test", true, true); + expectedApps.add(apps); + List atualApps = new ArrayList(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.getAllApps(true)).thenReturn(expectedApps); + atualApps = appsController.getAllApps(mockedRequest, mockedResponse); + assertEquals(expectedApps, atualApps); + } + + @Test + public void getAllAppsExceptionTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + assertNull(appsController.getAllApps(mockedRequest, mockedResponse)); + } + + @Test + public void getAllAppsIfUserNotSuperAdminTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.getAllApps(true)).thenThrow(nullPointerException); + assertNull(appsController.getAllApps(mockedRequest, mockedResponse)); + } + + @Test + public void getAppsFullListTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedEcompApps = new ArrayList(); + + EcompApp ecompApp = new EcompApp(); + ecompApp.setId((long) 1); + ecompApp.setName("Test_app"); + ecompApp.setUrl("Test_URL"); + ecompApp.setUebKey("Test_key"); + ecompApp.setAlternateUrl("Test_alt_URL"); + expectedEcompApps.add(ecompApp); + List actualEcompApps = new ArrayList(); + Mockito.when(appService.getEcompAppAppsFullList()).thenReturn(expectedEcompApps); + actualEcompApps = appsController.getAppsFullList(mockedRequest, mockedResponse); + assertEquals(expectedEcompApps, actualEcompApps); + } + +// @Test +// public void getAppsFullListNoUserTest() { +// EPUser user = null; +// Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); +// Mockito.when(appService.getEcompAppAppsFullList()).thenReturn(null); +// assertNull(appsController.getAppsFullList(mockedRequest, mockedResponse)); +// +// } + + @Test + public void getUserProfileTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + + UserRole userRole = new UserRole(); + userRole.setUser_Id((long) 1); + userRole.setOrgUserId("guest"); + userRole.setFirstName("Test_User_FirstName"); + userRole.setLastName("Test_User_LastName"); + userRole.setRoleId((long) 1); + userRole.setRoleName("test"); + + UserRoles unexpectedserAndRoles = new UserRoles(userRole); + unexpectedserAndRoles.setFirstName("Test_User_FirstName"); + unexpectedserAndRoles.setLastName("Test_User_LastName"); + unexpectedserAndRoles.setGuestSession(false); + unexpectedserAndRoles.setOrgUserId("guest"); + List roles = new ArrayList(); + roles.add("Test"); + unexpectedserAndRoles.setRoles(roles); + Mockito.when(appService.getUserProfileNormalized(user)).thenReturn(unexpectedserAndRoles); + UserRoles actualUserAndRoles = appsController.getUserProfile(mockedRequest, mockedResponse); + assertEquals(unexpectedserAndRoles, actualUserAndRoles); + } + + @Test + public void getUserProfileIfUserNullTest() throws IOException { + EPUser user = null; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(appService.getUserProfileNormalized(user)).thenReturn(null); + assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); + } + + @Test + public void getUserProfileExcpetionTest() throws IOException { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(appService.getUserProfileNormalized(user)).thenThrow(nullPointerException); + assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); + } + + @Test + public void getAppRolesTest() { + List expectedRoleList = new ArrayList(); + LocalRole localRole = new LocalRole(); + localRole.setRoleId(1); + localRole.setRolename("test"); + expectedRoleList.add(localRole); + long appId = 1; + Mockito.when(appService.getAppRoles(appId)).thenReturn(expectedRoleList); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isAccountAdminOfApplication(Matchers.anyObject(), Matchers.anyObject())).thenReturn(true); + List actualRoleList = appsController.getAppRoles(mockedRequest, appId, mockedResponse); + assertEquals(actualRoleList, expectedRoleList); + } + + @Test + public void getAppRolesExceptionTest() { + long appId = 1; + Mockito.when(appService.getAppRoles(appId)).thenThrow(nullPointerException); + assertNull(appsController.getAppRoles(mockedRequest, appId, mockedResponse)); + } + + @Test + public void getOnboardingAppsTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedOnboardingApps = new ArrayList(); + OnboardingApp onboardingApp = new OnboardingApp(); + onboardingApp.setUebKey("test"); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.getOnboardingApps()).thenReturn(expectedOnboardingApps); + List actualOnboardingApps = appsController.getOnboardingApps(mockedRequest, mockedResponse); + assertEquals(expectedOnboardingApps, actualOnboardingApps); + } + + @Test + public void getOnboardingAppsifSuperAdiminTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + assertNull(appsController.getOnboardingApps(mockedRequest, mockedResponse)); + } + + @Test + public void getOnboardingAppsExceptionTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(!adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.getOnboardingApps()).thenThrow(nullPointerException); + assertNull(appsController.getOnboardingApps(mockedRequest, mockedResponse)); + } + + @Test + public void putOnboardingAppTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + OnboardingApp OnboardingApp = new OnboardingApp(); + FieldsValidator expectedFieldValidator = new FieldsValidator(); + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(null); + expectedFieldValidator.setErrorCode(null); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.modifyOnboardingApp(OnboardingApp, user)).thenReturn(expectedFieldValidator); + FieldsValidator actualFieldValidator = appsController.putOnboardingApp(mockedRequest, OnboardingApp, + mockedResponse); + assertEquals(expectedFieldValidator, actualFieldValidator); + } + + @Test + public void putOnboardingAppIfSuperAdminTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + FieldsValidator expectedFieldValidator = null; + OnboardingApp OnboardingApp = new OnboardingApp(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(appService.modifyOnboardingApp(OnboardingApp, user)).thenReturn(expectedFieldValidator); + assertNull(appsController.putOnboardingApp(mockedRequest, OnboardingApp, mockedResponse)); + } + + @Test + public void putOnboardingAppExceptionTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + OnboardingApp OnboardingApp = new OnboardingApp(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.modifyOnboardingApp(OnboardingApp, user)).thenThrow(nullPointerException); + assertNull(appsController.putOnboardingApp(mockedRequest, OnboardingApp, mockedResponse)); + } + + @Test + public void postOnboardingAppTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + OnboardingApp OnboardingApp = new OnboardingApp(); + FieldsValidator expectedFieldValidator = new FieldsValidator(); + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(null); + expectedFieldValidator.setErrorCode(null); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.addOnboardingApp(OnboardingApp, user)).thenReturn(expectedFieldValidator); + FieldsValidator actualFieldValidator = appsController.postOnboardingApp(mockedRequest, OnboardingApp, + mockedResponse); + assertEquals(expectedFieldValidator, actualFieldValidator); + } + + @Test + public void postOnboardingAppIfSuperAdminTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + FieldsValidator expectedFieldValidator = null; + OnboardingApp OnboardingApp = new OnboardingApp(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(appService.addOnboardingApp(OnboardingApp, user)).thenReturn(expectedFieldValidator); + assertNull(appsController.postOnboardingApp(mockedRequest, OnboardingApp, mockedResponse)); + } + + @Test + public void postOnboardingAppExceptionTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + OnboardingApp OnboardingApp = new OnboardingApp(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(appService.addOnboardingApp(OnboardingApp, user)).thenThrow(nullPointerException); + assertNull(appsController.postOnboardingApp(mockedRequest, OnboardingApp, mockedResponse)); + } + + @Test + public void deleteOnboardingAppTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + FieldsValidator expectedFieldValidator = new FieldsValidator(); + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(null); + expectedFieldValidator.setErrorCode(null); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + long appId = 1; + Mockito.when(appService.deleteOnboardingApp(user,appId )).thenReturn(expectedFieldValidator); + FieldsValidator actualFieldValidator = appsController.deleteOnboardingApp(mockedRequest,appId, + mockedResponse); + assertEquals(expectedFieldValidator, actualFieldValidator); + } + + @Test + public void deleteOnboardingAppIfSuperAdminTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + FieldsValidator expectedFieldValidator = null; + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + long appId = 1; + Mockito.when(appService.deleteOnboardingApp(user,appId)).thenReturn(expectedFieldValidator); + assertNull(appsController.deleteOnboardingApp(mockedRequest,appId,mockedResponse)); + } + + @Test + public void deleteOnboardingAppExceptionTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + long appId = 1; + Mockito.when(appService.deleteOnboardingApp(user,appId)).thenThrow(nullPointerException); + assertNull(appsController.deleteOnboardingApp(mockedRequest,appId,mockedResponse)); + } + + @Test + public void getLeftMenuItemsTest() + { + EPUser user = mockUser.mockEPUser(); + String menuList = "Test"; + PowerMockito.mockStatic(EPUserUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Set menuSet = new HashSet<>(); + menuSet.add(1); + Mockito.when(AppUtils.getSession(mockedRequest) + .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME))).thenReturn(menuSet); + Mockito.when(AppUtils.getSession(mockedRequest) + .getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME))).thenReturn(menuSet); + Mockito.when(leftMenuService.getLeftMenuItems(user, menuSet, menuSet)).thenReturn(menuList); + String response = appsController.getLeftMenuItems(mockedRequest, mockedResponse); + assertTrue(response.equals("Test")); + } + + @Test + public void getLeftMenuItemsExceptionTest() + { + EPUser user = mockUser.mockEPUser(); + String menuList = "Test"; + PowerMockito.mockStatic(EPUserUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Set menuSet = new HashSet<>(); + menuSet.add(1); + Mockito.when(AppUtils.getSession(mockedRequest) + .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME))).thenReturn(menuSet); + Mockito.when(AppUtils.getSession(mockedRequest) + .getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME))).thenReturn(menuSet); + Mockito.when(leftMenuService.getLeftMenuItems(user, menuSet, menuSet)).thenThrow(nullPointerException); + assertNull(appsController.getLeftMenuItems(mockedRequest, mockedResponse)); + } + + @Test + public void getAppThumbnailExceptionTest() + { + EPApp app = null; + assertNull(appsController.getAppThumbnail(mockedRequest, (long) 1, mockedResponse)); + } + + @Test + public void getAppThumbnailTest() + { + EPApp app = new EPApp(); + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppType(1); + app.setImageUrl("www.ecomp.com"); + app.setThumbnail(new byte[] {1, 6, 3}); + Mockito.when(appService.getApp((long) 1)).thenReturn(app); + HttpEntity response = appsController.getAppThumbnail(mockedRequest, (long) 1, mockedResponse); + assertEquals(response.getHeaders().getContentLength(), 3); + } + + @Test + public void getAppThumbnailForMediaTypePngTest() + { + + EPApp app = new EPApp(); + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppType(1); + app.setImageUrl("www.ecomp.png"); + app.setThumbnail(new byte[] {1, 6, 3}); + Mockito.when(appService.getApp((long) 1)).thenReturn(app); + PowerMockito.mockStatic(MediaType.class); + HttpEntity response = appsController.getAppThumbnail(mockedRequest, (long) 1, mockedResponse); + assertEquals(response.getHeaders().getContentLength(), 3); + } + + @Test + public void getUserAppsOrderBySortPrefIfUSerNullTest(){ + List listOfApps = new ArrayList(); + + EcompApp app = new EcompApp(); + listOfApps.add(app); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null); + assertNull(appsController.getUserAppsOrderBySortPref(mockedRequest, mockedResponse)); + } + + @Test + public void getUserAppsOrderBySortPrefTest(){ + List listOfApps = new ArrayList(); + + EcompApp app = new EcompApp(); + listOfApps.add(app); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(mockedRequest.getParameter("mparams")).thenReturn(""); + Mockito.when(appService.transformAppsToEcompApps(appService.getAppsOrderByName(user))).thenReturn(listOfApps); + List listOfActualApps = appsController.getUserAppsOrderBySortPref(mockedRequest, mockedResponse); + assertEquals(listOfActualApps.size(), 1); + } + + @Test + public void getUserAppsOrderBySortPrefIfusrSortPrefIsMTest(){ + List listOfApps = new ArrayList(); + + EcompApp app = new EcompApp(); + listOfApps.add(app); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(mockedRequest.getParameter("mparams")).thenReturn("M"); + Mockito.when(appService.transformAppsToEcompApps(appService.getAppsOrderByName(user))).thenReturn(listOfApps); + List listOfActualApps = appsController.getUserAppsOrderBySortPref(mockedRequest, mockedResponse); + assertEquals(listOfActualApps.size(), 1); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AuditLogControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AuditLogControllerTest.java new file mode 100644 index 00000000..27e72b64 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AuditLogControllerTest.java @@ -0,0 +1,139 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.AuditLogController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.service.AuditService; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(EPUserUtils.class) +public class AuditLogControllerTest { + + + @Mock + AuditService auditService; + + @InjectMocks + AuditLogController auditLogController = new AuditLogController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + MockEPUser mockUser = new MockEPUser(); + @Test + public void auditLogTest() + { + PowerMockito.mockStatic(EPUserUtils.class); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(EPUserUtils.getUserId(mockedRequest)).thenReturn((int)1); + auditLogController.auditLog(mockedRequest, "1", "app", "test"); + } + + @Test + public void auditLogTabTest() + { + PowerMockito.mockStatic(EPUserUtils.class); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(EPUserUtils.getUserId(mockedRequest)).thenReturn((int)1); + auditLogController.auditLog(mockedRequest, "1", "tab", "test"); + } + + @Test + public void auditLogfunctionalTest() + { + PowerMockito.mockStatic(EPUserUtils.class); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(EPUserUtils.getUserId(mockedRequest)).thenReturn((int)1); + auditLogController.auditLog(mockedRequest, "1", "functional", "test"); + } + + @Test + public void auditLogleftMenuTest() + { + PowerMockito.mockStatic(EPUserUtils.class); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(EPUserUtils.getUserId(mockedRequest)).thenReturn((int)1); + auditLogController.auditLog(mockedRequest, "1", "leftMenu", "test"); + } + + @Test(expected = NumberFormatException.class) + public void auditLogExceptionTest() + { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(EPUserUtils.getUserId(mockedRequest)).thenReturn((int)1); + auditLogController.auditLog(mockedRequest, "1", "app", "test"); + } + + @Test + public void auditLogerrorTest() + { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenThrow(nullPointerException); + auditLogController.auditLog(mockedRequest, "1", "app", "test"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/BEPropertyReaderControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/BEPropertyReaderControllerTest.java new file mode 100644 index 00000000..3ece25ff --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/BEPropertyReaderControllerTest.java @@ -0,0 +1,109 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertTrue; + +import javax.servlet.http.HttpServletRequest; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.BEPropertyReaderController; +import org.onap.portalapp.portal.domain.BEProperty; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(SystemProperties.class) +public class BEPropertyReaderControllerTest extends MockitoTestSuite { + + @InjectMocks + BEPropertyReaderController bEPropertyReaderController = new BEPropertyReaderController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + + NullPointerException nullPointerException = new NullPointerException(); + + @Test + public void readPropertyTest() { + String key = "DOMAIN_CLASS_LOCATION"; + BEProperty beProperty = new BEProperty("DOMAIN_CLASS_LOCATION", "domain_class_location"); + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("success"); + ecpectedPortalRestResponse.setResponse(beProperty); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); + PortalRestResponse actualPortalRestResponse = null; + PowerMockito.mockStatic(SystemProperties.class); + Mockito.when(SystemProperties.getProperty("DOMAIN_CLASS_LOCATION")).thenReturn("domain_class_location"); + actualPortalRestResponse = bEPropertyReaderController.readProperty(mockedRequest, key); + assertTrue(actualPortalRestResponse.equals(ecpectedPortalRestResponse)); + + } + + @Test + public void readPropertyExceptionTest() { + String key =null; + //BEProperty beProperty = new BEProperty("DOMAIN_CLASS_LOCATION", "domain_class_location"); + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("java.lang.NullPointerException"); + ecpectedPortalRestResponse.setResponse(null); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + PortalRestResponse actualPortalRestResponse = null; + PowerMockito.mockStatic(SystemProperties.class); + Mockito.when(new BEProperty(key, SystemProperties.getProperty(key))).thenThrow(nullPointerException); + actualPortalRestResponse = bEPropertyReaderController.readProperty(mockedRequest, key); + assertTrue(actualPortalRestResponse.equals(ecpectedPortalRestResponse)); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/BasicAuthAccountControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/BasicAuthAccountControllerTest.java new file mode 100644 index 00000000..bec28d59 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/BasicAuthAccountControllerTest.java @@ -0,0 +1,301 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.BasicAuthAccountController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.BasicAuthCredentials; +import org.onap.portalapp.portal.domain.EPEndpoint; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.AdminRolesServiceImpl; +import org.onap.portalapp.portal.service.BasicAuthAccountService; +import org.onap.portalapp.portal.service.BasicAuthAccountServiceImpl; +import org.onap.portalapp.util.EPUserUtils; + +public class BasicAuthAccountControllerTest extends MockitoTestSuite { + + @Mock + BasicAuthAccountService basicAuthAccountService = new BasicAuthAccountServiceImpl(); + + @Mock + AdminRolesService adminRolesService = new AdminRolesServiceImpl(); + + @InjectMocks + BasicAuthAccountController basicAuthAccountController = new BasicAuthAccountController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Mock + EPUserUtils ePUserUtils = new EPUserUtils(); + + MockEPUser mockUser = new MockEPUser(); + + public BasicAuthCredentials basicAuthCredentials() { + BasicAuthCredentials basicAuthCredentials = new BasicAuthCredentials(); + + basicAuthCredentials.setId((long) 1); + basicAuthCredentials.setApplicationName("test"); + basicAuthCredentials.setUsername("Test"); + basicAuthCredentials.setPassword("Password"); + basicAuthCredentials.setIsActive("YES"); + + List endpoints = new ArrayList(); + + EPEndpoint ePEndpoint = new EPEndpoint(); + ePEndpoint.setId((long) 1); + ePEndpoint.setName("Test"); + endpoints.add(ePEndpoint); + basicAuthCredentials.setEndpoints(endpoints); + + return basicAuthCredentials; + + } + + @Test + public void createBasicAuthAccountTest() throws Exception { + BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); + + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("SUCCESS"); + expectedResponse.setResponse(""); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedResponse.setStatus(portalRestStatusEnum.OK); + long accountd = 1; + + Mockito.when(basicAuthAccountService.saveBasicAuthAccount(basicAuthCredentials)).thenReturn(accountd); + + PortalRestResponse actualResponse = basicAuthAccountController.createBasicAuthAccount(mockedRequest, + mockedResponse, basicAuthCredentials); + assertEquals(actualResponse, expectedResponse); + } + + @Test + public void createBasicAuthAccountAdminTest() throws Exception { + BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("Authorization Required"); + expectedResponse.setResponse("Admin Only Operation! "); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedResponse.setStatus(portalRestStatusEnum.ERROR); + + PortalRestResponse actualResponse = basicAuthAccountController.createBasicAuthAccount(mockedRequest, + mockedResponse, basicAuthCredentials); + assertEquals(actualResponse, expectedResponse); + } + + @Test + public void createBasicAuthAccountIfInputNullTest() throws Exception { + BasicAuthCredentials basicAuthCredentials = null; + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("FAILURE"); + expectedResponse.setResponse("newBasicAuthAccount cannot be null or empty"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedResponse.setStatus(portalRestStatusEnum.ERROR); + PortalRestResponse actualResponse = basicAuthAccountController.createBasicAuthAccount(mockedRequest, + mockedResponse, basicAuthCredentials); + assertEquals(actualResponse, expectedResponse); + } + + @Test + public void getBasicAuthAccountTest() throws Exception { + PortalRestResponse> expectedPortalResponse = new PortalRestResponse>(); + List basicAuthCredentialsList = new ArrayList(); + BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); + basicAuthCredentialsList.add(basicAuthCredentials); + + expectedPortalResponse.setMessage("Success"); + expectedPortalResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedPortalResponse.setStatus(portalRestStatusEnum.OK); + + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(basicAuthAccountService.getAccountData()).thenReturn(null); + PortalRestResponse> actualResponse = basicAuthAccountController + .getBasicAuthAccount(mockedRequest, mockedResponse); + assertEquals(expectedPortalResponse, actualResponse); + } + + @Test + public void getBasicAuthAccountIfSuperAdminTest() throws Exception { + PortalRestResponse> expectedPortalResponse = new PortalRestResponse>(); + List basicAuthCredentialsList = new ArrayList(); + BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); + basicAuthCredentialsList.add(basicAuthCredentials); + + expectedPortalResponse.setMessage("UnAuthorized! Admin Only Operation"); + expectedPortalResponse.setResponse(new ArrayList<>()); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedPortalResponse.setStatus(portalRestStatusEnum.ERROR); + + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(basicAuthAccountService.getAccountData()).thenReturn(null); + PortalRestResponse> actualResponse = basicAuthAccountController + .getBasicAuthAccount(mockedRequest, mockedResponse); + assertEquals(expectedPortalResponse, actualResponse); + } + + @Test + public void updateAccountTest() throws Exception { + BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("SUCCESS"); + expectedResponse.setResponse(""); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedResponse.setStatus(portalRestStatusEnum.OK); + long accountd = 1; + PortalRestResponse actualResponse = basicAuthAccountController.updateAccount(mockedRequest, + mockedResponse, accountd, basicAuthCredentials); + assertEquals(actualResponse, expectedResponse); + } + + @Test + public void updateAccountIfSuperAdminTest() throws Exception { + BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); + + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("Authorization Required"); + expectedResponse.setResponse("Admin Only Operation! "); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedResponse.setStatus(portalRestStatusEnum.ERROR); + long accountd = 1; + PortalRestResponse actualResponse = basicAuthAccountController.updateAccount(mockedRequest, + mockedResponse, accountd, basicAuthCredentials); + assertEquals(actualResponse, expectedResponse); + } + + @Test + public void updateAccountIfInputNullTest() throws Exception { + BasicAuthCredentials basicAuthCredentials = null; + + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("FAILURE"); + expectedResponse.setResponse("BasicAuthCredentials cannot be null or empty"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedResponse.setStatus(portalRestStatusEnum.ERROR); + long accountd = 1; + PortalRestResponse actualResponse = basicAuthAccountController.updateAccount(mockedRequest, + mockedResponse, accountd, basicAuthCredentials); + assertEquals(actualResponse, expectedResponse); + } + + @Test + public void deleteAccountTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("SUCCESS"); + expectedResponse.setResponse(""); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedResponse.setStatus(portalRestStatusEnum.OK); + long accountd = 1; + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + PortalRestResponse actualResponse = basicAuthAccountController.deleteAccount(mockedRequest, + mockedResponse, accountd); + assertEquals(actualResponse, expectedResponse); + } + + @Test + public void deleteAccountIfNotSuperAdminTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("Authorization Required"); + expectedResponse.setResponse("Admin Only Operation! "); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedResponse.setStatus(portalRestStatusEnum.ERROR); + long accountd = 1; + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + PortalRestResponse actualResponse = basicAuthAccountController.deleteAccount(mockedRequest, + mockedResponse, accountd); + System.out.println(actualResponse); + assertEquals(actualResponse, expectedResponse); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/CommonWidgetControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/CommonWidgetControllerTest.java new file mode 100644 index 00000000..76961f89 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/CommonWidgetControllerTest.java @@ -0,0 +1,121 @@ + +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertTrue; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.CommonWidgetController; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.DashboardSearchService; +import org.onap.portalapp.portal.service.DashboardSearchServiceImpl; +import org.onap.portalapp.portal.transport.CommonWidgetMeta; + +public class CommonWidgetControllerTest { + + @Mock + DashboardSearchService dashboardSearchService = new DashboardSearchServiceImpl(); + + @InjectMocks + CommonWidgetController commonWidgetController = new CommonWidgetController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @SuppressWarnings("unchecked") + @Test + public void getWidgetDataTest() { + String resourceType = "Test"; + PortalRestResponse acutualPoratlRestResponse = null; + @SuppressWarnings("rawtypes") + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("Unexpected resource type Test"); + ecpectedPortalRestResponse.setResponse(null); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + acutualPoratlRestResponse = commonWidgetController.getWidgetData(mockedRequest, resourceType); + assertTrue(acutualPoratlRestResponse.equals(ecpectedPortalRestResponse)); + + } + + @SuppressWarnings("unchecked") + @Test + public void getWidgetDataTestNew() { + String resourceType = "EVENTS"; + PortalRestResponse acutualPoratlRestResponse = null; + @SuppressWarnings("rawtypes") + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("success"); + ecpectedPortalRestResponse.setResponse(null); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); + acutualPoratlRestResponse = commonWidgetController.getWidgetData(mockedRequest, resourceType); + assertTrue(acutualPoratlRestResponse.equals(ecpectedPortalRestResponse)); + + } + + @SuppressWarnings("unchecked") + @Test + public void getWidgetDataExceptionTest() { + String resourceType = "null"; + PortalRestResponse acutualPoratlRestResponse = null; + @SuppressWarnings("rawtypes") + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("Unexpected resource type null"); + ecpectedPortalRestResponse.setResponse(null); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + acutualPoratlRestResponse = commonWidgetController.getWidgetData(mockedRequest, resourceType); + assertTrue(acutualPoratlRestResponse.equals(ecpectedPortalRestResponse)); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ConsulClientControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ConsulClientControllerTest.java new file mode 100644 index 00000000..8481413e --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ConsulClientControllerTest.java @@ -0,0 +1,179 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.ConsulClientController; +import org.onap.portalapp.portal.domain.BEProperty; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.ConsulHealthService; +import org.onap.portalapp.portal.service.ConsulHealthServiceImpl; + +import com.orbitz.consul.ConsulException; +import com.orbitz.consul.model.health.ServiceHealth; + +import io.searchbox.client.config.exception.NoServerConfiguredException; + +public class ConsulClientControllerTest { + + @Mock + ConsulHealthService consulHealthService = new ConsulHealthServiceImpl(); + + @InjectMocks + ConsulClientController consulClientController = new ConsulClientController(); + + NoServerConfiguredException noServerConfiguredException = new NoServerConfiguredException(null); + + String service = "Test"; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + ConsulException consulException = new ConsulException(nullPointerException); + + @Test + public void getServiceLocationTest() { + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("Success!"); + ecpectedPortalRestResponse.setResponse(null); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); + PortalRestResponse actualPortalRestRespone = new PortalRestResponse(); + actualPortalRestRespone = consulClientController.getServiceLocation(mockedRequest, mockedResponse, service); + assertTrue(actualPortalRestRespone.equals(ecpectedPortalRestResponse)); + } + + @Test + public void getServiceLocationExceptionTest() { + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("Warning!"); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.WARN); + PortalRestResponse actualPortalRestRespone = new PortalRestResponse(); + Mockito.when(consulHealthService.getServiceLocation(service, null)).thenThrow(noServerConfiguredException); + actualPortalRestRespone = consulClientController.getServiceLocation(mockedRequest, mockedResponse, service); + assertTrue(actualPortalRestRespone.getMessage().equals(ecpectedPortalRestResponse.getMessage())); + assertTrue(actualPortalRestRespone.getStatus().equals(ecpectedPortalRestResponse.getStatus())); + + } + + @Test + public void getServiceLocationExceptionConsulExceptionTest() { + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("Error!"); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + PortalRestResponse actualPortalRestRespone = new PortalRestResponse(); + Mockito.when(consulHealthService.getServiceLocation(service, null)).thenThrow(consulException); + actualPortalRestRespone = consulClientController.getServiceLocation(mockedRequest, mockedResponse, service); + assertTrue(actualPortalRestRespone.getMessage().equals(ecpectedPortalRestResponse.getMessage())); + assertTrue(actualPortalRestRespone.getStatus().equals(ecpectedPortalRestResponse.getStatus())); + } + + public PortalRestResponse> successResponse() { + PortalRestResponse> ecpectedPortalRestResponse = new PortalRestResponse>(); + List healths = new ArrayList(); + ecpectedPortalRestResponse.setMessage("Success!"); + ecpectedPortalRestResponse.setResponse(healths); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); + return ecpectedPortalRestResponse; + } + + public PortalRestResponse> errorResponse() { + PortalRestResponse> ecpectedPortalRestResponse = new PortalRestResponse>(); + List healths = new ArrayList(); + ecpectedPortalRestResponse.setMessage("Error!"); + ecpectedPortalRestResponse.setResponse(healths); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + return ecpectedPortalRestResponse; + } + + @Test + public void getAllHealthyNodesTest() { + PortalRestResponse> ecpectedPortalRestResponse = successResponse(); + PortalRestResponse> actualPortalRestRespone = new PortalRestResponse>(); + actualPortalRestRespone = consulClientController.getAllHealthyNodes(mockedRequest, mockedResponse, service); + assertTrue(actualPortalRestRespone.equals(ecpectedPortalRestResponse)); + + } + + @Test + public void getAllHealthyNodesExceptionTest() { + PortalRestResponse> ecpectedPortalRestResponse = errorResponse(); + PortalRestResponse> actualPortalRestRespone = new PortalRestResponse>(); + Mockito.when(consulHealthService.getAllHealthyNodes(service)).thenThrow(consulException); + actualPortalRestRespone = consulClientController.getAllHealthyNodes(mockedRequest, mockedResponse, service); + assertTrue(actualPortalRestRespone.equals(ecpectedPortalRestResponse)); + } + + @Test + public void getAllNodesTest() { + PortalRestResponse> ecpectedPortalRestResponse = successResponse(); + PortalRestResponse> actualPortalRestRespone = new PortalRestResponse>(); + actualPortalRestRespone = consulClientController.getAllNodes(mockedRequest, mockedResponse, service); + assertTrue(actualPortalRestRespone.equals(ecpectedPortalRestResponse)); + } + + @Test + public void getAllNodesExceptionTest() { + PortalRestResponse> ecpectedPortalRestResponse = errorResponse(); + PortalRestResponse> actualPortalRestRespone = new PortalRestResponse>(); + Mockito.when(consulHealthService.getAllNodes(service)).thenThrow(consulException); + actualPortalRestRespone = consulClientController.getAllNodes(mockedRequest, mockedResponse, service); + assertTrue(actualPortalRestRespone.equals(ecpectedPortalRestResponse)); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardControllerTest.java new file mode 100644 index 00000000..37f7f687 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardControllerTest.java @@ -0,0 +1,467 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.*; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Matchers; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.DashboardController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.AdminRolesServiceImpl; +import org.onap.portalapp.portal.service.DashboardSearchService; +import org.onap.portalapp.portal.service.DashboardSearchServiceImpl; +import org.onap.portalapp.portal.transport.CommonWidget; +import org.onap.portalapp.portal.transport.CommonWidgetMeta; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.support.CollaborateList; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + + +@RunWith(PowerMockRunner.class) +@PrepareForTest({EPUserUtils.class, CollaborateList.class, SystemProperties.class, EPCommonSystemProperties.class}) +public class DashboardControllerTest { + + @Mock + DashboardSearchService searchService = new DashboardSearchServiceImpl(); + + @InjectMocks + DashboardController dashboardController = new DashboardController(); + + @Mock + AdminRolesService adminRolesService = new AdminRolesServiceImpl(); + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + + NullPointerException nullPointerException = new NullPointerException(); + + MockEPUser mockUser = new MockEPUser(); + + public CommonWidgetMeta mockCommonWidgetMeta() { + CommonWidgetMeta commonWidgetMeta= new CommonWidgetMeta(); + List widgetList = new ArrayList<>(); + CommonWidget commonWidget = new CommonWidget(); + commonWidget.setId((long) 1); + commonWidget.setCategory("test"); + commonWidget.setHref("testhref"); + commonWidget.setTitle("testTitle"); + commonWidget.setContent("testcontent"); + commonWidget.setEventDate("testDate"); + commonWidget.setSortOrder(1); + widgetList.add(commonWidget); + commonWidgetMeta.setItems(widgetList); + + return commonWidgetMeta; + } + + public CommonWidget mockCommonWidget() { + + CommonWidget commonWidget = new CommonWidget(); + commonWidget.setId((long) 1); + commonWidget.setCategory("test"); + commonWidget.setHref("testhref"); + commonWidget.setTitle("testTitle"); + commonWidget.setContent("testcontent"); + commonWidget.setEventDate("testDate"); + commonWidget.setSortOrder(1); + + return commonWidget; + } + + + @Test + public void getWidgetDataTest() throws IOException { + + String resourceType = null; + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.ERROR); + expectedData.setMessage("Unexpected resource type null"); + expectedData.setResponse(null); + + PortalRestResponse actualResponse = dashboardController.getWidgetData(mockedRequest, resourceType); + assertEquals(expectedData,actualResponse); + } + + @Test + public void getWidgetDataWithValidResourceTest() throws IOException { + String resourceType = "EVENTS"; + CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta(); + commonWidgetMeta.setCategory(null); + + Mockito.when(searchService.getWidgetData(resourceType)).thenReturn(commonWidgetMeta); + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.OK); + expectedData.setMessage("success"); + expectedData.setResponse(commonWidgetMeta); + + PortalRestResponse actualResponse = dashboardController.getWidgetData(mockedRequest, resourceType); + assertEquals(expectedData,actualResponse); + } + + @Test + public void saveWidgetDataBulkNullTest() throws IOException { + CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta(); + commonWidgetMeta.setCategory(null); + + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.ERROR); + expectedData.setMessage("ERROR"); + expectedData.setResponse("Category cannot be null or empty"); + + PortalRestResponse actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta); + assertEquals(expectedData,actualResponse); + } + + @Test + public void saveWidgetUnexpectedDataBulkTest() throws IOException { + CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta(); + commonWidgetMeta.setCategory("Unexpected Data"); + + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.ERROR); + expectedData.setMessage("Unexpected resource type Unexpected Data"); + expectedData.setResponse(null); + + PortalRestResponse actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta); + assertEquals(expectedData,actualResponse); + + } + + @Test + public void saveWidgetInvalidDataBulkTest() throws IOException { + CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta(); + commonWidgetMeta.setCategory("EVENTS"); + + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.ERROR); + expectedData.setMessage("Invalid category: test"); + expectedData.setResponse(null); + + PortalRestResponse actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta); + assertEquals(expectedData,actualResponse); + } + + @Test + public void saveWidgetDataBulkTest() throws IOException { + + List widgetList = new ArrayList<>(); + CommonWidget commonWidget = new CommonWidget("EVENTS", "http://test.com", "testTitle", "testcontent", "2017-07-01", 1); + widgetList.add(commonWidget); + CommonWidgetMeta commonWidgetMeta= new CommonWidgetMeta("EVENTS", widgetList); + + + + /* commonWidgetMeta.setItems(widgetList); + + commonWidgetMeta.setCategory("EVENTS");*/ + + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.OK); + expectedData.setMessage("success"); + expectedData.setResponse("success"); + + Mockito.when(searchService.saveWidgetDataBulk(commonWidgetMeta)).thenReturn("success"); + + PortalRestResponse actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta); + assertEquals(expectedData,actualResponse); + } + + @Test + public void saveWidgetDataNullTest() throws IOException { + + CommonWidget commonWidget = mockCommonWidget(); + commonWidget.setId((long)1); + commonWidget.setContent("test"); + commonWidget.setCategory(null); + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.ERROR); + expectedData.setMessage("ERROR"); + expectedData.setResponse("Category cannot be null or empty"); + + Mockito.when(adminRolesService.isSuperAdmin(Matchers.anyObject())).thenReturn(true); + PortalRestResponse actualResponse = dashboardController.saveWidgetData(commonWidget, mockedRequest, mockedResponse); + assertEquals(expectedData,actualResponse); + + } + + @Test + public void saveWidgetDataErrorTest() throws IOException { + + CommonWidget commonWidget = mockCommonWidget(); + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.ERROR); + expectedData.setMessage("Invalid category: test"); + expectedData.setResponse(null); + Mockito.when(adminRolesService.isSuperAdmin(Matchers.anyObject())).thenReturn(true); + PortalRestResponse actualResponse = dashboardController.saveWidgetData(commonWidget, mockedRequest, mockedResponse); + assertEquals(expectedData,actualResponse); + } + + @Test + public void saveWidgetDataTest() throws IOException { + + CommonWidgetMeta commonWidgetMeta= new CommonWidgetMeta(); + List widgetList = new ArrayList<>(); + CommonWidget commonWidget = new CommonWidget(); + commonWidget.setId((long) 1); + commonWidget.setCategory("EVENTS"); + commonWidget.setHref("http://test.com"); + commonWidget.setTitle("testTitle"); + commonWidget.setContent("testcontent"); + commonWidget.setEventDate("2017-07-01"); + commonWidget.setSortOrder(1); + widgetList.add(commonWidget); + commonWidgetMeta.setItems(widgetList); + + commonWidgetMeta.setCategory("EVENTS"); + + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.OK); + expectedData.setMessage("success"); + expectedData.setResponse("success"); + Mockito.when(adminRolesService.isSuperAdmin(Matchers.anyObject())).thenReturn(true); + Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn("success"); + PortalRestResponse actualResponse = dashboardController.saveWidgetData(commonWidget, mockedRequest, mockedResponse); + assertEquals(expectedData,actualResponse); + + } + + @Test + public void deleteWidgetDataTest() throws IOException { + + CommonWidget commonWidget = mockCommonWidget(); + + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.OK); + expectedData.setMessage("success"); + expectedData.setResponse(null); + + Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn("success"); + + PortalRestResponse actualResponse = dashboardController.deleteWidgetData(commonWidget); + assertEquals(expectedData,actualResponse); + + } + + @Test + public void getActiveUsersTest(){ + List activeUsers = new ArrayList<>(); + List expectedUsersList = new ArrayList<>(); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + String userId = user.getOrgUserId(); + Mockito.when(searchService.getRelatedUsers(userId)).thenReturn(activeUsers); + expectedUsersList= dashboardController.getActiveUsers(mockedRequest); + assertEquals(expectedUsersList, activeUsers); + } + + + @Test + public void getActiveUsersExceptionTest(){ + List activeUsers = new ArrayList<>(); + List expectedUsersList = new ArrayList<>(); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + String userId = user.getOrgUserId(); + Mockito.when(searchService.getRelatedUsers(userId)).thenThrow(nullPointerException); + expectedUsersList = dashboardController.getActiveUsers(mockedRequest); + assertEquals(expectedUsersList, activeUsers); + } + + @Test + public void getOnlineUserUpdateRateTest(){ + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.OK); + expectedData.setMessage("success"); + expectedData.setResponse("{onlineUserUpdateRate=1400000, onlineUserUpdateDuration=1400000}"); + + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_RATE)).thenReturn("1400"); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_DURATION)).thenReturn("1400"); + + PortalRestResponse> actualResponse = dashboardController.getOnlineUserUpdateRate(mockedRequest); + assertEquals(expectedData.getStatus(),actualResponse.getStatus()); + } + + @Test + public void getOnlineUserUpdateRateExceptionTest(){ + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.ERROR); + expectedData.setMessage("java.lang.NullPointerException"); + expectedData.setResponse(null); + + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_RATE)).thenThrow(nullPointerException); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_DURATION)).thenThrow(nullPointerException); + + PortalRestResponse> actualResponse = dashboardController.getOnlineUserUpdateRate(mockedRequest); + assertEquals(expectedData,actualResponse); + } + + @Test + public void getWindowWidthThresholdForRightMenuTest(){ + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.OK); + expectedData.setMessage("success"); + expectedData.setResponse("{windowWidth=1400}"); + + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_RIGHT_MENU)).thenReturn("1400"); + + PortalRestResponse> actualResponse = dashboardController.getWindowWidthThresholdForRightMenu(mockedRequest); + assertEquals(expectedData.getStatus(),actualResponse.getStatus()); + } + + @Test + public void getWindowWidthThresholdForRightMenuExceptionTest(){ + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.ERROR); + expectedData.setMessage("java.lang.NullPointerException"); + expectedData.setResponse(null); + + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_RIGHT_MENU)).thenThrow(nullPointerException); + + PortalRestResponse> actualResponse = dashboardController.getWindowWidthThresholdForRightMenu(mockedRequest); + assertEquals(expectedData,actualResponse); + } + + @Test + public void getWindowWidthThresholdForLeftMenuTest(){ + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.OK); + expectedData.setMessage("success"); + expectedData.setResponse("{windowWidth=1400}"); + + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_LEFT_MENU)).thenReturn("1400"); + + PortalRestResponse> actualResponse = dashboardController.getWindowWidthThresholdForLeftMenu(mockedRequest); + assertEquals(expectedData.getStatus(),actualResponse.getStatus()); + } + + @Test + public void getWindowWidthThresholdForLeftMenuExceptionTest(){ + PortalRestResponse expectedData = new PortalRestResponse(); + expectedData.setStatus(PortalRestStatusEnum.ERROR); + expectedData.setMessage("java.lang.NullPointerException"); + expectedData.setResponse(null); + + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_LEFT_MENU)).thenThrow(nullPointerException); + + PortalRestResponse> actualResponse = dashboardController.getWindowWidthThresholdForLeftMenu(mockedRequest); + assertEquals(expectedData,actualResponse); + } + + @Test + public void getActiveUsersNullTest(){ + PortalRestResponse> expectedData = new PortalRestResponse>(); + expectedData.setStatus(PortalRestStatusEnum.ERROR); + expectedData.setMessage("User object is null? - check logs"); + expectedData.setResponse(new ArrayList<>()); + + PortalRestResponse> actualResponse = dashboardController.activeUsers(mockedRequest); + assertEquals(expectedData,actualResponse); + } + + @Test + public void activeUsersTest(){ + EPUser user = mockUser.mockEPUser(); + PortalRestResponse> expectedData = new PortalRestResponse>(); + expectedData.setStatus(PortalRestStatusEnum.OK); + expectedData.setMessage("success"); + expectedData.setResponse(new ArrayList<>()); + PowerMockito.mockStatic(EPUserUtils.class); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + PortalRestResponse> actualResponse = dashboardController.activeUsers(mockedRequest); + assertEquals(expectedData,actualResponse); + } + + @Test + public void activeUsersExceptionTest(){ + EPUser user = mockUser.mockEPUser(); + user.setLoginId("test"); + PortalRestResponse> expectedData = new PortalRestResponse>(); + expectedData.setStatus(PortalRestStatusEnum.ERROR); + expectedData.setMessage("null - check logs."); + expectedData.setResponse(null); + + PowerMockito.mockStatic(EPUserUtils.class); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(searchService.getRelatedUsers(user.getLoginId())).thenThrow(nullPointerException); + PortalRestResponse> actualResponse = dashboardController.activeUsers(mockedRequest); + assertTrue(actualResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardSearchResultControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardSearchResultControllerTest.java new file mode 100644 index 00000000..229f1ba9 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardSearchResultControllerTest.java @@ -0,0 +1,403 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.DashboardSearchResultController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.ecomp.model.SearchResultItem; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.DashboardSearchService; +import org.onap.portalapp.portal.service.DashboardSearchServiceImpl; +import org.onap.portalapp.portal.transport.CommonWidget; +import org.onap.portalapp.portal.transport.CommonWidgetMeta; +import org.onap.portalapp.util.EPUserUtils; + +public class DashboardSearchResultControllerTest { + + @Mock + DashboardSearchService searchService = new DashboardSearchServiceImpl(); + + @InjectMocks + DashboardSearchResultController dashboardSearchResultController = new DashboardSearchResultController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Mock + EPUserUtils ePUserUtils = new EPUserUtils(); + + MockEPUser mockUser = new MockEPUser(); + + @Test + public void getWidgetDataTest() { + String resourceType = "test"; + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("success"); + ecpectedPortalRestResponse.setResponse(null); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); + Mockito.when(searchService.getWidgetData(resourceType)).thenReturn(null); + PortalRestResponse acutualPoratlRestResponse = dashboardSearchResultController + .getWidgetData(mockedRequest, resourceType); + assertEquals(acutualPoratlRestResponse, ecpectedPortalRestResponse); + + } + + @Test + public void saveWidgetDataBulkTest() { + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("success"); + ecpectedPortalRestResponse.setResponse(null); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); + + CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta(); + commonWidgetMeta.setCategory("test"); + + List commonWidgetList = new ArrayList(); + CommonWidget commonWidget = new CommonWidget(); + commonWidget.setId((long) 1); + commonWidget.setCategory("test"); + commonWidget.setHref("test_href"); + commonWidget.setTitle("test_title"); + commonWidget.setContent("test_content"); + commonWidget.setEventDate(null); + commonWidget.setSortOrder(1); + + commonWidgetList.add(commonWidget); + + commonWidgetMeta.setItems(commonWidgetList); + + Mockito.when(searchService.saveWidgetDataBulk(commonWidgetMeta)).thenReturn(null); + + PortalRestResponse actualPortalRestResponse = dashboardSearchResultController + .saveWidgetDataBulk(commonWidgetMeta); + assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); + } + + @Test + public void saveWidgetDataBulkIfCategoryNullTest() { + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("java.text.ParseException: Unparseable date: \"1\""); + ecpectedPortalRestResponse.setResponse(null); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + + CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta(); + commonWidgetMeta.setCategory("test"); + + List commonWidgetList = new ArrayList(); + CommonWidget commonWidget = new CommonWidget(); + commonWidget.setId(null); + commonWidget.setCategory(null); + commonWidget.setHref(null); + commonWidget.setTitle(null); + commonWidget.setContent("test_content"); + commonWidget.setEventDate("1"); + commonWidget.setSortOrder(1); + commonWidgetList.add(commonWidget); + commonWidgetMeta.setItems(commonWidgetList); + + Mockito.when(searchService.saveWidgetDataBulk(commonWidgetMeta)).thenReturn(null); + + PortalRestResponse actualPortalRestResponse = dashboardSearchResultController + .saveWidgetDataBulk(commonWidgetMeta); + assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); + } + + @Test + public void saveWidgetDataTest() { + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("success"); + ecpectedPortalRestResponse.setResponse(null); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); + CommonWidget commonWidget = new CommonWidget(); + commonWidget.setId((long) 1); + commonWidget.setCategory("test"); + commonWidget.setHref("test_href"); + commonWidget.setTitle("test_title"); + commonWidget.setContent("test_content"); + commonWidget.setEventDate(null); + commonWidget.setSortOrder(1); + + Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn(null); + + PortalRestResponse actualPortalRestResponse = dashboardSearchResultController + .saveWidgetData(commonWidget); + assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); + + } + + @Test + public void saveWidgetDataExceptionTest() { + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("ERROR"); + ecpectedPortalRestResponse.setResponse("Cateogry cannot be null or empty"); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + CommonWidget commonWidget = new CommonWidget(); + commonWidget.setId((long) 1); + commonWidget.setCategory(""); + commonWidget.setHref("test_href"); + commonWidget.setTitle("test_title"); + commonWidget.setContent("test_content"); + commonWidget.setEventDate(null); + commonWidget.setSortOrder(1); + + Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn(null); + + PortalRestResponse actualPortalRestResponse = dashboardSearchResultController + .saveWidgetData(commonWidget); + assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); + + } + + @Test + public void saveWidgetDataDateErrorTest() { + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("java.text.ParseException: Unparseable date: \"1\""); + ecpectedPortalRestResponse.setResponse(null); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + CommonWidget commonWidget = new CommonWidget(); + commonWidget.setId((long) 1); + commonWidget.setCategory("test"); + commonWidget.setHref("test_href"); + commonWidget.setTitle("test_title"); + commonWidget.setContent("test_content"); + commonWidget.setEventDate("1"); + commonWidget.setSortOrder(1); + + Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn(null); + + PortalRestResponse actualPortalRestResponse = dashboardSearchResultController + .saveWidgetData(commonWidget); + assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); + + } + + public void deleteWidgetDataTest() { + PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); + ecpectedPortalRestResponse.setMessage("success"); + ecpectedPortalRestResponse.setResponse(null); + ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); + CommonWidget commonWidget = new CommonWidget(); + commonWidget.setId((long) 1); + commonWidget.setCategory("test"); + commonWidget.setHref("test_href"); + commonWidget.setTitle("test_title"); + commonWidget.setContent("test_content"); + commonWidget.setEventDate(null); + commonWidget.setSortOrder(1); + Mockito.when(searchService.deleteWidgetData(commonWidget)).thenReturn(null); + + PortalRestResponse actualPortalRestResponse = dashboardSearchResultController + .deleteWidgetData(commonWidget); + System.out.println(actualPortalRestResponse); + assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); + } + + @Test + public void searchPortalIfUserIsNull() { + EPUser user = null; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + String searchString = "test"; + + PortalRestResponse>> expectedResult = new PortalRestResponse>>(); + expectedResult.setMessage("searchPortal: User object is null? - check logs"); + expectedResult.setResponse(new HashMap>()); + expectedResult.setStatus(PortalRestStatusEnum.ERROR); + PortalRestResponse>> actualResult = dashboardSearchResultController + .searchPortal(mockedRequest, searchString); + assertEquals(expectedResult, actualResult); + } + + @Test + public void searchPortalIfSearchStringNullTest() { + EPUser user = mockUser.mockEPUser(); + ; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + String searchString = null; + + PortalRestResponse>> expectedResult = new PortalRestResponse>>(); + expectedResult.setMessage("searchPortal: String string is null"); + expectedResult.setResponse(new HashMap>()); + expectedResult.setStatus(PortalRestStatusEnum.ERROR); + + PortalRestResponse>> actualResult = dashboardSearchResultController + .searchPortal(mockedRequest, searchString); + assertEquals(expectedResult, actualResult); + } + + @Test + public void searchPortalIfSearchTest() { + EPUser user = mockUser.mockEPUser(); + ; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + String searchString = "test"; + List searchResultItemList = new ArrayList(); + SearchResultItem searchResultItem = new SearchResultItem(); + + searchResultItem.setId((long) 1); + searchResultItem.setCategory("test"); + searchResultItem.setName("test_name"); + searchResultItem.setTarget("test_target"); + searchResultItem.setUuid("test_UUId"); + searchResultItemList.add(searchResultItem); + Map> expectedResultMap = new HashMap>(); + expectedResultMap.put(searchString, searchResultItemList); + + PortalRestResponse>> expectedResult = new PortalRestResponse>>(); + expectedResult.setMessage("success"); + expectedResult.setResponse(expectedResultMap); + expectedResult.setStatus(PortalRestStatusEnum.OK); + + Mockito.when(searchService.searchResults(user.getLoginId(), searchString)).thenReturn(expectedResultMap); + PortalRestResponse>> actualResult = dashboardSearchResultController + .searchPortal(mockedRequest, searchString); + assertEquals(expectedResult, actualResult); + + } + + @Test + public void searchPortalIfSearchExcptionTest() { + EPUser user = mockUser.mockEPUser(); + ; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + String searchString = "test"; + + PortalRestResponse>> expectedResult = new PortalRestResponse>>(); + expectedResult.setMessage("null - check logs."); + expectedResult.setResponse(new HashMap>()); + expectedResult.setStatus(PortalRestStatusEnum.ERROR); + + Mockito.when(searchService.searchResults(user.getLoginId(), searchString)).thenThrow(nullPointerException); + PortalRestResponse>> actualResult = dashboardSearchResultController + .searchPortal(mockedRequest, searchString); + assertEquals(expectedResult, actualResult); + } + + @Test + public void getActiveUsersTest() { + List expectedActiveUsers = new ArrayList(); + EPUser user = mockUser.mockEPUser(); + ; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + String userId = user.getOrgUserId(); + Mockito.when(searchService.getRelatedUsers(userId)).thenReturn(expectedActiveUsers); + List actualOnlineUsers = dashboardSearchResultController.getActiveUsers(mockedRequest); + assertEquals(expectedActiveUsers, actualOnlineUsers); + + } + + @Test + public void getActiveUsersExceptionTest() { + List expectedActiveUsers = new ArrayList(); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + String userId = user.getOrgUserId(); + Mockito.when(searchService.getRelatedUsers(userId)).thenThrow(nullPointerException); + List actualOnlineUsers = dashboardSearchResultController.getActiveUsers(mockedRequest); + assertEquals(expectedActiveUsers, actualOnlineUsers); + + } + + @Test + public void activeUsersTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + PortalRestResponse> expectedResult = new PortalRestResponse>(); + expectedResult.setMessage("success"); + expectedResult.setResponse(new ArrayList<>()); + expectedResult.setStatus(PortalRestStatusEnum.OK); + PortalRestResponse> actualResult = dashboardSearchResultController.activeUsers(mockedRequest); + + assertEquals(actualResult, expectedResult); + + } + + @Test + public void activeUsersIfUserNullTest() { + EPUser user = null; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + PortalRestResponse> expectedResult = new PortalRestResponse>(); + expectedResult.setMessage("User object is null? - check logs"); + expectedResult.setResponse(new ArrayList<>()); + expectedResult.setStatus(PortalRestStatusEnum.ERROR); + PortalRestResponse> actualResult = dashboardSearchResultController.activeUsers(mockedRequest); + assertEquals(actualResult, expectedResult); + + } + + @Test + public void activeUsersExceptionTest() { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + PortalRestResponse> expectedResult = new PortalRestResponse>(); + expectedResult.setMessage("null - check logs."); + expectedResult.setResponse(new ArrayList<>()); + expectedResult.setStatus(PortalRestStatusEnum.ERROR); + Mockito.when(searchService.getRelatedUsers(user.getLoginId())).thenThrow(nullPointerException); + PortalRestResponse> actualResult = dashboardSearchResultController.activeUsers(mockedRequest); + assertEquals(actualResult, expectedResult); + + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/EPFusionBaseControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/EPFusionBaseControllerTest.java new file mode 100644 index 00000000..d7950e37 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/EPFusionBaseControllerTest.java @@ -0,0 +1,151 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.*; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.controller.EPFusionBaseController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.DashboardSearchService; +import org.onap.portalapp.portal.service.DashboardSearchServiceImpl; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.MenuData; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({EPUserUtils.class, SystemProperties.class, EPCommonSystemProperties.class, EcompPortalUtils.class}) +public class EPFusionBaseControllerTest { + + @Mock + DashboardSearchService searchService = new DashboardSearchServiceImpl(); + + @InjectMocks + EPFusionBaseController epFusionBaseController = new EPFusionBaseController() { + }; + + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + + NullPointerException nullPointerException = new NullPointerException(); + + MockEPUser mockUser = new MockEPUser(); + + @Test + public void messagesExceptionTest(){ + Map expectedData = new HashMap(); + Map actualData = null; + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME)).thenReturn("test"); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Set menuResult = null; + HttpSession session = mockedRequest.getSession(); + Mockito.when(session + .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME))).thenReturn(menuResult); + actualData = epFusionBaseController.messages(mockedRequest); + assertEquals(expectedData,actualData ); + System.out.println(); + + } + + @Test + public void messagesTest(){ + Map expectedData = new HashMap(); + Map actualData = null; + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME)).thenReturn("test"); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Set menuResult = new HashSet<>(); + MenuData menuData= new MenuData(); + menuResult.add(menuData); + menuData.setChildMenus(menuResult); + HttpSession session = mockedRequest.getSession(); + Mockito.when(session + .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME))).thenReturn(menuResult); + actualData = epFusionBaseController.messages(mockedRequest); + assertEquals(actualData.size(), 2); + } + + @Test + public void isAccessibleTest() + { + assertTrue(epFusionBaseController.isAccessible()); + } + @Test + public void isRESTfulCallTest() + { + assertTrue(epFusionBaseController.isRESTfulCall()); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/EPRestrictedBaseControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/EPRestrictedBaseControllerTest.java new file mode 100644 index 00000000..ca415121 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/EPRestrictedBaseControllerTest.java @@ -0,0 +1,70 @@ + +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.*; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.controller.EPRestrictedBaseController; + +public class EPRestrictedBaseControllerTest { + + @InjectMocks + EPRestrictedBaseController ePRestrictedBaseController = new EPRestrictedBaseController() ; + + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + @Test + public void isAccessibleTest() + { + assertFalse(ePRestrictedBaseController.isAccessible()); + } + + @Test + public void isRESTfulCallTest() + { + assertFalse(ePRestrictedBaseController.isRESTfulCall()); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ExternalAccessRolesControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ExternalAccessRolesControllerTest.java new file mode 100644 index 00000000..859cc4c2 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ExternalAccessRolesControllerTest.java @@ -0,0 +1,711 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Matchers; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.CentralV2RoleFunction; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.ExternalAccessRolesService; +import org.onap.portalapp.portal.service.ExternalAccessRolesServiceImpl; +import org.onap.portalapp.portal.transport.CentralRoleFunction; +import org.onap.portalapp.portal.transport.CentralV2Role; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; +import org.onap.portalsdk.core.domain.AuditLog; +import org.onap.portalsdk.core.domain.Role; +import org.onap.portalsdk.core.restful.domain.EcompUser; +import org.springframework.beans.BeanUtils; +import org.springframework.http.HttpStatus; +import org.springframework.web.client.HttpClientErrorException; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class ExternalAccessRolesControllerTest { + + @Mock + ExternalAccessRolesService externalAccessRolesService = new ExternalAccessRolesServiceImpl(); + + @InjectMocks + ExternalAccessRolesController externalAccessRolesController = new ExternalAccessRolesController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + @Mock + AuditLog auditLog = new AuditLog(); + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + HttpClientErrorException httpClientErrorException = new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Failed"); + + MockEPUser mockUser = new MockEPUser(); + String loginId = "guestT"; + String uebKey = "testUebKey"; + + @Test + public void getUserTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + List userList = new ArrayList<>(); + Mockito.when(externalAccessRolesService.getUser(loginId)).thenReturn(userList); + externalAccessRolesController.getUser(mockedRequest, mockedResponse, loginId); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + @Test + public void getUserExceptionTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + externalAccessRolesController.getUser(mockedRequest, mockedResponse, loginId); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + public EPApp mockApp() + { + EPApp app = new EPApp(); + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppRestEndpoint("test"); + app.setAlternateUrl("test"); + app.setName("test"); + app.setMlAppName("test"); + app.setMlAppAdminId("test"); + app.setUsername("test"); + app.setAppPassword("test"); + app.setOpen(false); + app.setEnabled(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.setAppType(1); + return app; + } + + @Test(expected = NullPointerException.class) + public void getRolesForAppTest() throws Exception { + List applicationList = new ArrayList(); + List answer = new ArrayList<>(); + EPApp app = mockApp(); + applicationList.add(app); + Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); + Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app); + Mockito.when(externalAccessRolesService.getRolesForApp(mockedRequest.getHeader(uebKey))).thenReturn(answer); + assertEquals(externalAccessRolesController.getRolesForApp(mockedRequest, mockedResponse), null); + } + + @Test(expected = NullPointerException.class) + public void getRolesForAppExceptionTest() throws Exception { + List applicationList = new ArrayList(); + EPApp app = mockApp(); + applicationList.add(app); + Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); + Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app); + externalAccessRolesController.getRolesForApp(mockedRequest,mockedResponse); + List role = externalAccessRolesService.getRolesForApp(mockedRequest.getHeader(uebKey)); + assertEquals(null,role); + } + + @Test + public void getRoleFunctionsListTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + List answer = null; + Mockito.when(externalAccessRolesService.getRoleFuncList(mockedRequest.getHeader(uebKey))).thenReturn(null); + assertEquals(externalAccessRolesController.getRoleFunctionsList(mockedRequest, mockedResponse), answer); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + @Test + public void getRoleFunctionsListExceptionTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + externalAccessRolesController.getRoleFunctionsList(mockedRequest, mockedResponse); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + @Test + public void getRoleInfoTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + CentralV2Role answer = new CentralV2Role(); + long roleId = 1; + Mockito.when(externalAccessRolesService.getRoleInfo(roleId, mockedRequest.getHeader(uebKey))) + .thenReturn(answer); + externalAccessRolesController.getRoleInfo(mockedRequest, mockedResponse, roleId); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + @Test + public void getRoleInfoExceptionTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + long roleId = 1; + assertNull(externalAccessRolesController.getRoleInfo(mockedRequest, mockedResponse, roleId)); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + @Test + public void getRoleFunctionTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(); + CentralRoleFunction centralRoleFunction = new CentralRoleFunction(); + String code = "test_menu"; + Mockito.when(externalAccessRolesService.getRoleFunction(code, mockedRequest.getHeader(uebKey))) + .thenReturn(centralV2RoleFunction); + CentralRoleFunction returnedValue = externalAccessRolesController.getRoleFunction(mockedRequest, mockedResponse, code); + BeanUtils.copyProperties(centralV2RoleFunction, centralRoleFunction, "type","action"); + assertEquals(returnedValue,centralRoleFunction); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + @Test + public void getRoleFunctionExceptionTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + String code = "test_menu"; + Mockito.when(externalAccessRolesService.getRoleFunction(code, mockedRequest.getHeader(uebKey))) + .thenThrow(httpClientErrorException); + assertEquals(new CentralRoleFunction(),externalAccessRolesController.getRoleFunction(mockedRequest, mockedResponse, code)); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + @Test(expected = NullPointerException.class) + public void saveRoleFunctionIfIsIsNotDeletedTest() throws Exception { + List applicationList = new ArrayList(); + EPApp app = mockApp(); + applicationList.add(app); + Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Invalid uebkey!"); + expectedportalRestResponse.setResponse("Failed"); + expectedportalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + String data = null; + CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(); + Mockito.when(externalAccessRolesService.saveCentralRoleFunction(centralV2RoleFunction, app)).thenReturn(false); + portalRestResponse = externalAccessRolesController.saveRoleFunction(mockedRequest, mockedResponse, data); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test(expected = NullPointerException.class) + public void saveRoleFunctionExceptionTest() throws Exception { + List applicationList = new ArrayList(); + EPApp app = mockApp(); + applicationList.add(app); + Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Invalid uebkey!"); + expectedportalRestResponse.setResponse("Failed"); + expectedportalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + portalRestResponse = externalAccessRolesController.saveRoleFunction(mockedRequest, mockedResponse, null); + System.out.println(portalRestResponse); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test(expected = NullPointerException.class) + public void saveRoleFunctionTest() throws Exception { + List applicationList = new ArrayList(); + EPApp app = mockApp(); + applicationList.add(app); + Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage(null); + expectedportalRestResponse.setResponse("Failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + String data = null; + CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(); + Mockito.when(externalAccessRolesService.saveCentralRoleFunction(centralV2RoleFunction, app)).thenReturn(true); + portalRestResponse = externalAccessRolesController.saveRoleFunction(mockedRequest, mockedResponse, data); + System.out.println(portalRestResponse); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + @Ignore + public void deleteRoleFunctionTest() throws Exception { + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Successfully Deleted"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + EPUser user = mockUser.mockEPUser(); + EPApp app = mockApp(); + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + String code ="testNew"; + Mockito.when(externalAccessRolesService.getUser(mockedRequest.getHeader("LOGIN_ID"))).thenReturn((List) user); + Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("UEBKEY")).get(0)).thenReturn(app); + Mockito.when(externalAccessRolesService.deleteCentralRoleFunction(code, app)).thenReturn(true); + portalRestResponse = externalAccessRolesController.deleteRoleFunction(mockedRequest, mockedResponse, code); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void getActiveRolesTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + Mockito.when(externalAccessRolesService.getActiveRoles(mockedRequest.getHeader(uebKey))).thenReturn(null); + List expectedCenRole = externalAccessRolesController.getActiveRoles(mockedRequest, mockedResponse); + assertNull(expectedCenRole); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + @Test + public void getActiveRolesExceptionTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + externalAccessRolesController.getActiveRoles(mockedRequest, mockedResponse); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + /** + * It return JSON string which has error information + * + * @return JSON String + * @throws JsonProcessingException + */ + private String getInvalidKeyJson() throws JsonProcessingException { + final Map uebkeyResponse = new HashMap<>(); + String reason = ""; + ObjectMapper mapper = new ObjectMapper(); + uebkeyResponse.put("error","Invalid uebkey!"); + reason = mapper.writeValueAsString(uebkeyResponse); + return reason; + } + + @Test + public void deleteDependcyRoleRecordExceptionTest() throws Exception { + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Invalid uebkey!"); + expectedportalRestResponse.setResponse("Failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + long roleId = 123; + portalRestResponse = externalAccessRolesController.deleteDependencyRoleRecord(mockedRequest, mockedResponse, roleId); + assertEquals(expectedportalRestResponse, portalRestResponse); + } + + @Test + public void bulkUploadFunctionsTest() throws Exception { + Integer result = 0; + Mockito.when(externalAccessRolesService.bulkUploadFunctions(mockedRequest.getHeader(uebKey))) + .thenReturn(result); + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Successfully added: 0"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + portalRestResponse = externalAccessRolesController.bulkUploadFunctions(mockedRequest, mockedResponse); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void bulkUploadFunctionsExceptionTest() throws Exception { + Mockito.when(externalAccessRolesService.bulkUploadFunctions(mockedRequest.getHeader(uebKey))) + .thenThrow(httpClientErrorException); + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Failed to bulkUploadFunctions"); + expectedportalRestResponse.setResponse("Failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + portalRestResponse = externalAccessRolesController.bulkUploadFunctions(mockedRequest, mockedResponse); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void bulkUploadRolesTest() throws Exception { + Integer result = 0; + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Successfully added: 0"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + Mockito.when(externalAccessRolesService.bulkUploadRoles(mockedRequest.getHeader(uebKey))).thenReturn(result); + portalRestResponse = externalAccessRolesController.bulkUploadRoles(mockedRequest, mockedResponse); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void bulkUploadRolesTestException() throws Exception { + Mockito.when(externalAccessRolesService.bulkUploadRoles(mockedRequest.getHeader(uebKey))) + .thenThrow(httpClientErrorException); + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Failed to bulkUploadRoles"); + expectedportalRestResponse.setResponse("Failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + portalRestResponse = externalAccessRolesController.bulkUploadRoles(mockedRequest, mockedResponse); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void bulkUploadRoleFunctionsTest() throws Exception { + Integer result = 0; + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Successfully added: 0"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + Mockito.when(externalAccessRolesService.bulkUploadRolesFunctions(mockedRequest.getHeader(uebKey))) + .thenReturn(result); + portalRestResponse = externalAccessRolesController.bulkUploadRoleFunctions(mockedRequest, mockedResponse); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void bulkUploadRoleFunctionsException() throws Exception { + Mockito.when(externalAccessRolesService.bulkUploadRolesFunctions(mockedRequest.getHeader(uebKey))) + .thenThrow(httpClientErrorException); + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Failed to bulkUploadRoleFunctions"); + expectedportalRestResponse.setResponse("Failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + portalRestResponse = externalAccessRolesController.bulkUploadRoleFunctions(mockedRequest, mockedResponse); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void bulkUploadUserRolesTest() throws Exception { + Integer result = 0; + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Successfully added: 0"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + Mockito.when(externalAccessRolesService.bulkUploadUserRoles(mockedRequest.getHeader(uebKey))) + .thenReturn(result); + portalRestResponse = externalAccessRolesController.bulkUploadUserRoles(mockedRequest, mockedResponse); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void bulkUploadUserRolesExceptionTest() throws Exception { + Mockito.when(externalAccessRolesService.bulkUploadUserRoles(mockedRequest.getHeader(uebKey))) + .thenThrow(httpClientErrorException); + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Failed to bulkUploadUserRoles"); + expectedportalRestResponse.setResponse("Failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + portalRestResponse = externalAccessRolesController.bulkUploadUserRoles(mockedRequest, mockedResponse); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void bulkUploadPartnerFunctionsTest() throws Exception { + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Successfully added"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + portalRestResponse = externalAccessRolesController.bulkUploadPartnerFunctions(mockedRequest, mockedResponse, null); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + + @Test + public void bulkUploadPartnerRolesTest() throws Exception { + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Successfully added"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + List upload = new ArrayList<>(); + portalRestResponse = externalAccessRolesController.bulkUploadPartnerRoles(mockedRequest, mockedResponse, + upload); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void bulkUploadPartnerRolesExceptionTest() throws Exception + { + ExternalAccessRolesService externalAccessRolesService = null; + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Successfully added"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + List upload = new ArrayList<>(); + portalRestResponse = externalAccessRolesController.bulkUploadPartnerRoles(mockedRequest, mockedResponse, + upload); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void getMenuFunctionsTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + Mockito.when(externalAccessRolesService.getMenuFunctionsList(mockedRequest.getHeader(uebKey))) + .thenReturn(null); + List expectedFunctionsList = externalAccessRolesController.getMenuFunctions(mockedRequest, + mockedResponse); + assertNull(expectedFunctionsList); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + @Test + public void getMenuFunctionsExceptionTest() throws Exception { + String reason = getInvalidKeyJson(); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + Mockito.when(externalAccessRolesService.getMenuFunctionsList(mockedRequest.getHeader(uebKey))) + .thenThrow(httpClientErrorException); + assertNull(externalAccessRolesController.getMenuFunctions(mockedRequest, mockedResponse)); + String result = sw.getBuffer().toString().trim(); + assertEquals(reason, result); + } + + + @Test + public void saveRoleExceptionTest() throws Exception { + Role role = new Role(); + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Invalid uebkey!"); + expectedportalRestResponse.setResponse("Failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + List upload = new ArrayList<>(); + portalRestResponse = externalAccessRolesController.saveRole(mockedRequest, mockedResponse,role); + + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void deleteRoleExceptionTest() throws Exception { + String role = "TestNew"; + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Invalid uebkey!"); + expectedportalRestResponse.setResponse("Failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + portalRestResponse = externalAccessRolesController.deleteRole(mockedRequest, mockedResponse,role); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + + @Test + public void bulkUploadPartnerRoleFunctionsTest() throws Exception { + PortalRestResponse portalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Successfully added"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + List upload = new ArrayList<>(); + portalRestResponse = externalAccessRolesController.bulkUploadPartnerRoleFunctions(mockedRequest, mockedResponse,upload); + assertEquals(portalRestResponse, expectedportalRestResponse); + } + + @Test + public void getUsersOfApplicationTest() throws Exception + { + List users = new ArrayList<>(); + EcompUser user = new EcompUser(); + user.setOrgUserId("guestT"); + users.add(user); + Mockito.when(externalAccessRolesService.getAllAppUsers(mockedRequest.getHeader(uebKey))).thenReturn(users); + List expectedUsers = externalAccessRolesController.getUsersOfApplication(mockedRequest, mockedResponse); + assertEquals(expectedUsers, users); + } + + @Test(expected = Exception.class) + public void getUsersOfApplicationExceptionTest() throws Exception + { + List users = new ArrayList<>(); + EcompUser user = new EcompUser(); + user.setOrgUserId("guestT"); + users.add(user); + Mockito.when(externalAccessRolesService.getAllAppUsers(mockedRequest.getHeader(uebKey))).thenThrow(nullPointerException); + assertNull(externalAccessRolesController.getUsersOfApplication(mockedRequest, mockedResponse)); + } + + @Test(expected = NullPointerException.class) + public void deleteRoleV2Test() throws Exception + { + List applicationList = new ArrayList(); + EPApp app = mockApp(); + applicationList.add(app); + Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); + ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(true, "Success"); + Mockito.when(externalAccessRolesService.deleteDependencyRoleRecord(Matchers.anyLong(),Matchers.anyString(),Matchers.anyString())).thenReturn(externalRequestFieldsValidator); + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Successfully Deleted"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + PortalRestResponse actualResponse = externalAccessRolesController.deleteRole(mockedRequest, mockedResponse, (long)1); + assertNull(actualResponse); + } + + @Test + public void deleteRoleV2InvalidUebKeyTest() throws Exception + { + List applicationList = new ArrayList(); + EPApp app = mockApp(); + applicationList.add(app); + Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenThrow(new Exception("Invalid uebkey!")); + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Invalid uebkey!"); + expectedportalRestResponse.setResponse("Failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + PortalRestResponse actualResponse = externalAccessRolesController.deleteRole(mockedRequest, mockedResponse, (long)1); + assertEquals(actualResponse, expectedportalRestResponse); + } + + @Test + public void deleteRoleV2InvalidUebKeyWithDiffErrorTest() throws Exception + { + List applicationList = new ArrayList(); + EPApp app = mockApp(); + applicationList.add(app); + Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenThrow(new Exception("test")); + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("test"); + expectedportalRestResponse.setResponse("Failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + PortalRestResponse actualResponse = externalAccessRolesController.deleteRole(mockedRequest, mockedResponse, (long)1); + assertEquals(actualResponse, expectedportalRestResponse); + } + + + @Test(expected = NullPointerException.class) + public void deleteRoleV2ExceptionTest() throws Exception + { + List applicationList = new ArrayList(); + EPApp app = mockApp(); + applicationList.add(app); + Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); + ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(false, "failed"); + Mockito.when(externalAccessRolesService.deleteDependencyRoleRecord(Matchers.anyLong(),Matchers.anyString(),Matchers.anyString())).thenReturn(externalRequestFieldsValidator); + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Failed to deleteRole"); + expectedportalRestResponse.setResponse("Failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + PortalRestResponse actualResponse = externalAccessRolesController.deleteRole(mockedRequest, mockedResponse, (long)1); + assertEquals(actualResponse, null); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ExternalAppsRestfulControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ExternalAppsRestfulControllerTest.java new file mode 100644 index 00000000..ae2497e4 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ExternalAppsRestfulControllerTest.java @@ -0,0 +1,211 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.ExternalAppsRestfulController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.AdminRolesServiceImpl; +import org.onap.portalapp.portal.service.EPLoginService; +import org.onap.portalapp.portal.service.EPLoginServiceImpl; +import org.onap.portalapp.portal.service.EPRoleService; +import org.onap.portalapp.portal.service.EPRoleServiceImpl; +import org.onap.portalapp.portal.service.FunctionalMenuService; +import org.onap.portalapp.portal.service.FunctionalMenuServiceImpl; +import org.onap.portalapp.portal.service.UserNotificationService; +import org.onap.portalapp.portal.service.UserNotificationServiceImpl; +import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.DataAccessServiceImpl; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.slf4j.MDC; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ MDC.class, EPCommonSystemProperties.class }) +public class ExternalAppsRestfulControllerTest { + + @InjectMocks + ExternalAppsRestfulController externalAppsRestfulController = new ExternalAppsRestfulController(); + @Mock + FunctionalMenuService functionalMenuService = new FunctionalMenuServiceImpl(); + + @Mock + EPLoginService epLoginService = new EPLoginServiceImpl(); + + @Mock + AdminRolesService adminRolesService = new AdminRolesServiceImpl(); + + @Mock + UserNotificationService userNotificationService = new UserNotificationServiceImpl(); + + @Mock + EPRoleService epRoleService = new EPRoleServiceImpl(); + + @Mock + EcompPortalUtils EcompPortalUtils = new EcompPortalUtils(); + + @Mock + DataAccessService DataAccessService = new DataAccessServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + MockEPUser mockUser = new MockEPUser(); + + @Test(expected = Exception.class) + public void getFunctionalMenuItemsForUserIfUSerNullTest() throws + Exception + { + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(MDC.class); + EPUser epUser = null; + String loginId = "guestT"; + Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); + Mockito.when(epLoginService.findUserWithoutPwd(loginId)).thenReturn(epUser); + externalAppsRestfulController.getFunctionalMenuItemsForUser(mockedRequest, + mockedResponse); + } + + @Test + public void getFunctionalMenuItemsForUserIfSuperAdminTest() throws Exception { + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(MDC.class); + EPUser epUser = mockUser.mockEPUser(); + epUser.setId((long) 1); + epUser.setLoginId("guestT"); + String loginId = "guestT"; + Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); + Mockito.when(epLoginService.findUserWithoutPwd(loginId)).thenReturn(epUser); + List expectedList = new ArrayList(); + FunctionalMenuItem functionalMenuItem = new FunctionalMenuItem(); + expectedList.add(functionalMenuItem); + Mockito.when(mockedRequest.getHeader("LoginId")).thenReturn("guestT"); + Mockito.when(adminRolesService.isSuperAdmin(epUser)).thenReturn(true); + Mockito.when(functionalMenuService.getFunctionalMenuItems()).thenReturn(expectedList); + List actualList = externalAppsRestfulController.getFunctionalMenuItemsForUser(mockedRequest, + mockedResponse); + assertNull(actualList.get(0).menuId); + } + + @Test + public void getFunctionalMenuItemsForUserTest() throws Exception { + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(MDC.class); + EPUser epUser = mockUser.mockEPUser(); + epUser.setId((long) 1); + epUser.setLoginId("guestT"); + String loginId = "guestT"; + Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); + Mockito.when(epLoginService.findUserWithoutPwd(loginId)).thenReturn(epUser); + List expectedList = new ArrayList(); + FunctionalMenuItem functionalMenuItem = new FunctionalMenuItem(); + expectedList.add(functionalMenuItem); + Mockito.when(mockedRequest.getHeader("LoginId")).thenReturn("guestT"); + Mockito.when(adminRolesService.isSuperAdmin(epUser)).thenReturn(false); + Mockito.when(functionalMenuService.getFunctionalMenuItemsForUser(epUser.getOrgUserId())) + .thenReturn(expectedList); + List actualList = externalAppsRestfulController.getFunctionalMenuItemsForUser(mockedRequest, + mockedResponse); + assertNull(actualList.get(0).menuId); + } + + @Test(expected = Exception.class) + public void getFavoritesForUserIfUserNullTest() throws Exception { + List favorites = new ArrayList(); + FavoritesFunctionalMenuItemJson favoritesFunctionalMenuItemJson = new FavoritesFunctionalMenuItemJson(); + favorites.add(favoritesFunctionalMenuItemJson); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(MDC.class); + Mockito.when(mockedRequest.getHeader(EPCommonSystemProperties.MDC_LOGIN_ID)).thenReturn("Login_URL"); + Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); + EPUser epUser = null; + externalAppsRestfulController.getFavoritesForUser(mockedRequest, mockedResponse); + } + + @Test + public void getFavoritesForUserTest() throws Exception { + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(MDC.class); + EPUser epUser = mockUser.mockEPUser(); + epUser.setId((long) 1); + epUser.setLoginId("guestT"); + String loginId = "guestT"; + Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); + List favorites = new ArrayList(); + FavoritesFunctionalMenuItemJson favoritesFunctionalMenuItemJson = new FavoritesFunctionalMenuItemJson(); + favorites.add(favoritesFunctionalMenuItemJson); + Mockito.when(mockedRequest.getHeader(EPCommonSystemProperties.MDC_LOGIN_ID)).thenReturn("Login_URL"); + Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); + Mockito.when(epLoginService.findUserWithoutPwd("Login_URL")).thenReturn(epUser); + Mockito.when(functionalMenuService.getFavoriteItems(epUser.getId())).thenReturn(favorites); + List actaulFavorites = externalAppsRestfulController + .getFavoritesForUser(mockedRequest, mockedResponse); + assertEquals(actaulFavorites.size(), 1); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/FunctionalMenuControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/FunctionalMenuControllerTest.java new file mode 100644 index 00000000..488717ca --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/FunctionalMenuControllerTest.java @@ -0,0 +1,607 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.mockito.runners.MockitoJUnitRunner; +import org.onap.portalapp.portal.controller.FunctionalMenuController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.AdminRolesServiceImpl; +import org.onap.portalapp.portal.service.FunctionalMenuService; +import org.onap.portalapp.portal.service.FunctionalMenuServiceImpl; +import org.onap.portalapp.portal.service.SearchService; +import org.onap.portalapp.portal.transport.BusinessCardApplicationRole; +import org.onap.portalapp.portal.transport.BusinessCardApplicationRolesList; +import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItem; +import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; +import org.onap.portalapp.portal.transport.FunctionalMenuItemWithRoles; +import org.onap.portalapp.portal.transport.FieldsValidator.FieldName; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(SystemProperties.class) +public class FunctionalMenuControllerTest extends MockitoTestSuite { + + String userid = "ab1234"; + + @Mock + FunctionalMenuService functionalMenuService = new FunctionalMenuServiceImpl(); + + @InjectMocks + FunctionalMenuController functionalMenuController = new FunctionalMenuController(); + + @Mock + private DataAccessService dataAccessService; + + @Mock + SearchService searchService; + + @Mock + AdminRolesService adminRolesService = new AdminRolesServiceImpl(); + + NullPointerException nullPointerException = new NullPointerException(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + + @InjectMocks + EPUserUtils ePUserUtils = new EPUserUtils(); + + @Mock + EPUser epuser; + + MockEPUser mockUser = new MockEPUser(); + + List appRoles = new ArrayList(); + List appRolesActual = new ArrayList(); + + List userAppRoleList = new ArrayList(); + + public List mockBusinessCardApplicationRole() { + List userAppRoleList = new ArrayList(); + + BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole(); + businessCardApplicationRole.setRoleName("ADMIN"); + businessCardApplicationRole.setAppName("ASDC"); + + BusinessCardApplicationRole businessCardApplicationRole1 = new BusinessCardApplicationRole(); + businessCardApplicationRole1.setAppName("ASDC"); + businessCardApplicationRole1.setRoleName("Tester"); + + userAppRoleList.add(businessCardApplicationRole); + userAppRoleList.add(businessCardApplicationRole1); + return userAppRoleList; + } + + public List mockBusinessCardApplicationRolesList() { + List appRolesActual = new ArrayList(); + + BusinessCardApplicationRolesList businessCardApplicationRolesList = new BusinessCardApplicationRolesList(); + businessCardApplicationRolesList.setAppName("ASDC"); + + List roleNames = new ArrayList(); + roleNames.add("ADMIN"); + roleNames.add("Tester"); + businessCardApplicationRolesList.setRoleNames(roleNames); + + appRolesActual.add(businessCardApplicationRolesList); + return appRolesActual; + } + + @Test + public void getAppListTestIfAppAlredyExistsBusinessCardApplicationRolesList() throws IOException { + + userAppRoleList = mockBusinessCardApplicationRole(); + appRolesActual = mockBusinessCardApplicationRolesList(); + + Mockito.when(functionalMenuService.getUserAppRolesList(userid)).thenReturn(userAppRoleList); + + appRoles = functionalMenuController.getAppList(mockedRequest, userid); + + assertEquals(appRolesActual.size(), appRoles.size()); + assertEquals(appRolesActual.get(0).getAppName(), appRoles.get(0).getAppName()); + assertEquals(appRolesActual.get(0).getRoleNames(), appRoles.get(0).getRoleNames()); + + } + + @Test + public void getAppListTestIfAppDoesnotExistsInBusinessCardApplicationRolesList() throws IOException { + + userAppRoleList = mockBusinessCardApplicationRole(); + BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole(); + businessCardApplicationRole.setAppName("CCD"); + businessCardApplicationRole.setRoleName("ADMIN"); + userAppRoleList.add(businessCardApplicationRole); + appRolesActual = mockBusinessCardApplicationRolesList(); + BusinessCardApplicationRolesList businessCardApplicationRolesList = new BusinessCardApplicationRolesList(); + businessCardApplicationRolesList.setAppName("CCD"); + List roleNames1 = new ArrayList(); + roleNames1.add("ADMIN"); + businessCardApplicationRolesList.setRoleNames(roleNames1); + appRolesActual.add(businessCardApplicationRolesList); + Mockito.when(functionalMenuService.getUserAppRolesList(userid)).thenReturn(userAppRoleList); + appRoles = functionalMenuController.getAppList(mockedRequest, userid); + assertEquals(appRolesActual.size(), appRoles.size()); + assertEquals(appRolesActual.get(0).getAppName(), appRoles.get(0).getAppName()); + assertEquals(appRolesActual.get(0).getRoleNames(), appRoles.get(0).getRoleNames()); + assertEquals(appRolesActual.get(1).getAppName(), appRoles.get(1).getAppName()); + assertEquals(appRolesActual.get(1).getRoleNames(), appRoles.get(1).getRoleNames()); + + } + + @Test + public void regenerateAncestorTableTest() { + EPUser user = mockUser.mockEPUser(); + + HttpSession session = mockedRequest.getSession(); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + FieldsValidator acutualFieldValidator = null; + FieldsValidator expectedFieldValidator = new FieldsValidator(); + List fields = new ArrayList<>(); + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(fields); + expectedFieldValidator.setErrorCode(null); + Mockito.when(!adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(functionalMenuService.regenerateAncestorTable()).thenReturn(expectedFieldValidator); + acutualFieldValidator = functionalMenuController.regenerateAncestorTable(mockedRequest, mockedResponse); + assertTrue(acutualFieldValidator.equals(expectedFieldValidator)); + } + + @Test + public void getMenuItemsExceptionTest(){ + List actualmenuItems = null; + List expectedmenuItems = null; + + Mockito.when(functionalMenuController.getMenuItemsForAuthUser(mockedRequest, mockedResponse)).thenThrow(nullPointerException); + actualmenuItems = functionalMenuController.getMenuItemsForAuthUser(mockedRequest, mockedResponse); + assertEquals(actualmenuItems, expectedmenuItems); + } + + @Test + public void getFunctionalMenuStaticInfoExceptionTest(){ + String fnMenuStaticactualResponse = null; + String fnMenuStaticexpectedResponse = null; + String orgUserIdStr = null; + + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(searchService.searchUserByUserId(orgUserIdStr)).thenReturn(user); + fnMenuStaticactualResponse = functionalMenuController.getFunctionalMenuStaticInfo(mockedRequest, mockedResponse); + + assertEquals(fnMenuStaticactualResponse, fnMenuStaticexpectedResponse); + + } + + @Test + public void getFunctionalMenuStaticInfoTest(){ + String fnMenuStaticactualResponse = null; + String fnMenuStaticexpectedResponse = "{\"firstName\":\"test\",\"lastName\":\"test\",\"last_login\":\"09/08/2017 03:48:13-0400\",\"userId\":\"guestT\",\"email\":\"test\"}"; + String orgUserIdStr = null; + + EPUser user = mockUser.mockEPUser(); + user.setEmail("test"); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(searchService.searchUserByUserId(orgUserIdStr)).thenReturn(user); + fnMenuStaticactualResponse = functionalMenuController.getFunctionalMenuStaticInfo(mockedRequest, mockedResponse); + assertEquals(fnMenuStaticactualResponse.length(), fnMenuStaticexpectedResponse.length()); + } + + @Test + public void getMenuItemsForAuthUserNullTest(){ + List actualmenuItems = null; + List expectedmenuItems = null; + + actualmenuItems = functionalMenuController.getMenuItemsForAuthUser(mockedRequest, mockedResponse); + assertEquals(actualmenuItems, expectedmenuItems); + } + + @Test + public void getMenuItemsForAuthUserIsSuperAdminTest(){ + List actualmenuItems = null; + List expectedmenuItems = new ArrayList(); + EPUser user = mockUser.mockEPUser(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + + actualmenuItems = functionalMenuController.getMenuItemsForAuthUser(mockedRequest, mockedResponse); + assertEquals(actualmenuItems, expectedmenuItems); + } + + @Test + public void getMenuItemsForAuthUserTest(){ + List actualmenuItems = null; + List expectedmenuItems = new ArrayList(); + EPUser user = mockUser.mockEPUser(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + + actualmenuItems = functionalMenuController.getMenuItemsForAuthUser(mockedRequest, mockedResponse); + assertEquals(actualmenuItems, expectedmenuItems); + } + + @Test + public void getFunctionalMenuItemDetailsBadPermissionTest(){ + Long menuId = 1234L; + FunctionalMenuItem actualmenuItem = null; + FunctionalMenuItem expectedmenuItem = null; + EPUser user = mockUser.mockEPUser(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + + actualmenuItem = functionalMenuController.getFunctionalMenuItemDetails(mockedRequest, menuId, mockedResponse); + assertEquals(actualmenuItem, expectedmenuItem); + } + + @Test + public void getFunctionalMenuItemDetailsExceptionTest(){ + Long menuId = 1234L; + FunctionalMenuItem actualmenuItem = null; + FunctionalMenuItem expectedmenuItem = null; + EPUser user = mockUser.mockEPUser(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(functionalMenuService.getFunctionalMenuItemDetails(menuId)).thenThrow(nullPointerException); + + actualmenuItem = functionalMenuController.getFunctionalMenuItemDetails(mockedRequest, menuId, mockedResponse); + assertEquals(actualmenuItem, expectedmenuItem); + } + + @Test + public void getFunctionalMenuItemDetailsTest(){ + Long menuId = 1234L; + FunctionalMenuItem actualmenuItem = null; + FunctionalMenuItem expectedmenuItem = null; + EPUser user = mockUser.mockEPUser(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(functionalMenuService.getFunctionalMenuItemDetails(menuId)).thenReturn(actualmenuItem); + + actualmenuItem = functionalMenuController.getFunctionalMenuItemDetails(mockedRequest, menuId, mockedResponse); + assertEquals(actualmenuItem, expectedmenuItem); + } + + @Test + public void getMenuItemsForEditingTest(){ + List actualMenuItems = null; + List expectedMenuItems = null; + EPUser user = mockUser.mockEPUser(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(functionalMenuService.getFunctionalMenuItems(true)).thenReturn(actualMenuItems); + + actualMenuItems = functionalMenuController.getMenuItemsForEditing(mockedRequest, mockedResponse); + assertEquals(actualMenuItems, expectedMenuItems); + } + + @Test + public void getMenuItemsForEditingBadPermissionsTest(){ + List actualMenuItems = null; + List expectedMenuItems = null; + EPUser user = mockUser.mockEPUser(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(functionalMenuService.getFunctionalMenuItems(true)).thenReturn(actualMenuItems); + + actualMenuItems = functionalMenuController.getMenuItemsForEditing(mockedRequest, mockedResponse); + assertEquals(actualMenuItems, expectedMenuItems); + } + + @Test + public void getMenuItemsForEditingExceptionTest(){ + List actualMenuItems = null; + List expectedMenuItems = null; + EPUser user = mockUser.mockEPUser(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(functionalMenuService.getFunctionalMenuItems(true)).thenThrow(nullPointerException); + actualMenuItems = functionalMenuController.getMenuItemsForEditing(mockedRequest, mockedResponse); + assertEquals(actualMenuItems, expectedMenuItems); + } + + @Test + public void getMenuItemsForNotificationsExceptionTest(){ + List actualMenuItems = null; + List expectedMenuItems = null; + Mockito.when(functionalMenuService.getFunctionalMenuItemsForNotificationTree(true)).thenThrow(nullPointerException); + + actualMenuItems = functionalMenuController.getMenuItemsForNotifications(mockedRequest, mockedResponse); + assertEquals(actualMenuItems, expectedMenuItems); + } + @Test + public void getMenuItemsForNotificationsTest(){ + List actualMenuItems = null; + List expectedMenuItems = new ArrayList(); + Mockito.when(functionalMenuService.getFunctionalMenuItemsForNotificationTree(false)).thenReturn(actualMenuItems); + + actualMenuItems = functionalMenuController.getMenuItemsForNotifications(mockedRequest, mockedResponse); + assertEquals(actualMenuItems, expectedMenuItems); + } + + @Test + public void getMenuItemsForAppTest(){ + Integer appId = 1234; + List actualMenuItems = null; + List expectedMenuItems = null; + Mockito.when(functionalMenuService.getFunctionalMenuItemsForApp(appId)).thenReturn(actualMenuItems); + + actualMenuItems = functionalMenuController.getMenuItemsForApp(mockedRequest, appId); + assertEquals(actualMenuItems, expectedMenuItems); + } + + @Test + public void getMenuItemsForAppExceptionTest(){ + Integer appId = 1234; + List actualMenuItems = null; + List expectedMenuItems = null; + Mockito.when(functionalMenuService.getFunctionalMenuItemsForApp(appId)).thenThrow(nullPointerException); + + actualMenuItems = functionalMenuController.getMenuItemsForApp(mockedRequest, appId); + assertEquals(actualMenuItems, expectedMenuItems); + } + + @Test + public void getMenuItemsForUserTest(){ + String orgUserId ="test"; + List actualMenuItems = null; + List expectedMenuItems = null; + Mockito.when(functionalMenuService.getFunctionalMenuItemsForUser(orgUserId)).thenReturn(actualMenuItems); + + actualMenuItems = functionalMenuController.getMenuItemsForUser(mockedRequest, orgUserId); + assertEquals(actualMenuItems, expectedMenuItems); + } + + @Test + public void getMenuItemsForUserExceptionTest(){ + String orgUserId ="test"; + List actualMenuItems = null; + List expectedMenuItems = null; + Mockito.when(functionalMenuService.getFunctionalMenuItemsForUser(orgUserId)).thenThrow(nullPointerException); + + actualMenuItems = functionalMenuController.getMenuItemsForUser(mockedRequest, orgUserId); + assertEquals(actualMenuItems, expectedMenuItems); + } + + @Test + public void createFunctionalMenuItemTest(){ + FieldsValidator actualFieldsValidator = new FieldsValidator(); + FieldsValidator expectedFieldsValidator = new FieldsValidator(); + List fields = new ArrayList<>(); + expectedFieldsValidator.setHttpStatusCode((long) 200); + expectedFieldsValidator.setFields(fields); + expectedFieldsValidator.setErrorCode(null); + FunctionalMenuItemWithRoles menuItemJson = new FunctionalMenuItemWithRoles(); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(functionalMenuService.createFunctionalMenuItem(menuItemJson)).thenReturn(expectedFieldsValidator); + actualFieldsValidator = functionalMenuController.createFunctionalMenuItem(mockedRequest, menuItemJson, mockedResponse); + assertEquals(actualFieldsValidator, expectedFieldsValidator); + } + + @Test + public void createFunctionalMenuItemBadPermisssionsTest(){ + FieldsValidator actualFieldsValidator = null; + FieldsValidator expectedFieldsValidator = null; + FunctionalMenuItemWithRoles menuItemJson = new FunctionalMenuItemWithRoles(); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(functionalMenuService.createFunctionalMenuItem(menuItemJson)).thenReturn(expectedFieldsValidator); + actualFieldsValidator = functionalMenuController.createFunctionalMenuItem(mockedRequest, menuItemJson, mockedResponse); + assertEquals(actualFieldsValidator, expectedFieldsValidator); + } + + @Test + public void getFavoritesForUserTest(){ + List actualFavoritesFunctionalMenuItemsJson = null; + List expectedFunctionalMenuItemsJson = new ArrayList(); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(functionalMenuService.getFavoriteItems(user.getId())).thenReturn(expectedFunctionalMenuItemsJson); + actualFavoritesFunctionalMenuItemsJson = functionalMenuController.getFavoritesForUser(mockedRequest, mockedResponse); + assertEquals(actualFavoritesFunctionalMenuItemsJson, expectedFunctionalMenuItemsJson); + } + + @Test + public void deleteFavoriteItemTest(){ + Long userId = (long)1; + Long menuId = (long)1; + FieldsValidator actualFieldsValidator = new FieldsValidator(); + FieldsValidator expectedFieldsValidator = new FieldsValidator(); + List fields = new ArrayList<>(); + expectedFieldsValidator.setHttpStatusCode((long) 200); + expectedFieldsValidator.setFields(fields); + expectedFieldsValidator.setErrorCode(null); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(functionalMenuService.removeFavoriteItem(user.getId(), menuId)).thenReturn(actualFieldsValidator); + actualFieldsValidator = functionalMenuController.deleteFavoriteItem(mockedRequest, menuId, mockedResponse); + assertEquals(actualFieldsValidator, expectedFieldsValidator); + } + + @Test + public void addFavoriteItemTest(){ + FavoritesFunctionalMenuItem menuItemJson = new FavoritesFunctionalMenuItem(); + FieldsValidator actualFieldsValidator = new FieldsValidator(); + FieldsValidator expectedFieldsValidator = new FieldsValidator(); + List fields = new ArrayList<>(); + expectedFieldsValidator.setHttpStatusCode((long) 200); + expectedFieldsValidator.setFields(fields); + expectedFieldsValidator.setErrorCode(null); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(functionalMenuService.setFavoriteItem(menuItemJson)).thenReturn(actualFieldsValidator); + actualFieldsValidator = functionalMenuController.addFavoriteItem(mockedRequest, menuItemJson, mockedResponse); + assertEquals(actualFieldsValidator, expectedFieldsValidator); + } + + @Test + public void getMenuItemsTest(){ + List actualFunctionalMenuItems = new ArrayList(); + List expectedFunctionalMenuItems = new ArrayList(); + List menuItems = new ArrayList(); + Mockito.when(functionalMenuService.getFunctionalMenuItems()).thenReturn(menuItems); + actualFunctionalMenuItems = functionalMenuController.getMenuItems(mockedRequest, mockedResponse); + assertEquals(actualFunctionalMenuItems, expectedFunctionalMenuItems); + } + + @Test + public void deleteFunctionalMenuItemTest(){ + Long menuId = (long)1; + FieldsValidator actualFieldsValidator = new FieldsValidator(); + FieldsValidator expectedFieldsValidator = new FieldsValidator(); + List fields = new ArrayList<>(); + expectedFieldsValidator.setHttpStatusCode((long) 200); + expectedFieldsValidator.setFields(fields); + expectedFieldsValidator.setErrorCode(null); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(functionalMenuService.deleteFunctionalMenuItem(menuId)).thenReturn(actualFieldsValidator); + actualFieldsValidator = functionalMenuController.deleteFunctionalMenuItem(mockedRequest, menuId, mockedResponse); + assertEquals(actualFieldsValidator, expectedFieldsValidator); + } + + @Test + public void deleteFunctionalMenuItemBadPermissionsTest(){ + Long menuId = (long)1; + FieldsValidator actualFieldsValidator = null; + FieldsValidator expectedFieldsValidator = null; + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(functionalMenuService.deleteFunctionalMenuItem(menuId)).thenReturn(actualFieldsValidator); + actualFieldsValidator = functionalMenuController.deleteFunctionalMenuItem(mockedRequest, menuId, mockedResponse); + assertEquals(actualFieldsValidator, expectedFieldsValidator); + } + + @Test + public void editFunctionalMenuItemTest(){ + FunctionalMenuItemWithRoles menuItemJson = new FunctionalMenuItemWithRoles(); + FieldsValidator actualFieldsValidator = new FieldsValidator(); + FieldsValidator expectedFieldsValidator = new FieldsValidator(); + List fields = new ArrayList<>(); + expectedFieldsValidator.setHttpStatusCode((long) 200); + expectedFieldsValidator.setFields(fields); + expectedFieldsValidator.setErrorCode(null); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(functionalMenuService.editFunctionalMenuItem(menuItemJson)).thenReturn(actualFieldsValidator); + actualFieldsValidator = functionalMenuController.editFunctionalMenuItem(mockedRequest, menuItemJson, mockedResponse); + assertEquals(actualFieldsValidator, expectedFieldsValidator); + } + + @Test + public void editFunctionalMenuItemBadPermissionsTest(){ + FunctionalMenuItemWithRoles menuItemJson = new FunctionalMenuItemWithRoles(); + FieldsValidator actualFieldsValidator = null; + FieldsValidator expectedFieldsValidator = null; + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(functionalMenuService.editFunctionalMenuItem(menuItemJson)).thenReturn(actualFieldsValidator); + actualFieldsValidator = functionalMenuController.editFunctionalMenuItem(mockedRequest, menuItemJson, mockedResponse); + assertEquals(actualFieldsValidator, expectedFieldsValidator); + } + + @Test + public void getECOMPTitleTest(){ + PortalRestResponse actualportalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setStatus(PortalRestStatusEnum.OK); + expectedportalRestResponse.setMessage("success"); + expectedportalRestResponse.setResponse("Portal"); + PowerMockito.mockStatic(SystemProperties.class); + Mockito.when(SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME)).thenReturn("Portal"); + actualportalRestResponse = functionalMenuController.getECOMPTitle(mockedRequest, mockedResponse); + assertEquals(actualportalRestResponse, expectedportalRestResponse); + } + + @Test + public void getECOMPTitleExceptionTest(){ + PortalRestResponse actualportalRestResponse = null; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + expectedportalRestResponse.setMessage(null); + expectedportalRestResponse.setResponse(null); + PowerMockito.mockStatic(SystemProperties.class); + + Mockito.when(SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME)).thenThrow(nullPointerException); + actualportalRestResponse = functionalMenuController.getECOMPTitle(mockedRequest, mockedResponse); + assertEquals(actualportalRestResponse, expectedportalRestResponse); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/GetAccessControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/GetAccessControllerTest.java new file mode 100644 index 00000000..dbe4b7b7 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/GetAccessControllerTest.java @@ -0,0 +1,108 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.GetAccessController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.GetAccessResult; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.GetAccessService; +import org.onap.portalapp.portal.service.GetAccessServiceImpl; +import org.onap.portalapp.util.EPUserUtils; + +public class GetAccessControllerTest { + + @Mock + GetAccessService getAccessService = new GetAccessServiceImpl(); + + @InjectMocks + GetAccessController getAccessController = new GetAccessController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + MockEPUser mockUser = new MockEPUser(); + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + + @Test + public void getAppList() throws IOException + { + List expectedAppsList = new ArrayList(); + EPUser user = mockUser.mockEPUser(); + GetAccessResult getAccessResult = new GetAccessResult(); + getAccessResult.setRowId("1"); + getAccessResult.setRoleId((long) 1); + getAccessResult.setEcompFunction("test"); + getAccessResult.setAppName("Test_App"); + getAccessResult.setAppMotsId(1); + getAccessResult.setRoleName("Test_role"); + getAccessResult.setRoleActive("N"); + getAccessResult.setReqType("test"); + + expectedAppsList.add(getAccessResult); + + List actualAppsList = null; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(getAccessService.getAppAccessList(user)).thenReturn(expectedAppsList); + actualAppsList = getAccessController.getAppList(mockedRequest); + assertTrue(actualAppsList.contains(getAccessResult)); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ManifestControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ManifestControllerTest.java new file mode 100644 index 00000000..fdab8151 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ManifestControllerTest.java @@ -0,0 +1,93 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.jar.Attributes; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.ManifestController; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.ManifestService; +import org.onap.portalapp.portal.service.ManifestServiceImpl; + +public class ManifestControllerTest extends MockitoTestSuite{ + + + @Mock + ManifestService manifestService = new ManifestServiceImpl(); + + @InjectMocks + ManifestController manifestController = new ManifestController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + NullPointerException nullPointerException = new NullPointerException(); + + @Test + public void getManifestTest() throws IOException + { + Map expectedResponse = new HashMap(); + Attributes attributes = new Attributes(); + expectedResponse.put("test", attributes); + Mockito.when(manifestService.getWebappManifest()).thenReturn(attributes); + Map actualResponse = manifestController.getManifest(mockedRequest); + assertTrue((actualResponse.keySet().toArray().length) == 1); + + } + + @Test + public void getManifestExceptionTest() throws IOException + { + Mockito.when(manifestService.getWebappManifest()).thenThrow(nullPointerException); + Map actualResponse = manifestController.getManifest(mockedRequest); + assertTrue((actualResponse.keySet().toArray().length) == 1); + assertTrue(actualResponse.get("error").equals("failed to get manifest: java.lang.NullPointerException")); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/MicroserviceControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/MicroserviceControllerTest.java new file mode 100644 index 00000000..e6e9f759 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/MicroserviceControllerTest.java @@ -0,0 +1,272 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.MicroserviceController; +import org.onap.portalapp.portal.domain.MicroserviceData; +import org.onap.portalapp.portal.domain.WidgetCatalog; +import org.onap.portalapp.portal.domain.WidgetServiceHeaders; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.ConsulHealthService; +import org.onap.portalapp.portal.service.ConsulHealthServiceImpl; +import org.onap.portalapp.portal.service.MicroserviceService; +import org.onap.portalapp.portal.service.MicroserviceServiceImpl; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({WidgetServiceHeaders.class, EcompPortalUtils.class}) +public class MicroserviceControllerTest extends MockitoTestSuite{ + + @InjectMocks + MicroserviceController microserviceController = new MicroserviceController(); + + @Mock + ConsulHealthService consulHealthService = new ConsulHealthServiceImpl(); + + @Mock + MicroserviceService microserviceService = new MicroserviceServiceImpl(); + + @Mock + RestTemplate template = new RestTemplate(); + + @Mock + MicroserviceData microserviceData = new MicroserviceData(); + + @SuppressWarnings("rawtypes") + @Mock + ResponseEntity> ans = new ResponseEntity>(HttpStatus.OK); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @Mock + EcompPortalUtils EcompPortalUtils = new EcompPortalUtils(); + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Test + public void createMicroserviceIfServiceDataNullTest() throws Exception { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("FAILURE"); + expectedportalRestResponse.setResponse("MicroserviceData cannot be null or empty"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + MicroserviceData microserviceData = null; + PortalRestResponse actualportalRestResponse = microserviceController.createMicroservice(mockedRequest, + mockedResponse, microserviceData); + assertEquals(actualportalRestResponse, expectedportalRestResponse); + } + + @Test + public void createMicroserviceTest() throws Exception { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("SUCCESS"); + expectedportalRestResponse.setResponse(""); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + PortalRestResponse actualportalRestResponse = microserviceController.createMicroservice(mockedRequest, + mockedResponse, microserviceData); + assertEquals(actualportalRestResponse, expectedportalRestResponse); + } + + @Test + public void createMicroserviceExceptionTest() throws Exception { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("FAILURE"); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + Mockito.when(microserviceService.saveMicroservice(microserviceData)).thenReturn((long) 1); + Mockito.when(microserviceData.getParameterList()).thenThrow(nullPointerException); + PortalRestResponse actualportalRestResponse = microserviceController.createMicroservice(mockedRequest, + mockedResponse, microserviceData); + assertEquals(actualportalRestResponse, expectedportalRestResponse); + } + + @Test + public void getMicroserviceTest() throws Exception { + Mockito.when(microserviceService.getMicroserviceData()).thenReturn(null); + List list = microserviceController.getMicroservice(mockedRequest, mockedResponse); + assertEquals(list, null); + } + + @Test + public void updateMicroserviceIfServiceISNullTest() throws Exception { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("FAILURE"); + expectedportalRestResponse.setResponse("MicroserviceData cannot be null or empty"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + MicroserviceData microserviceData = null; + PortalRestResponse actualportalRestResponse = microserviceController.updateMicroservice(mockedRequest, + mockedResponse, 1, microserviceData); + assertEquals(actualportalRestResponse, expectedportalRestResponse); + } + + @Test + public void updateMicroserviceTest() throws Exception { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("SUCCESS"); + expectedportalRestResponse.setResponse(""); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + PortalRestResponse actualportalRestResponse = microserviceController.updateMicroservice(mockedRequest, + mockedResponse, 1, microserviceData); + assertEquals(actualportalRestResponse, expectedportalRestResponse); + } + + @Test + public void updateMicroserviceExceptionTest() throws Exception { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("FAILURE"); + expectedportalRestResponse.setResponse(null); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + Mockito.when(microserviceController.updateMicroservice(mockedRequest, mockedResponse, 1, microserviceData)) + .thenThrow(nullPointerException); + PortalRestResponse actualportalRestResponse = microserviceController.updateMicroservice(mockedRequest, + mockedResponse, 1, microserviceData); + assertEquals(actualportalRestResponse, expectedportalRestResponse); + } + + @Test + public void deleteMicroserviceExceptionTest() throws Exception { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("FAILURE"); + PowerMockito.mockStatic(EcompPortalUtils.class); + expectedportalRestResponse.setResponse( + "I/O error on GET request for \"" + EcompPortalUtils.widgetMsProtocol() + "://null/widget/microservices/widgetCatalog/service/1\":null; nested exception is java.net.UnknownHostException: null"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + PowerMockito.mockStatic(WidgetServiceHeaders.class); + PortalRestResponse actuaPportalRestResponse = microserviceController.deleteMicroservice(mockedRequest, + mockedResponse, 1); + assertEquals(actuaPportalRestResponse.getStatus(), expectedportalRestResponse.getStatus()); + } + + @SuppressWarnings("unchecked") + @Test + public void deleteMicroserviceTest() throws Exception { + String HTTPS = "https://"; + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("SOME WIDGETS ASSOICATE WITH THIS SERVICE"); + expectedportalRestResponse.setResponse("'null' ,'null' "); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.WARN); + List List = new ArrayList(); + WidgetCatalog widgetCatalog = new WidgetCatalog(); + widgetCatalog.setId(1); + WidgetCatalog widgetCatalog1 = new WidgetCatalog(); + widgetCatalog.setId(2); + List.add(widgetCatalog); + List.add(widgetCatalog1); + PowerMockito.mockStatic(WidgetServiceHeaders.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + String whatService = "widgets-service"; + Mockito.when(consulHealthService.getServiceLocation(whatService, SystemProperties.getProperty("microservices.widget.local.port"))).thenReturn("Test"); + Mockito.when(ans.getBody()).thenReturn(List); + ParameterizedTypeReference> typeRef = new ParameterizedTypeReference>() { + }; + Mockito.when(template.exchange( + EcompPortalUtils.widgetMsProtocol() + "://" + consulHealthService.getServiceLocation(whatService, SystemProperties.getProperty("microservices.widget.local.port")) + + "/widget/microservices/widgetCatalog/service/" + 1, + HttpMethod.GET, new HttpEntity(WidgetServiceHeaders.getInstance()), typeRef)).thenReturn(ans); + + PortalRestResponse actuaPportalRestResponse = microserviceController.deleteMicroservice(mockedRequest, + mockedResponse, 1); + assertEquals(actuaPportalRestResponse, expectedportalRestResponse); + } + + @SuppressWarnings("unchecked") + @Test + public void deleteMicroserviceWhenNoWidgetsAssociatedTest() throws Exception { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("SUCCESS"); + expectedportalRestResponse.setResponse(""); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + List List = new ArrayList(); + PowerMockito.mockStatic(WidgetServiceHeaders.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + String whatService = "widgets-service"; + Mockito.when(consulHealthService.getServiceLocation(whatService, SystemProperties.getProperty("microservices.widget.local.port"))).thenReturn("Test"); + Mockito.when(ans.getBody()).thenReturn(List); + ParameterizedTypeReference> typeRef = new ParameterizedTypeReference>() { + }; + Mockito.when(template.exchange( + EcompPortalUtils.widgetMsProtocol() + "://" + consulHealthService.getServiceLocation(whatService, SystemProperties.getProperty("microservices.widget.local.port")) + + "/widget/microservices/widgetCatalog/service/" + 1, + HttpMethod.GET, new HttpEntity(WidgetServiceHeaders.getInstance()), typeRef)).thenReturn(ans); + PortalRestResponse actuaPportalRestResponse = microserviceController.deleteMicroservice(mockedRequest, + mockedResponse, 1); + assertEquals(actuaPportalRestResponse, expectedportalRestResponse); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/MicroserviceProxyControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/MicroserviceProxyControllerTest.java new file mode 100644 index 00000000..446c11c4 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/MicroserviceProxyControllerTest.java @@ -0,0 +1,143 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertTrue; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.onap.portalapp.portal.controller.MicroserviceProxyController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.MicroserviceProxyService; +import org.onap.portalapp.portal.service.MicroserviceProxyServiceImpl; +import org.onap.portalapp.util.EPUserUtils; +import org.springframework.http.HttpStatus; +import org.springframework.web.client.HttpClientErrorException; + +import com.fasterxml.jackson.databind.ObjectMapper; + + + +public class MicroserviceProxyControllerTest extends MockitoTestSuite { + + @Mock + MicroserviceProxyService microserviceProxyService = new MicroserviceProxyServiceImpl(); + + @InjectMocks + MicroserviceProxyController microserviceProxyController = new MicroserviceProxyController(); + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Mock + EPUserUtils ePUserUtils = new EPUserUtils(); + @Mock + ObjectMapper objectMapper = new ObjectMapper(); + MockEPUser mockUser = new MockEPUser(); + + @Test + public void getMicroserviceProxyTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(microserviceProxyService.proxyToDestination(1, user, mockedRequest)).thenReturn("Success"); + String acutualString = microserviceProxyController.getMicroserviceProxy(mockedRequest, getMockedResponse(), 1); + assertTrue(acutualString.equals("{\"error\":\"Success\"}")); + } + + @Test(expected = NullPointerException.class) + public void getMicroserviceProxyNullPoniterExceptionTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(microserviceProxyService.proxyToDestination(1, user, mockedRequest)) + .thenThrow(nullPointerException); + microserviceProxyController.getMicroserviceProxy(mockedRequest, getMockedResponse(), 1); + } + + @Test + public void getMicroserviceProxyExceptionTest() throws Exception { + HttpClientErrorException httpClientErrorException = new HttpClientErrorException(HttpStatus.OK, "Success"); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(microserviceProxyService.proxyToDestination(1, user, mockedRequest)) + .thenThrow(httpClientErrorException); + String acutualString = microserviceProxyController.getMicroserviceProxy(mockedRequest, getMockedResponse(), 1); + assertTrue(acutualString.equals("{\"error\":\"\"}")); + } + + @Test + public void getMicroserviceProxyByWidgetIdTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(microserviceProxyService.proxyToDestinationByWidgetId(1, user, mockedRequest)) + .thenReturn("Success"); + String acutualString = microserviceProxyController.getMicroserviceProxyByWidgetId(mockedRequest, + getMockedResponse(), 1); + assertTrue(acutualString.equals("{\"error\":\"Success\"}")); + } + + @Test(expected = NullPointerException.class) + public void getMicroserviceProxyByWidgetIdNullPointerExceptionTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(microserviceProxyService.proxyToDestinationByWidgetId(1, user, mockedRequest)) + .thenThrow(nullPointerException); + microserviceProxyController.getMicroserviceProxyByWidgetId(mockedRequest, getMockedResponse(), 1); + } + + @Test + public void getMicroserviceProxyByWidgetIdExceptionTest() throws Exception { + HttpClientErrorException httpClientErrorException = new HttpClientErrorException(HttpStatus.OK, "Success"); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(microserviceProxyService.proxyToDestinationByWidgetId(1, user, mockedRequest)) + .thenThrow(httpClientErrorException); + String acutualString = microserviceProxyController.getMicroserviceProxyByWidgetId(mockedRequest, + getMockedResponse(), 1); + assertTrue(acutualString.equals("{\"error\":\"\"}")); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/PolicyControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/PolicyControllerTest.java new file mode 100644 index 00000000..9c1cbeeb --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/PolicyControllerTest.java @@ -0,0 +1,148 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.BadRequestException; + +import org.json.simple.JSONObject; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Matchers; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.scheduler.SchedulerProperties; +import org.onap.portalapp.portal.scheduler.SchedulerRestInterface; +import org.onap.portalapp.portal.scheduleraux.RestObject; +import org.onap.portalapp.portal.scheduleraux.SchedulerAuxResponseWrapper; +import org.onap.portalapp.portal.scheduleraux.SchedulerAuxRestInterfaceFactory; +import org.onap.portalapp.portal.scheduleraux.SchedulerAuxRestInterfaceIfc; +import org.onap.portalapp.portal.scheduleraux.SchedulerAuxUtil; +import org.onap.portalsdk.core.web.support.UserUtils; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; + + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ UserUtils.class, SchedulerProperties.class, SchedulerAuxRestInterfaceFactory.class,SchedulerAuxUtil.class }) +public class PolicyControllerTest { + @Mock + SchedulerRestInterface schedulerRestInterface; + + @InjectMocks + SchedulerAuxController policyController = new SchedulerAuxController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockEPUser mockUser = new MockEPUser(); + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Before + public void setUp() { + + PowerMockito.mockStatic(SchedulerProperties.class); + + Mockito.when(SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_GET_CONFIG_VAL)).thenReturn("/api/getConfig"); + Mockito.when(SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_CLIENT_MECHID_VAL)) + .thenReturn("m06814@controller.dcae.ecomp.att.com"); + Mockito.when(SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_CLIENT_PASSWORD_VAL)) + .thenReturn("OBF:1ffu1qvu1t2z1l161fuk1i801nz91ro41xf71xfv1rqi1nx51i7y1fuq1kxw1t371qxw1fh0"); + Mockito.when(SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_USERNAME_VAL)).thenReturn("testpdp"); + Mockito.when(SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_PASSWORD_VAL)) + .thenReturn("OBF:1igd1kft1l1a1sw61svs1kxs1kcl1idt"); + Mockito.when(SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_ENVIRONMENT_VAL)).thenReturn("TEST"); + Mockito.when(SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_SERVER_URL_VAL)) + .thenReturn("https://policypdp-conexus-e2e.ecomp.cci.att.com:8081/pdp"); + + } + + @SuppressWarnings({ "unchecked" }) + @Test + public void getPolicyInfoTest1() throws Exception { + + JSONObject jsonObject = Mockito.mock(JSONObject.class); + PowerMockito.mockStatic(SchedulerAuxRestInterfaceFactory.class); + PowerMockito.mockStatic(SchedulerProperties.class); + SchedulerAuxRestInterfaceIfc policyRestInterface = Mockito.mock(SchedulerAuxRestInterfaceIfc.class); + PowerMockito.mockStatic(SchedulerAuxUtil.class); + // RestObject restObj=Mockito.mock(RestObject.class); + SchedulerAuxResponseWrapper policyWrapper = Mockito.mock(SchedulerAuxResponseWrapper.class); + PowerMockito.when(SchedulerAuxUtil.wrapResponse(Matchers.any(RestObject.class))).thenReturn(policyWrapper); + Mockito.when(policyWrapper.getResponse()).thenReturn("Success"); + Mockito.when(policyWrapper.getStatus()).thenReturn(200); + + PowerMockito.when(SchedulerAuxRestInterfaceFactory.getInstance()).thenReturn(policyRestInterface); + Mockito.doNothing().when(policyRestInterface).Post(Matchers.anyString(), Matchers.anyObject(), + Matchers.anyString(), Matchers.anyString(), Matchers.anyObject()); + + ResponseEntity responsePolicy = policyController.getPolicyInfo(mockedRequest); + Assert.assertEquals(responsePolicy.getStatusCode(), HttpStatus.OK); + } + + @SuppressWarnings("unchecked") + @Test + public void getPolicyInfoTestexpected() throws Exception { + + JSONObject jsonObject = Mockito.mock(JSONObject.class); + PowerMockito.mockStatic(SchedulerAuxRestInterfaceFactory.class); + PowerMockito.mockStatic(SchedulerProperties.class); + Mockito.when(SchedulerProperties.getProperty(SchedulerProperties.SCHEDULERAUX_GET_CONFIG_VAL)).thenThrow(nullPointerException); + ResponseEntity responsePolicy = policyController.getPolicyInfo(mockedRequest); + Assert.assertEquals(responsePolicy.getStatusCode(), HttpStatus.INTERNAL_SERVER_ERROR); + + } + + + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/PortalAdminControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/PortalAdminControllerTest.java new file mode 100644 index 00000000..0c48f176 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/PortalAdminControllerTest.java @@ -0,0 +1,192 @@ + +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.PortalAdminController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.exceptions.NoHealthyServiceException; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.AdminRolesServiceImpl; +import org.onap.portalapp.portal.service.PortalAdminService; +import org.onap.portalapp.portal.service.PortalAdminServiceImpl; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.PortalAdmin; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.service.AuditService; +import org.onap.portalsdk.core.service.AuditServiceImpl; + +public class PortalAdminControllerTest extends MockitoTestSuite{ + + @InjectMocks + PortalAdminController portalAdminController = new PortalAdminController(); + + @Mock + AdminRolesService adminRolesService = new AdminRolesServiceImpl(); + + @Mock + PortalAdminService portalAdminService = new PortalAdminServiceImpl(); + + @Mock + AuditService auditService = new AuditServiceImpl(); + + + @Mock + EcompPortalUtils ecompPortalUtils = new EcompPortalUtils(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Mock + EPUserUtils ePUserUtils = new EPUserUtils(); + + MockEPUser mockUser = new MockEPUser(); + + + @Test + public void getPortalAdminsTest() + { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedPortalAdminsList = new ArrayList(); + PortalAdmin portalAdmin= new PortalAdmin(); + + portalAdmin.setUserId((long) 1); + portalAdmin.setLoginId("guestT"); + portalAdmin.setFirstName("Test_FirstName"); + portalAdmin.setLastName("Test_LastName"); + + expectedPortalAdminsList.add(portalAdmin); + + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + + Mockito.when(portalAdminService.getPortalAdmins()).thenReturn(expectedPortalAdminsList); + List actualPortalAdminsList = portalAdminController.getPortalAdmins(mockedRequest, mockedResponse); + assertEquals(actualPortalAdminsList,expectedPortalAdminsList); + + } +// @Test +// public void getPortalAdminsIfUserIsNullTest() +// { +// EPUser user = null; +// Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); +// +// assertNull(portalAdminController.getPortalAdmins(mockedRequest, mockedResponse)); +// +// } + + @Test + public void getPortalAdminsIfUserIsSuperAdminTest() + { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + assertNull(portalAdminController.getPortalAdmins(mockedRequest, mockedResponse)); + + } + + + + @Test + public void createPortalAdminTest() + { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + + FieldsValidator expectedFieldValidator = new FieldsValidator(); + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(null); + expectedFieldValidator.setErrorCode(null); + FieldsValidator actualFieldValidator = new FieldsValidator(); + String sbcid = "Test"; + + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(portalAdminService.createPortalAdmin(sbcid)).thenReturn(expectedFieldValidator); + actualFieldValidator = portalAdminController.createPortalAdmin(mockedRequest, sbcid, mockedResponse); + assertEquals(actualFieldValidator,expectedFieldValidator); + + } + +// @Test +// public void createPortalAdminIfUserIsNullTest() +// { +// //EPUser user = null; +// Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null); +// String sbcid = "null"; +// assertNull(portalAdminController.createPortalAdmin(mockedRequest, sbcid, mockedResponse)); +// +// } + + @Test + public void createPortalAdminIfUserIsSuperAdminTest() + { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + String sbcid = "Test"; + assertNull(portalAdminController.createPortalAdmin(mockedRequest, sbcid, mockedResponse)); + + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/RoleManageControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/RoleManageControllerTest.java new file mode 100644 index 00000000..e63ea438 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/RoleManageControllerTest.java @@ -0,0 +1,525 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; +import java.util.TreeSet; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Matchers; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.controller.core.RoleController; +import org.onap.portalapp.controller.core.RoleFunctionListController; +import org.onap.portalapp.controller.core.RoleListController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.CentralV2RoleFunction; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.EPAppService; +import org.onap.portalapp.portal.service.ExternalAccessRolesService; +import org.onap.portalapp.portal.transport.CentralV2Role; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.service.AuditService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.servlet.ModelAndView; + +public class RoleManageControllerTest { + + @Mock + RoleController roleController; + + @Mock + RoleListController roleListController; + + @Mock + RoleFunctionListController roleFunctionListController; + + + @Mock + ExternalAccessRolesService externalAccessRolesService; + @Mock + EPUserUtils ePUserUtils = new EPUserUtils(); + + @Mock + ExternalAccessRolesService externalAccessRolesService1 = null; + + @InjectMocks + RoleManageController roleManageController = new RoleManageController(); + + @Mock + EPAppService appService; + + @Mock + AuditService auditService; + + @Mock + AdminRolesService adminRolesService; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + MockEPUser mockUser = new MockEPUser(); + + + @Test + public void removeRoleRoleFunctionTest() throws Exception + { + + ModelAndView modelandView = new ModelAndView("login.htm"); + Mockito.when(roleController.removeRoleFunction(mockedRequest, mockedResponse)).thenReturn(modelandView); + ModelAndView expectedModelandView = roleManageController.removeRoleRoleFunction(mockedRequest, mockedResponse); + assertEquals(expectedModelandView, modelandView); + } + + @Test + public void addRoleRoRoleFunctionTest() throws Exception + { + ModelAndView modelandView = new ModelAndView("login.htm"); + Mockito.when(roleController.addRoleFunction(mockedRequest, mockedResponse)).thenReturn(modelandView); + ModelAndView expectedModelandView = roleManageController.addRoleRoRoleFunction(mockedRequest, mockedResponse); + assertEquals(expectedModelandView, modelandView); + } + + @Test + public void removeChildRoleTest() throws Exception + { + ModelAndView modelandView = new ModelAndView("login.htm"); + Mockito.when(roleController.removeChildRole(mockedRequest, mockedResponse)).thenReturn(modelandView); + ModelAndView expectedModelandView = roleManageController.removeChildRole(mockedRequest, mockedResponse); + assertEquals(expectedModelandView, modelandView); + } + + + @Test + public void getRoleIfRoleIdNullTest() throws Exception + { + Mockito.when(appService.getApp((long) 1)).thenReturn(CentralApp()); + CentralV2Role answer = new CentralV2Role(); + Mockito.when(externalAccessRolesService.getRoleInfo((long) 1, "test")).thenReturn(answer); + List finalRoleFunctionList = new ArrayList<>(); + Mockito.when(externalAccessRolesService.getRoleFuncList("test")).thenReturn(finalRoleFunctionList); + Mockito.when(externalAccessRolesService.getRolesForApp("test")).thenReturn(null); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + List appList = new ArrayList<>(); + appList.add(CentralApp()); + ResponseEntity response = new ResponseEntity<>(HttpStatus.OK); + Mockito.when( externalAccessRolesService.getNameSpaceIfExists(Matchers.anyObject())).thenReturn(response); + Mockito.when(externalAccessRolesService.getApp(Matchers.anyString())).thenReturn(appList); + roleManageController.getRole(mockedRequest, mockedResponse, (long)1,null); + +} + + @Test(expected = Exception.class) + public void getRoleExceptionTest() throws Exception + { + Mockito.when(appService.getApp((long) 1)).thenReturn(mockApp()); + CentralV2Role answer = new CentralV2Role(); + Mockito.when(externalAccessRolesService.getRoleInfo((long) 1, "test")).thenReturn(answer); + Mockito.when(externalAccessRolesService.getRoleFuncList("test")).thenThrow(nullPointerException); + roleManageController.getRole(mockedRequest, mockedResponse, (long)1,null); + +} + @Test + public void getRoleIfRoleIdNotNullTest() throws Exception + { + Mockito.when(appService.getApp((long) 1)).thenReturn(CentralApp()); + CentralV2Role answer = new CentralV2Role(); + Mockito.when(externalAccessRolesService.getRoleInfo((long) 1, "test")).thenReturn(answer); + List finalRoleFunctionList = new ArrayList<>(); + Mockito.when(externalAccessRolesService.getRoleFuncList("test")).thenReturn(finalRoleFunctionList); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + CentralV2Role currentRole = new CentralV2Role(); + SortedSet parentRoles = new TreeSet<>(); + CentralV2Role centralV2Role = new CentralV2Role(); + centralV2Role.setName("test"); + parentRoles.add(centralV2Role); + currentRole.setParentRoles(parentRoles); + Mockito.when(externalAccessRolesService.getRoleInfo((long) 1, "test")).thenReturn(currentRole); + List availableChildRoles = new ArrayList<>(); + availableChildRoles.add(currentRole); + Mockito.when(externalAccessRolesService.getRolesForApp("test")).thenReturn(availableChildRoles); + List appList = new ArrayList<>(); + appList.add(CentralApp()); + ResponseEntity response = new ResponseEntity<>(HttpStatus.OK); + Mockito.when( externalAccessRolesService.getNameSpaceIfExists(Matchers.anyObject())).thenReturn(response); + Mockito.when(externalAccessRolesService.getApp(Matchers.anyString())).thenReturn(appList); + roleManageController.getRole(mockedRequest, mockedResponse, (long)1,(long)1); +} + + public EPApp mockApp() + { + EPApp app = new EPApp(); + + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppRestEndpoint("test"); + app.setAlternateUrl("test"); + app.setName("test"); + app.setMlAppName("test"); + app.setMlAppAdminId("test"); + app.setUsername("test"); + app.setAppPassword("test"); + app.setOpen(false); + app.setEnabled(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.setAppType(1); + return app; + + } + @Test + public void getRolesTest() throws Exception { + EPApp app = mockApp(); + app.setCentralAuth(true); + List answer = new ArrayList<>(); + Mockito.when(appService.getApp((long) 1)).thenReturn(app); + Mockito.when(externalAccessRolesService.getRolesForApp("test")).thenReturn(answer); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + List appList = new ArrayList<>(); + appList.add(CentralApp()); + ResponseEntity response = new ResponseEntity<>(HttpStatus.OK); + Mockito.when( externalAccessRolesService.getNameSpaceIfExists(Matchers.anyObject())).thenReturn(response); + Mockito.when(externalAccessRolesService.getApp(Matchers.anyString())).thenReturn(appList); + roleManageController.getRoles(mockedRequest, mockedResponse, (long) 1); + } + + @Test + public void getRolesExceptionTest() throws Exception { + EPApp app = CentralApp(); + Mockito.when(appService.getApp((long) 1)).thenReturn(app); + Mockito.when(externalAccessRolesService.getRolesForApp("test")).thenThrow(new java.lang.Exception()); + roleManageController.getRoles(mockedRequest, mockedResponse, (long) 1); + + } + + @Test + public void getRoleFunctionListTest() throws Exception { + Mockito.when(appService.getApp((long) 1)).thenReturn(CentralApp()); + List answer = new ArrayList<>(); + Mockito.when(externalAccessRolesService.getRoleFuncList("test")).thenReturn(answer); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + List appList = new ArrayList<>(); + appList.add(CentralApp()); + ResponseEntity response = new ResponseEntity<>(HttpStatus.OK); + Mockito.when( externalAccessRolesService.getNameSpaceIfExists(Matchers.anyObject())).thenReturn(response); + Mockito.when(externalAccessRolesService.getApp(Matchers.anyString())).thenReturn(appList); + roleManageController.getRoleFunctionList(mockedRequest, mockedResponse, (long) 1); + } + + @Test(expected = Exception.class) + public void getRoleFunctionListExceptionTest() throws Exception { + Mockito.when(appService.getApp((long) 1)).thenReturn(NonCentralApp()); + roleManageController.getRoleFunctionList(mockedRequest, mockedResponse, (long) 1); + } + + @Test + public void saveRoleFunctionTest() throws Exception { + Mockito.when(appService.getApp((long) 1)).thenReturn(CentralApp()); + Mockito.doNothing().when(roleFunctionListController).saveRoleFunction(mockedRequest, mockedResponse, "test"); + CentralV2RoleFunction addNewFunc = new CentralV2RoleFunction(); + addNewFunc.setCode("Test"); + addNewFunc.setName("Test"); + CentralV2RoleFunction roleFunction = mockCentralRoleFunction(); + Mockito.when(externalAccessRolesService.getRoleFunction("Test", "test")).thenReturn(roleFunction); + Mockito.when(externalAccessRolesService.saveCentralRoleFunction(Matchers.anyObject(), Matchers.anyObject())) + .thenReturn(true); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List userList = new ArrayList<>(); + userList.add(user); + List appList = new ArrayList<>(); + appList.add(CentralApp()); + Mockito.when(externalAccessRolesService.getUser("guestT")).thenReturn(userList); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + ResponseEntity response = new ResponseEntity<>(HttpStatus.OK); + Mockito.when( externalAccessRolesService.getNameSpaceIfExists(Matchers.anyObject())).thenReturn(response); + Mockito.when(externalAccessRolesService.getApp(Matchers.anyString())).thenReturn(appList); + roleManageController.saveRoleFunction(mockedRequest, mockedResponse, addNewFunc, (long) 1); + } + + @Test + public void saveRoleFunctionExceptionTest() throws Exception { + Mockito.when(appService.getApp((long) 1)).thenReturn(CentralApp()); + Mockito.doNothing().when(roleFunctionListController).saveRoleFunction(mockedRequest, mockedResponse, "test"); + CentralV2RoleFunction addNewFunc = new CentralV2RoleFunction(); + addNewFunc.setCode("Test"); + addNewFunc.setName("Test"); + Mockito.when(externalAccessRolesService.getRoleFunction("Test", "test")).thenReturn(null); + roleManageController.saveRoleFunction(mockedRequest, mockedResponse, addNewFunc, (long) 1); + } + + @Test + public void saveRoleFunctionIfAppNotCentralizedTest() throws Exception { + CentralV2RoleFunction addNewFunc = new CentralV2RoleFunction(); + addNewFunc.setCode("Test"); + addNewFunc.setName("Test"); + Mockito.when(appService.getApp((long) 1)).thenReturn(NonCentralApp()); + String roleFun = "{\"name\":\"Test\",\"code\":\"Test\"}"; + roleManageController.saveRoleFunction(mockedRequest, mockedResponse, addNewFunc, (long) 1); + } + + @Test + public void removeRoleFunctionTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(appService.getApp((long) 1)).thenReturn(CentralApp()); + String roleFun = "{\"name\":\"Test\",\"code\":\"Test\"}"; + CentralV2RoleFunction roleFunction = mockCentralRoleFunction(); + Mockito.when(externalAccessRolesService.getRoleFunction("Test", "test")).thenReturn(roleFunction); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + Mockito.when(externalAccessRolesService.deleteCentralRoleFunction(Matchers.anyString(), Matchers.anyObject())) + .thenReturn(true); + List appList = new ArrayList<>(); + appList.add(CentralApp()); + ResponseEntity response = new ResponseEntity<>(HttpStatus.OK); + Mockito.when( externalAccessRolesService.getNameSpaceIfExists(Matchers.anyObject())).thenReturn(response); + Mockito.when(externalAccessRolesService.getApp(Matchers.anyString())).thenReturn(appList); + roleManageController.removeRoleFunction(mockedRequest, mockedResponse, roleFun, (long) 1); + } + + @Test + public void removeRoleFunctionExceptionTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(appService.getApp((long) 1)).thenReturn(CentralApp()); + String roleFun = "{\"name\":\"Test\",\"code\":\"Test\"}"; + CentralV2RoleFunction roleFunction = mockCentralRoleFunction(); + Mockito.when(externalAccessRolesService.getRoleFunction("Test", "test")).thenReturn(roleFunction); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + Mockito.when(externalAccessRolesService.deleteCentralRoleFunction(Matchers.anyString(), Matchers.anyObject())) + .thenReturn(false); + List appList = new ArrayList<>(); + appList.add(CentralApp()); + ResponseEntity response = new ResponseEntity<>(HttpStatus.OK); + Mockito.when( externalAccessRolesService.getNameSpaceIfExists(Matchers.anyObject())).thenReturn(response); + Mockito.when(externalAccessRolesService.getApp(Matchers.anyString())).thenReturn(appList); + roleManageController.removeRoleFunction(mockedRequest, mockedResponse, roleFun, (long) 1); + } + + @Test + public void removeRoleFunctionIfAppNotCentralizedTest() throws Exception { + EPApp app = mockApp(); + app.setCentralAuth(false); + Mockito.when(appService.getApp((long) 1)).thenReturn(app); + String roleFun = "{\"name\":\"Test\",\"code\":\"Test\"}"; + roleManageController.removeRoleFunction(mockedRequest, mockedResponse, roleFun, (long) 1); + } + + @Test + public void syncRolesTest() throws Exception { + EPApp app = mockApp(); + app.setId((long) 1); + EPUser user = mockUser.mockEPUser(); + Mockito.when(appService.getApp(1l)).thenReturn(app); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(Matchers.anyObject())).thenReturn(true); + Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app); + List appList = new ArrayList<>(); + appList.add(CentralApp()); + ResponseEntity response = new ResponseEntity<>(HttpStatus.OK); + Mockito.when( externalAccessRolesService.getNameSpaceIfExists(Matchers.anyObject())).thenReturn(response); + Mockito.when(externalAccessRolesService.getApp(Matchers.anyString())).thenReturn(appList); + PortalRestResponse actual = roleManageController.syncRoles(mockedRequest, mockedResponse, 1l); + PortalRestResponse portalRestResponse = new PortalRestResponse<>(); + portalRestResponse.setMessage("Sync roles completed successfully!"); + portalRestResponse.setResponse("Success"); + portalRestResponse.setStatus(PortalRestStatusEnum.OK); + assertEquals(portalRestResponse, actual); + } + + @Test + public void syncRolesException() throws Exception { + Mockito.when(appService.getAppDetailByAppName("test")).thenThrow(nullPointerException); + PortalRestResponse actual = roleManageController.syncRoles(mockedRequest, mockedResponse, 1l); + PortalRestResponse portalRestResponse = new PortalRestResponse<>(); + portalRestResponse.setMessage(null); + portalRestResponse.setResponse("Failed"); + portalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + assertEquals(portalRestResponse, actual); + } + + @Test + public void syncRolesFunctionsTest() throws Exception { + EPApp app = mockApp(); + app.setId((long) 1); + EPUser user = mockUser.mockEPUser(); + Mockito.when(appService.getApp(1l)).thenReturn(app); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(Matchers.anyObject())).thenReturn(true); + Mockito.doNothing().when(externalAccessRolesService).syncRoleFunctionFromExternalAccessSystem(app); + List appList = new ArrayList<>(); + appList.add(CentralApp()); + ResponseEntity response = new ResponseEntity<>(HttpStatus.OK); + Mockito.when( externalAccessRolesService.getNameSpaceIfExists(Matchers.anyObject())).thenReturn(response); + Mockito.when(externalAccessRolesService.getApp(Matchers.anyString())).thenReturn(appList); + PortalRestResponse actual = roleManageController.syncFunctions(mockedRequest, mockedResponse, 1l); + PortalRestResponse portalRestResponse = new PortalRestResponse<>(); + portalRestResponse.setMessage("Sync Functions completed successfully!"); + portalRestResponse.setResponse("Success"); + portalRestResponse.setStatus(PortalRestStatusEnum.OK); + assertEquals(portalRestResponse, actual); + } + + @Test + public void syncRolesFunctionsException() throws Exception { + Mockito.when(appService.getAppDetailByAppName("test")).thenThrow(nullPointerException); + PortalRestResponse actual = roleManageController.syncFunctions(mockedRequest, mockedResponse, 1l); + PortalRestResponse portalRestResponse = new PortalRestResponse<>(); + portalRestResponse.setMessage(null); + portalRestResponse.setResponse("Failed"); + portalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + assertEquals(portalRestResponse, actual); + } + + @Test + public void addeChildRoleTest() throws Exception + { + ModelAndView modelandView = new ModelAndView("login.htm"); + Mockito.when(roleController.addChildRole(mockedRequest, mockedResponse)).thenReturn(modelandView); + ModelAndView expectedModelandView = roleManageController.addChildRole(mockedRequest, mockedResponse); + assertEquals(expectedModelandView, modelandView); + } + + @Test + public void removeRoleTest() throws Exception { + List epuserList = new ArrayList<>(); + List appList = new ArrayList<>(); + appList.add(CentralApp()); + EPUser user = mockUser.mockEPUser(); + epuserList.add(user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(appService.getApp((long) 1)).thenReturn(CentralApp()); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + ExternalRequestFieldsValidator res = new ExternalRequestFieldsValidator(true, "success"); + Mockito.when(externalAccessRolesService.deleteDependencyRoleRecord(Matchers.anyLong(), Matchers.anyString(), + Matchers.anyString())).thenReturn(res); + Mockito.when(externalAccessRolesService.getUser(Matchers.anyString())).thenReturn(epuserList); + Mockito.when(externalAccessRolesService.getApp(Matchers.anyString())).thenReturn(appList); + ResponseEntity response = new ResponseEntity<>(HttpStatus.OK); + Mockito.when( externalAccessRolesService.getNameSpaceIfExists(Matchers.anyObject())).thenReturn(response); + Map expedtedResponse = new HashMap(); + expedtedResponse.put("restCallStatus", " Unauthorized user"); + Map actualResponse = roleManageController.removeRole(mockedRequest, mockedResponse, (long) 1, (long) 1); + assertEquals(actualResponse.size(), expedtedResponse.size()); + + } + + @Test(expected = Exception.class) + public void removeRoleExceptionTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(appService.getApp((long) 1)).thenThrow(nullPointerException); + StringWriter sw = new StringWriter(); + PrintWriter writer = new PrintWriter(sw); + Mockito.when(mockedResponse.getWriter()).thenReturn(writer); + roleManageController.removeRole(mockedRequest, mockedResponse, (long) 1, (long) 1); + } + + public CentralV2RoleFunction mockCentralRoleFunction() + { + CentralV2RoleFunction roleFunction = new CentralV2RoleFunction(); + roleFunction.setCode("Test"); + roleFunction.setName("Test"); + roleFunction.setAppId((long) 1); + return roleFunction; + } + + public EPApp CentralApp() + { + EPApp app = mockApp(); + app.setCentralAuth(true); + app.setNameSpace("com.test"); + return app; + } + + public EPApp NonCentralApp() + { + EPApp app = mockApp(); + app.setCentralAuth(false); + return app; + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/RolesApprovalSystemControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/RolesApprovalSystemControllerTest.java new file mode 100644 index 00000000..281a0cbe --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/RolesApprovalSystemControllerTest.java @@ -0,0 +1,373 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.externalsystemapproval.model.ExternalSystemRoleApproval; +import org.onap.portalapp.externalsystemapproval.model.ExternalSystemUser; +import org.onap.portalapp.portal.controller.RolesApprovalSystemController; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.UserRolesService; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; + +public class RolesApprovalSystemControllerTest extends MockitoTestSuite { + + @Mock + UserRolesService userRolesService; + + @InjectMocks + RolesApprovalSystemController rolesApprovalSystemController = new RolesApprovalSystemController(); + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @Test + public void postUserProfileIfRolesNullTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Request has no roles"); + expectedportalRestResponse.setResponse("save user profile failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test_App"); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = null; + extSysUser.setRoles(externalSystemRoleApprovalList); + + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .postUserProfile(mockedRequest, extSysUser, mockedResponse); + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void postUserProfileTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Saved Successfully"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test_App"); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = new ArrayList(); + ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); + externalSystemRoleApprovalList.add(externalSystemRoleApproval); + extSysUser.setRoles(externalSystemRoleApprovalList); + ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(true, + "Saved Successfully"); + + Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "POST")) + .thenReturn(externalRequestFieldsValidator); + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .postUserProfile(mockedRequest, extSysUser, mockedResponse); + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void postUserProfileFailureTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Received Bad String"); + expectedportalRestResponse.setResponse("save user profile failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test_App"); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = new ArrayList(); + ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); + externalSystemRoleApprovalList.add(externalSystemRoleApproval); + extSysUser.setRoles(externalSystemRoleApprovalList); + ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(false, + "Received Bad String"); + Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "POST")) + .thenReturn(externalRequestFieldsValidator); + + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .postUserProfile(mockedRequest, extSysUser, mockedResponse); + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void postUserProfileExceptionTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage(null); + expectedportalRestResponse.setResponse("save user profile failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test_App"); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = new ArrayList(); + ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); + externalSystemRoleApprovalList.add(externalSystemRoleApproval); + extSysUser.setRoles(externalSystemRoleApprovalList); + Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "POST")).thenThrow(nullPointerException); + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .postUserProfile(mockedRequest, extSysUser, mockedResponse); + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void putUserProfileIfLoginIdNullTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Request has no login ID"); + expectedportalRestResponse.setResponse("save user profile failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test_App"); + extSysUser.setLoginId(null); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = new ArrayList(); + extSysUser.setRoles(externalSystemRoleApprovalList); + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .putUserProfile(mockedRequest, extSysUser, mockedResponse); + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void putUserProfileTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Updated Successfully"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test_App"); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = new ArrayList(); + ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); + externalSystemRoleApprovalList.add(externalSystemRoleApproval); + extSysUser.setRoles(externalSystemRoleApprovalList); + ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(true, + "Updated Successfully"); + + Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "PUT")) + .thenReturn(externalRequestFieldsValidator); + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .putUserProfile(mockedRequest, extSysUser, mockedResponse); + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void putUserProfileFailureTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Received Bad String"); + expectedportalRestResponse.setResponse("save user profile failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test_App"); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = new ArrayList(); + ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); + externalSystemRoleApprovalList.add(externalSystemRoleApproval); + extSysUser.setRoles(externalSystemRoleApprovalList); + ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(false, + "Received Bad String"); + + Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "PUT")) + .thenReturn(externalRequestFieldsValidator); + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .putUserProfile(mockedRequest, extSysUser, mockedResponse); + + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void putUserProfileExceptionTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage(null); + expectedportalRestResponse.setResponse("save user profile failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test_App"); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = new ArrayList(); + ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); + externalSystemRoleApprovalList.add(externalSystemRoleApproval); + extSysUser.setRoles(externalSystemRoleApprovalList); + Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "PUT")).thenThrow(nullPointerException); + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .putUserProfile(mockedRequest, extSysUser, mockedResponse); + + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void deleteUserProfileIfApplicationNameNullTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Request has no application name"); + expectedportalRestResponse.setResponse("delete user profile failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName(null); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = new ArrayList(); + extSysUser.setRoles(externalSystemRoleApprovalList); + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .deleteUserProfile(mockedRequest, extSysUser, mockedResponse); + + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void deleteUserProfileIfMyloginrequestIdNullTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Request has no request ID"); + expectedportalRestResponse.setResponse("delete user profile failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test"); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId(null); + List externalSystemRoleApprovalList = new ArrayList(); + extSysUser.setRoles(externalSystemRoleApprovalList); + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .deleteUserProfile(mockedRequest, extSysUser, mockedResponse); + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void deleteUserProfileTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("Deleted Successfully"); + expectedportalRestResponse.setResponse("Success"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test_App"); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = new ArrayList(); + ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); + externalSystemRoleApprovalList.add(externalSystemRoleApproval); + extSysUser.setRoles(externalSystemRoleApprovalList); + ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(true, + "Success"); + + Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "DELETE")) + .thenReturn(externalRequestFieldsValidator); + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .deleteUserProfile(mockedRequest, extSysUser, mockedResponse); + + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void deleteUserProfileFailureTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage("failed"); + expectedportalRestResponse.setResponse("delete user profile failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test_App"); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = new ArrayList(); + ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); + externalSystemRoleApprovalList.add(externalSystemRoleApproval); + extSysUser.setRoles(externalSystemRoleApprovalList); + ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(false, + "failed"); + + Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "DELETE")) + .thenReturn(externalRequestFieldsValidator); + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .deleteUserProfile(mockedRequest, extSysUser, mockedResponse); + + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } + + @Test + public void deleteUserProfileExceptionTest() { + PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); + expectedportalRestResponse.setMessage(null); + expectedportalRestResponse.setResponse("delete user profile failed"); + PortalRestStatusEnum portalRestStatusEnum = null; + expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); + ExternalSystemUser extSysUser = new ExternalSystemUser(); + extSysUser.setApplicationName("Test_App"); + extSysUser.setLoginId("1"); + extSysUser.setMyloginrequestId("Test"); + List externalSystemRoleApprovalList = new ArrayList(); + ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); + externalSystemRoleApprovalList.add(externalSystemRoleApproval); + extSysUser.setRoles(externalSystemRoleApprovalList); + Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "DELETE")).thenThrow(nullPointerException); + PortalRestResponse actualportalRestResponse = rolesApprovalSystemController + .deleteUserProfile(mockedRequest, extSysUser, mockedResponse); + + assertEquals(expectedportalRestResponse, actualportalRestResponse); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SchedulerControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SchedulerControllerTest.java new file mode 100644 index 00000000..bafcb1c0 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SchedulerControllerTest.java @@ -0,0 +1,110 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.json.simple.JSONObject; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.SchedulerController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.scheduler.SchedulerProperties; +import org.onap.portalapp.portal.scheduler.SchedulerRestInterface; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.UserUtils; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({UserUtils.class,SystemProperties.class}) + +public class SchedulerControllerTest { + + @Mock + SchedulerRestInterface schedulerRestInterface; + + + + @InjectMocks + SchedulerController schedulerController = new SchedulerController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockEPUser mockUser = new MockEPUser(); + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Test + public void getTimeSlotsTest() throws Exception{ + schedulerController.getTimeSlots(mockedRequest, "12"); + + } + + @Test + public void postCreateNewVNFChangeTest() throws Exception{ + //String testJsonData="{\"domain\":\"ChangeManagement\",\"scheduleName\":\"VnfUpgrade/DWF\",\"userId\":\"su7376\",\"domainData\":[{\"WorkflowName\":\"HEAT Stack Software Update for vNFs\",\"CallbackUrl\":\"http://127.0.0.1:8989/scheduler/v1/loopbacktest/vid\",\"CallbackData\":\"testing\"}],\"schedulingInfo\":{\"normalDurationInSeconds\":60,\"additionalDurationInSeconds\":60,\"concurrencyLimit\":60,\"policyId\":\"SNIRO_CM_1707.Config_MS_Demo_TimeLimitAndVerticalTopology_zone_localTime.1.xml\",\"vnfDetails\":[{\"groupId\":\"group1\",\"node\":[\"satmo415vbc\",\"satmo455vbc\"]}]}}"; + JSONObject jsonObject =Mockito.mock(JSONObject.class); + + schedulerController.postCreateNewVNFChange(mockedRequest, jsonObject); + } + + @Test + public void postSubmitVnfChangeTimeslotsTest() throws Exception{ + JSONObject jsonObject =Mockito.mock(JSONObject.class); + Mockito.when(jsonObject.get("scheduleId")).thenReturn("12"); + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.when(SystemProperties.getProperty(SchedulerProperties.SCHEDULER_SUBMIT_NEW_VNF_CHANGE)).thenReturn("/v1/ChangeManagement/schedules/{scheduleId}/approvals"); + schedulerController.postSubmitVnfChangeTimeslots(mockedRequest, jsonObject); + } + +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SessionCommunicationControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SessionCommunicationControllerTest.java new file mode 100644 index 00000000..c991dede --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SessionCommunicationControllerTest.java @@ -0,0 +1,96 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.drools.core.command.assertion.AssertEquals; +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.controller.sessionmgt.SessionCommunicationController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.service.sessionmgt.ManageService; + +public class SessionCommunicationControllerTest { + + + @Mock + ManageService manageService; + + @InjectMocks + SessionCommunicationController SessionCommunicationController = new SessionCommunicationController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + NullPointerException nullPointerException = new NullPointerException(); + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + MockEPUser mockUser = new MockEPUser(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + + + @Test + public void getSessionSlotCheckIntervalTest() throws Exception + { + Mockito.when(manageService.fetchSessionSlotCheckInterval()).thenReturn(1); + int result = SessionCommunicationController.getSessionSlotCheckInterval(mockedRequest, mockedResponse); + assertEquals(result, 1); + + } + + @Test + public void extendSessionTimeOutsTest() throws Exception + { + Mockito.doNothing().when(manageService).extendSessionTimeOuts("test"); + Boolean result = SessionCommunicationController.extendSessionTimeOuts(mockedRequest, mockedResponse, "test"); + assertEquals(result, true); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextRestClient.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextRestClient.java new file mode 100644 index 00000000..a6f0dcdc --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextRestClient.java @@ -0,0 +1,299 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.net.URI; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; + +import javax.net.ssl.SSLContext; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.http.Consts; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.utils.URIBuilder; +import org.apache.http.conn.ssl.NoopHostnameVerifier; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.ssl.SSLContexts; +import org.apache.http.ssl.TrustStrategy; +import org.apache.http.util.EntityUtils; + +/** + * Provides reusable features for test cases to get or post from an REST + * endpoint, allowing use of HTTPS connections to servers that use self-signed + * certificates. + */ +public class SharedContextRestClient { + + private static final Log logger = LogFactory.getLog(SharedContextRestClient.class); + + /** + * Convenience method that builds and sends a GET request using properties + * to build the URI and populate header with credentials. + * + * @param task + * last component(s) of REST endpoint name; e.g., "get". + * @param contextId + * @param contextKey + * @return JSON string fetched + * @throws Exception + * if the HTTP response code is anything other than OK. + */ + public static String getJson(final SharedContextTestProperties properties, final String task, + final String contextId, final String contextKey) throws Exception { + String requestPath = '/' + properties.getProperty(SharedContextTestProperties.APPNAME) // + + '/' + properties.getProperty(SharedContextTestProperties.RESTPATH) // + + '/' + task; + return getJson(properties.getProperty(SharedContextTestProperties.HOSTNAME), // + properties.getProperty(SharedContextTestProperties.PORT, -1), // + properties.getProperty(SharedContextTestProperties.SECURE, true), // + properties.getProperty(SharedContextTestProperties.UEBKEY), // + properties.getProperty(SharedContextTestProperties.USERNAME), // + properties.getProperty(SharedContextTestProperties.COUNTERSIGN), requestPath, // + contextId, // + contextKey); + } + + /** + * Constructs and sends a GET request using the specified values. + * + * @param hostname + * @param port + * ignored if negative + * @param secure + * If true, uses https; else http. + * @param headerUebkey + * @param headerUsername + * @param headerPassword + * @param requestPath + * full path of the REST endpoint + * @param contextId + * @param contextKey + * Ignored if null + * @return JSON result + */ + public static String getJson(final String hostname, final int port, boolean secure, final String headerUebkey, + final String headerUsername, final String headerPassword, final String requestPath, final String contextId, + final String contextKey) throws Exception { + + URIBuilder uriBuilder = new URIBuilder(); + if (secure) + uriBuilder.setScheme("https"); + else + uriBuilder.setScheme("http"); + uriBuilder.setHost(hostname); + if (port > 0) + uriBuilder.setPort(port); + uriBuilder.setPath(requestPath); + uriBuilder.addParameter("context_id", contextId); + if (contextKey != null) + uriBuilder.addParameter("ckey", contextKey); + final URI uri = uriBuilder.build(); + + CloseableHttpClient httpClient; + if (secure) { + // Tell HttpClient to accept any server certificate for HTTPS. + // http://stackoverflow.com/questions/24720013/apache-http-client-ssl-certificate-error + SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() { + @Override + public boolean isTrusted(final X509Certificate[] chain, final String authType) + throws CertificateException { + return true; + } + }).build(); + SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, + NoopHostnameVerifier.INSTANCE); + httpClient = HttpClientBuilder.create().setSSLSocketFactory(sslsf).build(); + } else { + httpClient = HttpClients.createDefault(); + } + + HttpGet httpGet = new HttpGet(uri); + httpGet.setHeader("uebkey", headerUebkey); + httpGet.setHeader("username", headerUsername); + httpGet.setHeader("password", headerPassword); + + String json = null; + CloseableHttpResponse response = null; + try { + logger.debug("GET from " + uri); + response = httpClient.execute(httpGet); + logger.info("Status is " + response.getStatusLine()); + if (response.getStatusLine().getStatusCode() != HttpServletResponse.SC_OK) + throw new Exception("Status is " + response.getStatusLine().toString()); + HttpEntity entity = response.getEntity(); + if (entity == null) { + logger.warn("Entity is null!"); + } else { + // entity content length is never set. + // this naively tries to read everything. + json = EntityUtils.toString(entity); + EntityUtils.consume(entity); + } + } finally { + if (response != null) + response.close(); + } + return json; + } + + /** + * Convenience method that builds and sends a POST request using properties + * to build the URI and populate header with credentials. + * + * @param path + * last component(s) of REST endpoint name; e.g., "users" or + * "user/ab1234/roles". + * @return JSON string fetched + * @throws Exception + * if the HTTP response code is anything other than OK. + */ + public static String postJson(final SharedContextTestProperties properties, final String path, final String json) + throws Exception { + String requestPath = '/' + properties.getProperty(SharedContextTestProperties.APPNAME) // + + '/' + properties.getProperty(SharedContextTestProperties.RESTPATH) // + + '/' + path; + return postJson(properties.getProperty(SharedContextTestProperties.HOSTNAME), // + properties.getProperty(SharedContextTestProperties.PORT, -1), // + properties.getProperty(SharedContextTestProperties.SECURE, true), // + properties.getProperty(SharedContextTestProperties.UEBKEY), // + properties.getProperty(SharedContextTestProperties.USERNAME), // + properties.getProperty(SharedContextTestProperties.COUNTERSIGN), // + requestPath, // + json); + } + + /** + * Constructs and sends a POST request using the specified values. + * + * @param hostname + * @param port + * @param secure + * If true, uses https; else http. + * @param requestPath + * full path of the REST endpoint + * @param headerUebkey + * @param headerUsername + * @param headerPassword + * @param json + * Content to post + * @return JSON result + * @throws Exception + */ + public static String postJson(final String hostname, final int port, boolean secure, final String headerUebkey, + final String headerUsername, final String headerPassword, final String requestPath, final String json) + throws Exception { + + URIBuilder builder = new URIBuilder(); + if (secure) + builder.setScheme("https"); + else + builder.setScheme("http"); + builder.setHost(hostname); + if (port > 0) + builder.setPort(port); + builder.setPath(requestPath); + final URI uri = builder.build(); + + CloseableHttpClient httpClient; + if (secure) { + // Tell HttpClient to accept any server certificate for HTTPS. + // http://stackoverflow.com/questions/24720013/apache-http-client-ssl-certificate-error + SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() { + @Override + public boolean isTrusted(final X509Certificate[] chain, final String authType) + throws CertificateException { + return true; + } + }).build(); + SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, + NoopHostnameVerifier.INSTANCE); + httpClient = HttpClientBuilder.create().setSSLSocketFactory(sslsf).build(); + } else { + httpClient = HttpClients.createDefault(); + } + HttpPost httpPost = new HttpPost(uri); + httpPost.setHeader("uebkey", headerUebkey); + httpPost.setHeader("username", headerUsername); + httpPost.setHeader("password", headerPassword); + + StringEntity postEntity = new StringEntity(json, ContentType.create("application/json", Consts.UTF_8)); + httpPost.setEntity(postEntity); + + String responseJson = null; + CloseableHttpResponse response = null; + try { + logger.debug("POST to " + uri); + response = httpClient.execute(httpPost); + logger.info("Status is " + response.getStatusLine()); + if (response.getStatusLine().getStatusCode() != HttpServletResponse.SC_OK) + throw new Exception("Status is " + response.getStatusLine().toString()); + + HttpEntity entity = response.getEntity(); + if (entity == null) { + logger.warn("Entity is null!"); + } else { + long len = entity.getContentLength(); + if (len < 0) + logger.warn("Content length is -1"); + if (len < 2048) { + responseJson = EntityUtils.toString(entity); + logger.debug(responseJson); + } else { + logger.warn("Not implemented - stream content"); + } + EntityUtils.consume(entity); + } + } finally { + if (response != null) + response.close(); + } + return responseJson; + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextRestControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextRestControllerTest.java new file mode 100644 index 00000000..05604fd0 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextRestControllerTest.java @@ -0,0 +1,144 @@ +package org.onap.portalapp.portal.controller; +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Assert; +import org.onap.portalapp.portal.controller.SharedContextRestClient; +import org.onap.portalapp.portal.controller.SharedContextTestProperties; + +import com.fasterxml.jackson.databind.ObjectMapper; + +/** + * Tests the endpoints exposed by the Shared Context controller in Portal. + */ +public class SharedContextRestControllerTest { + + private final Log logger = LogFactory.getLog(getClass()); + + private final SharedContextTestProperties properties; + + private final String ckey = "ckey"; + private final String cvalue = "cvalue"; + + // Supposed to be a Portal session ID + private final String cxid = UUID.randomUUID().toString(); + + private final String key = "key123"; + private final String value1 = "first value"; + private final String value2 = "second value"; + + public SharedContextRestControllerTest() throws IOException { + properties = new SharedContextTestProperties(); + } + + @SuppressWarnings("unchecked") + //@Test + public void test() throws Exception { + String response = null, val = null; + ObjectMapper mapper = new ObjectMapper(); + Map responseMap, jsonMap; + + logger.info("Get on empty context"); + response = SharedContextRestClient.getJson(properties, "get", cxid, key); + // Should not exist - just generated the UUID + Map responseMap1 = mapper.readValue(response, Map.class); + response = (String) responseMap1.get("response"); + Assert.assertNull(response); + + logger.info("Set a new context"); + response = setContext(cxid, key, value1); + Assert.assertNotNull(response); + responseMap = mapper.readValue(response, Map.class); + String responseValue = (String) responseMap.get("response"); + Assert.assertNotNull(responseValue); + Assert.assertEquals("added", responseValue); + + logger.info("Get existing context"); + response = SharedContextRestClient.getJson(properties, "get", cxid, key); + responseMap = mapper.readValue(response, Map.class); + jsonMap = (Map) responseMap.get("response"); + Assert.assertNotNull(jsonMap); + val = (String) jsonMap.get(cvalue); + Assert.assertEquals(val, value1); + + logger.info("Overwrite exiting context"); + response = setContext(cxid, key, value2); + Assert.assertNotNull(response); + responseMap = mapper.readValue(response, Map.class); + response = (String) responseMap.get("response"); + Assert.assertNotNull(responseValue); + // Assert.assertEquals("replaced", responseValue); + + logger.info("Get existing context to verify overwrite"); + response = SharedContextRestClient.getJson(properties, "get", cxid, key); + responseMap = mapper.readValue(response, Map.class); + jsonMap = (Map) responseMap.get("response"); + Assert.assertNotNull(jsonMap); + val = (String) jsonMap.get(cvalue); + Assert.assertEquals(val, value2); + + logger.info("Delete one context"); + response = SharedContextRestClient.getJson(properties, "remove", cxid, key); + responseMap = mapper.readValue(response, Map.class); + response = (String) responseMap.get("response"); + Assert.assertEquals(response, "removed"); + + logger.info("Clear the context"); + response = SharedContextRestClient.getJson(properties, "clear", cxid, null); + Assert.assertEquals("", response); + } + + private String setContext(String context, String id, String value) throws Exception { + ObjectMapper mapper = new ObjectMapper(); + HashMap stringMap = new HashMap(); + stringMap.put("context_id", cxid); + stringMap.put(ckey, key); + stringMap.put(cvalue, value2); + String json = mapper.writeValueAsString(stringMap); + String response = SharedContextRestClient.postJson(properties, "set", json); + return response; + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextTestProperties.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextTestProperties.java new file mode 100644 index 00000000..49eae75b --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/SharedContextTestProperties.java @@ -0,0 +1,99 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +/** + * Trivial extension of Properties that populates itself from a known source. + */ +public class SharedContextTestProperties extends Properties { + + private static final long serialVersionUID = -4064100267979036550L; + + // property names + public static final String HOSTNAME = "hostname"; + public static final String PORT = "port"; + public static final String SECURE = "secure"; + public static final String APPNAME = "appname"; + public static final String RESTPATH = "restpath"; + public static final String UEBKEY = "uebkey"; + public static final String USERNAME = "username"; + public static final String COUNTERSIGN = "countersign"; + + /** + * Expected on the classpath + */ + private static final String propertiesFileName = "shared-context-test.properties"; + + /** + * Constructor populates itself from properties file found in same package. + * + * @throws Exception + */ + public SharedContextTestProperties() throws IOException { + InputStream inStream = getClass().getResourceAsStream(propertiesFileName); + if (inStream == null) + throw new IOException("Failed to find file on classpath: " + propertiesFileName); + super.load(inStream); + inStream.close(); + } + + public int getProperty(final String name, final int defVal) throws NumberFormatException { + String prop = getProperty(name); + if (prop == null) + return defVal; + return Integer.parseInt(prop); + } + + public boolean getProperty(final String name, final boolean defVal) { + String prop = getProperty(name); + if (prop == null) + return false; + return Boolean.parseBoolean(prop); + } + + // Test this class + public static void main(String[] args) throws Exception { + SharedContextTestProperties p = new SharedContextTestProperties(); + System.out.println("Property " + SharedContextTestProperties.HOSTNAME + " = " + + p.getProperty(SharedContextTestProperties.HOSTNAME)); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/TicketEventControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/TicketEventControllerTest.java new file mode 100644 index 00000000..2b3598c4 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/TicketEventControllerTest.java @@ -0,0 +1,207 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.TicketEventController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.TicketEventService; +import org.onap.portalapp.portal.service.UserNotificationService; +import org.onap.portalsdk.core.web.support.UserUtils; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import com.fasterxml.jackson.databind.JsonNode; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(UserUtils.class) +public class TicketEventControllerTest { + + @Mock + UserNotificationService userNotificationService; + + @Mock + TicketEventService ticketEventService; + + @InjectMocks + TicketEventController ticketEventController = new TicketEventController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockEPUser mockUser = new MockEPUser(); + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Test + public void saveUserValidationTest() throws Exception { + PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); + PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); + expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + expectedPortalRestResponse.setMessage("Invalid Org User ID"); + expectedPortalRestResponse.setResponse(null); + String ticketEventJson = "{\"application\": \"cbus\",\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site." + + " The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", " + + "\"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601," + + "\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; " + + "ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\"," + + "\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\"," + + "\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": " + + "{\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\", " + + "\"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"}," + + "\"SubscriberInfo\": {\"UserList\": [\"guest\"] }}"; + + actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, + mockedResponse, ticketEventJson); + assertEquals(actualPortalRestResponse, expectedPortalRestResponse); + } + + @Test + public void saveTest() throws Exception { + String UserIds[] = new String[1]; + UserIds[0] = "guest"; + ArrayList users = new ArrayList<>(); + EPUser user = new EPUser(); + user.setOrgUserId("guest"); + user.setId((long)1); + users.add(user); + List userIdlist = new ArrayList<>(); + userIdlist.add("guest"); + JsonNode application = null ; + String ticketEventJson = "{\"application\":\"cbus\",\"event\":{\"body\":{\"ticketStatePhrase\":\"We recently detected a problem with the equipment at your site. " + + "The event is in queue for immediate work.\",\"ivrNotificationFlag\":\"1\",\"expectedRestoreDate\":0,\"bridgeTransport\":\"AOTS\",\"reptRequestType\":0," + + "\"ticketNum\":\"000002000857405\",\"assetID\":\"CISCO_1921C1_ISR_G2\",\"eventDate\":1490545134601," + + "\"eventAbstract\":\"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; " + + "ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\"," + + "\"severity\":\"2 - Major\",\"ticketPriority\":\"3\",\"reportedCustomerImpact\":0,\"testAutoIndicator\":0," + + "\"supportGroupName\":\"US-TEST-ORT\",\"lastModifiedDate\":\"1487687703\",\"messageGroup\":\"SNMP\",\"csi\":0,\"mfabRestoredTime\":0}," + + "\"header\":{\"timestamp\":\"2017-02-21T14:35:05.219+0000\",\"eventSource\":\"aotstm\",\"entityId\":\"000002000857405\",\"sequenceNumber\":2}," + + "\"blinkMsgId\":\"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\":\"130.4.165.158\"},\"SubscriberInfo\":{\"UserList\":[\"guest\"]}}"; + PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); + PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); + expectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); + expectedPortalRestResponse.setMessage("processEventNotification: notification created"); + expectedPortalRestResponse.setResponse("NotificationId"); + + + Mockito.when(userNotificationService.getUsersByOrgIds(userIdlist)).thenReturn(users); + Mockito.when(ticketEventService.getNotificationHyperLink(application, "", "")).thenReturn(""); + actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, + mockedResponse, ticketEventJson); + assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.OK) == 0); + } + + @Test + public void saveTestForException() throws Exception { + String ticketEventJson = "\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site. The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", \"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601,\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\",\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\",\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\", \"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {\"UserList\": [\"hk8777\"] }}"; + PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, + mockedResponse, ticketEventJson); + assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); + } + +// @Test +// public void saveTestForApplicationValid() throws Exception { +// String ticketEventJson = "{\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site. The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", \"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601,\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\",\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\",\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\", \"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {\"UserList\": [\"hk8777\"] }}"; +// PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, +// mockedResponse, ticketEventJson); +// assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); +// assertEquals(actualPortalRestResponse.getMessage(), "application is mandatory"); +// +// } + + @Test + public void saveTestForBodyValid() throws Exception { + String ticketEventJson = "{\"application\": \"cbus\",\"event\": {\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\",\"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {\"UserList\": [\"hk8777\"] }}"; + PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, + mockedResponse, ticketEventJson); + assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); + assertEquals(actualPortalRestResponse.getMessage(), "body is mandatory"); + } + + @Test + public void saveTestForEventSourceValid() throws Exception { + String ticketEventJson = "{\"application\": \"cbus\",\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site. The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", \"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601,\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\",\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\",\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"entityId\": \"000002000857405\", \"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {\"UserList\": [\"hk8777\"] }}"; + PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, + mockedResponse, ticketEventJson); + assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); + assertEquals(actualPortalRestResponse.getMessage(), "Message Source is mandatory"); + } + + @Test + public void saveTestForUserListValid() throws Exception { + String ticketEventJson = "{\"application\": \"cbus\",\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site. The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", \"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601,\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\",\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\",\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\", \"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {}}"; + PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, + mockedResponse, ticketEventJson); + assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); + assertEquals(actualPortalRestResponse.getMessage(), "At least one user Id is mandatory"); + } + + @Test + public void saveTestForApplicationValid() throws Exception { + String ticketEventJson = "{\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site. The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", \"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601,\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\",\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\",\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\", \"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {\"UserList\": [\"hk8777\"] }}"; + PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, + mockedResponse, ticketEventJson); + assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); + assertEquals(actualPortalRestResponse.getMessage(), "Application is mandatory"); + + } +} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserControllerTest.java new file mode 100644 index 00000000..205b2355 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserControllerTest.java @@ -0,0 +1,176 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.UserController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.UserService; +import org.onap.portalapp.portal.service.UserServiceImpl; +import org.onap.portalapp.portal.transport.ProfileDetail; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(CipherUtil.class) +public class UserControllerTest extends MockitoTestSuite { + + @InjectMocks + UserController userController = new UserController(); + + @Mock + UserService userService = new UserServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @Mock + EPUserUtils ePUserUtils = new EPUserUtils(); + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + MockEPUser mockUser = new MockEPUser(); + + @Test + public void getLoggedinUserExceptionTest() { + EPUser epUser = null; + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(epUser); + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage(null); + expectedResponse.setResponse(null); + PortalRestStatusEnum enu = null; + expectedResponse.setStatus(enu.ERROR); + PortalRestResponse response = userController.getLoggedinUser(mockedRequest); + assertEquals(response, expectedResponse); + } + + @Test + public void getLoggedinUserTest() throws Exception { + EPUser epUser = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(epUser); + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("success"); + ProfileDetail profileDetail = new ProfileDetail(); + expectedResponse.setResponse(profileDetail); + PortalRestStatusEnum enu = null; + expectedResponse.setStatus(enu.OK); + PowerMockito.mockStatic(CipherUtil.class); + Mockito.when(CipherUtil.decryptPKC(epUser.getLoginPwd())).thenReturn("Password"); + PortalRestResponse response = userController.getLoggedinUser(mockedRequest); + assertEquals(response.getMessage(), expectedResponse.getMessage()); + assertEquals(response.getStatus(), expectedResponse.getStatus()); + } + + @Test + public void modifyLoggedinUserIfProfileNullTest() { + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("java.lang.NullPointerException"); + expectedResponse.setResponse(null); + PortalRestStatusEnum enu = null; + expectedResponse.setStatus(enu.ERROR); + ProfileDetail profileDetail = null; + PortalRestResponse actualResponse = userController.modifyLoggedinUser(mockedRequest, profileDetail); + assertEquals(actualResponse, expectedResponse); + assertEquals(actualResponse.getStatus(), expectedResponse.getStatus()); + } + + @Test + public void modifyLoggedinUserExceptionTest() { + EPUser epUser = null; + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("java.lang.NullPointerException"); + expectedResponse.setResponse(null); + PortalRestStatusEnum enu = null; + expectedResponse.setStatus(enu.ERROR); + ProfileDetail profileDetail = new ProfileDetail(); + profileDetail.setFirstName("Test_FirstName"); + profileDetail.setLastName("Test_LastName"); + profileDetail.setEmail("Test_Email"); + profileDetail.setLoginId("Test_LoginId"); + profileDetail.setLoginPassword("Test_LoginPassword"); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(epUser); + PortalRestResponse actualResponse = userController.modifyLoggedinUser(mockedRequest, profileDetail); + assertEquals(actualResponse, expectedResponse); + + } + + /*@Test + public void modifyLoggedinUserTest() throws Exception { + EPUser epUser = mockUser.mockEPUser(); + PortalRestResponse expectedResponse = new PortalRestResponse(); + expectedResponse.setMessage("success"); + expectedResponse.setResponse(null); + PortalRestStatusEnum enu = null; + expectedResponse.setStatus(enu.OK); + ProfileDetail profileDetail = new ProfileDetail(); + profileDetail.setFirstName("Test_FirstName"); + profileDetail.setLastName("Test_LastName"); + profileDetail.setEmail("Test_Email"); + profileDetail.setLoginId("Test_LoginId"); + profileDetail.setLoginPassword("Test_LoginPassword"); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(epUser); + PowerMockito.mockStatic(CipherUtil.class); + Mockito.when(CipherUtil.decrypt(epUser.getLoginPwd())).thenReturn("Password"); + PortalRestResponse actualResponse = userController.modifyLoggedinUser(mockedRequest, profileDetail); + System.out.println(actualResponse); + }*/ +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserNotificationControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserNotificationControllerTest.java new file mode 100644 index 00000000..d829b60d --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserNotificationControllerTest.java @@ -0,0 +1,281 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Matchers; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.UserNotificationController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.ecomp.model.PortalRestResponse; +import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.FunctionalMenuService; +import org.onap.portalapp.portal.service.FunctionalMenuServiceImpl; +import org.onap.portalapp.portal.service.UserNotificationService; +import org.onap.portalapp.portal.service.UserNotificationServiceImpl; +import org.onap.portalapp.portal.transport.EpNotificationItem; +import org.onap.portalapp.portal.transport.EpNotificationItemVO; +import org.onap.portalapp.portal.transport.FunctionalMenuRole; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.UserUtils; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(UserUtils.class) +public class UserNotificationControllerTest { + + @Mock + FunctionalMenuService functionalMenuService = new FunctionalMenuServiceImpl(); + + @Mock + UserNotificationService userNotificationService = new UserNotificationServiceImpl(); + + @InjectMocks + UserNotificationController userNotificationController = new UserNotificationController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockEPUser mockUser = new MockEPUser(); + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + @Test + public void getMenuIdRoleIdTest() { + List expectedMenuRoleList = new ArrayList(); + FunctionalMenuRole functionalMenuRole = new FunctionalMenuRole(); + functionalMenuRole.setId(new Integer(99999999)); + functionalMenuRole.setMenuId((long) 137); + functionalMenuRole.setAppId(new Integer(456)); + functionalMenuRole.setRoleId(new Integer(6214)); + expectedMenuRoleList.add(functionalMenuRole); + List actualFunctionalMenuRoleList = null; + Mockito.when(functionalMenuService.getFunctionalMenuRole()).thenReturn(expectedMenuRoleList); + actualFunctionalMenuRoleList = userNotificationController.getMenuIdRoleId(mockedRequest, mockedResponse); + assertTrue(actualFunctionalMenuRoleList.equals(expectedMenuRoleList)); + + } + + @Test + public void getNotificationsTest() { + EPUser user = mockUser.mockEPUser(); + HttpSession session = mockedRequest.getSession(); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedEpNotificationList = new ArrayList(); + EpNotificationItem epNotificationItem = new EpNotificationItem(); + epNotificationItem.setNotificationId((long) 200); + expectedEpNotificationList.add(epNotificationItem); + PortalRestResponse> expectedportalRestResponse = new PortalRestResponse>(); + expectedportalRestResponse.setMessage("success"); + expectedportalRestResponse.setResponse(expectedEpNotificationList); + expectedportalRestResponse.setStatus(PortalRestStatusEnum.OK); + PortalRestResponse> actualPortalRestResponse = null; + Mockito.when(userNotificationService.getNotifications(user.getId())).thenReturn(expectedEpNotificationList); + actualPortalRestResponse = userNotificationController.getNotifications(mockedRequest, mockedResponse); + assertTrue(expectedportalRestResponse.equals(actualPortalRestResponse)); + + } + + @Test + public void getNotificationsCatchesExceptionTest() { + EPUser user = mockUser.mockEPUser(); + HttpSession session = mockedRequest.getSession(); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List expectedEpNotificationList = null; + PortalRestResponse> expectedportalRestResponse = new PortalRestResponse>(); + expectedportalRestResponse.setMessage(null); + expectedportalRestResponse.setResponse(expectedEpNotificationList); + expectedportalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + PortalRestResponse> actualPortalRestResponse = null; + Mockito.when(userNotificationService.getNotifications(user.getId())).thenThrow(new NullPointerException()); + actualPortalRestResponse = userNotificationController.getNotifications(mockedRequest, mockedResponse); + assertTrue(expectedportalRestResponse.equals(actualPortalRestResponse)); + } + + @Test + public void getAdminNotificationsTest() { + EPUser user = mockUser.mockEPUser(); + HttpSession session = mockedRequest.getSession(); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + List actualEpNotificationsList = new ArrayList(); + List expectedEpNotificationsList = new ArrayList(); + EpNotificationItemVO epNotificationItemVO = new EpNotificationItemVO(); + epNotificationItemVO.setId((long) 1); + expectedEpNotificationsList.add(epNotificationItemVO); + Mockito.when(userNotificationService.getAdminNotificationVOS(Matchers.anyLong())).thenReturn(expectedEpNotificationsList); + actualEpNotificationsList = userNotificationController.getAdminNotifications(mockedRequest, mockedResponse); + assertTrue(actualEpNotificationsList.equals(expectedEpNotificationsList)); + } + + @Test + public void saveTestWhenNotificationIsNull() throws Exception { + EPUser user = mockUser.mockEPUser(); + HttpSession session = mockedRequest.getSession(); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + + PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); + PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); + expectedPortalRestResponse.setMessage("FAILURE"); + expectedPortalRestResponse.setResponse("Notification Header cannot be null or empty"); + expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + + EpNotificationItem notificationItem = null; + actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem); + assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse)); + } + + @Test + public void saveTestWhenEndTimeIsGreater() throws Exception { + EPUser user = mockUser.mockEPUser(); + HttpSession session = mockedRequest.getSession(); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); + PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); + expectedPortalRestResponse.setMessage("FAILURE"); + expectedPortalRestResponse.setResponse("End Time should be greater than start time"); + expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + EpNotificationItem notificationItem = new EpNotificationItem(); + notificationItem.setNotificationId((long) 1); + notificationItem.setMsgHeader("Test"); + Date currentDate = new Date(); + Calendar c = Calendar.getInstance(); + c.setTime(currentDate); + c.add(Calendar.DATE, 1); + Date currentDatePlusOne = c.getTime(); + notificationItem.setStartTime(currentDatePlusOne); + notificationItem.setEndTime(currentDate); + + actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem); + assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse)); + + } + + @Test + public void saveTestWhenNoRoleIDExists() throws Exception { + EPUser user = mockUser.mockEPUser(); + HttpSession session = mockedRequest.getSession(); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); + PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); + expectedPortalRestResponse.setMessage("FAILURE"); + expectedPortalRestResponse.setResponse("No Roles Ids Exist for the selected Roles"); + expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); + EpNotificationItem notificationItem = new EpNotificationItem(); + notificationItem.setNotificationId((long) 1); + notificationItem.setMsgHeader("Test"); + notificationItem.setIsForAllRoles("N"); + Date currentDate = new Date(); + Calendar c = Calendar.getInstance(); + c.setTime(currentDate); + c.add(Calendar.DATE, 1); + Date currentDatePlusOne = c.getTime(); + notificationItem.setStartTime(currentDate); + notificationItem.setEndTime(currentDatePlusOne); + List roleList = new ArrayList(); + notificationItem.setRoleIds(roleList); + actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem); + assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse)); + } + + @Test + public void saveTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + HttpSession session = mockedRequest.getSession(); + session.setAttribute("user", user); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); + PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); + expectedPortalRestResponse.setMessage("SUCCESS"); + expectedPortalRestResponse.setResponse(""); + expectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); + EpNotificationItem notificationItem = new EpNotificationItem(); + notificationItem.setNotificationId((long) 1); + notificationItem.setMsgHeader("Test"); + notificationItem.setIsForAllRoles("Y"); + Date currentDate = new Date(); + Calendar c = Calendar.getInstance(); + c.setTime(currentDate); + c.add(Calendar.DATE, 1); + Date currentDatePlusOne = c.getTime(); + notificationItem.setStartTime(currentDate); + notificationItem.setEndTime(currentDatePlusOne); + List roleList = new ArrayList(); + Long role1 = (long) 1; + roleList.add(role1); + notificationItem.setRoleIds(roleList); + HttpServletRequest request = mockitoTestSuite.getMockedRequest(); + PowerMockito.mockStatic(UserUtils.class); + Mockito.when(UserUtils.getUserIdAsLong(request)).thenReturn((long) 1); + Mockito.when(userNotificationService.saveNotification(notificationItem)).thenReturn("Test"); + actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem); + assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse)); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserRolesControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserRolesControllerTest.java new file mode 100644 index 00000000..2897413e --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserRolesControllerTest.java @@ -0,0 +1,326 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.UserRolesController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EcompAuditLog; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.SearchService; +import org.onap.portalapp.portal.service.UserRolesService; +import org.onap.portalapp.portal.transport.AppWithRolesForUser; +import org.onap.portalapp.portal.transport.AppsListWithAdminRole; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.RoleInAppForUser; +import org.onap.portalapp.portal.transport.FieldsValidator.FieldName; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.service.AuditService; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({EcompPortalUtils.class, EPCommonSystemProperties.class, EcompAuditLog.class, SystemProperties.class}) +public class UserRolesControllerTest extends MockitoTestSuite { + + String userid = "ab1234"; + + @Mock + UserRolesService userRolesService; + + @Mock + SearchService searchService; + + @Mock + AuditService auditService; + + @Mock + AdminRolesService adminRolesService; + + @Mock + FieldsValidator fieldsValidator; + + @InjectMocks + UserRolesController userRolesController = new UserRolesController(); + + @Mock + private DataAccessService dataAccessService; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + + @Mock + EPUserUtils ePUserUtils = new EPUserUtils(); + + @Mock + EPUser epuser; + + MockEPUser mockUser = new MockEPUser(); + + @Test + public void putAppWithUserRoleRequestTest() { + + FieldsValidator actualFieldsValidator = null; + + AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser(); + List listofRoles = new ArrayList(); + + appWithRolesForUser.setOrgUserId("guest"); + appWithRolesForUser.setAppId((long) 550); + appWithRolesForUser.setAppName("D2 Services Analytics Dashboard"); + appWithRolesForUser.setAppRoles(listofRoles); + + RoleInAppForUser roleInAppForUser = new RoleInAppForUser(); + roleInAppForUser.setIsApplied(false); + roleInAppForUser.setRoleId((long) 1); + roleInAppForUser.setRoleName("System Administrator"); + + RoleInAppForUser roleInAppForUser1 = new RoleInAppForUser(); + roleInAppForUser1.setIsApplied(true); + roleInAppForUser1.setRoleId((long) 16); + roleInAppForUser1.setRoleName("Standard User"); + + listofRoles.add(roleInAppForUser); + listofRoles.add(roleInAppForUser1); + EPUser user = mockUser.mockEPUser(); + FieldsValidator expectedFieldValidator = new FieldsValidator(); + List fields = new ArrayList<>(); + + expectedFieldValidator.setHttpStatusCode((long) 200); + expectedFieldValidator.setFields(fields); + expectedFieldValidator.setErrorCode(null); + HttpSession session = mockedRequest.getSession(); + session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); + + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(userRolesService.putUserAppRolesRequest(appWithRolesForUser, user)) + .thenReturn(expectedFieldValidator); + + actualFieldsValidator = userRolesController.putAppWithUserRoleRequest(mockedRequest, appWithRolesForUser, + mockedResponse); + assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode()); + assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode()); + assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields()); + + } + + @Test + public void getPhoneBookSearchResultBadPermissionsTest() { + String searchString = "test"; + String actualResult = null; + String expectedResult = null; + + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); + Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult); + + actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse); + assertEquals(expectedResult, actualResult); + + } + + @Test + public void getPhoneBookSearchResultValidationTest() { + String searchString = " t"; + String actualResult = null; + String expectedResult = null; + + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); + Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult); + + actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse); + assertEquals(expectedResult, actualResult); + + } + + @Test + public void getPhoneBookSearchResultTest() { + String searchString = "test"; + String actualResult = null; + String expectedResult = null; + + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); + Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult); + + actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse); + assertEquals(expectedResult, actualResult); + + } + + @Test + public void getAppsWithAdminRoleStateForUserTest(){ + + String orgUserId = "hb123f"; + AppsListWithAdminRole actualResult = new AppsListWithAdminRole(); + AppsListWithAdminRole expectedResult = new AppsListWithAdminRole(); + EPUser user = mockUser.mockEPUser(); + // PowerMockito.mockStatic(EcompPortalUtils.class); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId)).thenReturn(actualResult); + + actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse); + assertEquals(expectedResult, actualResult); + } + + /*@Test + public void getAppsWithAdminRoleStateForUserBadRequestTest(){ + + String orgUserId = "hb123f"; + AppsListWithAdminRole actualResult = null; + AppsListWithAdminRole expectedResult = null; + EPUser user = mockUser.mockEPUser(); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.when(EcompPortalUtils.legitimateUserId(orgUserId)).thenReturn(false); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId)).thenReturn(actualResult); + + actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse); + assertEquals(expectedResult, actualResult); + }*/ + + @Test + public void putAppsWithAdminRoleStateForUserBadStatusCodeTest(){ + FieldsValidator actualFieldsValidator = null; + AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole(); + FieldsValidator expectedFieldsValidator = new FieldsValidator(); + List fieldNames = new ArrayList(); + expectedFieldsValidator.setErrorCode(null); + expectedFieldsValidator.setFields(fieldNames); + expectedFieldsValidator.setHttpStatusCode((long)200); + + EPUser user = mockUser.mockEPUser(); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + + actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse); + assertEquals(expectedFieldsValidator, actualFieldsValidator); + } + + + /*@Test + public void putAppsWithAdminRoleStateForUserTest() { + + FieldsValidator actualFieldsValidator = null; + AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole(); + EPUser user = mockUser.mockEPUser(); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompAuditLog.class); + PowerMockito.mockStatic(SystemProperties.class); + Mockito.when(SystemProperties.getProperty(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN)).thenReturn("1400"); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)).thenReturn("1400"); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)).thenReturn("1400"); + Mockito.when(SystemProperties.getProperty(SystemProperties.MDC_TIMER)).thenReturn("1400"); + + actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse); + + System.out.println(actualFieldsValidator); + Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult); + + actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse); + assertEquals(expectedResult, actualResult); + + }*/ + + /*@Test + public void putAppsWithAdminRoleStateForUserTest(){ + FieldsValidator actualFieldsValidator = null; + AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole(); + FieldsValidator expectedFieldsValidator = new FieldsValidator(); + List fieldNames = new ArrayList(); + expectedFieldsValidator.setErrorCode(null); + expectedFieldsValidator.setFields(fieldNames); + expectedFieldsValidator.setHttpStatusCode((long)200); + + EPUser user = mockUser.mockEPUser(); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompAuditLog.class); + PowerMockito.mockStatic(SystemProperties.class); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + Mockito.when(adminRolesService.setAppsWithAdminRoleStateForUser(newAppsListWithAdminRoles)); + Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); + + // Mockito.call(auditService.logActivity(auditLog, null)); +// Mockito.when(SystemProperties.getProperty(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN)).thenReturn("1400"); +// Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)).thenReturn("1400"); +// Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)).thenReturn("1400"); +// Mockito.when(SystemProperties.getProperty(SystemProperties.MDC_TIMER)).thenReturn("1400"); + + actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse); + assertEquals(expectedFieldsValidator, actualFieldsValidator); + }*/ +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WebAnalyticsExtAppControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WebAnalyticsExtAppControllerTest.java new file mode 100644 index 00000000..b65c442d --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WebAnalyticsExtAppControllerTest.java @@ -0,0 +1,147 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.*; + +import java.io.InputStream; +import java.nio.charset.StandardCharsets; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.io.IOUtils; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.WebAnalyticsExtAppController; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.AdminRolesServiceImpl; +import org.onap.portalapp.portal.service.AppsCacheService; +import org.onap.portalapp.portal.service.AppsCacheServiceImple; +import org.onap.portalapp.portal.transport.Analytics; +import org.onap.portalsdk.core.onboarding.crossapi.PortalAPIResponse; +import org.onap.portalsdk.core.service.AuditService; +import org.onap.portalsdk.core.service.AuditServiceImpl; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + + +@RunWith(PowerMockRunner.class) +@PrepareForTest({SystemProperties.class,IOUtils.class,Object.class}) +public class WebAnalyticsExtAppControllerTest { + + + + @InjectMocks + WebAnalyticsExtAppController webAnalyticsExtAppController = new WebAnalyticsExtAppController(); + + @Mock + AdminRolesService adminRolesService = new AdminRolesServiceImpl(); + + @Mock + AppsCacheService appCacheService = new AppsCacheServiceImple(); + + @Mock + AuditService auditService = new AuditServiceImpl(); + +// @Mock +// InputStream analyticsFileStream; + + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + /*@Test + public void getAnalyticsScriptTest() throws Exception + { + String expectedResponse = "http://www.ecomp.com"; + + InputStream analyticsFileStream = null; + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(IOUtils.class); + Mockito.when(IOUtils.toString(analyticsFileStream, StandardCharsets.UTF_8.name())).thenReturn("PORTAL_ENV_URL"); + Mockito.when(SystemProperties.getProperty("frontend_url")).thenReturn("http://www.ecomp.com/test"); + String actualResponse = webAnalyticsExtAppController.getAnalyticsScript(mockedRequest); +// assertNull(webAnalyticsExtAppController.getAnalyticsScript(mockedRequest)); + + // System.out.println(actualResponse); + assertTrue(actualResponse.equals(expectedResponse)); + }*/ + + /*@Test + public void getAnalyticsScriptExceptionTest() throws Exception + { + String expectedResponse = ""; + InputStream analyticsFileStream = null; + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(IOUtils.class); + Mockito.when(IOUtils.toString(analyticsFileStream, StandardCharsets.UTF_8.name())).thenThrow(nullPointerException); + Mockito.when(SystemProperties.getProperty("frontend_url")).thenReturn("http://www.ecomp.com/test"); + String actualResponse = webAnalyticsExtAppController.getAnalyticsScript(mockedRequest); + assertEquals(actualResponse,expectedResponse); + }*/ + + @Test + public void storeAnalyticsScriptIfAnalyticsNullTest() throws Exception + { + PortalAPIResponse expectedPortalAPIResponse = new PortalAPIResponse(true, "error"); + Analytics analytics= null; + Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(null); + PortalAPIResponse actualPortalAPIResponse = webAnalyticsExtAppController.storeAnalyticsScript(mockedRequest, analytics); + assertTrue(expectedPortalAPIResponse.getMessage().equals(actualPortalAPIResponse.getMessage())); + assertTrue(expectedPortalAPIResponse.getStatus().equals(actualPortalAPIResponse.getStatus())); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WidgetsCatalogControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WidgetsCatalogControllerTest.java new file mode 100644 index 00000000..50291f07 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WidgetsCatalogControllerTest.java @@ -0,0 +1,139 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.WidgetsCatalogController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.WidgetCatalog; +import org.onap.portalapp.portal.domain.WidgetServiceHeaders; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.ConsulHealthService; +import org.onap.portalapp.portal.service.ConsulHealthServiceImpl; +import org.onap.portalapp.portal.service.MicroserviceService; +import org.onap.portalapp.portal.service.MicroserviceServiceImpl; +import org.onap.portalapp.portal.service.WidgetParameterService; +import org.onap.portalapp.portal.service.WidgetParameterServiceImpl; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.springframework.http.HttpEntity; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; + + +@Ignore +@RunWith(PowerMockRunner.class) +@PrepareForTest({EPUserUtils.class, EcompPortalUtils.class, SystemProperties.class, EPCommonSystemProperties.class}) +public class WidgetsCatalogControllerTest { + + @Mock + ConsulHealthService consulHealthService = new ConsulHealthServiceImpl(); + + @Mock + MicroserviceService microserviceService = new MicroserviceServiceImpl(); + + @Mock + WidgetParameterService widgetParameterService = new WidgetParameterServiceImpl(); + + @InjectMocks + WidgetsCatalogController widgetsCatalogController = new WidgetsCatalogController(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + @Mock + WidgetServiceHeaders widgetServiceHeaders ; + + + @Mock + RestTemplate template = new RestTemplate(); + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + + NullPointerException nullPointerException = new NullPointerException(); + + MockEPUser mockUser = new MockEPUser(); + + @Mock + HttpEntity mockHttpEntity; + + @SuppressWarnings("unchecked") + @Test + public void getUserWidgetCatalogTest() throws RestClientException, Exception{ + + String resourceType = null; + List widgets = new ArrayList<>(); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + Mockito.when(EcompPortalUtils.widgetMsProtocol()).thenReturn("test1"); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WIDGET_MS_PROTOCOL)).thenReturn("https"); +// Mockito.when(WidgetServiceHeaders.getInstance()).thenReturn(HttpHeaders.ACCEPT); + Mockito.when(SystemProperties.getProperty("microservices.widget.local.port")).thenReturn("test"); + Mockito.when(consulHealthService.getServiceLocation("widgets-service", + "test")).thenReturn("test.com"); + Mockito.when(new HttpEntity(WidgetServiceHeaders.getInstance())).thenReturn(mockHttpEntity); +// HttpEntity entity = new HttpEntity("helloWorld"); +// ResponseEntity ans = new ResponseEntity<>(statusCode); +// Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), +// Matchers.>any(), Matchers.eq(ArrayList.class))).thenReturn(ans); +// List expectedWidgets = widgetsCatalogController.getUserWidgetCatalog(mockedRequest, mockedResponse, "guestT"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WidgetsCatalogMarkupControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WidgetsCatalogMarkupControllerTest.java new file mode 100644 index 00000000..03031b40 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/WidgetsCatalogMarkupControllerTest.java @@ -0,0 +1,110 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.controller; + +import static org.junit.Assert.assertTrue; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.controller.WidgetsCatalogMarkupController; +import org.onap.portalapp.portal.domain.WidgetServiceHeaders; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.ConsulHealthService; +import org.onap.portalapp.portal.service.ConsulHealthServiceImpl; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({WidgetServiceHeaders.class, EcompPortalUtils.class}) +public class WidgetsCatalogMarkupControllerTest extends MockitoTestSuite { + + @InjectMocks + WidgetsCatalogMarkupController widgetsCatalogMarkupController = new WidgetsCatalogMarkupController(); + + @Mock + ConsulHealthService consulHealthService = new ConsulHealthServiceImpl(); + + @Mock + RestTemplate template = new RestTemplate(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + @Mock + CipherUtil cipherUtil= new CipherUtil(); + + @Mock + EcompPortalUtils ecompPortalUtils =new EcompPortalUtils(); + + @Mock + WidgetServiceHeaders WidgetServiceHeaders ; + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + + @SuppressWarnings("static-access") + @Test + public void getWidgetMarkupTest() throws RestClientException, Exception + { + String whatService = "widgets-service"; + PowerMockito.mockStatic(WidgetServiceHeaders.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + Mockito.when(template.getForObject(EcompPortalUtils.widgetMsProtocol() + "://" + consulHealthService.getServiceLocation(whatService, null) + "/widget/microservices/markup/" + 1, String.class, + WidgetServiceHeaders.getInstance())).thenReturn("Success"); + String response = widgetsCatalogMarkupController.getWidgetMarkup(mockedRequest, mockedResponse, 1); + assertTrue(response.equals("Success")); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/shared-context-test.properties b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/shared-context-test.properties new file mode 100644 index 00000000..56e5907e --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/shared-context-test.properties @@ -0,0 +1,28 @@ +### +# ================================================================================ +# ECOMP Portal +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property +# ================================================================================ +# 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. +# ================================================================================ +### + +hostname= www.portal.onap.org +# port = 80 +secure = true +appname = ecompportal +restpath = context +uebkey = xgnLrmNmkfCRnIwa +username = username +countersign = pwd diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/MockEPUser.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/MockEPUser.java new file mode 100644 index 00000000..c5235446 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/MockEPUser.java @@ -0,0 +1,102 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.core; + +import java.util.Date; + +import org.onap.portalapp.portal.domain.EPUser; + +public class MockEPUser { + + public EPUser mockEPUser() { + + EPUser ePUser = new EPUser(); + ePUser.setOrgId(null); + ePUser.setManagerId(null); + ePUser.setFirstName("test"); + ePUser.setLastName("test"); + ePUser.setMiddleInitial(null); + ePUser.setPhone(null); + ePUser.setFax(null); + ePUser.setCellular(null); + ePUser.setEmail(null); + ePUser.setAddressId(null); + ePUser.setAlertMethodCd(null); + ePUser.setHrid(null); + ePUser.setOrgUserId("guestT"); + ePUser.setOrgCode(null); + ePUser.setAddress1(null); + ePUser.setAddress2(null); + ePUser.setCity(null); + ePUser.setState(null); + ePUser.setZipCode(null); + ePUser.setCountry(null); + ePUser.setOrgManagerUserId(null); + ePUser.setLocationClli(null); + ePUser.setBusinessCountryCode(null); + ePUser.setBusinessCountryName(null); + ePUser.setBusinessUnit(null); + ePUser.setBusinessUnitName(null); + ePUser.setDepartment(null); + ePUser.setDepartmentName(null); + ePUser.setCompanyCode(null); + ePUser.setCompany(null); + ePUser.setZipCodeSuffix(null); + ePUser.setJobTitle(null); + ePUser.setCommandChain(null); + ePUser.setSiloStatus(null); + ePUser.setCostCenter(null); + ePUser.setFinancialLocCode(null); + + ePUser.setLoginId(null); + ePUser.setLoginPwd(null); + Date date = new Date(); + ePUser.setLastLoginDate(date); + ePUser.setActive(true); + ePUser.setInternal(false); + ePUser.setSelectedProfileId(null); + ePUser.setTimeZoneId(null); + ePUser.setOnline(true); + ePUser.setChatId(null); + ePUser.setUserApps(null); + ePUser.setPseudoRoles(null); + + ePUser.setId((long) -1); + return ePUser; + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/PopulateSampleTestData.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/PopulateSampleTestData.java new file mode 100644 index 00000000..e3eeaa54 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/PopulateSampleTestData.java @@ -0,0 +1,85 @@ +package org.onap.portalapp.portal.core; +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +//package org.openecomp.portalapp.portal.core; +// +//import java.sql.Connection; +//import java.sql.SQLException; +// +//import javax.sql.DataSource; +// +//import org.junit.Before; +//import org.junit.Test; +//import org.openecomp.portalapp.framework.ApplicationCommonContextTestSuite; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.core.io.ClassPathResource; +//import org.springframework.jdbc.datasource.DataSourceUtils; +//import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; +// +//public class PopulateSampleTestData extends ApplicationCommonContextTestSuite { +// +// @Autowired +// DataSource dataSource; +// +// @Before +// public void populateTestData() throws SQLException { +// +// String sql = "PopulateTestData.sql"; +// createConnection(sql); +// } +// +// public void createConnection(String sql) { +// Connection connection = null; +// ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); +// populator.addScript(new ClassPathResource(sql)); +// try { +// connection = DataSourceUtils.getConnection(dataSource); +// populator.populate(connection); +// } finally { +// if (connection != null) { +// DataSourceUtils.releaseConnection(connection, dataSource); +// } +// } +// } +// +// @Test +// public void populateTest() { +// assert (true); +// } +// +//} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RemoveSampleTestData.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RemoveSampleTestData.java new file mode 100644 index 00000000..1fa6c7d1 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RemoveSampleTestData.java @@ -0,0 +1,84 @@ +package org.onap.portalapp.portal.core; +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +//package org.openecomp.portalapp.portal.core; +// +//import java.sql.Connection; +//import java.sql.SQLException; +// +//import javax.sql.DataSource; +// +//import org.junit.After; +//import org.junit.Test; +//import org.openecomp.portalapp.framework.ApplicationCommonContextTestSuite; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.core.io.ClassPathResource; +//import org.springframework.jdbc.datasource.DataSourceUtils; +//import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; +// +//public class RemoveSampleTestData extends ApplicationCommonContextTestSuite { +// @Autowired +// DataSource dataSource; +// +// public static int count = 0; +// +// @After +// public void removeTestData() throws SQLException { +// String sql = "RemoveTestData.sql"; +// createConnection(sql); +// } +// +// public void createConnection(String sql) { +// Connection connection = null; +// ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); +// populator.addScript(new ClassPathResource(sql)); +// try { +// connection = DataSourceUtils.getConnection(dataSource); +// populator.populate(connection); +// } finally { +// if (connection != null) { +// DataSourceUtils.releaseConnection(connection, dataSource); +// } +// } +// } +// +// @Test +// public void removeTest() { +// assert (true); +// } +//} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RestURLsTestSuite.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RestURLsTestSuite.java new file mode 100644 index 00000000..8bb21812 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RestURLsTestSuite.java @@ -0,0 +1,353 @@ +package org.onap.portalapp.portal.core; +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +//package org.openecomp.portalapp.portal.core; +// +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +// +//import java.io.IOException; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +// +//import org.junit.Assert; +//import org.junit.Test; +//import org.openecomp.portalapp.framework.ApplicationCommonContextTestSuite; +//import org.openecomp.portalapp.portal.domain.EPUser; +//import org.openecomp.portalapp.portal.test.core.MockEPUser; +//import org.openecomp.portalapp.portal.transport.AppNameIdIsAdmin; +//import org.openecomp.portalapp.portal.transport.AppsListWithAdminRole; +//import org.openecomp.portalsdk.core.util.SystemProperties; +//import org.springframework.http.MediaType; +//import org.springframework.test.web.servlet.ResultActions; +//import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +//import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +// +//import com.fasterxml.jackson.annotation.JsonInclude; +//import com.fasterxml.jackson.databind.ObjectMapper; +// +///** +// * +// * Use RestURLsTestSuite to test Rest API URL's +// */ +//public class RestURLsTestSuite extends ApplicationCommonContextTestSuite { +// +// public static final MediaType APPLICATION_JSON_UTF8 = new MediaType(MediaType.APPLICATION_JSON.getType(), +// MediaType.APPLICATION_JSON.getSubtype(), Charset.forName("utf8")); +// +// String url = null; +// +// MockEPUser mockUser = new MockEPUser(); +// +// public byte[] convertObjectToJsonBytes(Object object) throws IOException { +// ObjectMapper mapper = new ObjectMapper(); +// mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); +// return mapper.writeValueAsBytes(object); +// } +// +// public void requestBuilder(String url) throws Exception { +// EPUser user = mockUser.mockEPUser(); +// +// MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get(url); +// requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); +// ResultActions ra = getMockMvc().perform(requestBuilder); +// assertData(ra); +// } +// +// public void assertData(ResultActions ra) { +// Assert.assertEquals("application/json", ra.andReturn().getResponse().getContentType()); +// Assert.assertEquals(200, ra.andReturn().getResponse().getStatus()); +// +// } +// +// @Test +// public void getMenuItemsTest() throws Exception { +// url = "/portalApi/functionalMenu"; +// requestBuilder(url); +// } +// +// @Test +// public void getMenuItemsForNotificationsTest() throws Exception { +// url = "/portalApi/functionalMenuForNotificationTree"; +// requestBuilder(url); +// } +// +// @Test +// public void getUserAppsTestnew() throws Exception { +// url = "/portalApi/userApps"; +// requestBuilder(url); +// } +// +// @Test +// public void getPersUserAppsTest() throws Exception { +// url = "/portalApi/persUserApps"; +// requestBuilder(url); +// } +// +// @Test +// public void getAppCatalogTest() throws Exception { +// url = "/portalApi/appCatalog"; +// requestBuilder(url); +// } +// +// @Test +// public void getAppListNewTest() throws Exception { +// ResultActions ra = getMockMvc() +// .perform(MockMvcRequestBuilders.get("/portalApi/userApplicationRoles").param("userId", "guest")); +// assertData(ra); +// } +// +// @Test +// public void getAvailableAppListTest() throws Exception { +// url = "/portalApi/availableApps"; +// requestBuilder(url); +// } +// +// @Test +// public void getAllAppsTest() throws Exception { +// url = "/portalApi/allAvailableApps"; +// requestBuilder(url); +// } +// +// @Test +// public void getUserProfileTest() throws Exception { +// url = "/portalApi/userProfile"; +// requestBuilder(url); +// } +// +// @Test +// public void getRolesByAppTest() throws Exception { +// EPUser user = mockUser.mockEPUser(); +// MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/portalApi/adminAppsRoles/550"); +// requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); +// ResultActions ra = getMockMvc().perform(requestBuilder); +// assertData(ra); +// } +// +// @Test +// public void getAppsWithAdminRoleStateForUserTest() throws Exception { +// url = "/portalApi/adminAppsRoles?user=guest"; +// requestBuilder(url); +// +// } +// +// @Test +// public void getUsersFromAppEndpointTest() throws Exception { +// url = "/portalApi/app/550/users"; +// requestBuilder(url); +// } +// +// @Test +// public void getOnboardingAppsTest() throws Exception { +// url = "/portalApi/onboardingApps"; +// requestBuilder(url); +// } +// +// @Test +// public void getMenuItemsForAuthUserTest() throws Exception { +// url = "/portalApi/functionalMenuForAuthUser"; +// requestBuilder(url); +// } +// +// @Test +// public void getMenuItemsForEditingTest() throws Exception { +// url = "/portalApi/functionalMenuForEditing"; +// requestBuilder(url); +// } +// +// @Test +// public void getAppRolesTest() throws Exception { +// url = "/portalApi/appRoles/455"; +// requestBuilder(url); +// } +// +// @Test +// public void regenerateAncestorTableTest() throws Exception { +// +// EPUser user = mockUser.mockEPUser(); +// +// MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders +// .get("/portalApi/regenerateFunctionalMenuAncestors"); +// requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); +// ResultActions ra = getMockMvc().perform(requestBuilder); +// assertEquals("application/json;charset=UTF-8", ra.andReturn().getResponse().getContentType()); +// Assert.assertEquals(200, ra.andReturn().getResponse().getStatus()); +// +// } +// +// @Test +// public void getAppListTest() throws Exception { +// url = "/portalApi/getAppList"; +// requestBuilder(url); +// } +// +// @Test +// public void getFavoritesForUserTest() throws Exception { +// url = "/portalApi/getFavoriteItems"; +// requestBuilder(url); +// } +// +// @Test +// public void getManifestTest() throws Exception { +// url = "/portalApi/manifest"; +// requestBuilder(url); +// } +// +// @Test +// public void getActiveUsersTest() throws Exception { +// url = "/portalApi/dashboard/activeUsers"; +// requestBuilder(url); +// } +// +// @Test +// public void searchPortalTest() throws Exception { +// EPUser user = mockUser.mockEPUser(); +// MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/portalApi/dashboard/search") +// .param("searchString", "guest"); +// requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); +// ResultActions ra = getMockMvc().perform(requestBuilder); +// assertData(ra); +// } +// +// @Test +// public void getWidgetDataTest() throws Exception { +// EPUser user = mockUser.mockEPUser(); +// MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/portalApi/dashboard/widgetData") +// .param("resourceType", "guest"); +// requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); +// ResultActions ra = getMockMvc().perform(requestBuilder); +// assertData(ra); +// } +// +// @Test +// public void getAppsAndContactsTest() throws Exception { +// url = "/portalApi/contactus/allapps"; +// requestBuilder(url); +// } +// +// @Test +// public void getPortalDetailsTest() throws Exception { +// url = "/portalApi/contactus/feedback"; +// requestBuilder(url); +// } +// +// @Test +// public void getAppCategoryFunctionsTest() throws Exception { +// url = "/portalApi/contactus/functions"; +// requestBuilder(url); +// } +// +// @Test +// public void getOnlineUserUpdateRateTest() throws Exception { +// url = "/portalApi/dashboard/onlineUserUpdateRate"; +// requestBuilder(url); +// } +// +// @Test +// public void getMenuIdRoleIdTest() throws Exception { +// url = "/portalApi/getFunctionalMenuRole"; +// requestBuilder(url); +// } +// +// @Test +// public void getNotificationsTest() throws Exception { +// url = "/portalApi/getNotifications"; +// requestBuilder(url); +// } +// +// @Test +// public void getAdminNotificationsTest() throws Exception { +// url = "/portalApi/getAdminNotifications"; +// requestBuilder(url); +// } +// +// @Test +// public void getNotificationAppRolesTest() throws Exception { +// url = "/portalApi/getNotificationAppRoles"; +// requestBuilder(url); +// } +// +// @Test +// public void getNotificationUpdateRateTest() throws Exception { +// url = "/portalApi/notificationUpdateRate"; +// requestBuilder(url); +// } +// +// @Test +// public void notificationReadTest() throws Exception { +// url = "/portalApi/notificationRead?notificationId=262"; +// requestBuilder(url); +// } +// +// @Test +// public void testGetRolesTest() throws Exception { +// url = "/portalApi/notificationRole/248/roles"; +// requestBuilder(url); +// } +// +// @Test +// public void putAppsWithAdminRoleStateForUserTest() throws Exception { +// +// AppsListWithAdminRole appsListWithAdminRole = new AppsListWithAdminRole(); +// appsListWithAdminRole.setOrgUserId("guest"); +// ArrayList appsRoles = new ArrayList(); +// AppNameIdIsAdmin appNameIdIsAdmin = new AppNameIdIsAdmin(); +// appNameIdIsAdmin.setId((long) 455); +// appNameIdIsAdmin.setAppName("CCD"); +// appNameIdIsAdmin.setIsAdmin(true); +// appNameIdIsAdmin.setRestrictedApp(false); +// appsRoles.add(appNameIdIsAdmin); +// appsListWithAdminRole.setAppsRoles(appsRoles); +// EPUser user = mockUser.mockEPUser(); +// MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/portalApi/adminAppsRoles") +// .contentType(APPLICATION_JSON_UTF8).content(convertObjectToJsonBytes(appsListWithAdminRole)); +// +// requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); +// ResultActions ra = getMockMvc().perform(requestBuilder); +// assertData(ra); +// } +// +// @Test +// public void ticketEventControllerForExternalSystem() throws Exception { +// String ticketEventJson = "{\"application\": \"cbus\",\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site. The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", \"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601,\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\",\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\",\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\", \"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {\"UserList\": [\"hk8777\"] }}"; +// MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/auxapi/ticketevent") +// .contentType(APPLICATION_JSON_UTF8).content(ticketEventJson); +// ResultActions ra = getMockMvc().perform(requestBuilder); +// assertTrue(ra.andReturn().getResponse().getContentType().contains("application/json")); +// } +//} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AdminUserAppTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AdminUserAppTest.java new file mode 100644 index 00000000..f93fe4a3 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AdminUserAppTest.java @@ -0,0 +1,73 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.AdminUserApp; + +public class AdminUserAppTest { + + public AdminUserApp mockAdminUserApp(){ + + AdminUserApp adminUserApp = new AdminUserApp(); + + adminUserApp.setUserId((long)1); + adminUserApp.setFirstName("test"); + adminUserApp.setLastName("test"); + adminUserApp.setOrgUserId("test"); + adminUserApp.setAppId((long)1); + adminUserApp.setAppName("test"); + + return adminUserApp; + } + + @Test + public void adminUserAppTest(){ + AdminUserApp adminUserApp = mockAdminUserApp(); + + assertEquals(adminUserApp.getUser_Id(), new Long(1)); + assertEquals(adminUserApp.getFirstName(), "test"); + assertEquals(adminUserApp.getLastName(), "test"); + assertEquals(adminUserApp.getOrgUserId(), "test"); + assertEquals(adminUserApp.getAppName(), "test"); + assertEquals(adminUserApp.getAppId(), new Long(1)); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AdminUserApplicationsTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AdminUserApplicationsTest.java new file mode 100644 index 00000000..b01efb83 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AdminUserApplicationsTest.java @@ -0,0 +1,94 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import javax.persistence.Column; +import javax.persistence.Id; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.AdminUserApp; +import org.onap.portalapp.portal.domain.AdminUserApplications; + +public class AdminUserApplicationsTest { + + public AdminUserApplications mockAdminUserApplications(){ + + AdminUserApp adminUserApp = new AdminUserApp(); + + adminUserApp.setUserId((long)1); + adminUserApp.setFirstName("test"); + adminUserApp.setLastName("test"); + adminUserApp.setOrgUserId("test"); + adminUserApp.setAppId((long)1); + adminUserApp.setAppName("test"); + + AdminUserApplications adminUserApplications = new AdminUserApplications(adminUserApp); + + adminUserApplications.setUser_Id((long)1); + adminUserApplications.setFirstName("test"); + adminUserApplications.setLastName("test"); + adminUserApplications.setOrgUserId("test"); + return adminUserApplications; + } + + @Test + public void adminUserAppTest(){ + AdminUserApplications adminUserApplications = mockAdminUserApplications(); + AdminUserApp adminUserApp = new AdminUserApp(); + + adminUserApp.setUserId((long)1); + adminUserApp.setFirstName("test"); + adminUserApp.setLastName("test"); + adminUserApp.setOrgUserId("test"); + adminUserApp.setAppId((long)1); + adminUserApp.setAppName("test"); + AdminUserApplications adminUserApplications1 = new AdminUserApplications(adminUserApp); + + assertEquals(adminUserApplications.getUser_Id(), new Long(1)); + assertEquals(adminUserApplications.getFirstName(), "test"); + assertEquals(adminUserApplications.getLastName(), "test"); + assertEquals(adminUserApplications.getOrgUserId(), "test"); + + + assertEquals(adminUserApplications1.getApps().get(0).getAppId(),adminUserApp.getAppId()); + assertEquals(adminUserApplications1.getApps().get(0).getAppName(),adminUserApp.getAppName()); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AppContactUsTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AppContactUsTest.java new file mode 100644 index 00000000..ec24c6e4 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/AppContactUsTest.java @@ -0,0 +1,69 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.AppContactUs; + +public class AppContactUsTest { + + public AppContactUs mockAppContactUs(){ + AppContactUs appContactUs = new AppContactUs(); + appContactUs.setDescription("test"); + appContactUs.setContactEmail("test"); + appContactUs.setContactName("test"); + appContactUs.setUrl("test"); + appContactUs.setActiveYN("test"); + + return appContactUs; + } + + @Test + public void mockAppContactUsTest(){ + AppContactUs appContactUs = mockAppContactUs(); + + assertEquals(appContactUs.getDescription(), "test"); + assertEquals(appContactUs.getContactEmail(), "test"); + assertEquals(appContactUs.getContactName(), "test"); + assertEquals(appContactUs.getUrl(), "test"); + assertEquals(appContactUs.getActiveYN(), "test"); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/CentralRoleFunctionTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/CentralRoleFunctionTest.java new file mode 100644 index 00000000..d91ed842 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/CentralRoleFunctionTest.java @@ -0,0 +1,67 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.CentralRoleFunction; + +public class CentralRoleFunctionTest { + + public CentralRoleFunction mockCentralRoleFunction(){ + + CentralRoleFunction centralRoleFunction = new CentralRoleFunction(); + + centralRoleFunction.setCode("test"); + centralRoleFunction.setName("test"); + centralRoleFunction.setId(null); + centralRoleFunction.setEditUrl("test"); + return centralRoleFunction; + } + + @Test + public void centralRoleFunctionTest(){ + CentralRoleFunction centralRoleFunction = mockCentralRoleFunction(); + + assertEquals(centralRoleFunction.getId(), null); + assertEquals(centralRoleFunction.getCode(), "test"); + assertEquals(centralRoleFunction.getName(), "test"); + assertEquals(centralRoleFunction.getEditUrl(), "test"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/CentralV2RoleFunctionTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/CentralV2RoleFunctionTest.java new file mode 100644 index 00000000..345f4576 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/CentralV2RoleFunctionTest.java @@ -0,0 +1,71 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class CentralV2RoleFunctionTest { + + public CentralV2RoleFunction mockCentralRoleFunction(){ + + CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(); + + centralV2RoleFunction.setCode("test"); + centralV2RoleFunction.setName("test"); + centralV2RoleFunction.setAppId((long)1); + centralV2RoleFunction.setEditUrl("test"); + centralV2RoleFunction.setType("testType"); + centralV2RoleFunction.setAction("testAction"); + + return centralV2RoleFunction; + } + + @Test + public void centralRoleFunctionTest(){ + CentralV2RoleFunction centralV2RoleFunction = mockCentralRoleFunction(); + + assertEquals(centralV2RoleFunction.getAppId(), new Long(1)); + assertEquals(centralV2RoleFunction.getCode(), "test"); + assertEquals(centralV2RoleFunction.getName(), "test"); + assertEquals(centralV2RoleFunction.getEditUrl(), "test"); + assertEquals(centralV2RoleFunction.getAction(), "testAction"); + assertEquals(centralV2RoleFunction.getType(), "testType"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPAppRoleFunctionTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPAppRoleFunctionTest.java new file mode 100644 index 00000000..cb936916 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPAppRoleFunctionTest.java @@ -0,0 +1,64 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPAppRoleFunction; + +public class EPAppRoleFunctionTest { + + public EPAppRoleFunction mockEPAppRoleFunction(){ + EPAppRoleFunction epAppRoleFunction = new EPAppRoleFunction(); + epAppRoleFunction.setRoleId((long)1); + epAppRoleFunction.setAppId((long)1); + epAppRoleFunction.setCode("test"); + + return epAppRoleFunction; + } + + @Test + public void epAppRoleFunctionTest(){ + EPAppRoleFunction epAppRoleFunction = mockEPAppRoleFunction(); + + assertEquals(epAppRoleFunction.getRoleId(), new Long(1)); + assertEquals(epAppRoleFunction.getAppId(), new Long(1)); + assertEquals(epAppRoleFunction.getCode(), "test"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPAppTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPAppTest.java new file mode 100644 index 00000000..7537ccf2 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPAppTest.java @@ -0,0 +1,98 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPApp; + +public class EPAppTest { + + public EPApp mockEPApp(){ + EPApp epApp = new EPApp(); + + epApp.setName("test"); + epApp.setImageUrl("test"); + epApp.setDescription("test"); + epApp.setNotes("test"); + epApp.setUrl("test"); + epApp.setAlternateUrl("test"); + epApp.setAppRestEndpoint("test"); + epApp.setMlAppName("test"); + epApp.setMlAppAdminId("test"); + epApp.setMotsId((long)1); + epApp.setUsername("test"); + epApp.setAppPassword("test"); + epApp.setOpen(false); + epApp.setEnabled(false); + epApp.setUebTopicName("test"); + epApp.setUebSecret("test"); + epApp.setAppType(1); + epApp.setCentralAuth(false); + epApp.setNameSpace("test"); + + return epApp; + } + + @Test + public void epAppTest(){ + EPApp epApp = mockEPApp(); + + assertEquals(epApp.getName(), "test"); + assertEquals(epApp.getImageUrl(), "test"); + assertEquals(epApp.getDescription(), "test"); + assertEquals(epApp.getNotes(), "test"); + assertEquals(epApp.getUrl(), "test"); + assertEquals(epApp.getAlternateUrl(), "test"); + assertEquals(epApp.getAppRestEndpoint(), "test"); + assertEquals(epApp.getMlAppName(), "test"); + assertEquals(epApp.getMlAppAdminId(), "test"); + assertEquals(epApp.getMotsId(), new Long(1)); + assertEquals(epApp.getUsername(), "test"); + assertEquals(epApp.getAppPassword(), "test"); + assertEquals(epApp.getOpen(), false); + assertEquals(epApp.getEnabled(), false); + assertEquals(epApp.getUebTopicName(), "test"); + assertEquals(epApp.getUebSecret(), "test"); + assertEquals(epApp.getAppType(), Integer.valueOf(1)); + assertEquals(epApp.getCentralAuth(), false); + assertEquals(epApp.getNameSpace(), "test"); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPEndpointAccountTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPEndpointAccountTest.java new file mode 100644 index 00000000..d01860af --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPEndpointAccountTest.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPEndpointAccount; + +public class EPEndpointAccountTest { + + public EPEndpointAccount mockEPEndpointAccount(){ + EPEndpointAccount epEndpointAccount = new EPEndpointAccount(); + + epEndpointAccount.setEp_id((long)1); + epEndpointAccount.setAccount_id((long)1); + epEndpointAccount.setId((long)1); + + return epEndpointAccount; + } + + @Test + public void epEndpointAccount(){ + EPEndpointAccount epEndpointAccount = mockEPEndpointAccount(); + assertEquals(epEndpointAccount.getEp_id(), new Long(1)); + assertEquals(epEndpointAccount.getAccount_id(), new Long(1)); + assertEquals(epEndpointAccount.getId(), new Long(1)); + + assertEquals(epEndpointAccount.toString(), "EPEndpointAccount [id=1, ep_id=1, account_id=1]"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPEndpointTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPEndpointTest.java new file mode 100644 index 00000000..79915f25 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPEndpointTest.java @@ -0,0 +1,64 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPEndpoint; + +public class EPEndpointTest { + + public EPEndpoint mockEPEndpoint(){ + EPEndpoint epEndpoint = new EPEndpoint(); + + epEndpoint.setId((long)1); + epEndpoint.setName("test"); + + return epEndpoint; + } + + @Test + public void epEndpointTest(){ + EPEndpoint epEndpoint = mockEPEndpoint(); + + assertEquals(epEndpoint.getId(), new Long(1)); + assertEquals(epEndpoint.getName(), "test"); + assertEquals("EPEndpoint [id=1, name=test]", epEndpoint.toString()); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPRoleTest.java new file mode 100644 index 00000000..0b51b3d7 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPRoleTest.java @@ -0,0 +1,73 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPRole; + +public class EPRoleTest { + + public EPRole mockEPRole(){ + EPRole epRole = new EPRole(); + + epRole.setName("test"); + epRole.setActive(false); + epRole.setPriority(1); + epRole.setAppId((long)1); + epRole.setAppRoleId((long)1); + + return epRole; + } + + @Test + public void epRoleTest(){ + EPRole epRole = mockEPRole(); + + assertEquals(epRole.getName(), "test"); + assertEquals(epRole.getActive(), false); + assertEquals(epRole.getPriority().toString(),"1"); + assertEquals(epRole.getAppId(), new Long(1)); + assertEquals(epRole.getAppRoleId(), new Long(1)); + + assertEquals(epRole.toString(), "[Id = null, name = test]"); + + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppCatalogRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppCatalogRolesTest.java new file mode 100644 index 00000000..e90f74fe --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppCatalogRolesTest.java @@ -0,0 +1,69 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPUserAppCatalogRoles; + +public class EPUserAppCatalogRolesTest { + + public EPUserAppCatalogRoles mockEPUserAppCatalogRoles(){ + EPUserAppCatalogRoles epUserAppCatalogRoles = new EPUserAppCatalogRoles(); + + epUserAppCatalogRoles.setRequestedRoleId((long)1); + epUserAppCatalogRoles.setRolename("test"); + epUserAppCatalogRoles.setRequestStatus("status"); + epUserAppCatalogRoles.setAppId((long)1); + + return epUserAppCatalogRoles; + } + + @Test + public void epUserAppCatalogRolesTest(){ + EPUserAppCatalogRoles epUserAppCatalogRoles = mockEPUserAppCatalogRoles(); + + assertEquals(epUserAppCatalogRoles.getRequestedRoleId(), new Long(1)); + assertEquals(epUserAppCatalogRoles.getRolename(), "test"); + assertEquals(epUserAppCatalogRoles.getRequestStatus(), "status"); + assertEquals(epUserAppCatalogRoles.getAppId(), new Long(1)); + + assertEquals("EPUserAppCatalogRoles [requestedRoleId=1, rolename=test, requestStatus=status, appId=1]", epUserAppCatalogRoles.toString()); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequestDetailTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequestDetailTest.java new file mode 100644 index 00000000..31efff3e --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppRolesRequestDetailTest.java @@ -0,0 +1,88 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import java.util.Date; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPUserAppRolesRequest; +import org.onap.portalapp.portal.domain.EPUserAppRolesRequestDetail; + +public class EPUserAppRolesRequestDetailTest { + + public EPUserAppRolesRequestDetail mockEPUserAppRolesRequestDetail(){ + + EPUserAppRolesRequest epUserAppRolesRequest = new EPUserAppRolesRequest(); + epUserAppRolesRequest.setUserId((long)1); + epUserAppRolesRequest.setAppId((long)1); + epUserAppRolesRequest.setCreated(new Date()); + epUserAppRolesRequest.setUpdatedDate(new Date()); + epUserAppRolesRequest.setRequestStatus("test"); + + EPUserAppRolesRequestDetail epUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail(); + epUserAppRolesRequestDetail.setReqRoleId((long)1); + epUserAppRolesRequestDetail.setReqType("test"); + epUserAppRolesRequestDetail.setEpRequestIdData(epUserAppRolesRequest); + + return epUserAppRolesRequestDetail; + } + + @Test + public void epUserAppRolesRequestDetailTest(){ + + EPUserAppRolesRequest epUserAppRolesRequest = new EPUserAppRolesRequest(); + epUserAppRolesRequest.setUserId((long)1); + epUserAppRolesRequest.setAppId((long)1); + epUserAppRolesRequest.setCreated(new Date()); + epUserAppRolesRequest.setUpdatedDate(new Date()); + epUserAppRolesRequest.setRequestStatus("test"); + + EPUserAppRolesRequestDetail epUserAppRolesRequestDetail = mockEPUserAppRolesRequestDetail(); + + EPUserAppRolesRequestDetail epUserAppRolesRequestDetail1 = new EPUserAppRolesRequestDetail(); + epUserAppRolesRequestDetail1.setReqRoleId((long)1); + epUserAppRolesRequestDetail1.setReqType("test"); + epUserAppRolesRequestDetail1.setEpRequestIdData(epUserAppRolesRequest); + + assertEquals(epUserAppRolesRequestDetail.getReqRoleId(), new Long(1)); + assertEquals(epUserAppRolesRequestDetail.getReqType(), "test"); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppRolesTest.java new file mode 100644 index 00000000..98b2d7bf --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppRolesTest.java @@ -0,0 +1,65 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPUserAppRoles; + +public class EPUserAppRolesTest { + + public EPUserAppRoles mockEPUserAppRoles(){ + EPUserAppRoles epUserAppRoles = new EPUserAppRoles(); + + epUserAppRoles.setRoleId((long)1); + epUserAppRoles.setAppId((long)1); + + return epUserAppRoles; + } + + @Test + public void epUserAppRolesTest(){ + EPUserAppRoles epUserAppRoles = mockEPUserAppRoles(); + + assertEquals(epUserAppRoles.getRoleId(), new Long(1)); + assertEquals(epUserAppRoles.getAppId(), new Long(1)); + assertEquals("EpUserAppRoles [roleId=1, appId=1]", epUserAppRoles.toString()); + } +} + diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppTest.java new file mode 100644 index 00000000..72c5002d --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppTest.java @@ -0,0 +1,122 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUserApp; + +public class EPUserAppTest { + + public EPUserApp mockEPUserApp(){ + + EPApp epApp = new EPApp(); + epApp.setName("test"); + epApp.setImageUrl("test"); + epApp.setDescription("test"); + epApp.setNotes("test"); + epApp.setUrl("test"); + epApp.setAlternateUrl("test"); + epApp.setAppRestEndpoint("test"); + epApp.setMlAppName("test"); + epApp.setMlAppAdminId("test"); + epApp.setMotsId((long)1); + epApp.setUsername("test"); + epApp.setAppPassword("test"); + + + //Role + EPRole epRole = new EPRole(); + epRole.setName("test"); + epRole.setActive(false); + epRole.setPriority(1); + epRole.setAppId((long)1); + epRole.setAppRoleId((long)1); + + EPUserApp user = new EPUserApp(); + user.setUserId((long)1); + user.setApp(epApp); + user.setRole(epRole); + user.setPriority((short)32767); + + + return user; + } + + @Test + public void userTest(){ + EPUserApp user = mockEPUserApp(); + + EPApp epApp = new EPApp(); + epApp.setName("test"); + epApp.setImageUrl("test"); + epApp.setDescription("test"); + epApp.setNotes("test"); + epApp.setUrl("test"); + epApp.setAlternateUrl("test"); + epApp.setAppRestEndpoint("test"); + epApp.setMlAppName("test"); + epApp.setMlAppAdminId("test"); + epApp.setMotsId((long)1); + epApp.setUsername("test"); + epApp.setAppPassword("test"); + user.setApp(epApp); + + //Role + EPRole epRole = new EPRole(); + epRole.setName("test"); + epRole.setActive(false); + epRole.setPriority(1); + epRole.setAppId((long)1); + epRole.setAppRoleId((long)1); + + + assertEquals(user.getUserId(),Long.valueOf(1)); + assertEquals(user.getApp(), epApp); + assertEquals(user.getPriority().getClass(), Short.class); + + assertEquals(user.toString(), "[u: 1; a: null, r: null; appRoleId: 1]"); + + assertEquals(user.hashCode(), user.hashCode()); + + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java new file mode 100644 index 00000000..2923eb2b --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPUserAppsManualSortPreference; + +public class EPUserAppsManualSortPreferenceTest { + + public EPUserAppsManualSortPreference mockEPUserAppsManualSortPreference(){ + + EPUserAppsManualSortPreference epUserAppsManualSortPreference = new EPUserAppsManualSortPreference(); + epUserAppsManualSortPreference.setUserId(1); + epUserAppsManualSortPreference.setAppId((long)1); + epUserAppsManualSortPreference.setAppManualSortOrder(1); + + return epUserAppsManualSortPreference; + } + + @Test + public void epUserAppsManualSortPreferenceTest(){ + + EPUserAppsManualSortPreference epUserAppsManualSortPreference = mockEPUserAppsManualSortPreference(); + + assertEquals(epUserAppsManualSortPreference.getUserId(), 1); + assertEquals(epUserAppsManualSortPreference.getAppId(), new Long(1)); + assertEquals(epUserAppsManualSortPreference.getAppManualSortOrder(), 1); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsSortPreferenceTest.java new file mode 100644 index 00000000..e2b49f0a --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsSortPreferenceTest.java @@ -0,0 +1,80 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import java.util.Date; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPUserAppsSortPreference; + +public class EPUserAppsSortPreferenceTest { + + public EPUserAppsSortPreference mockEPUserAppsSortPreferenceTest(){ + + EPUserAppsSortPreference epUserAppsSortPreference = new EPUserAppsSortPreference(); + epUserAppsSortPreference.setUserId(1); + epUserAppsSortPreference.setSortPref("test"); + epUserAppsSortPreference.setId((long)1); + epUserAppsSortPreference.setCreated(new Date()); + epUserAppsSortPreference.setModified(new Date()); + epUserAppsSortPreference.setModifiedId((long)1); + epUserAppsSortPreference.setRowNum((long)1); + epUserAppsSortPreference.setAuditTrail(null); + + return epUserAppsSortPreference; + } + + @Test + public void epUserAppsSortPreferenceTest() { + EPUserAppsSortPreference epUserAppsSortPreference = mockEPUserAppsSortPreferenceTest(); + + assertEquals(epUserAppsSortPreference.getUserId(), 1); + assertEquals(epUserAppsSortPreference.getSortPref(), "test"); + assertEquals(epUserAppsSortPreference.getId(), new Long(1)); +// assertEquals(epUserAppsSortPreference.getCreated(), new Date()); +// assertEquals(epUserAppsSortPreference.getModified(), new Date()); + assertEquals(epUserAppsSortPreference.getModifiedId(), new Long(1)); + assertEquals(epUserAppsSortPreference.getRowNum(), new Long(1)); + assertEquals(epUserAppsSortPreference.getAuditTrail(), null); + + + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserNotificationTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserNotificationTest.java new file mode 100644 index 00000000..9aa9a37d --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserNotificationTest.java @@ -0,0 +1,71 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import java.util.Date; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPUserNotification; + +public class EPUserNotificationTest { + + public EPUserNotification mockEPUserNotification(){ + + EPUserNotification epUserNotification = new EPUserNotification(); + + epUserNotification.setUserId((long)1); + epUserNotification.setNotificationId((long)1); + epUserNotification.setViewed("test"); + epUserNotification.setUpdateTime(new Date()); + + return epUserNotification; + } + + @Test + public void epUserNotificationTest(){ + EPUserNotification epUserNotification = mockEPUserNotification(); + + assertEquals(epUserNotification.getUserId(), new Long(1)); + assertEquals(epUserNotification.getNotificationId(), new Long(1)); + assertEquals(epUserNotification.getViewed(), "test"); + // assertEquals(epUserNotification.getUpdateTime(), new Date()); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserTest.java new file mode 100644 index 00000000..cf1703d5 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserTest.java @@ -0,0 +1,151 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import java.util.Date; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPUser; + +public class EPUserTest { + + public EPUser mockEPUser(){ + + EPUser epUser = new EPUser(); + + epUser.setId((long)1); + epUser.setManagerId((long) 1234); + epUser.setFirstName("test"); + epUser.setLastName("test"); + epUser.setMiddleInitial("test"); + epUser.setPhone("test"); + epUser.setFax("test"); + epUser.setCellular("test"); + epUser.setEmail("test"); + epUser.setAddressId((long) 123); + epUser.setAlertMethodCd("test"); + epUser.setHrid("test"); + epUser.setOrgUserId("test"); + epUser.setOrgCode("test"); + epUser.setAddress1("test"); + epUser.setAddress2("test"); + epUser.setCity("test"); + epUser.setState("test"); + epUser.setZipCode("test"); + epUser.setCountry("test"); + epUser.setOrgManagerUserId("test"); + epUser.setLocationClli("test"); + epUser.setBusinessCountryCode("test"); + epUser.setBusinessCountryName("test"); + epUser.setBusinessUnit("test"); + epUser.setBusinessUnitName("test"); + epUser.setDepartment("test"); + epUser.setDepartmentName("test"); + epUser.setCompanyCode("test"); + epUser.setCompany("test"); + epUser.setZipCodeSuffix("test"); + epUser.setJobTitle("test"); + epUser.setCommandChain("test"); + epUser.setSiloStatus("test"); + epUser.setCostCenter("test"); + epUser.setFinancialLocCode("test"); + epUser.setLoginId("test"); + epUser.setLoginPwd("test"); + epUser.setLastLoginDate(new Date()); + epUser.setActive(false); + epUser.setInternal(false); + epUser.setSelectedProfileId((long) 12345); + epUser.setTimeZoneId((long) 12345); + epUser.setOnline(false); + epUser.setChatId("test"); + return epUser; + + } + + @Test + public void userTest(){ + EPUser user = mockEPUser(); + + assertEquals(user.getId(), new Long(1)); + assertEquals(user.getManagerId(), new Long(1234)); + assertEquals(user.getFirstName(), "test"); + assertEquals(user.getLastName(), "test"); + assertEquals(user.getMiddleInitial(), "test"); + assertEquals(user.getPhone(), "test"); + assertEquals(user.getFax(), "test"); + assertEquals(user.getCellular(), "test"); + assertEquals(user.getEmail(), "test"); + assertEquals(user.getAddressId(), new Long(123) ); + assertEquals(user.getAlertMethodCd(), "test"); + assertEquals(user.getHrid(), "test"); + assertEquals(user.getOrgUserId(), "test"); + assertEquals(user.getOrgCode(), "test"); + assertEquals(user.getAddress1(), "test"); + assertEquals(user.getAddress2(), "test"); + assertEquals(user.getState(), "test"); + assertEquals(user.getZipCode(), "test"); + assertEquals(user.getCountry(), "test"); + assertEquals(user.getOrgManagerUserId(), "test"); + assertEquals(user.getLocationClli(), "test"); + assertEquals(user.getBusinessCountryCode(), "test"); + assertEquals(user.getBusinessCountryName(), "test"); + assertEquals(user.getBusinessUnit(), "test"); + assertEquals(user.getBusinessUnitName(), "test"); + assertEquals(user.getDepartment(), "test"); + assertEquals(user.getDepartmentName(), "test"); + assertEquals(user.getCompanyCode(), "test"); + assertEquals(user.getCompany(), "test"); + assertEquals(user.getZipCodeSuffix(), "test"); + assertEquals(user.getJobTitle(), "test"); + assertEquals(user.getCommandChain(), "test"); + assertEquals(user.getSiloStatus(), "test"); + assertEquals(user.getFinancialLocCode(), "test"); + assertEquals(user.getLoginId(), "test"); + assertEquals(user.getLoginPwd(), "test"); + assertEquals(user.getActive(), false); + assertEquals(user.getInternal(), false); + assertEquals(user.getSelectedProfileId(), new Long (12345)); + assertEquals(user.getTimeZoneId(), new Long (12345)); + assertEquals(user.getChatId(), "test"); + + //assertEquals(user.toString(), "EPUser [orgId=null, managerId=1234, firstName=test, middleInitial=test, lastName=test, phone=test, fax=test, cellular=test, email=test, addressId=123, alertMethodCd=test, hrid=test, orgUserId=test, orgCode=test, address1=test, address2=test, city=test, state=test, zipCode=test, country=test, orgManagerUserId=test, locationClli=test, businessCountryCode=test, businessCountryName=test, businessUnit=test, businessUnitName=test, department=test, departmentName=test, companyCode=test, company=test, zipCodeSuffix=test, jobTitle=test, commandChain=test, siloStatus=test, costCenter=test, financialLocCode=test, loginId=test, loginPwd=test, lastLoginDate=Tue Sep 05 11:04:49 EDT 2017, active=false, internal=false, selectedProfileId=12345, timeZoneId=12345, online=false, chatId=test, isGuest=false, userApps=[], pseudoRoles=[]]"); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java new file mode 100644 index 00000000..b4b4780d --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java @@ -0,0 +1,73 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPWidgetsManualSortPreference; + +public class EPWidgetsManualSortPreferenceTest { + + public EPWidgetsManualSortPreference mockEPWidgetsManualSortPreference(){ + EPWidgetsManualSortPreference epWidgetsManualSortPreference = new EPWidgetsManualSortPreference(); + + epWidgetsManualSortPreference.setUserId(1); + epWidgetsManualSortPreference.setWidgetId((long)1); + epWidgetsManualSortPreference.setWidgetRow(1); + epWidgetsManualSortPreference.setWidgetCol(1); + epWidgetsManualSortPreference.setWidgetWidth(1); + epWidgetsManualSortPreference.setWidgetHeight(1); + + return epWidgetsManualSortPreference; + } + + @Test + public void epWidgetsManualSortPreferenceTest(){ + EPWidgetsManualSortPreference epWidgetsManualSortPreference = mockEPWidgetsManualSortPreference(); + + assertEquals(epWidgetsManualSortPreference.getWidgetId(), new Long(1)); + assertEquals(epWidgetsManualSortPreference.getUserId(), 1); + assertEquals(epWidgetsManualSortPreference.getWidgetRow(), 1); + assertEquals(epWidgetsManualSortPreference.getWidgetCol(), 1); + assertEquals(epWidgetsManualSortPreference.getWidgetHeight(), 1); + assertEquals(epWidgetsManualSortPreference.getWidgetWidth(), 1); + + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EcompAppRoleIdTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EcompAppRoleIdTest.java new file mode 100644 index 00000000..96ebcb49 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EcompAppRoleIdTest.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EcompAppRoleId; + +public class EcompAppRoleIdTest { + + public EcompAppRoleId mockEcompAppRoleId(){ + + EcompAppRoleId ecompAppRoleId = new EcompAppRoleId(); + + ecompAppRoleId.setAppId((long)1); + ecompAppRoleId.setAppName("test"); + ecompAppRoleId.setRoleId(1); + ecompAppRoleId.setRoleName("test"); + + return ecompAppRoleId; + } + + @Test + public void ecompAppRoleIdTest(){ + + EcompAppRoleId ecompAppRoleId = mockEcompAppRoleId(); + + assertEquals(ecompAppRoleId.getAppId(), new Long(1)); + assertEquals(ecompAppRoleId.getAppName(), "test"); + assertEquals(ecompAppRoleId.getRoleId().toString(), "1"); + assertEquals(ecompAppRoleId.getRoleName(), "test"); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EcompAppRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EcompAppRoleTest.java new file mode 100644 index 00000000..614588da --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EcompAppRoleTest.java @@ -0,0 +1,68 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EcompAppRole; + +public class EcompAppRoleTest { + + public EcompAppRole mockEcompAppRole(){ + EcompAppRole ecompAppRole = new EcompAppRole(); + + ecompAppRole.setAppId((long)1); + ecompAppRole.setAppName("test"); + ecompAppRole.setRoleId(1); + ecompAppRole.setRoleName("test"); + + return ecompAppRole; + } + + @Test + public void ecompAppRoleTest(){ + EcompAppRole ecompAppRole = mockEcompAppRole(); + + assertEquals(ecompAppRole.getAppId(), new Long(1)); + assertEquals(ecompAppRole.getAppName(), "test"); + assertEquals(ecompAppRole.getRoleId().toString(), "1"); + assertEquals(ecompAppRole.getRoleName(), "test"); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalRoleDetailsTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalRoleDetailsTest.java new file mode 100644 index 00000000..9c999aee --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalRoleDetailsTest.java @@ -0,0 +1,96 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.EPAppRoleFunction; +import org.onap.portalapp.portal.domain.ExternalRoleDetails; + +public class ExternalRoleDetailsTest { + + public ExternalRoleDetails mockExternalRoleDetails(){ + + List epAppRoleFunctionList = new ArrayList(); + + EPAppRoleFunction epAppRoleFunction = new EPAppRoleFunction(); + epAppRoleFunction.setRoleId((long)1); + epAppRoleFunction.setAppId((long)1); + epAppRoleFunction.setCode("test"); + + epAppRoleFunctionList.add(epAppRoleFunction); + + ExternalRoleDetails externalRoleDetails = new ExternalRoleDetails(); + + externalRoleDetails.setName("test"); + externalRoleDetails.setActive(false); + externalRoleDetails.setPriority(1); + externalRoleDetails.setAppId((long)1); + externalRoleDetails.setAppRoleId((long)1); + externalRoleDetails.setPerms(epAppRoleFunctionList); + + return externalRoleDetails; + } + + @Test + public void externalRoleDetailsTest(){ + + List epAppRoleFunctionList = new ArrayList(); + + EPAppRoleFunction epAppRoleFunction = new EPAppRoleFunction(); + epAppRoleFunction.setRoleId((long)1); + epAppRoleFunction.setAppId((long)1); + epAppRoleFunction.setCode("test"); + + epAppRoleFunctionList.add(epAppRoleFunction); + + ExternalRoleDetails externalRoleDetails = mockExternalRoleDetails(); + + assertEquals(externalRoleDetails.getAppId(), new Long(1)); + assertEquals(externalRoleDetails.getAppRoleId(), new Long(1)); + assertEquals(externalRoleDetails.getPriority().toString(), "1"); + assertEquals(externalRoleDetails.getName(), "test"); + assertEquals(externalRoleDetails.getPriority().toString(), "1"); + assertEquals(externalRoleDetails.getPerms().size(), epAppRoleFunctionList.size()); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalSystemAccessTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalSystemAccessTest.java new file mode 100644 index 00000000..e818e762 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalSystemAccessTest.java @@ -0,0 +1,64 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.ExternalSystemAccess; + +public class ExternalSystemAccessTest { + + public ExternalSystemAccess mockExternalSystemAccess(){ + ExternalSystemAccess externalSystemAccess = new ExternalSystemAccess("test", false); + + externalSystemAccess.setKey("test"); + externalSystemAccess.setAccessValue(false); + + return externalSystemAccess; + } + + @Test + public void externalSystemAccessTest(){ + ExternalSystemAccess externalSystemAccess = mockExternalSystemAccess(); + + assertEquals(externalSystemAccess.getKey(), "test"); + assertEquals(externalSystemAccess.getAccessValue(), false); + } +} + diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalSystemRoleApprovalTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalSystemRoleApprovalTest.java new file mode 100644 index 00000000..ace2dd83 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ExternalSystemRoleApprovalTest.java @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.externalsystemapproval.model.ExternalSystemRoleApproval; + +public class ExternalSystemRoleApprovalTest { + + public ExternalSystemRoleApproval mockExternalSystemRoleApproval(){ + ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); + externalSystemRoleApproval.setRoleName("test"); + + return externalSystemRoleApproval; + } + + @Test + public void externalSystemRoleApprovalTest(){ + ExternalSystemRoleApproval externalSystemRoleApproval = mockExternalSystemRoleApproval(); + + assertEquals(externalSystemRoleApproval.getRoleName(), "test"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/FunctionalMenuItemWithAppIDTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/FunctionalMenuItemWithAppIDTest.java new file mode 100644 index 00000000..488bbd92 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/FunctionalMenuItemWithAppIDTest.java @@ -0,0 +1,65 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.FunctionalMenuItemWithAppID; + +public class FunctionalMenuItemWithAppIDTest { + + public FunctionalMenuItemWithAppID mockFunctionalMenuItemWithAppID(){ + FunctionalMenuItemWithAppID functionalMenuItemWithAppID = new FunctionalMenuItemWithAppID(); + + functionalMenuItemWithAppID.setRestrictedApp(false); + functionalMenuItemWithAppID.setUrl("test"); + + + return functionalMenuItemWithAppID; + } + + @Test + public void functionalMenuItemWithAppIDTest(){ + FunctionalMenuItemWithAppID functionalMenuItemWithAppID = mockFunctionalMenuItemWithAppID(); + + assertEquals(functionalMenuItemWithAppID.toString(), "FunctionalMenuItem [menuId=null, column=null, text=null, parentMenuId=null, url=test, active_yn=null, appid=null, roles=null, restrictedApp=false]"); + + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/GetAccessResultIdTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/GetAccessResultIdTest.java new file mode 100644 index 00000000..5a05949f --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/GetAccessResultIdTest.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.GetAccessResultId; + +public class GetAccessResultIdTest { + + public GetAccessResultId mockGetAccessResultId(){ + + GetAccessResultId getAccessResultIdObj = new GetAccessResultId(); + getAccessResultIdObj.setEcompFunction("test"); + getAccessResultIdObj.setAppName("test"); + getAccessResultIdObj.setRoleName("test"); + + return getAccessResultIdObj; + } + + @Test + public void getAccessResultIdObjTest(){ + GetAccessResultId getAccessResultIdObj = mockGetAccessResultId(); + + assertEquals(getAccessResultIdObj.getEcompFunction(), "test"); + assertEquals(getAccessResultIdObj.getAppName(), "test"); + assertEquals(getAccessResultIdObj.getRoleName(), "test"); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/MicroserviceDataTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/MicroserviceDataTest.java new file mode 100644 index 00000000..8f856391 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/MicroserviceDataTest.java @@ -0,0 +1,94 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import java.util.ArrayList; +import java.util.List; +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.MicroserviceData; +import org.onap.portalapp.portal.domain.MicroserviceParameter; + +public class MicroserviceDataTest { + + public MicroserviceData mockMicroserviceData(){ + + MicroserviceData microserviceData= new MicroserviceData(); + + List parameterList = new ArrayList(); + + MicroserviceParameter microserviceParameter = new MicroserviceParameter(); + microserviceParameter.setId((long)1); + microserviceParameter.setServiceId((long)1); + microserviceParameter.setPara_key("test"); + microserviceParameter.setPara_value("test"); + parameterList.add(microserviceParameter); + + microserviceData.setId((long)1); + microserviceData.setName("test"); + microserviceData.setActive("test"); + microserviceData.setDesc("test"); + microserviceData.setAppId((long)1); + microserviceData.setUrl("test"); + microserviceData.setSecurityType("test"); + microserviceData.setUsername("test"); + microserviceData.setPassword("test"); + + + return microserviceData; + } + + @Test + public void microserviceDataTest(){ + MicroserviceData microserviceData= mockMicroserviceData(); + + assertEquals(microserviceData.getId(), new Long(1)); + assertEquals(microserviceData.getName(), "test"); + assertEquals(microserviceData.getActive(), "test"); + assertEquals(microserviceData.getDesc(), "test"); + // assertEquals(microserviceData.getAppId(), new long(1)); + assertEquals(microserviceData.getUrl(), "test"); + assertEquals(microserviceData.getSecurityType(), "test"); + assertEquals(microserviceData.getUsername(), "test"); + assertEquals(microserviceData.getPassword(), "test"); + + assertEquals(microserviceData.toString(), "MicroserviceData [id=1, name=test, desc=test, appId=1, " + + "url=test, securityType=test, username=test, password=test, parameterList=null]"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/MicroserviceParameterTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/MicroserviceParameterTest.java new file mode 100644 index 00000000..a214738f --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/MicroserviceParameterTest.java @@ -0,0 +1,68 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.MicroserviceParameter; + +public class MicroserviceParameterTest { + + public MicroserviceParameter mockMicroserviceParameter(){ + MicroserviceParameter microserviceParameter = new MicroserviceParameter(); + + microserviceParameter.setId((long)1); + microserviceParameter.setServiceId((long)1); + microserviceParameter.setPara_key("test"); + microserviceParameter.setPara_value("test"); + + return microserviceParameter; + } + + @Test + public void microserviceParameterTest(){ + MicroserviceParameter microserviceParameter = mockMicroserviceParameter(); + assertEquals(microserviceParameter.getId(), new Long(1)); + assertEquals(microserviceParameter.getServiceId(),(long)1); + assertEquals(microserviceParameter.getPara_key(), "test"); + assertEquals(microserviceParameter.getPara_value(), "test"); + + assertEquals(microserviceParameter.toString(), "MicroserviceParameter [id=1, serviceId=1, para_key=test, para_value=test]"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/PersUserAppSelectionTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/PersUserAppSelectionTest.java new file mode 100644 index 00000000..dd397b4d --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/PersUserAppSelectionTest.java @@ -0,0 +1,72 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.PersUserAppSelection; + +public class PersUserAppSelectionTest { + + public PersUserAppSelection mockPersUserAppSelection(){ + + PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); + persUserAppSelection.setUserId((long)1); + persUserAppSelection.setAppId((long)1); + persUserAppSelection.setStatusCode("test"); + + return persUserAppSelection; + } + + @Test + public void persUserAppSelectionTest(){ + + PersUserAppSelection persUserAppSelection1 = new PersUserAppSelection((long)1, (long)1, (long)1,"test"); + + PersUserAppSelection persUserAppSelection = mockPersUserAppSelection(); + + assertEquals(persUserAppSelection.getUserId(), new Long(1)); + assertEquals(persUserAppSelection.getAppId(), new Long(1)); + assertEquals(persUserAppSelection.getStatusCode(), "test"); + assertEquals(persUserAppSelection1.hashCode(), new PersUserAppSelection((long)1, (long)1, (long)1,"test").hashCode()); + assertEquals(persUserAppSelection1, new PersUserAppSelection((long)1, (long)1, (long)1,"test")); + assertTrue(persUserAppSelection1.equals(new PersUserAppSelection((long)1, (long)1, (long)1,"test"))); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/PersUserWidgetSelectionTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/PersUserWidgetSelectionTest.java new file mode 100644 index 00000000..0b787152 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/PersUserWidgetSelectionTest.java @@ -0,0 +1,73 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.PersUserWidgetSelection; + +public class PersUserWidgetSelectionTest { + + public PersUserWidgetSelection mockPersUserWidgetSelection(){ + + PersUserWidgetSelection persUserWidgetSelection = new PersUserWidgetSelection(); + + persUserWidgetSelection.setUserId((long)1); + persUserWidgetSelection.setWidgetId((long)1); + persUserWidgetSelection.setStatusCode("test"); + + return persUserWidgetSelection; + } + + @Test + public void persUserWidgetSelectionTest(){ + PersUserWidgetSelection persUserWidgetSelection = mockPersUserWidgetSelection(); + + PersUserWidgetSelection persUserWidgetSelection1 = new PersUserWidgetSelection((long)1, (long)1, (long)1, "test"); + + assertEquals(persUserWidgetSelection.getUserId(), new Long(1)); + assertEquals(persUserWidgetSelection.getWidgetId(), new Long(1)); + assertEquals(persUserWidgetSelection.getStatusCode(), "test"); + assertEquals(persUserWidgetSelection1, new PersUserWidgetSelection((long)1, (long)1, (long)1, "test")); + assertTrue(persUserWidgetSelection1.equals(new PersUserWidgetSelection((long)1, (long)1, (long)1,"test"))); + assertEquals(persUserWidgetSelection.hashCode(), persUserWidgetSelection1.hashCode()); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ResultTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ResultTest.java new file mode 100644 index 00000000..3cdfeeef --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/ResultTest.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.model.Result; + +public class ResultTest { + + public Result mockResult(){ + + Result result= new Result("test"); + + result.setResult("test"); + return result; + } + + @Test + public void resultTest(){ + + Result result = mockResult(); + result.setResult("test"); + + assertEquals(result.getResult(), "test"); + + } + + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/SharedContextTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/SharedContextTest.java new file mode 100644 index 00000000..4c7b464e --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/SharedContextTest.java @@ -0,0 +1,73 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import java.util.Date; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.SharedContext; + +public class SharedContextTest { + + public SharedContext mockSharedContext(){ + + SharedContext sharedContext = new SharedContext(); + sharedContext.setId((long)1); + sharedContext.setCreate_time(new Date()); + sharedContext.setContext_id("test"); + sharedContext.setCkey("test"); + sharedContext.setCvalue("test"); + + return sharedContext; + } + + @Test + public void sharedContextTest(){ + SharedContext sharedContext = mockSharedContext(); + + assertEquals(sharedContext.getId(), new Long(1)); + // assertEquals(sharedContext.getCreate_time(), new Date()); + assertEquals(sharedContext.getContext_id(), "test"); + assertEquals(sharedContext.getCkey(), "test"); + assertEquals(sharedContext.getCvalue(), "test"); + + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/UserIdRoleIdTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/UserIdRoleIdTest.java new file mode 100644 index 00000000..d391288d --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/UserIdRoleIdTest.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.UserIdRoleId; + +public class UserIdRoleIdTest { + + public UserIdRoleId mockUserIdRoleId(){ + UserIdRoleId userIdRoleId = new UserIdRoleId(); + userIdRoleId.setUser_Id("test"); + userIdRoleId.setRoleId("test"); + userIdRoleId.setOrgUserId("test"); + userIdRoleId.setAppId("test"); + + return userIdRoleId; + } + + @Test + public void userIdRoleIdTest(){ + UserIdRoleId userIdRoleId = mockUserIdRoleId(); + + assertEquals(userIdRoleId.getUser_Id(), "test"); + assertEquals(userIdRoleId.getRoleId(), "test"); + assertEquals(userIdRoleId.getOrgUserId(), "test"); + assertEquals(userIdRoleId.getAppId(), "test"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetCatalogParameterTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetCatalogParameterTest.java new file mode 100644 index 00000000..31d484d2 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetCatalogParameterTest.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.WidgetCatalogParameter; + +public class WidgetCatalogParameterTest { + + public WidgetCatalogParameter mockWidgetCatalogParameter(){ + WidgetCatalogParameter widgetCatalogParameter = new WidgetCatalogParameter(); + + widgetCatalogParameter.setId((long)1); + widgetCatalogParameter.setWidgetId((long)1); + widgetCatalogParameter.setUserId((long)1); + widgetCatalogParameter.setParamId((long)1); + widgetCatalogParameter.setUser_value("test"); + + return widgetCatalogParameter; + } + + @Test + public void widgetCatalogParameterTest(){ + WidgetCatalogParameter widgetCatalogParameter = mockWidgetCatalogParameter(); + + assertEquals(widgetCatalogParameter.getId(), new Long(1)); + assertEquals(widgetCatalogParameter.getWidgetId(), new Long(1)); + assertEquals(widgetCatalogParameter.getUserId(), new Long(1)); + assertEquals(widgetCatalogParameter.getParamId(), new Long(1)); + assertEquals(widgetCatalogParameter.getUser_value(), "test"); + assertEquals(widgetCatalogParameter.toString(), "WidgetCatalogParameter [id=1, widgetId=1, userId=1, paramId=1, user_value=test]"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetCatalogTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetCatalogTest.java new file mode 100644 index 00000000..ce90e49b --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetCatalogTest.java @@ -0,0 +1,121 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; + +import java.util.HashSet; +import java.util.Set; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.App; +import org.onap.portalapp.portal.domain.RoleApp; +import org.onap.portalapp.portal.domain.WidgetCatalog; + +public class WidgetCatalogTest { + + public WidgetCatalog mockWidgetCatalog() { + + WidgetCatalog widgetCatalog = new WidgetCatalog(); + + Set roleAppSet = new HashSet(); + // App + App app = new App(); + app.setAppId((long) 1); + app.setAppName("test"); + + // RoleApp + RoleApp roleApp = new RoleApp(); + roleApp.setRoleId((long) 1); + roleApp.setRoleName("test"); + roleApp.setApp(app); + roleApp.setWidgets(null); + + roleAppSet.add(roleApp); + + widgetCatalog.setId((long) 1); + widgetCatalog.setName("test"); + widgetCatalog.setDesc("test"); + widgetCatalog.setFileLocation("test"); + widgetCatalog.setAllowAllUser("test"); + widgetCatalog.setServiceId((long) 1); + widgetCatalog.setSortOrder("test"); + widgetCatalog.setStatusCode("test"); + + widgetCatalog.setWidgetRoles(roleAppSet); + + return widgetCatalog; + + } + + @Test + public void widgetCatalogTest() { + + // App + App app = new App(); + app.setAppId((long) 1); + app.setAppName("test"); + + Set roleAppSet = new HashSet(); + // RoleApp + RoleApp roleApp = new RoleApp(); + roleApp.setRoleId((long) 1); + roleApp.setRoleName("test"); + roleApp.setApp(app); + roleApp.setWidgets(null); + + roleAppSet.add(roleApp); + + WidgetCatalog widgetCatalog = mockWidgetCatalog(); + + + assertEquals(widgetCatalog.getId(), (long)1); + assertEquals(widgetCatalog.getName(), "test"); + assertEquals(widgetCatalog.getDesc(), "test"); + assertEquals(widgetCatalog.getFileLocation(), "test"); + assertEquals(widgetCatalog.getAllowAllUser(), "test"); + assertEquals(widgetCatalog.getServiceId(), new Long (1)); + assertEquals(widgetCatalog.getSortOrder(), "test"); + assertEquals(widgetCatalog.getStatusCode(), "test"); + assertEquals(widgetCatalog.getWidgetRoles().size(),1); + + assertEquals("WidgetCatalog [id=1, name=test, desc=test, fileLocation=test, allowAllUser=test]", widgetCatalog.toString()); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetParameterResultTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetParameterResultTest.java new file mode 100644 index 00000000..354255bd --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetParameterResultTest.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.WidgetParameterResult; + +public class WidgetParameterResultTest { + + public WidgetParameterResult mockWidgetParameterResult(){ + + WidgetParameterResult widgetParameterResult = new WidgetParameterResult(); + widgetParameterResult.setParam_id((long)1); + widgetParameterResult.setParam_key("test"); + widgetParameterResult.setUser_value("test"); + widgetParameterResult.setDefault_value("test"); + + return widgetParameterResult; + } + + @Test + public void widgetParameterResultTest(){ + + WidgetParameterResult widgetParameterResult = mockWidgetParameterResult(); + + assertEquals(widgetParameterResult.getParam_key(), "test"); + assertEquals(widgetParameterResult.getParam_id(), new Long(1)); + assertEquals(widgetParameterResult.getUser_value(), "test"); + assertEquals(widgetParameterResult.getDefault_value(), "test"); + + assertEquals("WidgetParameterResult [param_id=1, param_key=test, user_value=test, default_value=test]", widgetParameterResult.toString()); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetTest.java new file mode 100644 index 00000000..3821c9cc --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/WidgetTest.java @@ -0,0 +1,71 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.domain; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.domain.Widget; + +public class WidgetTest { + + public Widget mockWidget(){ + + Widget widget = new Widget(); + widget.setName("test"); + widget.setWidth(100); + widget.setHeight(100); + widget.setUrl("test"); + widget.setAppId((long)1); + + return widget; + } + + @Test + public void widgetTest(){ + Widget widget = mockWidget(); + + assertEquals(widget.getName(), "test"); + assertTrue(widget.getWidth() == 100); + assertTrue(widget.getHeight() == 100); + assertEquals(widget.getUrl(), "test"); + assertEquals(widget.getAppId(), new Long(1)); + + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/exceptions/NoHealthyServiceExceptionTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/exceptions/NoHealthyServiceExceptionTest.java new file mode 100644 index 00000000..62c75cfe --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/exceptions/NoHealthyServiceExceptionTest.java @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.exceptions; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.exceptions.NoHealthyServiceException; + +public class NoHealthyServiceExceptionTest { + + public NoHealthyServiceException mockNoHealthyServiceException(){ + NoHealthyServiceException noHealthyServiceException = new NoHealthyServiceException("test"); + + return noHealthyServiceException; + } + + @Test + public void noHealthyServiceExceptionTest(){ + NoHealthyServiceException noHealthyServiceException = mockNoHealthyServiceException(); + + // assertEquals(noHealthyServiceException, new NoHealthyServiceException("test")); + assertEquals(noHealthyServiceException.toString(), "NoHealthyServiceException [] test"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/ApplicationCommonContextTestSuite.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/ApplicationCommonContextTestSuite.java new file mode 100644 index 00000000..764cebab --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/ApplicationCommonContextTestSuite.java @@ -0,0 +1,191 @@ +package org.onap.portalapp.portal.framework; +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +//package org.openecomp.portalapp.portal.framework; +// +//import java.io.IOException; +// +//import org.junit.Before; +//import org.junit.runner.RunWith; +//import org.openecomp.portalsdk.core.conf.AppConfig; +////import org.openecomp.portalapp.conf.ExternalAppConfig; +////import org.openecomp.portalapp.conf.HibernateMappingLocations; +//import org.openecomp.portalsdk.core.conf.HibernateConfiguration; +//import org.openecomp.portalsdk.core.conf.HibernateMappingLocatable; +//import org.openecomp.portalsdk.core.objectcache.AbstractCacheManager; +//import org.openecomp.portalsdk.core.util.CacheManager; +//import org.openecomp.portalsdk.core.util.SystemProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.ComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.context.annotation.FilterType; +//import org.springframework.context.annotation.Profile; +//import org.springframework.core.io.ClassPathResource; +//import org.springframework.core.io.Resource; +//import org.springframework.test.context.ActiveProfiles; +//import org.springframework.test.context.ContextConfiguration; +//import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +//import org.springframework.test.context.web.AnnotationConfigWebContextLoader; +//import org.springframework.test.context.web.WebAppConfiguration; +//import org.springframework.test.web.servlet.MockMvc; +//import org.springframework.test.web.servlet.setup.MockMvcBuilders; +//import org.springframework.web.context.WebApplicationContext; +//import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +// +///** +// * +// * In order to write a unit test, 1. inherit this class 2. place the "war" +// * folder on your test class's classpath 3. run the test with the following VM +// * argument; This is important because when starting the application from +// * Container, the System Properties file (SystemProperties.java) can have the +// * direct path but, when running from the Mock Junit container, the path should +// * be prefixed with "classpath" to enable the mock container to search for the +// * file in the classpath -Dcontainer.classpath="classpath:" +// */ +// +//@SuppressWarnings("deprecation") +//@RunWith(SpringJUnit4ClassRunner.class) +//@WebAppConfiguration +//@ContextConfiguration(loader = AnnotationConfigWebContextLoader.class, classes = { MockAppConfig.class }) +//@ActiveProfiles(value = "test") +//public class ApplicationCommonContextTestSuite { +// +// @Autowired +// public WebApplicationContext wac; +// +// private MockMvc mockMvc; +// +// @Before +// public void setup() { +// if (mockMvc == null) { +// this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); +// +// } +// } +// +// public Object getBean(String name) { +// return this.wac.getBean(name); +// } +// +// public MockMvc getMockMvc() { +// return mockMvc; +// } +// +// public void setMockMvc(MockMvc mockMvc) { +// this.mockMvc = mockMvc; +// } +// +// public WebApplicationContext getWebApplicationContext() { +// return wac; +// } +// +//} +// +//@Configuration +//@ComponentScan(basePackages = "org.openecomp", excludeFilters = { +// // the following source configurations should not be scanned; instead of +// // using Exclusion filter, we can use the @Profile annotation to exclude +// // them +// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.openecomp.portalsdk.core.controller.LogoutController*"), +// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.openecomp.portalsdk.core.controller.SDKLoginController*"), +// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.openecomp.portalapp.conf.ExternalAppConfig*"), +// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.openecomp.*.*InitUebHandler*") }) +//@Profile("test") +//class MockAppConfig extends AppConfig { +// +// @Bean +// HibernateMappingLocatable locatable() { +// return new MockHibernateMappingLocations(); +// } +// +// @Bean +// HibernateConfiguration hibConfiguration() { +// return new HibernateConfiguration(); +// } +// +// @Bean +// public SystemProperties systemProperties() { +// return new MockSystemProperties(); +// } +// +// @Bean +// public AbstractCacheManager cacheManager() { +// return new CacheManager() { +// +// public void configure() throws IOException { +// +// } +// }; +// } +// +// public String[] tileDefinitions() { +// return new String[] { "classpath:/WEB-INF/fusion/defs/definitions.xml", +// "classpath:/WEB-INF/defs/definitions.xml" }; +// } +// +// public void addInterceptors(InterceptorRegistry registry) { +// // registry.addInterceptor(new +// // SessionTimeoutInterceptor()).excludePathPatterns(getExcludeUrlPathsForSessionTimeout()); +// // registry.addInterceptor(resourceInterceptor()); +// } +// +// public static class MockSystemProperties extends SystemProperties { +// +// public MockSystemProperties() { +// } +// +// } +// +//} +// +//@Profile("test") +//class MockHibernateMappingLocations implements HibernateMappingLocatable { +// +// public Resource[] getMappingLocations() { +// return new Resource[] { new ClassPathResource("WEB-INF/fusion/orm/Fusion.hbm.xml"), +// new ClassPathResource("WEB-INF/fusion/orm/EP.hbm.xml"), +// new ClassPathResource("WEB-INF/fusion/orm/Workflow.hbm.xml") }; +// +// } +// +// public String[] getPackagesToScan() { +// return new String[] { "org.openecomp", "src" }; +// } +// +//} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/MockitoTestSuite.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/MockitoTestSuite.java new file mode 100644 index 00000000..84356f74 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/MockitoTestSuite.java @@ -0,0 +1,94 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.framework; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.mockito.runners.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class MockitoTestSuite { + + + public MockHttpServletRequestWrapper mockedRequest = new MockHttpServletRequestWrapper( + Mockito.mock(HttpServletRequest.class)); + public HttpServletResponse mockedResponse = Mockito.mock(HttpServletResponse.class); + + public MockHttpServletRequestWrapper getMockedRequest() { + return mockedRequest; + } + + public HttpServletResponse getMockedResponse() { + return mockedResponse; + } + + public class MockHttpServletRequestWrapper extends HttpServletRequestWrapper { + + HttpSession session = Mockito.mock(HttpSession.class); + + public MockHttpServletRequestWrapper(HttpServletRequest request) { + super(request); + + } + + @Override + public HttpSession getSession() { + + return session; + } + + @Override + public HttpSession getSession(boolean create) { + + return session; + } + + } + + @Test + public void test() + { + assert(true); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/listener/HealthMonitorTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/listener/HealthMonitorTest.java new file mode 100644 index 00000000..929c8e36 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/listener/HealthMonitorTest.java @@ -0,0 +1,55 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.listener; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.listener.HealthMonitor; + +public class HealthMonitorTest { + + @Test + public void initialFlagsTest() { + assertEquals(false, HealthMonitor.isBackEndUp()); + assertEquals(false, HealthMonitor.isFrontEndUp()); + assertEquals(false, HealthMonitor.isDatabaseUp()); + assertEquals(false, HealthMonitor.isUebUp()); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppCatalogItemTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppCatalogItemTest.java new file mode 100644 index 00000000..819262d1 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppCatalogItemTest.java @@ -0,0 +1,72 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.model; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.ecomp.model.AppCatalogItem; + +public class AppCatalogItemTest { + + public AppCatalogItem mockAppCatalogItem(){ + AppCatalogItem appCatalogItem = new AppCatalogItem(); + + appCatalogItem.setAlternateUrl("test"); + appCatalogItem.setMlAppName("test"); + + return appCatalogItem; + } + + @Test + public void appCatalogItemTest(){ + AppCatalogItem appCatalogItem = mockAppCatalogItem(); + + AppCatalogItem appCatalogItem1 = new AppCatalogItem(); + appCatalogItem1.setAlternateUrl("test"); + appCatalogItem1.setMlAppName("test"); + + assertEquals(appCatalogItem.getAlternateUrl(), appCatalogItem1.getAlternateUrl()); + assertEquals(appCatalogItem.getMlAppName(), appCatalogItem1.getMlAppName()); + + assertEquals(appCatalogItem.toString(), "AppCatalogItem [id=null, name=null, access=null, select=null, pending=null]"); + assertEquals(appCatalogItem.hashCode(), appCatalogItem1.hashCode()); + assertTrue(appCatalogItem.equals(appCatalogItem1)); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppCategoryFunctionsItemTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppCategoryFunctionsItemTest.java new file mode 100644 index 00000000..346b427e --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppCategoryFunctionsItemTest.java @@ -0,0 +1,79 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.model; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; +import org.onap.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; + +public class AppCategoryFunctionsItemTest { + + public AppCategoryFunctionsItem mockAppCategoryFunctionsItem(){ + AppCategoryFunctionsItem appCategoryFunctionsItem = new AppCategoryFunctionsItem(); + + appCategoryFunctionsItem.setRowId("test"); + appCategoryFunctionsItem.setAppId("test"); + appCategoryFunctionsItem.setApplication("test"); + appCategoryFunctionsItem.setFunctions("test"); + + return appCategoryFunctionsItem; + } + + @Test + public void appCategoryFunctionsItemTest(){ + AppCategoryFunctionsItem appCategoryFunctionsItem = mockAppCategoryFunctionsItem(); + + AppCategoryFunctionsItem appCategoryFunctionsItem1 = new AppCategoryFunctionsItem(); + + appCategoryFunctionsItem1.setRowId("test"); + appCategoryFunctionsItem1.setAppId("test"); + appCategoryFunctionsItem1.setApplication("test"); + appCategoryFunctionsItem1.setFunctions("test"); + + assertEquals(appCategoryFunctionsItem.getRowId(), appCategoryFunctionsItem1.getRowId()); + assertEquals(appCategoryFunctionsItem.getAppId(), appCategoryFunctionsItem1.getAppId()); + assertEquals(appCategoryFunctionsItem.getApplication(), appCategoryFunctionsItem1.getApplication()); + assertEquals(appCategoryFunctionsItem.getFunctions(), appCategoryFunctionsItem1.getFunctions()); + assertEquals(appCategoryFunctionsItem.toString(), "AppCategoryFunctionsItem [rowId=test, appId=test, application=test, category=null, functions=test]"); + assertEquals(appCategoryFunctionsItem.hashCode(), appCategoryFunctionsItem1.hashCode()); + assertTrue(appCategoryFunctionsItem.equals(appCategoryFunctionsItem1)); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppContactUsItemTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppContactUsItemTest.java new file mode 100644 index 00000000..898bd986 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/AppContactUsItemTest.java @@ -0,0 +1,86 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.model; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; +import org.onap.portalapp.portal.ecomp.model.AppContactUsItem; + +public class AppContactUsItemTest { + + public AppContactUsItem mockAppContactUsItem(){ + AppContactUsItem appContactUsItem = new AppContactUsItem(); + + appContactUsItem.setAppId((long)1); + appContactUsItem.setAppName("test"); + appContactUsItem.setDescription("test"); + appContactUsItem.setContactName("test"); + appContactUsItem.setContactEmail("test"); + appContactUsItem.setUrl("test"); + appContactUsItem.setActiveYN("test"); + + return appContactUsItem; + } + + @Test + public void appContactUsItemTest(){ + AppContactUsItem appContactUsItem = mockAppContactUsItem(); + + AppContactUsItem appContactUsItem1 = new AppContactUsItem(); + appContactUsItem1.setAppId((long)1); + appContactUsItem1.setAppName("test"); + appContactUsItem1.setDescription("test"); + appContactUsItem1.setContactName("test"); + appContactUsItem1.setContactEmail("test"); + appContactUsItem1.setUrl("test"); + appContactUsItem1.setActiveYN("test"); + + assertEquals(appContactUsItem.getAppId(), appContactUsItem1.getAppId()); + assertEquals(appContactUsItem.getAppName(), appContactUsItem1.getAppName()); + assertEquals(appContactUsItem.getDescription(), appContactUsItem1.getDescription()); + assertEquals(appContactUsItem.getContactName(), appContactUsItem1.getContactName()); + assertEquals(appContactUsItem.getContactEmail(), appContactUsItem1.getContactEmail()); + assertEquals(appContactUsItem.getUrl(), appContactUsItem1.getUrl()); + assertEquals(appContactUsItem.getActiveYN(), appContactUsItem1.getActiveYN()); + assertEquals(appContactUsItem.toString(), "AppContactUsItem [appId=1, appName=test, description=test, contactName=test, contactEmail=test, url=test, activeYN=test]"); + assertEquals(appContactUsItem.hashCode(), appContactUsItem1.hashCode()); + assertTrue(appContactUsItem.equals(appContactUsItem1)); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/SearchResultItemTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/SearchResultItemTest.java new file mode 100644 index 00000000..fac3ecf6 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/model/SearchResultItemTest.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.model; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.ecomp.model.SearchResultItem; + +public class SearchResultItemTest { + + public SearchResultItem mockSearchResultItem(){ + SearchResultItem searchResultItem = new SearchResultItem(); + + searchResultItem.setRowId("test"); + searchResultItem.setCategory("test"); + searchResultItem.setName("test"); + searchResultItem.setTarget("test"); + searchResultItem.setUuid("test"); + + return searchResultItem; + } + + @Test + public void searchResultItemTest(){ + SearchResultItem searchResultItem = mockSearchResultItem(); + + SearchResultItem searchResultItem1 = new SearchResultItem(); + searchResultItem1.setRowId("test"); + searchResultItem1.setCategory("test"); + searchResultItem1.setName("test"); + searchResultItem1.setTarget("test"); + searchResultItem1.setUuid("test"); + + assertEquals(searchResultItem.getRowId(), searchResultItem.getRowId()); + assertEquals(searchResultItem.getCategory(), searchResultItem.getCategory()); + assertEquals(searchResultItem.getName(), searchResultItem.getName()); + assertEquals(searchResultItem.getTarget(), searchResultItem.getTarget()); + assertEquals(searchResultItem.getUuid(), searchResultItem.getUuid()); + assertEquals(searchResultItem.toString(), searchResultItem.toString()); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/AppContactUsServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/AppContactUsServiceImplTest.java new file mode 100644 index 00000000..aaadbe03 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/AppContactUsServiceImplTest.java @@ -0,0 +1,184 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.domain.AppContactUs; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; +import org.onap.portalapp.portal.ecomp.model.AppContactUsItem; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AppContactUsService; +import org.onap.portalapp.portal.service.AppContactUsServiceImpl; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.DataAccessServiceImpl; + +public class AppContactUsServiceImplTest { + + + @Mock + DataAccessService dataAccessService = new DataAccessServiceImpl(); + + @Mock + AppContactUsService AppContactUsService = new AppContactUsServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @InjectMocks + AppContactUsServiceImpl appContactUsServiceImpl = new AppContactUsServiceImpl(); + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + + + public EPApp getApp() { + EPApp app = new EPApp(); + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppRestEndpoint("test"); + app.setAlternateUrl("test"); + app.setName("test"); + app.setMlAppName("test"); + app.setMlAppAdminId("test"); + app.setUsername("test"); + app.setAppPassword("test"); + app.setOpen(true); + app.setEnabled(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.setAppType(1); + return app; + } + @Test + public void getAppContactUsTest() throws Exception + { + + List contactUsItemList = new ArrayList<>(); + AppContactUsItem appContactUsItem= new AppContactUsItem(); + appContactUsItem.setAppName("testNew"); + contactUsItemList.add(appContactUsItem); + AppContactUsItem appContactUsItem1= new AppContactUsItem(); + appContactUsItem1.setAppName("test"); + contactUsItemList.add(appContactUsItem1); + Mockito.when(dataAccessService.executeNamedQuery("getAppContactUsItems", null, null)).thenReturn(contactUsItemList); + List expectedcontactUsItemList = appContactUsServiceImpl.getAppContactUs(); + assertEquals(expectedcontactUsItemList, contactUsItemList); + } + + @Test + public void getAppsAndContactsTest() throws Exception + { + List contactUsItemList = new ArrayList<>(); + AppContactUsItem appContactUsItem= new AppContactUsItem(); + appContactUsItem.setAppName("testNew"); + contactUsItemList.add(appContactUsItem); + AppContactUsItem appContactUsItem1= new AppContactUsItem(); + appContactUsItem1.setAppName("test"); + contactUsItemList.add(appContactUsItem1); + Mockito.when(dataAccessService.executeNamedQuery("getAppsAndContacts", null, null)).thenReturn(contactUsItemList); + List expectedcontactUsItemList = appContactUsServiceImpl.getAppsAndContacts(); + assertEquals(expectedcontactUsItemList, contactUsItemList); + } + + @Test + public void getAppCategoryFunctionsTest() throws Exception + { + List list = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getAppCategoryFunctions", null, null)).thenReturn(list); + List expectedlist = appContactUsServiceImpl.getAppCategoryFunctions(); + assertEquals(list, expectedlist); + } + + @Test(expected = java.lang.Exception.class) + public void saveAppContactUsTest() throws Exception + { + HashMap map = new HashMap(); + List contactUsModelList = new ArrayList<>(); + AppContactUsItem appContactUsItem= new AppContactUsItem(); + appContactUsItem.setAppId((long) 1); + contactUsModelList.add(appContactUsItem); + AppContactUs appContact = new AppContactUs(); + Mockito.when(dataAccessService.getDomainObject(AppContactUs.class, 1, map)).thenReturn(appContact); + EPApp app = getApp(); + Mockito.when(dataAccessService.getDomainObject(EPApp.class, 1, new HashMap())).thenReturn(app); + AppContactUs contactUs = new AppContactUs(); + contactUs.setApp(app); + contactUs.setDescription(appContactUsItem.getDescription()); + contactUs.setContactName(appContactUsItem.getContactName()); + contactUs.setContactEmail(appContactUsItem.getContactEmail()); + contactUs.setActiveYN(appContactUsItem.getActiveYN()); + contactUs.setUrl(appContactUsItem.getUrl()); + Mockito.doNothing().when(dataAccessService).saveDomainObject(contactUs,map); + appContactUsServiceImpl.saveAppContactUs(contactUsModelList); + } + + @Test(expected = java.lang.NullPointerException.class) + public void deleteContactUsTest() throws Exception + { + HashMap map = new HashMap(); + AppContactUs contactUs = new AppContactUs(); + Mockito.when((AppContactUs) dataAccessService.getDomainObject(AppContactUs.class, 1, map)).thenReturn(contactUs); + appContactUsServiceImpl.deleteContactUs((long) 1); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/DashboardSearchServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/DashboardSearchServiceImplTest.java new file mode 100644 index 00000000..13f04ae2 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/DashboardSearchServiceImplTest.java @@ -0,0 +1,151 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.ecomp.model.SearchResultItem; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.DashboardSearchServiceImpl; +import org.onap.portalapp.portal.transport.CommonWidget; +import org.onap.portalapp.portal.transport.CommonWidgetMeta; +import org.onap.portalsdk.core.service.DataAccessService; + +public class DashboardSearchServiceImplTest { + + @Mock + DataAccessService dataAccessService; + + @InjectMocks + DashboardSearchServiceImpl dashboardSearchServiceImpl = new DashboardSearchServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + NullPointerException nullPointerException = new NullPointerException(); + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + MockEPUser mockUser = new MockEPUser(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + + @Test + public void searchResultsTest() + { + Map params = new HashMap<>(); + params.put("userId", "guestT"); + params.put("searchQuery", "test"); + + List list = new ArrayList<>(); + SearchResultItem searchResultItem= new SearchResultItem(); + searchResultItem.setCategory("test"); + list.add(searchResultItem); + Mockito.when(dataAccessService.executeNamedQuery("searchPortal", params, null)).thenReturn(list); + Map> result = dashboardSearchServiceImpl.searchResults("guestT", "test"); + assertTrue(result.keySet().contains("test")); + } + + @Test + public void getRelatedUsersTest() + { + List activeUsers = new ArrayList<>(); + Map params = new HashMap<>(); + params.put("userId", "guestT"); + Mockito.when(dataAccessService.executeNamedQuery("relatedUsers", params, null)).thenReturn(activeUsers); + List expectedActiveUsers = dashboardSearchServiceImpl.getRelatedUsers("guestT"); + assertEquals(expectedActiveUsers,activeUsers); + } + @Test + public void getWidgetDataTest() + { + CommonWidgetMeta CommonWidgetMeta = null; + Map params = new HashMap<>(); + params.put("cat", "test"); + @SuppressWarnings("unchecked") + List widgetItems = new ArrayList<>(); + CommonWidget commonWidget = new CommonWidget(); + widgetItems.add(commonWidget); + Mockito.when(dataAccessService.executeNamedQuery("getCommonWidgetItem", params, null)).thenReturn(widgetItems); + CommonWidgetMeta expectedCommonWidgetMeta =dashboardSearchServiceImpl.getWidgetData("test"); + assertEquals(expectedCommonWidgetMeta.getCategory(), "test"); + } + + @Test + public void saveWidgetDataBulkTest() + { + CommonWidgetMeta CommonWidgetMeta = new CommonWidgetMeta(); + List widgetList = new ArrayList<>(); + CommonWidget commonWidget = new CommonWidget(); + widgetList.add(commonWidget); + CommonWidgetMeta.setItems(widgetList); + Mockito.doNothing().when(dataAccessService).saveDomainObject(commonWidget, null); + assertEquals(dashboardSearchServiceImpl.saveWidgetDataBulk(CommonWidgetMeta), "success"); + } + + @Test + public void saveWidgetDataTest() + { + CommonWidget commonWidget = new CommonWidget(); + Mockito.doNothing().when(dataAccessService).saveDomainObject(commonWidget, null); + assertEquals(dashboardSearchServiceImpl.saveWidgetData(commonWidget), "success"); + } + + @Test + public void deleteWidgetDataTest() + { + CommonWidget commonWidget = new CommonWidget(); + Mockito.doNothing().when(dataAccessService).deleteDomainObject(commonWidget, null); + assertEquals(dashboardSearchServiceImpl.deleteWidgetData(commonWidget), "success"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceCentralizedImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceCentralizedImplTest.java new file mode 100644 index 00000000..345ae3b7 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceCentralizedImplTest.java @@ -0,0 +1,130 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.commons.codec.DecoderException; +import org.hibernate.SessionFactory; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.CentralV2RoleFunction; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.exceptions.RoleFunctionException; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.EPRoleFunctionServiceCentralizedImpl; +import org.onap.portalsdk.core.domain.RoleFunction; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(SystemProperties.class) +@Ignore +public class EPRoleFunctionServiceCentralizedImplTest { + + + @Mock + DataAccessService dataAccessService; + + @Mock + SessionFactory sessionFactory; + + @InjectMocks + EPRoleFunctionServiceCentralizedImpl ePRoleFunctionServiceCentralizedImpl = new EPRoleFunctionServiceCentralizedImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + NullPointerException nullPointerException = new NullPointerException(); + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + MockEPUser mockUser = new MockEPUser(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + + @Test(expected = NullPointerException.class) + public void getRoleFunctions() + { + List getRoleFuncList = new ArrayList<>(); + CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(); + getRoleFuncList.add(centralV2RoleFunction); + List getRoleFuncListOfPortal = new ArrayList<>(); + RoleFunction roleFunction = new RoleFunction(); + getRoleFuncListOfPortal.add(roleFunction); + final Map params = new HashMap<>(); + params.put("appId", (long) 1); + Mockito.when(dataAccessService.executeNamedQuery("getAllRoleFunctions", params, null)).thenReturn(getRoleFuncList); + List expectedGetRoleFuncListOfPortal = ePRoleFunctionServiceCentralizedImpl.getRoleFunctions(); + assertEquals(expectedGetRoleFuncListOfPortal.size(),getRoleFuncListOfPortal.size()); + } + + @Test + public void getRoleFunctionsNewTest() throws RoleFunctionException + { + HttpSession session = mockedRequest.getSession(); + EPUser user = mockUser.mockEPUser(); + user.setId((long) 1); + String userId = user.getId().toString(); + final Map params = new HashMap<>(); + params.put("userId", userId); + @SuppressWarnings("unused") + List getRoleFuncListOfPortal = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getRoleFunctionsOfUser", params, null)).thenReturn(getRoleFuncListOfPortal); + Set getRoleFuncListOfPortalSet = ePRoleFunctionServiceCentralizedImpl.getRoleFunctions(mockedRequest, user); + assertTrue(getRoleFuncListOfPortalSet.size() == 0); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceImplTest.java new file mode 100644 index 00000000..b7bffea1 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleFunctionServiceImplTest.java @@ -0,0 +1,135 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.EPRoleFunctionServiceImpl; +import org.onap.portalapp.util.EPUserUtils; +import org.onap.portalsdk.core.domain.RoleFunction; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ SystemProperties.class, EPUserUtils.class }) +public class EPRoleFunctionServiceImplTest { + + @Mock + DataAccessService dataAccessService; + + @InjectMocks + EPRoleFunctionServiceImpl ePRoleFunctionServiceImpl = new EPRoleFunctionServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + NullPointerException nullPointerException = new NullPointerException(); + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + MockEPUser mockUser = new MockEPUser(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + + @Test + public void getRoleFunctionsTest() { + List functions = new ArrayList<>(); + Mockito.when(dataAccessService.getList(RoleFunction.class, null)).thenReturn(functions); + List expectedFunctions = ePRoleFunctionServiceImpl.getRoleFunctions(); + assertEquals(expectedFunctions, functions); + } + + @Test + public void getRoleFunctionsRequestTest() { + EPUser user = mockUser.mockEPUser(); + HashSet roleFunctions = new HashSet<>(); + PowerMockito.mockStatic(SystemProperties.class); + HttpSession session = mockedRequest.getSession(); + Mockito.when(session.getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME))) + .thenReturn(roleFunctions); + HashSet expectedRoleFunctions = (HashSet) ePRoleFunctionServiceImpl.getRoleFunctions(mockedRequest, user); + assertEquals(expectedRoleFunctions, roleFunctions); + } + + @SuppressWarnings("unchecked") + @Test + public void getRoleFunctionsRequestIfNullTest() { + EPUser user = mockUser.mockEPUser(); + HashSet roleFunctions = null; + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPUserUtils.class); + HttpSession session = mockedRequest.getSession(); + Mockito.when(session.getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME))) + .thenReturn(roleFunctions); + HashMap roles = new HashMap<>(); + EPRole role = new EPRole(); + SortedSet roleFunctionSet = new TreeSet(); + RoleFunction rolefun = new RoleFunction(); + roleFunctionSet.add(rolefun); + role.setRoleFunctions(roleFunctionSet); + roles.put((long) 1, role); + Mockito.when(EPUserUtils.getRoles(mockedRequest)).thenReturn(roles); + HashSet expectedRoleFunctions = (HashSet) ePRoleFunctionServiceImpl.getRoleFunctions(mockedRequest, user); + assertTrue(expectedRoleFunctions.size() == 1); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleServiceImplTest.java new file mode 100644 index 00000000..4c97b6dd --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPRoleServiceImplTest.java @@ -0,0 +1,245 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.EPRoleServiceImpl; +import org.onap.portalsdk.core.domain.RoleFunction; +import org.onap.portalsdk.core.service.DataAccessService; + +public class EPRoleServiceImplTest { + + @Mock + DataAccessService dataAccessService; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @InjectMocks + EPRoleServiceImpl ePRoleServiceImpl = new EPRoleServiceImpl(); + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + MockEPUser mockUser = new MockEPUser(); + + @Test + public void getRoleFunctionsTest() { + List roleFunctionList = new ArrayList<>(); + Mockito.when(dataAccessService.getList(RoleFunction.class, null)).thenReturn(roleFunctionList); + List expectedRoleFunctionList = ePRoleServiceImpl.getRoleFunctions(); + assertEquals(roleFunctionList, expectedRoleFunctionList); + } + + @Test + public void getAvailableChildRolesIfRoleIdIsNullTest() { + List roleList = new ArrayList<>(); + EPRole role = new EPRole(); + EPRole role1 = new EPRole(); + role.addChildRole(role1); + roleList.add(role); + Mockito.when(dataAccessService.getList(EPRole.class, null)).thenReturn(roleList); + List expectedRoleList = ePRoleServiceImpl.getAvailableChildRoles(null); + assertEquals(roleList, expectedRoleList); + } + + // @Test + // public void getAvailableChildRolesIfRoleIdNotNullTest() + // { + // List roleList = new ArrayList<>(); + // EPRole role = new EPRole(); + // EPRole role1= new EPRole(); + // role.addChildRole(role1); + // roleList.add(role); + // Mockito.when(dataAccessService.getDomainObject(EPRole.class, 1, + // null)).thenReturn(role); + // Mockito.when(dataAccessService.getList(EPRole.class, + // null)).thenReturn(roleList); + // + // List expectedRoleList = + // ePRoleServiceImpl.getAvailableChildRoles((long) 1); + // System.out.println(expectedRoleList); + // assertEquals(roleList,expectedRoleList); + // } + // + @Test + public void getRoleFunctionTest() { + RoleFunction roleFunction = new RoleFunction(); + Mockito.when(dataAccessService.getDomainObject(RoleFunction.class, "test", null)).thenReturn(roleFunction); + RoleFunction expectedRoleFunction = ePRoleServiceImpl.getRoleFunction("test"); + assertEquals(expectedRoleFunction, roleFunction); + } + + @Test + public void saveRoleFunctionTest() { + EPRole role = new EPRole(); + Mockito.doNothing().when(dataAccessService).saveDomainObject(role, null); + ePRoleServiceImpl.saveRole(role); + } + + @Test + public void deleteRoleFunctionTest() { + RoleFunction roleFunction = new RoleFunction(); + Mockito.doNothing().when(dataAccessService).deleteDomainObject(roleFunction, null); + ePRoleServiceImpl.deleteRoleFunction(roleFunction); + } + + @Test + public void getRoleTest() { + EPRole role = null; + Mockito.when(dataAccessService.getDomainObject(EPRole.class, 1, null)).thenReturn(role); + EPRole expectedRole = ePRoleServiceImpl.getRole((long) 1); + assertEquals(expectedRole, role); + } + + @Test + public void getRoleIfappIdNullTest() { + assertNull(ePRoleServiceImpl.getRole(null, null)); + + } + + @Test + public void getRoleIfappIdNotNullTest() { + List roles = new ArrayList<>(); + EPRole role = new EPRole(); + roles.add(role); + String sql = "SELECT * FROM fn_role where APP_ID = 1 AND APP_ROLE_ID = 1"; + Mockito.when(dataAccessService.executeSQLQuery(sql, EPRole.class, null)).thenReturn(roles); + EPRole expectedRole = ePRoleServiceImpl.getRole((long) 1, (long) 1); + assertEquals(expectedRole, role); + + } + + @Test + public void getRoleIfListSizeIsMoreThan1Test() { + List roles = new ArrayList<>(); + EPRole role = new EPRole(); + EPRole role1 = new EPRole(); + roles.add(role); + roles.add(role1); + String sql = "SELECT * FROM fn_role where APP_ID = 1 AND APP_ROLE_ID = 1"; + Mockito.when(dataAccessService.executeSQLQuery(sql, EPRole.class, null)).thenReturn(roles); + EPRole expectedRole = ePRoleServiceImpl.getRole((long) 1, (long) 1); + assertEquals(expectedRole, role); + + } + + @Test + public void getRoleIfListSizeIsEmptyTest() { + List roles = new ArrayList<>(); + String sql = "SELECT * FROM fn_role where APP_ID = 1 AND APP_ROLE_ID = 1"; + Mockito.when(dataAccessService.executeSQLQuery(sql, EPRole.class, null)).thenReturn(roles); + assertNull(ePRoleServiceImpl.getRole((long) 1, (long) 1)); + + } + + @Test + public void saveRoleTest() { + EPRole role = new EPRole(); + Mockito.doNothing().when(dataAccessService).saveDomainObject(role, null); + ePRoleServiceImpl.saveRole(role); + } + + @Test + public void deleteRoleTest() { + EPRole role = new EPRole(); + Mockito.doNothing().when(dataAccessService).deleteDomainObject(role, null); + ePRoleServiceImpl.deleteRole(role); + } + + @Test + public void getAvailableRolesTest() { + List roleList = new ArrayList<>(); + Mockito.when(dataAccessService.getList(EPRole.class, null)).thenReturn(roleList); + List expectedRoleList = ePRoleServiceImpl.getAvailableRoles(); + assertEquals(expectedRoleList, roleList); + } + + @Test + public void getAppRolesTest() { + final Map portalParams = null; + List roleList = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getPortalAppRoles", portalParams, null)).thenReturn(roleList); + assertNull(ePRoleServiceImpl.getAppRole("test", (long) 1)); + + } + + @SuppressWarnings("unchecked") + @Test + public void getAppRolesIfNotPortalTest() { + final Map params = null; + List roleList = new ArrayList<>(); + EPRole role = new EPRole(); + EPRole role1 = new EPRole(); + roleList.add(role); + roleList.add(role1); + Mockito.when((List) dataAccessService.executeNamedQuery("getAppRoles", params, null)) + .thenReturn(roleList); + List expectedRoleList = (List) ePRoleServiceImpl.getAppRole("test", (long) 10); + System.out.println(expectedRoleList); + + } + + @Test + public void saveRoleFunction() { + RoleFunction domainRoleFunction = new RoleFunction(); + Mockito.doNothing().when(dataAccessService).saveDomainObject(domainRoleFunction, null); + ePRoleServiceImpl.saveRoleFunction(domainRoleFunction); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java new file mode 100644 index 00000000..66cfdd31 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java @@ -0,0 +1,456 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Matchers; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.CentralV2RoleFunction; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPAppRoleFunction; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.exceptions.InactiveApplicationException; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.transport.EcompUserRoles; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalsdk.core.domain.Role; +import org.onap.portalsdk.core.restful.domain.EcompUser; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.DataAccessServiceImpl; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.RestTemplate; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ EcompPortalUtils.class, SystemProperties.class, EPCommonSystemProperties.class }) +public class ExternalAccessRolesServiceImplTest { + @Mock + DataAccessService dataAccessService1 = new DataAccessServiceImpl(); + + @Mock + RestTemplate template = new RestTemplate(); + + @InjectMocks + ExternalAccessRolesServiceImpl externalAccessRolesServiceImpl = new ExternalAccessRolesServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + MockEPUser mockUser = new MockEPUser(); + String uebKey = "test-ueb-key"; + + public EPApp mockApp() { + EPApp app = new EPApp(); + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 10); + app.setAppRestEndpoint("test"); + app.setAlternateUrl("test"); + app.setName("test"); + app.setMlAppName("test"); + app.setMlAppAdminId("test"); + app.setUsername("test"); + app.setAppPassword("test"); + app.setOpen(false); + app.setEnabled(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.setAppType(1); + return app; + } + + @Test + public void getAppRolesIfAppIsPortalTest() throws Exception { + List applicationRoles = new ArrayList<>(); + Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); + List expectedApplicationRoles = externalAccessRolesServiceImpl.getAppRoles((long) 1); + assertEquals(expectedApplicationRoles, applicationRoles); + } + + @Test + public void getAppRolesTest() throws Exception { + List applicationRoles = new ArrayList<>(); + Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); + List expectedApplicationRoles = externalAccessRolesServiceImpl.getAppRoles((long) 10); + assertEquals(expectedApplicationRoles, applicationRoles); + } + + // @SuppressWarnings("null") + // @Test(expected = java.lang.Exception.class) + // public void getAppRolesExceptionTest() throws Exception{ + // List applicationRoles = new ArrayList<>(); + // DataAccessService dataAccessService = null ; + // Mockito.when(dataAccessService.getList(EPRole.class, "where app_id = 10", + // null, null)).thenThrow(nullPointerException); + // List expectedApplicationRoles = + // externalAccessRolesServiceImpl.getAppRoles((long) 10); + // assertEquals(expectedApplicationRoles,applicationRoles); + // } + + @Test + public void getAppExceptionTest() throws Exception { + List app = new ArrayList<>(); + Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)) + .thenReturn(app); + List expectedapp = externalAccessRolesServiceImpl.getApp(uebKey); + assertEquals(app, expectedapp); + } + + @Test(expected = InactiveApplicationException.class) + public void getAppErrorTest() throws Exception { + List appList = new ArrayList<>(); + EPApp app = mockApp(); + appList.add(app); + final Map appUebkeyParams = new HashMap<>(); + appUebkeyParams.put("appKey", "test-ueb-key"); + Mockito.when(dataAccessService1.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + externalAccessRolesServiceImpl.getApp(uebKey); + } + + @Test + public void getAppTest() throws Exception { + List appList = new ArrayList<>(); + EPApp app = mockApp(); + app.setId((long) 1); + appList.add(app); + final Map appUebkeyParams = new HashMap<>(); + appUebkeyParams.put("appKey", "test-ueb-key"); + Mockito.when(dataAccessService1.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + List expectedapp = externalAccessRolesServiceImpl.getApp(uebKey); + assertEquals(appList, expectedapp); + } + + @Test + public void addRoleTest() throws Exception { + HttpHeaders headers = new HttpHeaders(); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + String uebKey = "test-ueb-key"; + Role role = new Role(); + role.setId((long) 25); + EPApp app = mockApp(); + app.setEnabled(true); + app.setId((long) 10); + app.setNameSpace("test_namesapce"); + Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); + List appList = new ArrayList<>(); + appList.add(app); + List roleList = new ArrayList<>(); + EPRole ePRole = new EPRole(); + role.setName("Test Role"); + roleList.add(ePRole); + final Map appUebkeyParams = new HashMap<>(); + appUebkeyParams.put("appKey", "test-ueb-key"); + Mockito.when(dataAccessService1.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + final Map getPartnerAppRoleParams = new HashMap<>(); + getPartnerAppRoleParams.put("appRoleId", role.getId()); + getPartnerAppRoleParams.put("appId", app.getId()); + Mockito.when(dataAccessService1.executeNamedQuery("getPartnerAppRoleByRoleId", getPartnerAppRoleParams, null)).thenReturn(roleList); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL)) + .thenReturn("Testurl"); + ResponseEntity addResponse = new ResponseEntity<>(HttpStatus.CREATED); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.>any(), Matchers.eq(String.class))).thenReturn(addResponse); + + assertTrue(externalAccessRolesServiceImpl.addRole(role, uebKey)); + } + + + @Test + public void addRoleMethodNotAllowedTest() throws Exception { + HttpHeaders headers = new HttpHeaders(); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + Role role = new Role(); + role.setId((long) 25); + EPApp app = mockApp(); + app.setEnabled(true); + app.setId((long) 10); + app.setNameSpace("test_namesapce"); + Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); + List appList = new ArrayList<>(); + appList.add(app); + List roleList = new ArrayList<>(); + EPRole ePRole = new EPRole(); + role.setName("Test Role"); + roleList.add(ePRole); + final Map appUebkeyParams = new HashMap<>(); + appUebkeyParams.put("appKey", "test-ueb-key"); + Mockito.when(dataAccessService1.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + final Map getPartnerAppRoleParams = new HashMap<>(); + getPartnerAppRoleParams.put("appRoleId", role.getId()); + getPartnerAppRoleParams.put("appId", app.getId()); + Mockito.when(dataAccessService1.executeNamedQuery("getPartnerAppRoleByRoleId", getPartnerAppRoleParams, null)).thenReturn(roleList); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL)) + .thenReturn("Testurl"); + ResponseEntity addResponse = new ResponseEntity<>(HttpStatus.METHOD_NOT_ALLOWED); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.>any(), Matchers.eq(String.class))).thenReturn(addResponse); + assertFalse(externalAccessRolesServiceImpl.addRole(role, uebKey)); + } + + public EPApp getApp() { + EPApp app = new EPApp(); + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppRestEndpoint("test"); + app.setAlternateUrl("test"); + app.setName("test"); + app.setMlAppName("test"); + app.setMlAppAdminId("test"); + app.setUsername("test"); + app.setAppPassword("test"); + app.setOpen(true); + app.setEnabled(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.setAppType(1); + return app; + } + + @Test + public void deleteCentralRoleFunctionTest() throws Exception { + final Map params = new HashMap<>(); + EPApp app = mockApp(); + params.put("functionCode", "menu_fun_code"); + params.put("appId", String.valueOf(10)); + List centralRoleFunctionList = new ArrayList<>(); + CentralV2RoleFunction domainCentralRoleFunction = new CentralV2RoleFunction(); + domainCentralRoleFunction.setCode("menu_fun_code"); + centralRoleFunctionList.add(domainCentralRoleFunction); + Mockito.when(dataAccessService1.executeNamedQuery("getRoleFunction", params, null)) + .thenReturn(centralRoleFunctionList); + ResponseEntity addResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE), + Matchers.>any(), Matchers.eq(String.class))).thenReturn(addResponse); + HttpHeaders headers = new HttpHeaders(); + PowerMockito.mockStatic(EcompPortalUtils.class); + Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); + + Mockito.doNothing().when(dataAccessService1).deleteDomainObjects(EPAppRoleFunction.class, + "app_id = " + app.getId() + " and function_cd = '" + "menu_fun_code" + "'", null); + + assertTrue(externalAccessRolesServiceImpl.deleteCentralRoleFunction("menu_fun_code", app)); + } + @Test + public void deleteCentralRoleFunctionFailTest() throws Exception { + final Map params = new HashMap<>(); + EPApp app = mockApp(); + params.put("functionCode", "menu_fun_code"); + params.put("appId", String.valueOf(10)); + List centralRoleFunctionList = new ArrayList<>(); + CentralV2RoleFunction domainCentralRoleFunction = new CentralV2RoleFunction(); + domainCentralRoleFunction.setCode("menu_fun_code"); + centralRoleFunctionList.add(domainCentralRoleFunction); + HttpClientErrorException httpClientErrorException = new HttpClientErrorException(HttpStatus.NOT_FOUND); + Mockito.when(dataAccessService1.executeNamedQuery("getRoleFunction", params, null)) + .thenReturn(centralRoleFunctionList); + ResponseEntity addResponse = new ResponseEntity<>(HttpStatus.NOT_FOUND); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE), + Matchers.>any(), Matchers.eq(String.class))).thenThrow(httpClientErrorException); + HttpHeaders headers = new HttpHeaders(); + PowerMockito.mockStatic(EcompPortalUtils.class); + Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); + + Mockito.doNothing().when(dataAccessService1).deleteDomainObjects(EPAppRoleFunction.class, + "app_id = " + app.getId() + " and function_cd = '" + "menu_fun_code" + "'", null); + + boolean returnedValue = externalAccessRolesServiceImpl.deleteCentralRoleFunction("menu_fun_code", app); + assertTrue(returnedValue); + } + + @Test + public void deleteCentralRoleFunctionExceptionTest() { + final Map params = new HashMap<>(); + EPApp app = mockApp(); + params.put("functionCd", "menu_fun_code"); + params.put("appId", String.valueOf(10)); + List centralRoleFunctionList = new ArrayList<>(); + CentralV2RoleFunction domainCentralRoleFunction = new CentralV2RoleFunction(); + domainCentralRoleFunction.setCode("menu_fun_code"); + centralRoleFunctionList.add(domainCentralRoleFunction); + Mockito.when(dataAccessService1.executeNamedQuery("getAppFunctionDetails", params, null)) + .thenThrow(nullPointerException); + assertTrue(externalAccessRolesServiceImpl.deleteCentralRoleFunction("menu_fun_code", app)); + } + + @Test + public void getUserTest() { + List userList = new ArrayList<>(); + EPUser user = mockUser.mockEPUser(); + userList.add(user); + final Map userParams = new HashMap<>(); + userParams.put("org_user_id", "guestT"); + Mockito.when(dataAccessService1.executeNamedQuery("getEPUserByOrgUserId", userParams, null)) + .thenReturn(userList); + List expectedUserList = externalAccessRolesServiceImpl.getUser("guestT"); + assertEquals(expectedUserList, userList); + } + + + public void saveCentralRoleFunctionTest() throws Exception { + CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(); + centralV2RoleFunction.setCode("menu_test"); + EPApp app = mockApp(); + app.setId((long) 1); + final Map params = new HashMap<>(); + params.put("functionCd", "menu_test"); + params.put("appId", String.valueOf(1)); + PowerMockito.mockStatic(EcompPortalUtils.class); + HttpHeaders headers = new HttpHeaders(); + Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); + List appRoleFunc = new ArrayList<>(); + appRoleFunc.add(centralV2RoleFunction); + Mockito.when(dataAccessService1.executeNamedQuery("getAppFunctionDetails", params, + null)).thenReturn(appRoleFunc); + ResponseEntity addResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.>any(), Matchers.eq(String.class))).thenReturn(addResponse); + } + +// @Test +// public void getAllAppUsersIfAppIsPortalTest() throws Exception +// { +// List expectedapps = new ArrayList<>(); +// EPApp app = new EPApp(); +// app.setEnabled(true); +// app.setId((long) 1); +// expectedapps.add(app); +// List applicationRoles = new ArrayList<>(); +// Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); +// Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)).thenReturn(expectedapps); +// externalAccessRolesServiceImpl.getAllAppUsers(uebKey); +// } + + + @Test(expected = IndexOutOfBoundsException.class) + public void getAllAppUsersTest() throws Exception + { + List expectedapps = new ArrayList<>(); + EPApp app = new EPApp(); + app.setEnabled(true); + app.setId((long) 10); + expectedapps.add(app); + List applicationRoles = new ArrayList<>(); + Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); + Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)).thenReturn(expectedapps); + final Map appParams = new HashMap<>(); + appParams.put("appId", app.getId()); + List userList = new ArrayList<>(); + EcompUserRoles ecompUserRoles = new EcompUserRoles(); + ecompUserRoles.setOrgUserId("guestT"); + ecompUserRoles.setRoleId((long) 1); + ecompUserRoles.setRoleName("test"); + + EcompUserRoles ecompUserRoles2 = new EcompUserRoles(); + ecompUserRoles2.setOrgUserId("guestT"); + ecompUserRoles2.setRoleId((long) 2); + ecompUserRoles2.setRoleName("test new"); + userList.add(ecompUserRoles); + userList.add(ecompUserRoles2); + + Mockito.when(dataAccessService1.executeNamedQuery("ApplicationUserRoles", appParams, null)).thenReturn(userList); + List usersfinalList = externalAccessRolesServiceImpl.getAllAppUsers(uebKey); + assertEquals(usersfinalList.get(0).getRoles().size(), 2); + } + + @Test + public void getGlobalRolesOfPortalTest() + { + Mockito.when(dataAccessService1.executeNamedQuery("getGlobalRolesOfPortal", null, null)).thenReturn(null); + assertEquals(externalAccessRolesServiceImpl.getGlobalRolesOfPortal(), null); + } + + @Test + public void getGlobalRolesOfPortalExceptionTest() + { + List globalRoles = new ArrayList<>(); + Mockito.when(dataAccessService1.executeNamedQuery("getGlobalRolesOfPortal", null, null)).thenThrow(nullPointerException); + assertEquals(externalAccessRolesServiceImpl.getGlobalRolesOfPortal(), globalRoles); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/FunctionalMenuMockServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/FunctionalMenuMockServiceImplTest.java new file mode 100644 index 00000000..6655a5d1 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/FunctionalMenuMockServiceImplTest.java @@ -0,0 +1,222 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.domain.FunctionalMenuItemWithAppID; +import org.onap.portalapp.portal.service.FunctionalMenuService; +import org.onap.portalapp.portal.service.FunctionalMenuServiceImpl; +import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; +import org.onap.portalapp.portal.transport.FunctionalMenuRole; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({SystemProperties.class, EPCommonSystemProperties.class}) +public class FunctionalMenuMockServiceImplTest { + + @Mock + FunctionalMenuService functionalMenuService; + + @Mock + DataAccessService dataAccessService; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @InjectMocks + FunctionalMenuServiceImpl functionalMenuServiceImpl= new FunctionalMenuServiceImpl(); + + @Test + public void assignHelpURLsTest(){ + List menuItems = new ArrayList(); + FunctionalMenuItem functionalMenuItem1 = new FunctionalMenuItem(); + functionalMenuItem1.text = "Contact Us"; + FunctionalMenuItem functionalMenuItem2 = new FunctionalMenuItem(); + functionalMenuItem2.text = "Get Access"; + FunctionalMenuItem functionalMenuItem3 = new FunctionalMenuItem(); + functionalMenuItem3.text = "User Guide"; + menuItems.add(functionalMenuItem1); + menuItems.add(functionalMenuItem2); + menuItems.add(functionalMenuItem3); + + PowerMockito.mockStatic(SystemProperties.class); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.USER_GUIDE_URL)).thenReturn("http://todo_enter_user_guide_link"); +// Mockito.doNothing().when(functionalMenuServiceImpl).assignHelpURLs(menuItems); + functionalMenuServiceImpl.assignHelpURLs(menuItems); + } + + @Test + public void getFunctionalMenuItemsTest(){ + String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, " + + "fn_menu_functional_roles r WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' " + + "UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn,-1 app_id FROM fn_menu_functional m " + + "WHERE m.url='' AND UPPER(m.active_yn) = 'Y'"; + List actualResult = new ArrayList(); + List expectedResult = new ArrayList(); + + Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); + + actualResult = functionalMenuServiceImpl.getFunctionalMenuItems(true); + assertEquals(actualResult, expectedResult); + } + + @Test + public void getFunctionalMenuItemsNegativeTest(){ + String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, " + + "fn_menu_functional_roles r WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' " + + "UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn,-1 app_id FROM fn_menu_functional m " + + "WHERE m.url='' AND UPPER(m.active_yn) = 'Y'"; + List actualResult = new ArrayList(); + List expectedResult = new ArrayList(); + + Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); + + actualResult = functionalMenuServiceImpl.getFunctionalMenuItems(false); + assertEquals(actualResult, expectedResult); + } + + @Test + public void getFunctionalMenuItemsForNotificationTreeTest(){ + String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, fn_menu_functional_roles r " + + "WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id," + + " m.url, m.active_yn,-1 app_id FROM fn_menu_functional m WHERE m.url='' AND UPPER(m.active_yn) = 'Y'"; + List actualResult = new ArrayList(); + List expectedResult = new ArrayList(); + + Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); + + actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForNotificationTree(true); + assertEquals(actualResult, expectedResult); + + } + + @Test + public void getFunctionalMenuItemsForNotificationNegativeTreeTest(){ + String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, fn_menu_functional_roles r " + + "WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id," + + " m.url, m.active_yn,-1 app_id FROM fn_menu_functional m WHERE m.url='' AND UPPER(m.active_yn) = 'Y'"; + List actualResult = new ArrayList(); + List expectedResult = new ArrayList(); + + Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); + + actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForNotificationTree(false); + assertEquals(actualResult, expectedResult); + } + + @Test + public void getFunctionalMenuItemsForAppTest(){ + String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn " + + "FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, fn_menu_functional_roles mr " + + "WHERE mr.app_id='1' AND mr.menu_id = m.menu_id AND UPPER(m.active_yn) = 'Y' AND UPPER(m1.active_yn) ='Y' AND a.menu_id = m.menu_id " + + "AND a.ancestor_menu_id = m1.menu_id"; + Integer appId = 1; + List actualResult = new ArrayList(); + List expectedResult = new ArrayList(); + + Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); + + actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForApp(appId); + assertEquals(actualResult, expectedResult); + } + + @Test + public void getFunctionalMenuItemsForUserTest(){ + String orgUserId = "test"; + String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn " + + "FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, fn_menu_functional_roles mr, fn_user u , fn_user_role ur " + + "WHERE u.org_user_id='test' AND u.user_id = ur.user_id AND ur.app_id = mr.app_id AND (ur.role_id = mr.role_id OR ur.role_id = '999') " + + "AND m.menu_id = mr.menu_id AND UPPER(m.active_yn) = 'Y' AND UPPER(m1.active_yn) ='Y' AND a.menu_id = m.menu_id " + + "AND a.ancestor_menu_id = m1.menu_id UNION select m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m1.active_yn " + + "FROM fn_menu_functional m, fn_menu_functional_roles mr, fn_menu_functional m1, fn_menu_functional_ancestors a where a.menu_id = m.menu_id AND a.ancestor_menu_id = m1.menu_id AND m.menu_id != m1.menu_id AND m.menu_id = mr.menu_id AND mr.role_id = '900' AND UPPER(m.active_yn) = 'Y' AND UPPER(m1.active_yn) ='Y' UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn FROM fn_menu_functional m WHERE m.text in ('Favorites','Get Access','Contact Us','Support','User Guide','Help')"; + List actualResult = new ArrayList(); + List expectedResult = new ArrayList(); + + Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); + + actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForUser(orgUserId); + assertEquals(actualResult, expectedResult); + } + + @Test + public void getFunctionalMenuItemDetailsTest(){ + Long menuid = 1L; + String sql = "SELECT * FROM fn_menu_functional_roles WHERE menu_id = '1'"; + FunctionalMenuItem actualResult = null; + FunctionalMenuItem expectedResult = null; + List roleItems = new ArrayList(); + Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(roleItems); + + actualResult = functionalMenuServiceImpl.getFunctionalMenuItemDetails(menuid); + assertEquals(actualResult, expectedResult); + } + + @Test + public void getFavoriteItemsTest(){ + Long userId = (long)1; + String sql = "SELECT DISTINCT f.user_id,f.menu_id,m.text,m.url " + + "FROM fn_menu_favorites f, fn_menu_functional m, fn_menu_functional_roles mr " + + "WHERE f.user_id='1' AND f.menu_id = m.menu_id AND f.menu_id = mr.menu_id AND mr.role_id != '900' "; + List actualResult = new ArrayList(); + List expectedResult = new ArrayList(); + + Mockito.when(dataAccessService.executeSQLQuery(sql, FavoritesFunctionalMenuItemJson.class, null)).thenReturn(expectedResult); + + actualResult = functionalMenuServiceImpl.getFavoriteItems(userId); + assertEquals(actualResult, expectedResult); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/FunctionalMenuServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/FunctionalMenuServiceImplTest.java new file mode 100644 index 00000000..c954fcbd --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/FunctionalMenuServiceImplTest.java @@ -0,0 +1,92 @@ +package org.onap.portalapp.portal.service; +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +//package org.openecomp.portalapp.portal.test.service; +// +//import static org.junit.Assert.assertTrue; +// +//import java.util.ArrayList; +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +// +//import org.junit.Test; +//import org.openecomp.portalapp.portal.service.FunctionalMenuService; +//import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRole; +//import org.openecomp.portalapp.portal.transport.FunctionalMenuRole; +//import org.openecomp.portalapp.test.framework.ApplicationCommonContextTestSuite; +//import org.springframework.beans.factory.annotation.Autowired; +// +//public class FunctionalMenuServiceImplTest extends ApplicationCommonContextTestSuite { +// +// @Autowired +// FunctionalMenuService functionalMenuService; +// +// @Test +// public void getAppListTestService() throws Exception { +// +// String userId = "guestT"; +// List userAppRolesActualResult = null; +// +// List userAppRolesExpectedResult = new ArrayList(); +// BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole(); +// businessCardApplicationRole.setAppName("ECOMP Portal"); +// businessCardApplicationRole.setRoleName("System Administrator"); +// userAppRolesExpectedResult.add(businessCardApplicationRole); +// Map params = new HashMap(); +// params.put("userId", userId); +// userAppRolesActualResult = functionalMenuService.getUserAppRolesList(userId); +// assertTrue(userAppRolesActualResult.contains(businessCardApplicationRole)); +// +// } +// +// @Test +// public void getFunctionalMenuRoleTest() throws Exception { +// +// FunctionalMenuRole expectedFunctionalMenuRole = new FunctionalMenuRole(); +// expectedFunctionalMenuRole.setId(new Integer(-1)); +// +// expectedFunctionalMenuRole.setMenuId((long) 137); +// expectedFunctionalMenuRole.setAppId(new Integer(456)); +// expectedFunctionalMenuRole.setRoleId(new Integer(6214)); +// List actualFunctionalMenuRoleList = null; +// actualFunctionalMenuRoleList = functionalMenuService.getFunctionalMenuRole(); +// assertTrue(actualFunctionalMenuRoleList.contains(expectedFunctionalMenuRole)); +// +// } +//} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/GetAccessServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/GetAccessServiceImplTest.java new file mode 100644 index 00000000..70d99cc8 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/GetAccessServiceImplTest.java @@ -0,0 +1,87 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.GetAccessResult; +import org.onap.portalapp.portal.service.GetAccessServiceImpl; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.DataAccessServiceImpl; + +public class GetAccessServiceImplTest { + + + @Mock + DataAccessService dataAccessService = new DataAccessServiceImpl(); + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @InjectMocks + GetAccessServiceImpl getAccessServiceImpl = new GetAccessServiceImpl(); + + MockEPUser mockUser = new MockEPUser(); + + @Test + public void getAppAccessListTest() + { + EPUser user = mockUser.mockEPUser(); + Map params = new HashMap<>(); + params.put("userId", user.getId()); + List appAccessList = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getAppAccessFunctionRole", params, null)).thenReturn(appAccessList); + + List expectedAppAccessList = getAccessServiceImpl.getAppAccessList(user); + assertEquals(expectedAppAccessList, appAccessList); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ManifestServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ManifestServiceImplTest.java new file mode 100644 index 00000000..0c066066 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ManifestServiceImplTest.java @@ -0,0 +1,92 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.assertTrue; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.jar.Attributes; + +import javax.servlet.ServletContext; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.service.ManifestServiceImpl; + +public class ManifestServiceImplTest { + + @Mock + ServletContext context; + + @Mock + ServletContext context1 = null; + + @InjectMocks + ManifestServiceImpl manifestServiceImpl = new ManifestServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + NullPointerException nullPointerException = new NullPointerException(); + + @Test + public void getWebappManifestTest() throws IOException { + final String MANIFEST_RESOURCE_PATH = "/META-INF/MANIFEST.MF"; + InputStream inputStream = new ByteArrayInputStream("test data".getBytes()); + Mockito.when(context.getResourceAsStream(MANIFEST_RESOURCE_PATH)).thenReturn(inputStream); + Attributes attributes = manifestServiceImpl.getWebappManifest(); + assertTrue(attributes.size() == 0); + } + + @Test(expected = java.lang.NullPointerException.class) + public void getWebappManifestExceptionTest() throws IOException { + final String MANIFEST_RESOURCE_PATH = "/META-INF/MANIFEST.MF"; + InputStream inputStream = new ByteArrayInputStream("test data".getBytes()); + Mockito.when(context1.getResourceAsStream(MANIFEST_RESOURCE_PATH)).thenThrow(nullPointerException); + Attributes attributes = manifestServiceImpl.getWebappManifest(); + assertTrue(attributes.size() == 0); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/PersUserAppServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/PersUserAppServiceImplTest.java new file mode 100644 index 00000000..56104e82 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/PersUserAppServiceImplTest.java @@ -0,0 +1,218 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserApp; +import org.onap.portalapp.portal.domain.PersUserAppSelection; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.service.AdminRolesService; +import org.onap.portalapp.portal.service.PersUserAppServiceImpl; +import org.onap.portalapp.portal.service.UserRolesService; +import org.onap.portalsdk.core.service.DataAccessService; + +public class PersUserAppServiceImplTest { + + @Mock + DataAccessService dataAccessService; + @Mock + AdminRolesService adminRolesService; + @Mock + UserRolesService userRolesService; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @InjectMocks + PersUserAppServiceImpl persUserAppServiceImpl = new PersUserAppServiceImpl(); + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + MockEPUser mockUser = new MockEPUser(); + + public EPApp getApp() { + EPApp app = new EPApp(); + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppRestEndpoint("test"); + app.setAlternateUrl("test"); + app.setName("test"); + app.setMlAppName("test"); + app.setMlAppAdminId("test"); + app.setUsername("test"); + app.setAppPassword("test"); + app.setOpen(true); + app.setEnabled(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.setAppType(1); + return app; + } + + @Test(expected = IllegalArgumentException.class) + public void setPersUserAppValueIfUserNull() { + persUserAppServiceImpl.setPersUserAppValue(null, null, false, false); + } + + @Test + public void setPersUserAppValueTest() { + EPApp app = getApp(); + EPUser user = mockUser.mockEPUser(); + List persUserAppSelectionList = new ArrayList<>(); + PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); + persUserAppSelection.setId((long) 1); + persUserAppSelectionList.add(persUserAppSelection); + Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) + .thenReturn(persUserAppSelectionList); + Mockito.doNothing().when(dataAccessService).deleteDomainObject(persUserAppSelection, null); + persUserAppServiceImpl.setPersUserAppValue(user, app, false, true); + } + + @Test + public void setPersUserAppValueIfSelectTest() { + EPApp app = getApp(); + EPUser user = mockUser.mockEPUser(); + List persUserAppSelectionList = new ArrayList<>(); + PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); + persUserAppSelection.setId((long) 1); + persUserAppSelectionList.add(persUserAppSelection); + Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) + .thenReturn(persUserAppSelectionList); + Mockito.doNothing().when(dataAccessService).saveDomainObject(persUserAppSelection, null); + persUserAppServiceImpl.setPersUserAppValue(user, app, true, true); + } + + @Test + public void setPersUserAppValueIfOpenTest() { + EPApp app = getApp(); + app.setOpen(false); + EPUser user = mockUser.mockEPUser(); + List persUserAppSelectionList = new ArrayList<>(); + PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); + persUserAppSelection.setId((long) 1); + persUserAppSelectionList.add(persUserAppSelection); + Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) + .thenReturn(persUserAppSelectionList); + Mockito.doNothing().when(dataAccessService).saveDomainObject(persUserAppSelection, null); + persUserAppServiceImpl.setPersUserAppValue(user, app, true, true); + } + + @Test + public void setPersUserAppValueIfAppNotOpenTest() { + EPApp app = getApp(); + app.setOpen(false); + EPUser user = mockUser.mockEPUser(); + List persUserAppSelectionList = new ArrayList<>(); + PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); + persUserAppSelection.setId((long) 1); + persUserAppSelectionList.add(persUserAppSelection); + Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) + .thenReturn(persUserAppSelectionList); + Mockito.doNothing().when(dataAccessService).saveDomainObject(persUserAppSelection, null); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + List roles = new ArrayList<>(); + EPUserApp epUserApp = new EPUserApp(); + roles.add(epUserApp); + Mockito.when(userRolesService.getCachedAppRolesForUser(app.getId(), user.getId())).thenReturn(roles); + persUserAppServiceImpl.setPersUserAppValue(user, app, true, false); + } + + @Test + public void setPersUserAppValueIfNotPortalAdminTest() { + EPApp app = getApp(); + app.setOpen(false); + EPUser user = mockUser.mockEPUser(); + List persUserAppSelectionList = new ArrayList<>(); + PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); + persUserAppSelection.setId((long) 1); + persUserAppSelectionList.add(persUserAppSelection); + Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) + .thenReturn(persUserAppSelectionList); + Mockito.doNothing().when(dataAccessService).deleteDomainObject(persUserAppSelection, null); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); + List roles = new ArrayList<>(); + EPUserApp epUserApp = new EPUserApp(); + roles.add(epUserApp); + Mockito.when(userRolesService.getCachedAppRolesForUser(app.getId(), user.getId())).thenReturn(roles); + persUserAppServiceImpl.setPersUserAppValue(user, app, true, false); + } + + @Test + public void setPersUserAppValueNewTest() { + EPApp app = getApp(); + app.setOpen(false); + EPUser user = mockUser.mockEPUser(); + List persUserAppSelectionList = new ArrayList<>(); + PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); + persUserAppSelection.setId((long) 1); + persUserAppSelectionList.add(persUserAppSelection); + Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) + .thenReturn(persUserAppSelectionList); + Mockito.doNothing().when(dataAccessService).saveDomainObject(persUserAppSelection, null); + Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); + List roles = new ArrayList<>(); + EPUserApp epUserApp = new EPUserApp(); + roles.add(epUserApp); + Mockito.when(userRolesService.getCachedAppRolesForUser(app.getId(), user.getId())).thenReturn(roles); + persUserAppServiceImpl.setPersUserAppValue(user, app, false, false); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AnalyticsTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AnalyticsTest.java new file mode 100644 index 00000000..e92f5cb4 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AnalyticsTest.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.Analytics; + +public class AnalyticsTest { + + public Analytics mockAnalytics(){ + Analytics analytics = new Analytics(); + + analytics.setAction("test"); + analytics.setPage("test"); + analytics.setFunction("test"); + analytics.setUserid("test"); + analytics.setType("test"); + + return analytics; + } + + @Test + public void analyticsTest(){ + Analytics analytics = mockAnalytics(); + + assertEquals(analytics.getAction(), "test"); + assertEquals(analytics.getPage(), "test"); + assertEquals(analytics.getFunction(), "test"); + assertEquals(analytics.getUserid(), "test"); + assertEquals(analytics.getType(), "test"); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppCatalogPersonalizationTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppCatalogPersonalizationTest.java new file mode 100644 index 00000000..2a512f71 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppCatalogPersonalizationTest.java @@ -0,0 +1,63 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.AppCatalogPersonalization; + +public class AppCatalogPersonalizationTest { + + public AppCatalogPersonalization mockAppCatalogPersonalization(){ + AppCatalogPersonalization appCatalogPersonalization = new AppCatalogPersonalization(); + + return appCatalogPersonalization; + } + + @Test + public void appCatalogPersonalizationTest(){ + AppCatalogPersonalization appCatalogPersonalization = mockAppCatalogPersonalization(); + + AppCatalogPersonalization appCatalogPersonalization1 = new AppCatalogPersonalization(); + + assertEquals(appCatalogPersonalization.hashCode(), appCatalogPersonalization1.hashCode()); + assertTrue(appCatalogPersonalization.equals(appCatalogPersonalization1)); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppNameIdIsAdminTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppNameIdIsAdminTest.java new file mode 100644 index 00000000..4287f3c1 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppNameIdIsAdminTest.java @@ -0,0 +1,75 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.AppNameIdIsAdmin; + +public class AppNameIdIsAdminTest { + + public AppNameIdIsAdmin mockAppNameIdIsAdmin(){ + AppNameIdIsAdmin appNameIdIsAdmin = new AppNameIdIsAdmin(); + appNameIdIsAdmin.setId((long)1); + appNameIdIsAdmin.setAppName("test"); + appNameIdIsAdmin.setRestrictedApp(false); + appNameIdIsAdmin.setIsAdmin(false); + return appNameIdIsAdmin; + } + + @Test + public void appNameIdIsAdminTest(){ + AppNameIdIsAdmin appNameIdIsAdmin = mockAppNameIdIsAdmin(); + + AppNameIdIsAdmin appNameIdIsAdmin1 = new AppNameIdIsAdmin(); + appNameIdIsAdmin1.setId((long)1); + appNameIdIsAdmin1.setAppName("test"); + appNameIdIsAdmin1.setRestrictedApp(false); + appNameIdIsAdmin1.setIsAdmin(false); + + assertEquals(appNameIdIsAdmin.getId(), new Long(1)); + assertEquals(appNameIdIsAdmin.getAppName(), "test"); + assertEquals(appNameIdIsAdmin.getRestrictedApp(), false); + assertEquals(appNameIdIsAdmin.getIsAdmin(), false); + + assertEquals(appNameIdIsAdmin.toString(), "AppNameIdIsAdmin [id=1, appName=test, isAdmin=false, restrictedApp=false]"); + assertEquals(appNameIdIsAdmin.hashCode(), appNameIdIsAdmin1.hashCode()); + assertTrue(appNameIdIsAdmin.equals(appNameIdIsAdmin1)); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppWithRolesForUserTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppWithRolesForUserTest.java new file mode 100644 index 00000000..da05ba36 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppWithRolesForUserTest.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.AppWithRolesForUser; + +import static org.junit.Assert.assertEquals; + +public class AppWithRolesForUserTest { + + public AppWithRolesForUser mockAppWithRolesForUser(){ + AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser(); + + // List appRoles = new ArrayList(); + + appWithRolesForUser.setOrgUserId("test"); + appWithRolesForUser.setAppId((long)1); + appWithRolesForUser.setAppName("test"); + appWithRolesForUser.setAppRoles(null); + + return appWithRolesForUser; + } + + @Test + public void roleInAppForUserTest(){ + AppWithRolesForUser appWithRolesForUser = mockAppWithRolesForUser(); + + assertEquals(appWithRolesForUser.getOrgUserId(), "test"); + assertEquals(appWithRolesForUser.getAppId(), new Long(1)); + assertEquals(appWithRolesForUser.getAppName(), "test"); + assertEquals(appWithRolesForUser.getAppRoles(), null); + assertEquals(appWithRolesForUser.toString(), "AppWithRolesForUser [orgUserId=test, appId=1, appName=test, appRoles=null]"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppsListWithAdminRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppsListWithAdminRoleTest.java new file mode 100644 index 00000000..fdacc601 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/AppsListWithAdminRoleTest.java @@ -0,0 +1,83 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import java.util.ArrayList; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.AppNameIdIsAdmin; +import org.onap.portalapp.portal.transport.AppsListWithAdminRole; + +public class AppsListWithAdminRoleTest { + + public AppsListWithAdminRole mockAppsListWithAdminRole(){ + AppsListWithAdminRole appsListWithAdminRole = new AppsListWithAdminRole(); + + ArrayList appsRoles = new ArrayList(); + AppNameIdIsAdmin appNameIdIsAdmin = new AppNameIdIsAdmin(); + appsRoles.add(appNameIdIsAdmin); + + appsListWithAdminRole.setOrgUserId("test"); + appsListWithAdminRole.setAppsRoles(appsRoles); + + return appsListWithAdminRole; + } + + @Test + public void appsListWithAdminRoleTest(){ + AppsListWithAdminRole appsListWithAdminRole = mockAppsListWithAdminRole(); + + AppsListWithAdminRole appsListWithAdminRole1 = new AppsListWithAdminRole(); + + ArrayList appsRoles = new ArrayList(); + AppNameIdIsAdmin appNameIdIsAdmin = new AppNameIdIsAdmin(); + appsRoles.add(appNameIdIsAdmin); + + appsListWithAdminRole1.setOrgUserId("test"); + appsListWithAdminRole1.setAppsRoles(appsRoles); + + assertEquals(appsListWithAdminRole.getOrgUserId(), "test"); + assertEquals(appsListWithAdminRole.getAppsRoles(), appsRoles); + + assertTrue(appsListWithAdminRole.equals(appsListWithAdminRole1)); + assertEquals(appsListWithAdminRole.hashCode(), appsListWithAdminRole1.hashCode()); + assertEquals(appsListWithAdminRole.toString(), "AppsListWithAdminRole [orgUserId=test, appsRoles=[AppNameIdIsAdmin [id=null, appName=null, isAdmin=null, restrictedApp=null]]]"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BulkUploadRoleFunctionTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BulkUploadRoleFunctionTest.java new file mode 100644 index 00000000..7d22f04c --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BulkUploadRoleFunctionTest.java @@ -0,0 +1,72 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.BulkUploadRoleFunction; + +public class BulkUploadRoleFunctionTest { + + public BulkUploadRoleFunction mockBulkUploadRoleFunction(){ + + BulkUploadRoleFunction bulkUploadRoleFunction = new BulkUploadRoleFunction(); + + bulkUploadRoleFunction.setFunctionName("test"); + bulkUploadRoleFunction.setFunctionCd("test"); + + return bulkUploadRoleFunction; + } + + @Test + public void bulkUploadRoleFunctionTest(){ + BulkUploadRoleFunction bulkUploadRoleFunction = mockBulkUploadRoleFunction(); + + BulkUploadRoleFunction bulkUploadRoleFunction1 = new BulkUploadRoleFunction(); + + bulkUploadRoleFunction1.setFunctionName("test"); + bulkUploadRoleFunction1.setFunctionCd("test"); + + assertEquals(bulkUploadRoleFunction.getFunctionCd(), "test"); + assertEquals(bulkUploadRoleFunction.getFunctionName(), "test"); + assertEquals(bulkUploadRoleFunction.hashCode(), bulkUploadRoleFunction1.hashCode()); + assertTrue(bulkUploadRoleFunction.equals(bulkUploadRoleFunction1)); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BulkUploadUserRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BulkUploadUserRolesTest.java new file mode 100644 index 00000000..14bd7edd --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BulkUploadUserRolesTest.java @@ -0,0 +1,74 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.BulkUploadUserRoles; + +public class BulkUploadUserRolesTest { + + public BulkUploadUserRoles mockBulkUploadUserRoles(){ + BulkUploadUserRoles bulkUploadUserRoles = new BulkUploadUserRoles(); + + bulkUploadUserRoles.setRoleName("test"); + bulkUploadUserRoles.setOrgUserId("test"); + bulkUploadUserRoles.setAppNameSpace("test"); + + return bulkUploadUserRoles; + } + + @Test + public void bulkUploadUserRolesTest(){ + BulkUploadUserRoles bulkUploadUserRoles = mockBulkUploadUserRoles(); + + BulkUploadUserRoles bulkUploadUserRoles1 = new BulkUploadUserRoles(); + + bulkUploadUserRoles1.setRoleName("test"); + bulkUploadUserRoles1.setOrgUserId("test"); + bulkUploadUserRoles1.setAppNameSpace("test"); + + assertEquals(bulkUploadUserRoles.getRoleName(), "test"); + assertEquals(bulkUploadUserRoles.getOrgUserId(), "test"); + assertEquals(bulkUploadUserRoles.getAppNameSpace(), "test"); + + assertEquals(bulkUploadUserRoles.hashCode(), bulkUploadUserRoles1.hashCode()); + assertTrue(bulkUploadUserRoles.equals(bulkUploadUserRoles1)); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRoleTest.java new file mode 100644 index 00000000..225df010 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRoleTest.java @@ -0,0 +1,64 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.BusinessCardApplicationRole; + +public class BusinessCardApplicationRoleTest { + + public BusinessCardApplicationRole mockBusinessCardApplicationRole(){ + BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole(); + + return businessCardApplicationRole; + } + + @Test + public void businessCardApplicationRoleTest(){ + BusinessCardApplicationRole businessCardApplicationRole = mockBusinessCardApplicationRole(); + + BusinessCardApplicationRole businessCardApplicationRole1 = new BusinessCardApplicationRole(); + + assertEquals(businessCardApplicationRole.hashCode(), businessCardApplicationRole1.hashCode()); + assertTrue(businessCardApplicationRole.equals(businessCardApplicationRole1)); + assertEquals(businessCardApplicationRole.toString(), "BusinessCardUserApplicationRoles [appName=null, roleName=null]"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRolesListTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRolesListTest.java new file mode 100644 index 00000000..c43361d3 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/BusinessCardApplicationRolesListTest.java @@ -0,0 +1,64 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.BusinessCardApplicationRolesList; + +public class BusinessCardApplicationRolesListTest { + + public BusinessCardApplicationRolesList mockBusinessCardApplicationRolesList(){ + BusinessCardApplicationRolesList businessCardApplicationRolesList = new BusinessCardApplicationRolesList(); + + return businessCardApplicationRolesList; + } + + @Test + public void businessCardApplicationRolesListTest(){ + BusinessCardApplicationRolesList businessCardApplicationRolesList = mockBusinessCardApplicationRolesList(); + + BusinessCardApplicationRolesList businessCardApplicationRolesList1 = new BusinessCardApplicationRolesList(); + + assertEquals(businessCardApplicationRolesList.hashCode(), businessCardApplicationRolesList1.hashCode()); + assertTrue(businessCardApplicationRolesList.equals(businessCardApplicationRolesList1)); + assertEquals(businessCardApplicationRolesList.toString(), "BusinessCardUserAppRoles [appName=null, roleNames=null]"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralAppTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralAppTest.java new file mode 100644 index 00000000..1dde2926 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralAppTest.java @@ -0,0 +1,86 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.CentralApp; + +public class CentralAppTest { + + public CentralApp mockCentralApp(){ + CentralApp centralApp = new CentralApp((long)1, null, null, (long)1, (long)1, (long)1, "test", "test", "test", "test", "test", "test", "test", "test", "test", + "test", "test", "test", "test", null, "test", "test", "test", "test"); + return centralApp; + } + + @Test + public void centralAppTest(){ + CentralApp centralApp = mockCentralApp(); + + CentralApp centralApp1 = new CentralApp((long)1, null, null, (long)1, (long)1, (long)1, "test", "test", "test", "test", "test", "test", "test", "test", "test", + "test", "test", "test", "test", null, "test", "test", "test", "test"); + + assertEquals(centralApp.getId(), new Long(1)); + assertEquals(centralApp.getCreatedId(), new Long(1)); + assertEquals(centralApp.getModifiedId(), new Long(1)); + assertEquals(centralApp.getRowNum(), new Long(1)); + assertEquals(centralApp.getName(), "test"); + assertEquals(centralApp.getImageUrl(), "test"); + assertEquals(centralApp.getDescription(), "test"); + assertEquals(centralApp.getNotes(), "test"); + assertEquals(centralApp.getUrl(), "test"); + assertEquals(centralApp.getAlternateUrl(), "test"); + assertEquals(centralApp.getRestEndpoint(), "test"); + assertEquals(centralApp.getMlAppName(), "test"); + assertEquals(centralApp.getMlAppAdminId(), "test"); + assertEquals(centralApp.getMotsId(), "test"); + assertEquals(centralApp.getAppPassword(), "test"); + assertEquals(centralApp.getOpen(), "test"); + assertEquals(centralApp.getEnabled(), "test"); + assertEquals(centralApp.getUsername(), "test"); + assertEquals(centralApp.getUebKey(), "test"); + assertEquals(centralApp.getUebSecret(), "test"); + assertEquals(centralApp.getUebTopicName(), "test"); + + assertTrue(centralApp.equals(centralApp1)); + assertEquals(centralApp.hashCode(), centralApp1.hashCode()); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralRoleTest.java new file mode 100644 index 00000000..1c40be40 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralRoleTest.java @@ -0,0 +1,96 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class CentralRoleTest { + + public CentralV2Role mockCentralRole(){ + CentralV2Role centralV2Role = new CentralV2Role((long)1, null, null, (long)1, (long)1, (long)1, + "test", false, 1, null, null, null); + + centralV2Role.setId((long)1); + centralV2Role.setCreatedId((long)1); + centralV2Role.setModifiedId((long)1); + centralV2Role.setRowNum((long)1); + centralV2Role.setName("test"); + centralV2Role.setActive(false); + centralV2Role.setPriority(1); + + centralV2Role.setCreated(null); + centralV2Role.setModified(null); + centralV2Role.setRoleFunctions(null); + centralV2Role.setChildRoles(null); + centralV2Role.setParentRoles(null); + + return centralV2Role; + } + + @Test + public void centralRoleTest(){ + CentralV2Role centralV2Role = mockCentralRole(); + + CentralV2Role centralRole1 = new CentralV2Role((long)1, null, null, (long)1, (long)1, (long)1, + "test", false, 1, null, null, null); + + CentralV2Role centralRole2 = new CentralV2Role((long)1, "test"); + + assertEquals(centralV2Role.getId(), new Long(1)); + assertEquals(centralV2Role.getCreatedId(), new Long(1)); + assertEquals(centralV2Role.getModifiedId(), new Long(1)); + assertEquals(centralV2Role.getRowNum(), new Long(1)); + assertEquals(centralV2Role.getName(), "test"); + assertEquals(centralV2Role.isActive(), false); + assertEquals(centralV2Role.getCreated(), null); + assertEquals(centralV2Role.getModified(), null); + assertEquals(centralV2Role.getRoleFunctions(), null); + assertEquals(centralV2Role.getChildRoles(), null); + assertEquals(centralV2Role.getParentRoles(), null); + assertEquals(centralV2Role.getPriority().toString(), "1"); + assertEquals(centralV2Role.hashCode(), centralRole1.hashCode()); + assertTrue(centralV2Role.equals(centralRole1)); + assertEquals(centralV2Role, centralRole1); + assertEquals(centralRole2, new CentralV2Role((long)1, "test")); + } + + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralUserAppTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralUserAppTest.java new file mode 100644 index 00000000..a04b47a6 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralUserAppTest.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; +import org.junit.Test; +import org.onap.portalapp.portal.transport.CentralApp; +import org.onap.portalapp.portal.transport.CentralV2Role; +import org.onap.portalapp.portal.transport.CentralV2UserApp; + +public class CentralUserAppTest { + + public CentralV2UserApp mockCentralUserApp(){ + CentralV2UserApp centralV2UserApp = new CentralV2UserApp(); + + CentralApp app = new CentralApp((long)1, null, null, (long)1, (long)1, (long)1, "test", "test", "test", "test", "test", "test", "test", "test", "test", + "test", "test", "test", "test", null, "test", "test", "test", "test"); + + CentralV2Role role = new CentralV2Role(); + + centralV2UserApp.setUserId((long)1); + centralV2UserApp.setApp(app); + centralV2UserApp.setRole(role); + centralV2UserApp.setPriority((short) 123); + + return centralV2UserApp; + } + + @Test + public void centralUserAppTest(){ + CentralV2UserApp centralV2UserApp = mockCentralUserApp(); + + CentralApp app1 = new CentralApp((long)1, null, null, (long)1, (long)1, (long)1, "test", "test", "test", "test", "test", "test", "test", "test", "test", + "test", "test", "test", "test", null, "test", "test", "test", "test"); + + CentralV2Role role1 = new CentralV2Role(); + + assertEquals(centralV2UserApp.getUserId(), new Long(1)); + assertEquals(centralV2UserApp.getPriority(), new Short((short) 123)); + assertEquals(centralV2UserApp.getApp(), app1); + assertEquals(centralV2UserApp.getRole(), role1); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralUserTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralUserTest.java new file mode 100644 index 00000000..67c6ee09 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/CentralUserTest.java @@ -0,0 +1,89 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import java.util.HashSet; +import java.util.Set; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.CentralV2Role; +import org.onap.portalapp.portal.transport.CentralV2User; +import org.onap.portalapp.portal.transport.CentralV2UserApp; + +public class CentralUserTest { + + public CentralV2User mockCentralUser(){ + Set userApps = new HashSet(); + Set pseudoRoles = new HashSet(); + CentralV2User centralV2User = new CentralV2User((long)1, null, null, (long)1, (long)1, (long)1, (long)1, + (long)1, "test", "test", "test", "test", "test", + "test", "test", (long)1, "test", "test", "test", + "test", "test", "test", "test", "test", "test", "test", + "test", "test", "test", "test", + "test", "test", "test", "test", "test", + "test", "test", "test", "test", "test", + "test", "test", "test", "test", null, + false, false, (long)1, (long)1, false, "test", userApps, pseudoRoles); + + return centralV2User; + } + + @Test + public void centralRoleTest(){ + CentralV2User centralV2User = mockCentralUser(); + + Set userApps = new HashSet(); + Set pseudoRoles = new HashSet(); + CentralV2User centralV2User1 = new CentralV2User((long)1, null, null, (long)1, (long)1, (long)1, (long)1, + (long)1, "test", "test", "test", "test", "test", + "test", "test", (long)1, "test", "test", "test", + "test", "test", "test", "test", "test", "test", "test", + "test", "test", "test", "test", + "test", "test", "test", "test", "test", + "test", "test", "test", "test", "test", + "test", "test", "test", "test", null, + false, false, (long)1, (long)1, false, "test", userApps, pseudoRoles); + + + assertEquals(centralV2User, centralV2User1); + assertEquals(centralV2User.hashCode(), centralV2User1.hashCode()); + assertTrue(centralV2User.equals(centralV2User1)); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPAppsManualPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPAppsManualPreferenceTest.java new file mode 100644 index 00000000..e45ffacc --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPAppsManualPreferenceTest.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.EPAppsManualPreference; + +public class EPAppsManualPreferenceTest { + + public EPAppsManualPreference mockEPAppsManualPreference(){ + EPAppsManualPreference epAppsManualPreference = new EPAppsManualPreference(); + + epAppsManualPreference.setAppid((long)1); + epAppsManualPreference.setCol(1); + epAppsManualPreference.setHeaderText("test"); + epAppsManualPreference.setImageLink("test"); + epAppsManualPreference.setOrder(1); + epAppsManualPreference.setRestrictedApp(false); + epAppsManualPreference.setRow(1); + epAppsManualPreference.setSizeX(1); + epAppsManualPreference.setSizeY(1); + epAppsManualPreference.setSubHeaderText("test"); + epAppsManualPreference.setUrl("test"); + epAppsManualPreference.setAddRemoveApps(false); + + return epAppsManualPreference; + } + + @Test + public void epAppsManualPreferenceTest(){ + + EPAppsManualPreference epAppsManualPreference = mockEPAppsManualPreference(); + + assertEquals(epAppsManualPreference.getAppid(), new Long(1)); + assertEquals(epAppsManualPreference.getCol(), 1); + assertEquals(epAppsManualPreference.getHeaderText(), "test"); + assertEquals(epAppsManualPreference.getImageLink(), "test"); + assertEquals(epAppsManualPreference.getOrder(), 1); + assertEquals(epAppsManualPreference.isRestrictedApp(), false); + assertEquals(epAppsManualPreference.getRow(), 1); + assertEquals(epAppsManualPreference.getSizeX(), 1); + assertEquals(epAppsManualPreference.getSizeY(), 1); + assertEquals(epAppsManualPreference.getSubHeaderText(), "test"); + assertEquals(epAppsManualPreference.getUrl(), "test"); + assertEquals(epAppsManualPreference.isAddRemoveApps(), false); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPAppsSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPAppsSortPreferenceTest.java new file mode 100644 index 00000000..84ae04a6 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPAppsSortPreferenceTest.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.EPAppsSortPreference; + +public class EPAppsSortPreferenceTest { + + public EPAppsSortPreference mockEPAppsSortPreference(){ + EPAppsSortPreference epAppsSortPreference = new EPAppsSortPreference(); + + epAppsSortPreference.setIndex(1); + epAppsSortPreference.setValue("test"); + epAppsSortPreference.setTitle("test"); + + return epAppsSortPreference; + } + + @Test + public void epAppsSortPreferenceTest(){ + EPAppsSortPreference epAppsSortPreference = mockEPAppsSortPreference(); + + assertEquals(epAppsSortPreference.getIndex(), 1); + assertEquals(epAppsSortPreference.getValue(), "test"); + assertEquals(epAppsSortPreference.getTitle(), "test"); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPDeleteAppsManualSortPrefTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPDeleteAppsManualSortPrefTest.java new file mode 100644 index 00000000..5aad78ce --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPDeleteAppsManualSortPrefTest.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.EPDeleteAppsManualSortPref; + +public class EPDeleteAppsManualSortPrefTest { + + public EPDeleteAppsManualSortPref mockEPDeleteAppsManualSortPref(){ + EPDeleteAppsManualSortPref epDeleteAppsManualSortPref = new EPDeleteAppsManualSortPref(); + + epDeleteAppsManualSortPref.setAppId((long)1); + epDeleteAppsManualSortPref.setSelect(false); + epDeleteAppsManualSortPref.setPending(false); + + return epDeleteAppsManualSortPref; + } + + @Test + public void epDeleteAppsManualSortPrefTest(){ + EPDeleteAppsManualSortPref epDeleteAppsManualSortPref = mockEPDeleteAppsManualSortPref(); + + assertEquals(epDeleteAppsManualSortPref.getAppId(), new Long(1)); + assertEquals(epDeleteAppsManualSortPref.isSelect(), false); + assertEquals(epDeleteAppsManualSortPref.isPending(), false); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPUserAppCurrentRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPUserAppCurrentRolesTest.java new file mode 100644 index 00000000..31296cc4 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPUserAppCurrentRolesTest.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.EPUserAppCurrentRoles; + +public class EPUserAppCurrentRolesTest { + + public EPUserAppCurrentRoles mockEPUserAppCurrentRoles(){ + EPUserAppCurrentRoles epUserAppCurrentRoles = new EPUserAppCurrentRoles(); + + epUserAppCurrentRoles.setRoleName("test"); + epUserAppCurrentRoles.setUserId((long)1); + epUserAppCurrentRoles.setPriority("test"); + epUserAppCurrentRoles.setRoleId((long)1); + + return epUserAppCurrentRoles; + } + + @Test + public void epUserAppCurrentRolesTest(){ + EPUserAppCurrentRoles epUserAppCurrentRoles = mockEPUserAppCurrentRoles(); + + EPUserAppCurrentRoles epUserAppCurrentRoles1 = new EPUserAppCurrentRoles(); + + epUserAppCurrentRoles1.setRoleName("test"); + epUserAppCurrentRoles1.setUserId((long)1); + epUserAppCurrentRoles1.setPriority("test"); + epUserAppCurrentRoles1.setRoleId((long)1); + + assertEquals(epUserAppCurrentRoles.getRoleName(), "test"); + assertEquals(epUserAppCurrentRoles.getUserId(), new Long(1)); + assertEquals(epUserAppCurrentRoles.getRoleId(), new Long(1)); + assertEquals(epUserAppCurrentRoles.getPriority(), "test"); + assertEquals(epUserAppCurrentRoles.hashCode(), epUserAppCurrentRoles1.hashCode()); + assertTrue(epUserAppCurrentRoles.equals(epUserAppCurrentRoles1)); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPWidgetsSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPWidgetsSortPreferenceTest.java new file mode 100644 index 00000000..ef50aef8 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EPWidgetsSortPreferenceTest.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.EPWidgetsSortPreference; + +public class EPWidgetsSortPreferenceTest { + + public EPWidgetsSortPreference mockEPWidgetsSortPreference(){ + EPWidgetsSortPreference epWidgetsSortPreference = new EPWidgetsSortPreference(); + + epWidgetsSortPreference.setSizeX(1); + epWidgetsSortPreference.setSizeY(1); + epWidgetsSortPreference.setHeaderText("test"); + epWidgetsSortPreference.setUrl("test"); + epWidgetsSortPreference.setWidgetid((long)1); + epWidgetsSortPreference.setWidgetIdentifier("test"); + epWidgetsSortPreference.setRow(1); + epWidgetsSortPreference.setCol(1); + + return epWidgetsSortPreference; + } + + @Test + public void epWidgetsSortPreferenceTest(){ + EPWidgetsSortPreference epWidgetsSortPreference = mockEPWidgetsSortPreference(); + + assertEquals(epWidgetsSortPreference.getSizeX(), 1); + assertEquals(epWidgetsSortPreference.getSizeY(), 1); + assertEquals(epWidgetsSortPreference.getHeaderText(), "test"); + assertEquals(epWidgetsSortPreference.getUrl(), "test"); + assertEquals(epWidgetsSortPreference.getWidgetid(), new Long(1)); + assertEquals(epWidgetsSortPreference.getWidgetIdentifier(), "test"); + assertEquals(epWidgetsSortPreference.getRow(), 1); + assertEquals(epWidgetsSortPreference.getRow(), 1); + + } + + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EcompUserAppRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EcompUserAppRolesTest.java new file mode 100644 index 00000000..c8b1fdd2 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EcompUserAppRolesTest.java @@ -0,0 +1,70 @@ + +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.EcompUserAppRoles; + +public class EcompUserAppRolesTest { + + public EcompUserAppRoles mockEcompUserAppRoles(){ + EcompUserAppRoles ecompUserAppRoles = new EcompUserAppRoles(); + + ecompUserAppRoles.setAppId("test"); + ecompUserAppRoles.setUserId((long)1); + ecompUserAppRoles.setPriority("test"); + ecompUserAppRoles.setRoleId((long)1); + ecompUserAppRoles.setRoleName("test"); + + return ecompUserAppRoles; + } + + @Test + public void ecompUserAppRolesTest(){ + + EcompUserAppRoles ecompUserAppRoles = mockEcompUserAppRoles(); + + assertEquals(ecompUserAppRoles.getAppId(), "test"); + assertEquals(ecompUserAppRoles.getPriority(), "test"); + assertEquals(ecompUserAppRoles.getRoleName(), "test"); + assertEquals(ecompUserAppRoles.getUserId(), new Long(1)); + assertEquals(ecompUserAppRoles.getRoleId(), new Long(1)); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemExtVOTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemExtVOTest.java new file mode 100644 index 00000000..9f316865 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemExtVOTest.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.EpNotificationItemExtVO; + +public class EpNotificationItemExtVOTest { + + public EpNotificationItemExtVO mockEpNotificationItemExtVO(){ + EpNotificationItemExtVO epNotificationItemExtVO = new EpNotificationItemExtVO(); + + //epNotificationItemExtVO.setActiveYn("abc"); + epNotificationItemExtVO.setMsgHeader("test"); + epNotificationItemExtVO.setMsgDescription("test"); + epNotificationItemExtVO.setPriority(1); + epNotificationItemExtVO.setCreatorId(1); + epNotificationItemExtVO.setLoginId("test"); + + return epNotificationItemExtVO; + } + + @Test + public void epNotificationItemExtVOTest(){ + EpNotificationItemExtVO epNotificationItemExtVO = mockEpNotificationItemExtVO(); + + assertEquals(epNotificationItemExtVO.getMsgHeader(), "test"); + assertEquals(epNotificationItemExtVO.getMsgDescription(), "test"); + assertEquals(epNotificationItemExtVO.getPriority().toString(), "1"); + assertEquals(epNotificationItemExtVO.getCreatorId().toString(), "1"); + assertEquals(epNotificationItemExtVO.getLoginId(), "test"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemTest.java new file mode 100644 index 00000000..7f80bc40 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemTest.java @@ -0,0 +1,100 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.EpNotificationItem; + +public class EpNotificationItemTest { + + public EpNotificationItem mockEpNotificationItem(){ + EpNotificationItem epNotificationItem = new EpNotificationItem(); + + epNotificationItem.setNotificationId((long)1); + epNotificationItem.setIsForOnlineUsers("test"); + epNotificationItem.setIsForAllRoles("test"); + epNotificationItem.setActiveYn("test"); + epNotificationItem.setMsgHeader("test"); + epNotificationItem.setMsgDescription("test"); + epNotificationItem.setMsgSource("test"); + + epNotificationItem.setPriority((long)1); + epNotificationItem.setCreatedId((long)1); + epNotificationItem.setNotificationHyperlink("test"); + + return epNotificationItem; + } + + @Test + public void epNotificationItemTest(){ + EpNotificationItem epNotificationItem = mockEpNotificationItem(); + + EpNotificationItem epNotificationItem1 = new EpNotificationItem(); + epNotificationItem1.setNotificationId((long)1); + epNotificationItem1.setIsForOnlineUsers("test"); + epNotificationItem1.setIsForAllRoles("test"); + epNotificationItem1.setActiveYn("test"); + epNotificationItem1.setMsgHeader("test"); + epNotificationItem1.setMsgDescription("test"); + epNotificationItem1.setMsgSource("test"); + + epNotificationItem1.setPriority((long)1); + epNotificationItem1.setCreatedId((long)1); + epNotificationItem1.setNotificationHyperlink("test"); + + assertEquals(epNotificationItem.getNotificationId(), new Long(1)); + assertEquals(epNotificationItem.getIsForOnlineUsers(), "test"); + assertEquals(epNotificationItem.getIsForAllRoles(), "test"); + assertEquals(epNotificationItem.getActiveYn(), "test"); + assertEquals(epNotificationItem.getMsgHeader(), "test"); + assertEquals(epNotificationItem.getMsgDescription(), "test"); + assertEquals(epNotificationItem.getMsgSource(), "test"); + assertEquals(epNotificationItem.getPriority(), new Long(1)); + assertEquals(epNotificationItem.getCreatedId(), new Long(1)); + assertEquals(epNotificationItem.getNotificationHyperlink(), "test"); + + assertEquals(epNotificationItem.toString(), "EpNotificationItem [notificationId=1, isForOnlineUsers=test, isForAllRoles=test, activeYn=test, msgHeader=test, msgDescription=test, msgSource=test, startTime=null, endTime=null, priority=1, creatorId=null, createdDate=null, roles=null, roleIds=null]"); + assertEquals(epNotificationItem.hashCode(), epNotificationItem1.hashCode()); + assertTrue(epNotificationItem.equals(epNotificationItem1)); + + } + +} + + diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemVOTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemVOTest.java new file mode 100644 index 00000000..61bc86f9 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpNotificationItemVOTest.java @@ -0,0 +1,83 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import java.util.Date; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.EpNotificationItemVO; + +public class EpNotificationItemVOTest { + + public EpNotificationItemVO mockEpNotificationItemVO(){ + EpNotificationItemVO epNotificationItemVO = new EpNotificationItemVO(); + + epNotificationItemVO.setNotificationId(1); + epNotificationItemVO.setIsForOnlineUsers('a'); + epNotificationItemVO.setIsForAllRoles('a'); + epNotificationItemVO.setActiveYn('a'); + epNotificationItemVO.setMsgHeader("test"); + epNotificationItemVO.setMsgDescription("test"); + epNotificationItemVO.setMsgSource("test"); + epNotificationItemVO.setPriority(1); + epNotificationItemVO.setCreatorId(1); + epNotificationItemVO.setLoginId("test"); + epNotificationItemVO.setNotificationHyperlink("test"); + + return epNotificationItemVO; + } + + @Test + public void epNotificationItemVOTest(){ + EpNotificationItemVO epNotificationItemVO = mockEpNotificationItemVO(); + + assertEquals(epNotificationItemVO.getNotificationId().toString(), "1"); + /*assertEquals(epNotificationItemVO.getIsForOnlineUsers(), 'a'); + assertEquals(epNotificationItemVO.getIsForAllRoles(), 'a'); + assertEquals(epNotificationItemVO.getActiveYn(), 'a');*/ + assertEquals(epNotificationItemVO.getMsgHeader(), "test"); + assertEquals(epNotificationItemVO.getMsgDescription(), "test"); + assertEquals(epNotificationItemVO.getMsgSource(), "test"); + assertEquals(epNotificationItemVO.getPriority().toString(), "1"); + assertEquals(epNotificationItemVO.getCreatorId().toString(), "1"); + assertEquals(epNotificationItemVO.getLoginId(), "test"); + assertEquals(epNotificationItemVO.getNotificationHyperlink(), "test"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpRoleNotificationItemTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpRoleNotificationItemTest.java new file mode 100644 index 00000000..82592934 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/EpRoleNotificationItemTest.java @@ -0,0 +1,68 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.EpRoleNotificationItem; + +public class EpRoleNotificationItemTest { + + public EpRoleNotificationItem mockEpRoleNotificationItem(){ + EpRoleNotificationItem epRoleNotificationItem = new EpRoleNotificationItem(); + + epRoleNotificationItem.setId((long)1); + epRoleNotificationItem.setNotificationId((long)1); + epRoleNotificationItem.setRoleId(1); + epRoleNotificationItem.setRecvUserId(1); + + return epRoleNotificationItem; + } + + @Test + public void epRoleNotificationItemTest(){ + EpRoleNotificationItem epRoleNotificationItem = mockEpRoleNotificationItem(); + + assertEquals(epRoleNotificationItem.getId(), new Long(1)); + assertEquals(epRoleNotificationItem.getNotificationId(), new Long(1)); + assertEquals(epRoleNotificationItem.getRoleId().toString(), "1"); + assertEquals(epRoleNotificationItem.getRecvUserId().toString(), "1"); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessPermsDetailTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessPermsDetailTest.java new file mode 100644 index 00000000..f4f36d93 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessPermsDetailTest.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.ExternalAccessPermsDetail; + +public class ExternalAccessPermsDetailTest { + + public ExternalAccessPermsDetail mockExternalAccessPermsDetail(){ + ExternalAccessPermsDetail externalAccessPermsDetail = new ExternalAccessPermsDetail(); + + List roles = new ArrayList(); + + externalAccessPermsDetail.setType("test"); + externalAccessPermsDetail.setInstance("test"); + externalAccessPermsDetail.setAction("test"); + externalAccessPermsDetail.setDescription("test"); + externalAccessPermsDetail.setRoles(roles); + + return externalAccessPermsDetail; + } + + @Test + public void externalAccessPermsDetailTest(){ + ExternalAccessPermsDetail externalAccessPermsDetail = mockExternalAccessPermsDetail(); + + List roles = new ArrayList(); + + assertEquals(externalAccessPermsDetail.getType(), "test"); + assertEquals(externalAccessPermsDetail.getInstance(), "test"); + assertEquals(externalAccessPermsDetail.getAction(), "test"); + assertEquals(externalAccessPermsDetail.getDescription(), "test"); + assertEquals(externalAccessPermsDetail.getRoles(), roles); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessPermsTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessPermsTest.java new file mode 100644 index 00000000..3392f2e6 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessPermsTest.java @@ -0,0 +1,79 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.ExternalAccessPerms; + +public class ExternalAccessPermsTest { + + public ExternalAccessPerms mockExternalAccessPerms(){ + ExternalAccessPerms externalAccessPerms = new ExternalAccessPerms(); + + externalAccessPerms.setType("test"); + externalAccessPerms.setInstance("test"); + externalAccessPerms.setAction("test"); + externalAccessPerms.setDescription("test"); + + return externalAccessPerms; + } + + @Test + public void externalAccessPermsTest(){ + ExternalAccessPerms externalAccessPerms = mockExternalAccessPerms(); + + ExternalAccessPerms externalAccessPerms1 = new ExternalAccessPerms("test", "test", "test"); + ExternalAccessPerms externalAccessPerms2 = new ExternalAccessPerms("test", "test", "test", "test"); + ExternalAccessPerms externalAccessPerms3 = new ExternalAccessPerms(); + externalAccessPerms3.setType("test"); + externalAccessPerms3.setInstance("test"); + externalAccessPerms3.setAction("test"); + externalAccessPerms3.setDescription("test"); + + assertEquals(externalAccessPerms.getType(), "test"); + assertEquals(externalAccessPerms.getInstance(), "test"); + assertEquals(externalAccessPerms.getAction(), "test"); + assertEquals(externalAccessPerms.getDescription(), "test"); + assertEquals(externalAccessPerms.hashCode(), externalAccessPerms3.hashCode()); + + assertTrue(externalAccessPerms1.equals(new ExternalAccessPerms("test", "test", "test"))); + assertTrue(externalAccessPerms2.equals(new ExternalAccessPerms("test", "test", "test", "test"))); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessRolePermsTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessRolePermsTest.java new file mode 100644 index 00000000..5e78c9cf --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessRolePermsTest.java @@ -0,0 +1,72 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.ExternalAccessPerms; +import org.onap.portalapp.portal.transport.ExternalAccessRolePerms; + +public class ExternalAccessRolePermsTest { + + public ExternalAccessRolePerms mockExternalAccessRolePerms(){ + ExternalAccessPerms externalAccessPerms = new ExternalAccessPerms(); + externalAccessPerms.setAction("test"); + externalAccessPerms.setDescription("test"); + externalAccessPerms.setInstance("test"); + externalAccessPerms.setType("test"); + ExternalAccessRolePerms ExternalAccessRolePerms = new ExternalAccessRolePerms(externalAccessPerms, "test"); + + return ExternalAccessRolePerms; + } + + @Test + public void externalAccessRolePermsTest(){ + ExternalAccessPerms externalAccessPerms = new ExternalAccessPerms(); + externalAccessPerms.setAction("test"); + externalAccessPerms.setDescription("test"); + externalAccessPerms.setInstance("test"); + externalAccessPerms.setType("test"); + + ExternalAccessRolePerms ExternalAccessRolePerms = mockExternalAccessRolePerms(); + + assertEquals(ExternalAccessRolePerms.getRole(), "test"); + assertEquals(ExternalAccessRolePerms.getPerm(), externalAccessPerms); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessRoleTest.java new file mode 100644 index 00000000..cf00f2be --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessRoleTest.java @@ -0,0 +1,63 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.ExternalAccessRole; + +public class ExternalAccessRoleTest { + + public ExternalAccessRole mockExternalAccessRole(){ + ExternalAccessRole externalAccessRole = new ExternalAccessRole(); + + externalAccessRole.setName("test"); + externalAccessRole.setDescription("test"); + + return externalAccessRole; + } + + @Test + public void externalAccessRoleTest(){ + ExternalAccessRole externalAccessRole = mockExternalAccessRole(); + + assertEquals(externalAccessRole.getName(), "test"); + assertEquals(externalAccessRole.getDescription(), "test"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessUserRoleDetailTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessUserRoleDetailTest.java new file mode 100644 index 00000000..0229ece4 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessUserRoleDetailTest.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.ExternalAccessUserRoleDetail; +import org.onap.portalapp.portal.transport.ExternalRoleDescription; + +public class ExternalAccessUserRoleDetailTest { + + public ExternalAccessUserRoleDetail mockExternalAccessUserRoleDetail(){ + + ExternalRoleDescription externalRoleDescription = new ExternalRoleDescription(); + externalRoleDescription.setId("test"); + externalRoleDescription.setName("test"); + externalRoleDescription.setActive("test"); + externalRoleDescription.setPriority("test"); + externalRoleDescription.setAppId("test"); + externalRoleDescription.setAppRoleId("test"); + + ExternalAccessUserRoleDetail externalAccessUserRoleDetail = new ExternalAccessUserRoleDetail("test", externalRoleDescription); + + externalAccessUserRoleDetail.setName("test"); + externalAccessUserRoleDetail.setDescription(externalRoleDescription); + return externalAccessUserRoleDetail; + } + + @Test + public void externalAccessUserRoleDetailTest(){ + ExternalAccessUserRoleDetail externalAccessUserRoleDetail = mockExternalAccessUserRoleDetail(); + + ExternalRoleDescription externalRoleDescription1 = new ExternalRoleDescription(); + externalRoleDescription1.setId("test"); + externalRoleDescription1.setName("test"); + externalRoleDescription1.setActive("test"); + externalRoleDescription1.setPriority("test"); + externalRoleDescription1.setAppId("test"); + externalRoleDescription1.setAppRoleId("test"); + + ExternalAccessUserRoleDetail externalAccessUserRoleDetail1 = new ExternalAccessUserRoleDetail("test", externalRoleDescription1); + + assertEquals(externalAccessUserRoleDetail.getName(), externalAccessUserRoleDetail1.getName()); + assertEquals(externalAccessUserRoleDetail.getDescription(), externalAccessUserRoleDetail1.getDescription()); + assertEquals(externalAccessUserRoleDetail.hashCode(), externalAccessUserRoleDetail1.hashCode()); + assertTrue(externalAccessUserRoleDetail.equals(externalAccessUserRoleDetail1)); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessUserTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessUserTest.java new file mode 100644 index 00000000..81504056 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalAccessUserTest.java @@ -0,0 +1,61 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.ExternalAccessUser; + +public class ExternalAccessUserTest { + + public ExternalAccessUser mockExternalAccessUser(){ + ExternalAccessUser externalAccessUser = new ExternalAccessUser("test", "test"); + + return externalAccessUser; + } + + @Test + public void externalAccessUserTest(){ + ExternalAccessUser externalAccessUser = mockExternalAccessUser(); + + assertEquals(externalAccessUser.getRole(), "test"); + assertEquals(externalAccessUser.getUser(), "test"); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalRoleDescriptionTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalRoleDescriptionTest.java new file mode 100644 index 00000000..616f86a2 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/ExternalRoleDescriptionTest.java @@ -0,0 +1,72 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.ExternalRoleDescription; + +public class ExternalRoleDescriptionTest { + + public ExternalRoleDescription mockExternalRoleDescription(){ + + ExternalRoleDescription externalRoleDescription = new ExternalRoleDescription(); + + externalRoleDescription.setId("test"); + externalRoleDescription.setName("test"); + externalRoleDescription.setActive("test"); + externalRoleDescription.setPriority("test"); + externalRoleDescription.setAppId("test"); + externalRoleDescription.setAppRoleId("test"); + + return externalRoleDescription; + } + + @Test + public void externalRoleDescriptionTest(){ + ExternalRoleDescription externalRoleDescription = mockExternalRoleDescription(); + + assertEquals(externalRoleDescription.getId(), "test"); + assertEquals(externalRoleDescription.getName(), "test"); + assertEquals(externalRoleDescription.getActive(), "test"); + assertEquals(externalRoleDescription.getPriority(), "test"); + assertEquals(externalRoleDescription.getAppId(), "test"); + assertEquals(externalRoleDescription.getAppRoleId(), "test"); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/FunctionalMenuItemTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/FunctionalMenuItemTest.java new file mode 100644 index 00000000..518c78d3 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/FunctionalMenuItemTest.java @@ -0,0 +1,79 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; + +public class FunctionalMenuItemTest { + + public FunctionalMenuItem mockFunctionalMenuItem(){ + FunctionalMenuItem functionalMenuItem = new FunctionalMenuItem(); + + List roles = new ArrayList(); + + functionalMenuItem.setRestrictedApp(false); + functionalMenuItem.setUrl("test"); + functionalMenuItem.setRoles(roles); + + return functionalMenuItem; + } + + @Test + public void functionalMenuItemTest(){ + FunctionalMenuItem functionalMenuItem = mockFunctionalMenuItem(); + + FunctionalMenuItem functionalMenuItem1 = mockFunctionalMenuItem(); + + List roles = new ArrayList(); + + functionalMenuItem1.setRestrictedApp(false); + functionalMenuItem1.setUrl("test"); + functionalMenuItem1.setRoles(roles); + + assertEquals(functionalMenuItem.getRoles(), functionalMenuItem1.getRoles()); + assertEquals(functionalMenuItem.toString(), "FunctionalMenuItem [menuId=null, column=null, text=null, parentMenuId=null, url=test, active_yn=null, appid=null, roles=[], restrictedApp=false]"); + // assertTrue(functionalMenuItem.normalize(), functionalMenuItem1.normalize()); + } + +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/FunctionalMenuRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/FunctionalMenuRoleTest.java new file mode 100644 index 00000000..b48867c3 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/FunctionalMenuRoleTest.java @@ -0,0 +1,77 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.FunctionalMenuRole; + +public class FunctionalMenuRoleTest { + + public FunctionalMenuRole mockFunctionalMenuRole(){ + FunctionalMenuRole functionalMenuRole = new FunctionalMenuRole(); + + functionalMenuRole.setId(1); + functionalMenuRole.setMenuId((long)1); + functionalMenuRole.setAppId(1); + functionalMenuRole.setRoleId(1); + + return functionalMenuRole; + } + + @Test + public void functionalMenuRoleTest(){ + FunctionalMenuRole functionalMenuRole = mockFunctionalMenuRole(); + + FunctionalMenuRole functionalMenuRole1 = new FunctionalMenuRole(); + functionalMenuRole1.setId(1); + functionalMenuRole1.setMenuId((long)1); + functionalMenuRole1.setAppId(1); + functionalMenuRole1.setRoleId(1); + + assertEquals(functionalMenuRole.getId().toString(), "1"); + assertEquals(functionalMenuRole.getMenuId(), new Long(1)); + assertEquals(functionalMenuRole.getAppId().toString(), "1"); + assertEquals(functionalMenuRole.getRoleId().toString(), "1"); + assertEquals(functionalMenuRole.toString(), "FunctionalMenuRole [id=1, menuId=1, appId=1, roleId=1]"); + assertTrue(functionalMenuRole.equals(functionalMenuRole1)); + assertEquals(functionalMenuRole.hashCode(), functionalMenuRole1.hashCode()); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/RemoteUserWithRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/RemoteUserWithRolesTest.java new file mode 100644 index 00000000..aa2f48e0 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/RemoteUserWithRolesTest.java @@ -0,0 +1,102 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.RemoteRole; +import org.onap.portalapp.portal.transport.RemoteUserWithRoles; + +public class RemoteUserWithRolesTest { + + public RemoteUserWithRoles mockRemoteUserWithRoles(){ + RemoteUserWithRoles remoteUserWithRoles = new RemoteUserWithRoles(); + + List roles = new ArrayList(); + RemoteRole remoteRole = new RemoteRole(); + remoteRole.setId((long)1); + remoteRole.setName("test"); + roles.add(remoteRole); + + remoteUserWithRoles.setOrgId((long)1); + remoteUserWithRoles.setManagerId((long)1); + remoteUserWithRoles.setFirstName("test"); + remoteUserWithRoles.setMiddleInitial("test"); + remoteUserWithRoles.setLastName("test"); + remoteUserWithRoles.setPhone("test"); + remoteUserWithRoles.setEmail("test"); + remoteUserWithRoles.setHrid("test"); + remoteUserWithRoles.setOrgUserId("test"); + remoteUserWithRoles.setOrgCode("test"); + remoteUserWithRoles.setOrgManagerUserId("test"); + remoteUserWithRoles.setJobTitle("test"); + remoteUserWithRoles.setLoginId("test"); + remoteUserWithRoles.setActive(false); + remoteUserWithRoles.setRoles(roles); + + return remoteUserWithRoles; + } + + @Test + public void remoteUserWithRolesTest(){ + RemoteUserWithRoles remoteUserWithRoles = mockRemoteUserWithRoles(); + + assertEquals(remoteUserWithRoles.getOrgId(), new Long(1)); + assertEquals(remoteUserWithRoles.getManagerId(), new Long(1)); + assertEquals(remoteUserWithRoles.getFirstName(), "test"); + assertEquals(remoteUserWithRoles.getMiddleInitial(), "test"); + assertEquals(remoteUserWithRoles.getLastName(), "test"); + assertEquals(remoteUserWithRoles.getPhone(), "test"); + assertEquals(remoteUserWithRoles.getEmail(), "test"); + assertEquals(remoteUserWithRoles.getHrid(), "test"); + assertEquals(remoteUserWithRoles.getOrgUserId(), "test"); + assertEquals(remoteUserWithRoles.getOrgCode(), "test"); + assertEquals(remoteUserWithRoles.getOrgManagerUserId(), "test"); + assertEquals(remoteUserWithRoles.getJobTitle(), "test"); + assertEquals(remoteUserWithRoles.getLoginId(), "test"); + assertEquals(remoteUserWithRoles.getActive(), false); + assertEquals(remoteUserWithRoles.getRoles().size(), 1); + assertEquals(remoteUserWithRoles.toString(), "RemoteUserWithRoles [orgId=1, managerId=1, firstName=test, middleInitial=test, lastName=test, phone=test, " + + "email=test, hrid=test, orgUserId=test, orgCode=test, orgManagerUserId=test, jobTitle=test, loginId=test, active=false, roles=[RemoteRole [id=1, name=test]]]"); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/RoleInAppForUserTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/RoleInAppForUserTest.java new file mode 100644 index 00000000..51d18472 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/RoleInAppForUserTest.java @@ -0,0 +1,74 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.RoleInAppForUser; + +public class RoleInAppForUserTest { + + public RoleInAppForUser mockRoleInAppForUser(){ + RoleInAppForUser roleInAppForUser = new RoleInAppForUser((long)1 , "test"); + roleInAppForUser.setRoleId((long)1); + roleInAppForUser.setRoleName("test"); + roleInAppForUser.setIsApplied(false); + + return roleInAppForUser; + } + + @Test + public void roleInAppForUserTest(){ + RoleInAppForUser roleInAppForUser = mockRoleInAppForUser(); + + RoleInAppForUser roleInAppForUser1 = new RoleInAppForUser((long)1 , "test"); + roleInAppForUser1.setRoleId((long)1); + roleInAppForUser1.setRoleName("test"); + roleInAppForUser1.setIsApplied(false); + + assertEquals(roleInAppForUser.getRoleId(), new Long(1)); + assertEquals(roleInAppForUser.getRoleName(), "test"); + assertEquals(roleInAppForUser.getIsApplied(), false); + + assertEquals(roleInAppForUser.toString(), "RoleInAppForUser [roleId=1, roleName=test, isApplied=false]"); + assertTrue(roleInAppForUser.equals(roleInAppForUser1)); + assertEquals(roleInAppForUser.hashCode(), roleInAppForUser1.hashCode()); + //constructor + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/UserApplicationRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/UserApplicationRolesTest.java new file mode 100644 index 00000000..33596265 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/UserApplicationRolesTest.java @@ -0,0 +1,95 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.RemoteRole; +import org.onap.portalapp.portal.transport.UserApplicationRoles; + +public class UserApplicationRolesTest { + + public UserApplicationRoles mockUserApplicationRoles(){ + UserApplicationRoles userApplicationRoles = new UserApplicationRoles(); + + List roles = new ArrayList(); + RemoteRole remoteRole = new RemoteRole(); + remoteRole.setId((long)1); + remoteRole.setName("test"); + roles.add(remoteRole); + + userApplicationRoles.setAppId((long)1); + userApplicationRoles.setOrgUserId("test"); + userApplicationRoles.setFirstName("test"); + userApplicationRoles.setLastName("test"); + userApplicationRoles.setRoles(roles); + + return userApplicationRoles; + } + + @Test + public void userApplicationRolesTest(){ + UserApplicationRoles userApplicationRoles = mockUserApplicationRoles(); + + UserApplicationRoles userApplicationRoles1 = new UserApplicationRoles(); + + List roles = new ArrayList(); + RemoteRole remoteRole = new RemoteRole(); + remoteRole.setId((long)1); + remoteRole.setName("test"); + roles.add(remoteRole); + + userApplicationRoles1.setAppId((long)1); + userApplicationRoles1.setOrgUserId("test"); + userApplicationRoles1.setFirstName("test"); + userApplicationRoles1.setLastName("test"); + userApplicationRoles1.setRoles(roles); + + assertEquals(userApplicationRoles.getAppId(), userApplicationRoles1.getAppId()); + assertEquals(userApplicationRoles.getOrgUserId(), userApplicationRoles1.getOrgUserId()); + assertEquals(userApplicationRoles.getFirstName(), userApplicationRoles1.getFirstName()); + assertEquals(userApplicationRoles.getLastName(), userApplicationRoles1.getLastName()); + assertEquals(userApplicationRoles.getRoles(), userApplicationRoles1.getRoles()); + + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/UserWithNameSurnameTitleTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/UserWithNameSurnameTitleTest.java new file mode 100644 index 00000000..3c8e6ce7 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/UserWithNameSurnameTitleTest.java @@ -0,0 +1,56 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.*; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.UserWithNameSurnameTitle; + +public class UserWithNameSurnameTitleTest { + + @Test + public void userWithNameSurnameTitleTest(){ + + UserWithNameSurnameTitle userWithNameSurnameTitle = new UserWithNameSurnameTitle("test", "test", "test", "test"); + + assertEquals(userWithNameSurnameTitle, new UserWithNameSurnameTitle("test", "test", "test", "test")); + assertEquals(userWithNameSurnameTitle.hashCode(), new UserWithNameSurnameTitle("test", "test", "test", "test").hashCode()); + assertTrue(userWithNameSurnameTitle.equals(new UserWithNameSurnameTitle("test", "test", "test", "test"))); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/WidgetCatalogPersonalizationTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/WidgetCatalogPersonalizationTest.java new file mode 100644 index 00000000..77e9cdb3 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/transport/WidgetCatalogPersonalizationTest.java @@ -0,0 +1,62 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.transport; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.transport.WidgetCatalogPersonalization; + +public class WidgetCatalogPersonalizationTest { + + public WidgetCatalogPersonalization mockWidgetCatalogPersonalization(){ + WidgetCatalogPersonalization widgetCatalogPersonalization = new WidgetCatalogPersonalization(); + + widgetCatalogPersonalization.setWidgetId((long)1); + widgetCatalogPersonalization.setSelect(false); + return widgetCatalogPersonalization; + } + + @Test + public void widgetCatalogPersonalizationTest(){ + WidgetCatalogPersonalization widgetCatalogPersonalization = mockWidgetCatalogPersonalization(); + + assertEquals(widgetCatalogPersonalization.getWidgetId(), new Long(1)); + assertEquals(widgetCatalogPersonalization.getSelect(), false); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/utils/EcompPortalUtilsTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/utils/EcompPortalUtilsTest.java new file mode 100644 index 00000000..efc1dab1 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/utils/EcompPortalUtilsTest.java @@ -0,0 +1,56 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.utils; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.portalapp.portal.utils.EcompPortalUtils; + +public class EcompPortalUtilsTest { + + @Test + public void legitimateAttuidSuccessTest() { + assertEquals(true, EcompPortalUtils.legitimateUserId("mm016f")); + } + + @Test + public void legitimateAttuidFailureTest() { + assertEquals(false, EcompPortalUtils.legitimateUserId("1#@23456")); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/command/EPLoginBeanTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/command/EPLoginBeanTest.java deleted file mode 100644 index e540bd85..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/command/EPLoginBeanTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.command; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import org.junit.Test; -import org.openecomp.portalapp.command.EPLoginBean; - -public class EPLoginBeanTest { - - -public EPLoginBean ePLoginBean(){ - - EPLoginBean ePLoginBean = new EPLoginBean(); - ePLoginBean.setLoginId("guestT"); - ePLoginBean.setLoginPwd("password"); - ePLoginBean.setHrid("hrId"); - ePLoginBean.setOrgUserId("guestT"); - ePLoginBean.setBusinessDirectMenu(null); - ePLoginBean.setSiteAccess("site_test"); - ePLoginBean.setLoginErrorMessage("error"); - ePLoginBean.setUser(null); - ePLoginBean.setMenu(null); - return ePLoginBean; - } - - @Test - public void ePLoginBeanTest(){ - EPLoginBean ePLoginBean = ePLoginBean(); - - assertEquals(ePLoginBean.getLoginId(), "guestT"); - assertEquals(ePLoginBean.getLoginPwd(), "password"); - assertEquals(ePLoginBean.getHrid(), "hrId"); - assertEquals(ePLoginBean.getOrgUserId(), "guestT"); - assertNull(ePLoginBean.getBusinessDirectMenu()); - assertEquals(ePLoginBean.getSiteAccess(), "site_test"); - assertEquals(ePLoginBean.getLoginErrorMessage(), "error"); - assertNull(ePLoginBean.getUser()); - assertNull(ePLoginBean.getMenu()); - - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/command/PostSearchBeanTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/command/PostSearchBeanTest.java deleted file mode 100644 index 324d91d7..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/command/PostSearchBeanTest.java +++ /dev/null @@ -1,149 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.command; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.mockito.InjectMocks; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; - -public class PostSearchBeanTest { - - @InjectMocks - PostSearchBean mockPostSearchBean = new PostSearchBean(); - - MockEPUser mockUser = new MockEPUser(); - public PostSearchBean mockPostSearchBean(){ - - PostSearchBean postSearchBean = new PostSearchBean(); - EPUser user = mockUser.mockEPUser(); - postSearchBean.setUser(user); - postSearchBean.setUserOrig(null); - postSearchBean.setSelected(null); - postSearchBean.setHrid(null); - postSearchBean.setPostUserId(null); - postSearchBean.setPostFirstName(null); - postSearchBean.setPostLastName(null); - postSearchBean.setPostOrgCode(null); - postSearchBean.setPostPhone(null); - postSearchBean.setPostEmail(null); - postSearchBean.setPostAddress1(null); - postSearchBean.setPostAddress2(null); - postSearchBean.setPostCity(null); - postSearchBean.setPostState(null); - postSearchBean.setPostZipCode(null); - postSearchBean.setPostLocationClli(null); - postSearchBean.setPostBusinessCountryCode(null); - postSearchBean.setPostBusinessCountryName(null); - postSearchBean.setPostDepartment(null); - postSearchBean.setPostDepartmentName(null); - postSearchBean.setPostBusinessUnit(null); - postSearchBean.setPostBusinessUnitName(null); - postSearchBean.setPostJobTitle(null); - postSearchBean.setOrgManagerUserId(null); - postSearchBean.setPostCommandChain(null); - postSearchBean.setPostCompanyCode(null); - postSearchBean.setPostCostCenter(null); - postSearchBean.setPostSiloStatus(null); - postSearchBean.setPostFinancialLocCode(null); - postSearchBean.setPostManagerUserId(null); - return postSearchBean; - } - - @Test - public void postSearchBeanTest() - { - PostSearchBean postSearchBean = mockPostSearchBean(); - EPUser user = mockUser.mockEPUser(); - assertEquals(postSearchBean.getUser().getActive(), user.getActive()); - assertNull(postSearchBean.getUserOrig()); - assertNull(postSearchBean.getSelected()); - assertNull(postSearchBean.getHrid()); - assertNull(postSearchBean.getPostOrgUserId()); - assertNull(postSearchBean.getPostFirstName()); - assertNull(postSearchBean.getPostLastName()); - assertNull(postSearchBean.getPostOrgCode()); - assertNull(postSearchBean.getPostPhone()); - assertNull(postSearchBean.getPostEmail()); - assertNull(postSearchBean.getPostAddress1()); - assertNull(postSearchBean.getPostAddress2()); - assertNull(postSearchBean.getPostCity()); - assertNull(postSearchBean.getPostState()); - assertNull(postSearchBean.getPostZipCode()); - assertNull(postSearchBean.getPostLocationClli()); - assertNull(postSearchBean.getPostBusinessCountryCode()); - assertNull(postSearchBean.getPostBusinessCountryName()); - assertNull(postSearchBean.getPostDepartment()); - assertNull(postSearchBean.getPostDepartmentName()); - assertNull(postSearchBean.getPostBusinessUnit()); - assertNull(postSearchBean.getPostBusinessUnitName()); - assertNull(postSearchBean.getPostJobTitle()); - assertNull(postSearchBean.getOrgManagerUserId()); - assertNull(postSearchBean.getPostCommandChain()); - assertNull(postSearchBean.getPostCompanyCode()); - assertNull(postSearchBean.getPostCostCenter()); - assertNull(postSearchBean.getPostSiloStatus()); - assertNull(postSearchBean.getPostFinancialLocCode()); - assertNull(postSearchBean.getPostManagerUserId()); - } - - @Test - public void isCriteriaUpdatedIfUserNotNullTest() - { - assertFalse(mockPostSearchBean.isCriteriaUpdated()); - } - - @Test - public void isCriteriaUpdatedIfUserNullTest() - { - mockPostSearchBean.setUser(null); - assertTrue(mockPostSearchBean.isCriteriaUpdated()); - } - - - @Test - public void isCriteriaUpdatedIfUserTest() - { - mockPostSearchBean.setUser(null); - mockPostSearchBean.setUserOrig(null); - assertFalse(mockPostSearchBean.isCriteriaUpdated()); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/config/NotificationCleanupTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/config/NotificationCleanupTest.java deleted file mode 100644 index 0cd82ae7..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/config/NotificationCleanupTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.config; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.service.UserNotificationService; -import org.openecomp.portalapp.portal.service.UserNotificationServiceImpl; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; -import org.springframework.context.ApplicationContext; - -@RunWith(PowerMockRunner.class) -@PrepareForTest(NotificationCleanupConfig.class) -public class NotificationCleanupTest { - - @InjectMocks - NotificationCleanup notificationCleanup = new NotificationCleanup(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - @Mock - UserNotificationService userNotificationService = new UserNotificationServiceImpl(); - @Mock - ApplicationContext applicationContext; - - @Test - public void runTest() { - PowerMockito.mockStatic(NotificationCleanupConfig.class); - Mockito.when(NotificationCleanupConfig.getApplicationContext()).thenReturn(applicationContext); - Mockito.when((applicationContext).getBean(UserNotificationService.class)).thenReturn(userNotificationService); - Mockito.doNothing().when(userNotificationService).deleteNotificationsFromEpUserNotificationTable(); - Mockito.doNothing().when(userNotificationService).deleteNotificationsFromEpRoleNotificationTable(); - - Mockito.doNothing().when(userNotificationService).deleteNotificationsFromEpNotificationTable(); - notificationCleanup.run(); - - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/config/PortalCentralAccessConfigurationTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/config/PortalCentralAccessConfigurationTest.java deleted file mode 100644 index d58beac9..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/config/PortalCentralAccessConfigurationTest.java +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.config; - -import static org.junit.Assert.assertEquals; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.service.EPRoleFunctionService; -import org.openecomp.portalapp.portal.service.EPRoleFunctionServiceCentralizedImpl; -import org.openecomp.portalapp.portal.service.EPRoleFunctionServiceImpl; - -public class PortalCentralAccessConfigurationTest { - - @InjectMocks - PortalCentralAccessConfiguration portalCentralAccessConfiguration = new PortalCentralAccessConfiguration(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - @Mock - EPRoleFunctionService ePRoleFunctionServiceImpl = new EPRoleFunctionServiceImpl(); - - @Mock - EPRoleFunctionService ePRoleFunctionServiceCentralizedImpl = new EPRoleFunctionServiceCentralizedImpl(); - - @Test - public void ePRoleFunctionServiceImplTest() - { - EPRoleFunctionService expectedPRoleFunctionServiceImpl = portalCentralAccessConfiguration.ePRoleFunctionServiceImpl(); - assertEquals(expectedPRoleFunctionServiceImpl.getClass(), EPRoleFunctionServiceImpl.class); - } - - @Test - public void ePRoleFunctionServiceCentralImplTest() - { - EPRoleFunctionService expectedPRoleFunctionServiceImpl = portalCentralAccessConfiguration.ePRoleFunctionServiceCentralizedImpl(); - assertEquals(expectedPRoleFunctionServiceImpl.getClass(), EPRoleFunctionServiceCentralizedImpl.class); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppCatalogControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppCatalogControllerTest.java deleted file mode 100644 index a04c1b07..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppCatalogControllerTest.java +++ /dev/null @@ -1,281 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.AppCatalogController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.AppCatalogItem; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl; -import org.openecomp.portalapp.portal.service.EPAppCommonServiceImpl; -import org.openecomp.portalapp.portal.service.EPAppService; -import org.openecomp.portalapp.portal.service.PersUserAppService; -import org.openecomp.portalapp.portal.service.PersUserAppServiceImpl; -import org.openecomp.portalapp.portal.transport.AppCatalogPersonalization; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.FieldsValidator.FieldName; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.util.SystemProperties; - -public class AppCatalogControllerTest extends MockitoTestSuite { - - @Mock - AdminRolesService adminRolesService = new AdminRolesServiceImpl(); - - @Mock - EPAppService appService = new EPAppCommonServiceImpl(); - - @InjectMocks - AppCatalogController appCatalogController = new AppCatalogController(); - - PersUserAppService persUserAppService = Mockito.spy(new PersUserAppServiceImpl()); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - - @Mock - EPUserUtils ePUserUtils = new EPUserUtils(); - - @Mock - EPUser epuser; - - NullPointerException nullPointerException = new NullPointerException(); - - MockEPUser mockUser = new MockEPUser(); - - public AppCatalogItem mockAppCatalogItem() { - AppCatalogItem appCatalogItem = new AppCatalogItem(); - appCatalogItem.setId((long) 1); - appCatalogItem.setName("Ecomp Portal"); - appCatalogItem.setImageUrl("Test_URL"); - appCatalogItem.setDescription("Testing"); - appCatalogItem.setNotes("Test"); - appCatalogItem.setUrl("test"); - appCatalogItem.setAlternateUrl("test"); - appCatalogItem.setRestricted(false); - appCatalogItem.setOpen(false); - appCatalogItem.setAccess(true); - appCatalogItem.setSelect(true); - appCatalogItem.setPending(false); - - return appCatalogItem; - } - - @Test - public void getAppCatalogTestIfUserNotAdmin() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List actualAppCatalogList = null; - - List expectedAppCatalog = new ArrayList<>(); - - AppCatalogItem appCatalogItem = mockAppCatalogItem(); - expectedAppCatalog.add(appCatalogItem); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(appService.getUserAppCatalog(user)).thenReturn(expectedAppCatalog); - actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse); - - assertTrue(actualAppCatalogList.contains(appCatalogItem)); - - } - - @Test - public void getAppCatalogTestIfUserIsAdmin() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List actualAppCatalogList = null; - - List expectedAppCatalog = new ArrayList<>(); - - AppCatalogItem appCatalogItem = mockAppCatalogItem(); - - expectedAppCatalog.add(appCatalogItem); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.getAdminAppCatalog(user)).thenReturn(expectedAppCatalog); - actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse); - - assertTrue(actualAppCatalogList.contains(appCatalogItem)); - - } - - @Test - public void getAppCatalogTestIfUserisNull() throws IOException { - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null); - List actualAppCatalogList = new ArrayList<>(); - ; - actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse); - assertNull(actualAppCatalogList); - - } - - @Test - public void getAppCatalogTestIfUserThrowsExceptionTest() throws IOException { - EPUser user = new EPUser(); - user.setFirstName("test"); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List actualAppCatalogList = new ArrayList<>(); - ; - - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - - Mockito.when(appCatalogController.getAppCatalog(mockedRequest, mockedResponse)).thenThrow(nullPointerException); - - actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse); - assertNull(actualAppCatalogList); - - } - - @Test - public void putAppCatalogSelectionTestWhenAppIsNull() throws IOException { - - AppCatalogPersonalization persRequest = new AppCatalogPersonalization(); - persRequest.setAppId((long) 1); - persRequest.setPending(false); - persRequest.setSelect(false); - - EPUser user = mockUser.mockEPUser(); - - FieldsValidator expectedFieldValidator = new FieldsValidator(); - - FieldsValidator actualFieldValidator = new FieldsValidator(); - List fields = new ArrayList<>(); - ; - - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(fields); - expectedFieldValidator.setErrorCode(null); - - EPApp app = null; - - Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app); - - HttpSession session = mockedRequest.getSession(); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); - - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse); - assertEquals(expectedFieldValidator, actualFieldValidator); - - } - - @Test - public void putAppCatalogSelectionTest() throws IOException { - - AppCatalogPersonalization persRequest = new AppCatalogPersonalization(); - persRequest.setAppId((long) 1); - persRequest.setPending(false); - persRequest.setSelect(false); - - EPUser user = mockUser.mockEPUser(); - - FieldsValidator expectedFieldValidator = new FieldsValidator(); - - FieldsValidator actualFieldValidator = new FieldsValidator(); - List fields = new ArrayList<>(); - ; - - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(fields); - expectedFieldValidator.setErrorCode(null); - - EPApp app = new EPApp(); - - app.setName("Test"); - app.setImageUrl("test"); - app.setDescription("test"); - app.setNotes("test"); - app.setUrl("test"); - app.setId((long) 1); - app.setAppRestEndpoint("test"); - app.setAlternateUrl("test"); - app.setName("test"); - app.setMlAppName("test"); - app.setMlAppAdminId("test"); - app.setUsername("test"); - app.setAppPassword("test"); - app.setOpen(false); - app.setEnabled(false); - app.setUebKey("test"); - app.setUebSecret("test"); - app.setUebTopicName("test"); - app.setAppType(1); - - Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app); - - HttpSession session = mockedRequest.getSession(); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); - - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.doNothing().when(persUserAppService).setPersUserAppValue(user, app, persRequest.getSelect(), - persRequest.getPending()); - - actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse); - - assertEquals(expectedFieldValidator, actualFieldValidator); - - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppContactUsControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppContactUsControllerTest.java deleted file mode 100644 index 487b116e..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppContactUsControllerTest.java +++ /dev/null @@ -1,338 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.AppContactUsController; -import org.openecomp.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; -import org.openecomp.portalapp.portal.ecomp.model.AppContactUsItem; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.AppContactUsService; -import org.openecomp.portalapp.portal.service.AppContactUsServiceImpl; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.domain.support.CollaborateList; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({SystemProperties.class, EPCommonSystemProperties.class}) -public class AppContactUsControllerTest extends MockitoTestSuite{ - - @Mock - AppContactUsService contactUsService = new AppContactUsServiceImpl(); - - @InjectMocks - AppContactUsController appContactUsController = new AppContactUsController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Mock - EPUserUtils ePUserUtils = new EPUserUtils(); - - public List mockResponse() { - List appContactUsItemList = new ArrayList(); - AppContactUsItem appContactUsItem = new AppContactUsItem(); - appContactUsItem.setAppId((long) 1); - appContactUsItem.setAppName("ECOMP Portal"); - appContactUsItem.setDescription("Test"); - appContactUsItem.setContactName("Test"); - appContactUsItem.setContactEmail("person@onap.org"); - appContactUsItem.setUrl("Test_URL"); - appContactUsItem.setActiveYN("Y"); - appContactUsItemList.add(appContactUsItem); - - return appContactUsItemList; - - } - - public PortalRestResponse> successPortalRestResponse() { - PortalRestResponse> expectedportalRestResponse = new PortalRestResponse>(); - List appContactUsItemList = mockResponse(); - expectedportalRestResponse.setMessage("success"); - expectedportalRestResponse.setResponse(appContactUsItemList); - expectedportalRestResponse.setStatus(PortalRestStatusEnum.OK); - return expectedportalRestResponse; - - } - - public PortalRestResponse> exceptionPortalRestResponse() { - PortalRestResponse> expectedportalRestResponse = new PortalRestResponse>(); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse(null); - expectedportalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - return expectedportalRestResponse; - - } - - @Test - public void getAppContactUsList() throws Exception { - PortalRestResponse> expectedportalRestResponse = successPortalRestResponse(); - List appContactUsItemList = mockResponse(); - PortalRestResponse> actualPortalRestResponse = new PortalRestResponse>(); - Mockito.when(contactUsService.getAppContactUs()).thenReturn(appContactUsItemList); - actualPortalRestResponse = appContactUsController.getAppContactUsList(mockedRequest); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - } - - @Test - public void getAppContactUsListCatchesExeptionTest() throws Exception { - - PortalRestResponse> expectedportalRestResponse = exceptionPortalRestResponse(); - PortalRestResponse> actualPortalRestResponse = new PortalRestResponse>(); - Mockito.when(contactUsService.getAppContactUs()).thenThrow(nullPointerException); - actualPortalRestResponse = appContactUsController.getAppContactUsList(mockedRequest); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - } - - @Test - public void getAppsAndContactsTest() throws Exception { - PortalRestResponse> expectedportalRestResponse = successPortalRestResponse(); - List appContactUsItemList = mockResponse(); - PortalRestResponse> actualPortalRestResponse = new PortalRestResponse>(); - Mockito.when(contactUsService.getAppsAndContacts()).thenReturn(appContactUsItemList); - actualPortalRestResponse = appContactUsController.getAppsAndContacts(mockedRequest); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - - } - - @Test - public void getAppsAndContactsCatchesExceptionTest() throws Exception { - PortalRestResponse> expectedportalRestResponse = exceptionPortalRestResponse(); - PortalRestResponse> actualPortalRestResponse = new PortalRestResponse>(); - Mockito.when(contactUsService.getAppsAndContacts()).thenThrow(nullPointerException); - actualPortalRestResponse = appContactUsController.getAppsAndContacts(mockedRequest); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - - } - - @Test - public void getAppCategoryFunctionsTest() throws Exception { - PortalRestResponse> actualportalRestResponse = null; - - List contents = new ArrayList(); - - AppCategoryFunctionsItem appCategoryFunctionsItem = new AppCategoryFunctionsItem(); - AppCategoryFunctionsItem appCategoryFunctionsItem1 = new AppCategoryFunctionsItem(); - - appCategoryFunctionsItem.setRowId("1"); - appCategoryFunctionsItem.setAppId("1"); - appCategoryFunctionsItem.setApplication("Ecomp-portal"); - appCategoryFunctionsItem.setCategory("test"); - appCategoryFunctionsItem.setFunctions("test"); - - appCategoryFunctionsItem1.setRowId("2"); - appCategoryFunctionsItem1.setAppId("2"); - appCategoryFunctionsItem1.setApplication("Ecomp-portal-test"); - appCategoryFunctionsItem1.setCategory("test"); - appCategoryFunctionsItem1.setFunctions("test"); - contents.add(appCategoryFunctionsItem); - contents.add(appCategoryFunctionsItem1); - - PortalRestResponse> expectedportalRestResponse = new PortalRestResponse>(); - expectedportalRestResponse.setMessage("success"); - expectedportalRestResponse.setResponse(contents); - expectedportalRestResponse.setStatus(PortalRestStatusEnum.OK); - - Mockito.when(contactUsService.getAppCategoryFunctions()).thenReturn(contents); - actualportalRestResponse = appContactUsController.getAppCategoryFunctions(mockedRequest); - assertEquals(actualportalRestResponse, expectedportalRestResponse); - - } - - @Test - public void getAppCategoryFunctionsCatchesExceptionTest() throws Exception { - PortalRestResponse> actualportalRestResponse = null; - PortalRestResponse> expectedportalRestResponse = exceptionPortalRestResponse(); - Mockito.when(contactUsService.getAppCategoryFunctions()).thenThrow(nullPointerException); - actualportalRestResponse = appContactUsController.getAppCategoryFunctions(mockedRequest); - assertEquals(actualportalRestResponse, expectedportalRestResponse); - - } - - @Test - public void saveTest() throws Exception { - PortalRestResponse actualSaveAppContactUS = null; - - AppContactUsItem contactUs = new AppContactUsItem(); - contactUs.setAppId((long) 1); - contactUs.setAppName("Ecomp Portal"); - contactUs.setDescription("Test"); - contactUs.setContactName("Test"); - contactUs.setContactEmail("person@onap.org"); - contactUs.setUrl("Test_URL"); - contactUs.setActiveYN("Y"); - - Mockito.when(contactUsService.saveAppContactUs(contactUs)).thenReturn("SUCCESS"); - actualSaveAppContactUS = appContactUsController.save(contactUs); - assertEquals(actualSaveAppContactUS.getMessage(), "SUCCESS"); - } - - @Test - public void saveExceptionTest() throws Exception { - PortalRestResponse actualSaveAppContactUS = null; - - AppContactUsItem contactUs = new AppContactUsItem(); - contactUs.setAppId((long) 1); - contactUs.setAppName("Ecomp Portal"); - contactUs.setDescription("Test"); - contactUs.setContactName("Test"); - contactUs.setContactEmail("person@onap.org"); - contactUs.setUrl("Test_URL"); - contactUs.setActiveYN("Y"); - - Mockito.when(contactUsService.saveAppContactUs(contactUs)).thenThrow(new Exception()); - actualSaveAppContactUS = appContactUsController.save(contactUs); - assertEquals(actualSaveAppContactUS.getMessage(), "failure"); - } - - @Test - public void saveWhenAppContactUsItemNullTest() throws Exception { - PortalRestResponse actualSaveAppContactUS = null; - AppContactUsItem contactUs = null; - actualSaveAppContactUS = appContactUsController.save(contactUs); - assertEquals(actualSaveAppContactUS.getMessage(), "failure"); - - } - - @Test - public void saveAllTest() throws Exception { - - List contactUs = mockResponse(); - PortalRestResponse actualSaveAppContactUS = null; - Mockito.when(contactUsService.saveAppContactUs(contactUs)).thenReturn("SUCCESS"); - actualSaveAppContactUS = appContactUsController.save(contactUs); - assertEquals(actualSaveAppContactUS.getMessage(), "SUCCESS"); - } - - @Test - public void saveAllExceptionTest() throws Exception { - - List contactUs = mockResponse(); - PortalRestResponse actualSaveAppContactUS = null; - Mockito.when(contactUsService.saveAppContactUs(contactUs)).thenThrow(new Exception()); - actualSaveAppContactUS = appContactUsController.save(contactUs); - assertEquals(actualSaveAppContactUS.getMessage(), "failure"); - } - - @Test - public void deleteTest() throws Exception { - - PortalRestResponse actualSaveAppContactUS = null; - Long id = (long) 1; - String saveAppContactUs = "SUCCESS"; - Mockito.when(contactUsService.deleteContactUs(id)).thenReturn(saveAppContactUs); - actualSaveAppContactUS = appContactUsController.delete(id); - assertEquals(actualSaveAppContactUS.getMessage(), "SUCCESS"); - } - - @Test - public void deleteExceptionTest() throws Exception { - - PortalRestResponse actualSaveAppContactUS = null; - Long id = (long) 1; - Mockito.when(contactUsService.deleteContactUs(id)).thenThrow(new Exception()); - actualSaveAppContactUS = appContactUsController.delete(id); - assertEquals(actualSaveAppContactUS.getMessage(), "failure"); - } - - @Test - public void getPortalDetailsTest(){ - PortalRestResponse actualResponse = new PortalRestResponse(); - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setStatus(PortalRestStatusEnum.OK); - expectedResponse.setMessage("success"); - expectedResponse.setResponse("\"ush_ticket_url\":\"http://todo_enter_ush_ticket_url\",\"portal_info_url\":\"https://todo_enter_portal_info_url\",\"feedback_email_address\":\"portal@lists.openecomp.org\""); - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.USH_TICKET_URL)).thenReturn("http://todo_enter_ush_ticket_url"); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.PORTAL_INFO_URL)).thenReturn("https://todo_enter_portal_info_url"); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS)).thenReturn("portal@lists.openecomp.org"); - - actualResponse = appContactUsController.getPortalDetails(mockedRequest); - assertTrue(actualResponse.getStatus().compareTo(PortalRestStatusEnum.OK) == 0); - } - - @Test - public void getPortalDetailsExceptionTest(){ - PortalRestResponse actualResponse = new PortalRestResponse(); - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setStatus(PortalRestStatusEnum.ERROR); - expectedResponse.setMessage("failure"); - expectedResponse.setResponse(null); - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.USH_TICKET_URL)).thenThrow(nullPointerException); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.PORTAL_INFO_URL)).thenReturn("https://todo_enter_portal_info_url"); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS)).thenReturn("portal@lists.openecomp.org"); - - actualResponse = appContactUsController.getPortalDetails(mockedRequest); - assertEquals(actualResponse, expectedResponse); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppsControllerExternalRequestTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppsControllerExternalRequestTest.java deleted file mode 100644 index a979a5b1..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppsControllerExternalRequestTest.java +++ /dev/null @@ -1,310 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.AppsControllerExternalRequest; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.EPAppService; -import org.openecomp.portalapp.portal.service.PortalAdminService; -import org.openecomp.portalapp.portal.service.UserService; -import org.openecomp.portalapp.portal.service.UserServiceImpl; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.OnboardingApp; -import org.openecomp.portalapp.util.EPUserUtils; - -public class AppsControllerExternalRequestTest extends MockitoTestSuite { - - @Mock - AdminRolesService adminRolesService; - - @Mock - EPAppService appService; - - @Mock - PortalAdminService portalAdminService; - - @Mock - UserService userService = new UserServiceImpl(); - - @InjectMocks - AppsControllerExternalRequest appsControllerExternalRequest = new AppsControllerExternalRequest(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - MockEPUser mockUser = new MockEPUser(); - @Mock - EPUserUtils ePUserUtils = new EPUserUtils(); - - @Test - public void postPortalAdminIfUSerNullTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Missing required field: email, loginId, or loginPwd"); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - EPUser user = mockUser.mockEPUser(); - user.setEmail("guestT@test.portal.onap.org"); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest - .postPortalAdmin(mockedRequest, mockedResponse, user); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - } - - @Test - public void postPortalAdminTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("java.lang.NullPointerException"); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - EPUser user = mockUser.mockEPUser(); - user.setEmail("guestT@test.portal.onap.org"); - user.setLoginPwd("pwd"); - user.setLoginId("Test"); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenThrow(nullPointerException); - PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest - .postPortalAdmin(mockedRequest, mockedResponse, user); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - } - - @Test - public void postPortalAdminCreateUserIfNotFoundTest() throws Exception { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - EPUser user = mockUser.mockEPUser(); - user.setEmail("guestT@test.portal.onap.org"); - user.setLoginPwd("pwd"); - user.setLoginId("Test"); - List expectedList = null; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList); - Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null); - PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest - .postPortalAdmin(mockedRequest, mockedResponse, user); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - } - - @Test - public void postPortalAdminCreateUserIfFoundTest() throws Exception { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - EPUser user = mockUser.mockEPUser(); - user.setEmail("guestT@test.portal.onap.org"); - user.setLoginPwd("pwd"); - user.setLoginId("Test"); - List expectedList = new ArrayList(); - expectedList.add(user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList); - Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest - .postPortalAdmin(mockedRequest, mockedResponse, user); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - } - - @Test - public void postPortalAdminCreateUserIfNotSuperAdminTest() throws Exception { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - EPUser user = mockUser.mockEPUser(); - user.setEmail("guestT@test.portal.onap.org"); - user.setLoginPwd("pwd"); - user.setLoginId("Test"); - List expectedList = new ArrayList(); - expectedList.add(user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList); - Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - - FieldsValidator expectedFieldValidator = new FieldsValidator(); - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(null); - expectedFieldValidator.setErrorCode(null); - Mockito.when(portalAdminService.createPortalAdmin(user.getOrgUserId())).thenReturn(expectedFieldValidator); - - PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest - .postPortalAdmin(mockedRequest, mockedResponse, user); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - } - - @Test - public void postPortalAdminCreateUserIfFieldValidatorErrorTest() throws Exception { - FieldsValidator expectedFieldValidator = new FieldsValidator(); - expectedFieldValidator.setHttpStatusCode((long) 500); - expectedFieldValidator.setFields(null); - expectedFieldValidator.setErrorCode(null); - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("FieldsValidator [httpStatusCode=500, errorCode=null, fields=null]"); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - EPUser user = mockUser.mockEPUser(); - user.setEmail("guestT@test.portal.onap.org"); - user.setLoginPwd("pwd"); - user.setLoginId("Test"); - List expectedList = new ArrayList(); - expectedList.add(user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList); - Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(portalAdminService.createPortalAdmin(user.getOrgUserId())).thenReturn(expectedFieldValidator); - PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest - .postPortalAdmin(mockedRequest, mockedResponse, user); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - } - - @Test - public void getOnboardAppExternalTest() { - EPApp epApp = new EPApp(); - Long appId = (long) 1; - Mockito.when(appService.getApp(appId)).thenReturn(epApp); - OnboardingApp expectedApp = new OnboardingApp(); - Mockito.doNothing().when(appService).createOnboardingFromApp(epApp, expectedApp); - OnboardingApp actualApp = appsControllerExternalRequest.getOnboardAppExternal(mockedRequest, mockedResponse, - appId); - assertEquals(expectedApp.getClass(), actualApp.getClass()); - } - - @Test - public void postOnboardAppExternalExceptionTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Unexpected field: id"); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - - OnboardingApp expectedOnboardingApp = new OnboardingApp(); - expectedOnboardingApp.id = (long) 1; - - PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest - .postOnboardAppExternal(mockedRequest, mockedResponse, expectedOnboardingApp); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - } - - @Test - public void postOnboardAppExternalTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage( - "Missing required field: name, url, restUrl, restrictedApp, isOpen, isEnabled, myLoginsAppOwner"); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - - OnboardingApp expectedOnboardingApp = new OnboardingApp(); - expectedOnboardingApp.id = null; - - PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest - .postOnboardAppExternal(mockedRequest, mockedResponse, expectedOnboardingApp); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - - } - - @Test - public void putOnboardAppExternalifAppNullTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Unexpected value for field: id"); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - Long appId = null; - OnboardingApp expectedOnboardingApp = new OnboardingApp(); - expectedOnboardingApp.id = null; - - PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest - .putOnboardAppExternal(mockedRequest, mockedResponse, appId, expectedOnboardingApp); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - } - - @Test - public void putOnboardAppExternalIfOnboardingAppDetailsNullTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage( - "Missing required field: name, url, restUrl, restrictedApp, isOpen, isEnabled, myLoginsAppOwner"); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - Long appId = (long) 1; - OnboardingApp expectedOnboardingApp = new OnboardingApp(); - expectedOnboardingApp.id = (long) 1; - PortalRestResponse actualPortalRestResponse = appsControllerExternalRequest - .putOnboardAppExternal(mockedRequest, mockedResponse, appId, expectedOnboardingApp); - assertEquals(actualPortalRestResponse, expectedportalRestResponse); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppsControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppsControllerTest.java deleted file mode 100644 index e5c30ed5..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AppsControllerTest.java +++ /dev/null @@ -1,951 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.*; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.AppsController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.AdminUserApplications; -import org.openecomp.portalapp.portal.domain.AppIdAndNameTransportModel; -import org.openecomp.portalapp.portal.domain.AppsResponse; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EcompApp; -import org.openecomp.portalapp.portal.domain.UserRole; -import org.openecomp.portalapp.portal.domain.UserRoles; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl; -import org.openecomp.portalapp.portal.service.EPAppCommonServiceImpl; -import org.openecomp.portalapp.portal.service.EPAppService; -import org.openecomp.portalapp.portal.service.EPLeftMenuService; -import org.openecomp.portalapp.portal.service.EPLeftMenuServiceImpl; -import org.openecomp.portalapp.portal.transport.EPAppsManualPreference; -import org.openecomp.portalapp.portal.transport.EPAppsSortPreference; -import org.openecomp.portalapp.portal.transport.EPDeleteAppsManualSortPref; -import org.openecomp.portalapp.portal.transport.EPWidgetsSortPreference; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.LocalRole; -import org.openecomp.portalapp.portal.transport.OnboardingApp; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.web.support.AppUtils; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; -import org.springframework.http.HttpEntity; -import org.springframework.http.MediaType; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({SystemProperties.class,AppUtils.class, EPUserUtils.class, MediaType.class}) -public class AppsControllerTest extends MockitoTestSuite{ - - @InjectMocks - AppsController appsController = new AppsController(); - - @Mock - AdminRolesService adminRolesService = new AdminRolesServiceImpl(); - - @Mock - EPAppService appService = new EPAppCommonServiceImpl(); - - @Mock - EPLeftMenuService leftMenuService = new EPLeftMenuServiceImpl(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Mock - EPUserUtils ePUserUtils = new EPUserUtils(); - - @Mock - AppUtils appUtils = new AppUtils(); - - MockEPUser mockUser = new MockEPUser(); - - @Test - public void getUserAppsTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedEcompApps = new ArrayList(); - - EcompApp ecompApp = new EcompApp(); - ecompApp.setId((long) 1); - ecompApp.setName("Test_app"); - ecompApp.setUrl("Test_URL"); - ecompApp.setUebKey("Test_key"); - ecompApp.setAlternateUrl("Test_alt_URL"); - expectedEcompApps.add(ecompApp); - List actualEcompApps = new ArrayList(); - Mockito.when(appService.transformAppsToEcompApps(appService.getUserApps(user))).thenReturn(expectedEcompApps); - actualEcompApps = appsController.getUserApps(mockedRequest, mockedResponse); - assertEquals(expectedEcompApps, actualEcompApps); - } - - @Test - public void getUserAppsNoUserTest() { - EPUser user = null; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(appService.transformAppsToEcompApps(appService.getUserApps(user))).thenReturn(null); - assertNull(appsController.getUserApps(mockedRequest, mockedResponse)); - - } - - @Test - public void getUserAppsExceptionTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(appService.transformAppsToEcompApps(appService.getUserApps(user))).thenThrow(nullPointerException); - assertNull(appsController.getUserApps(mockedRequest, mockedResponse)); - - } - - @Test - public void getPersUserAppsIfUserIsAdminTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedEcompApps = new ArrayList(); - - EcompApp ecompApp = new EcompApp(); - ecompApp.setId((long) 1); - ecompApp.setName("Test_app"); - ecompApp.setUrl("Test_URL"); - ecompApp.setUebKey("Test_key"); - ecompApp.setAlternateUrl("Test_alt_URL"); - expectedEcompApps.add(ecompApp); - List actualEcompApps = new ArrayList(); - - List expectedApps = new ArrayList(); - - EPApp app = new EPApp(); - - app.setName("Test"); - app.setImageUrl("test"); - app.setDescription("test"); - app.setNotes("test"); - app.setUrl("test"); - app.setId((long) 1); - app.setAppRestEndpoint("test"); - app.setAlternateUrl("test"); - app.setName("test"); - app.setMlAppName("test"); - app.setMlAppAdminId("test"); - app.setUsername("test"); - app.setAppPassword("test"); - app.setOpen(false); - app.setEnabled(false); - app.setUebKey("test"); - app.setUebSecret("test"); - app.setUebTopicName("test"); - app.setAppType(1); - - expectedApps.add(app); - - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.getPersAdminApps(user)).thenReturn(expectedApps); - - Mockito.when(appService.transformAppsToEcompApps(expectedApps)).thenReturn(expectedEcompApps); - actualEcompApps = appsController.getPersUserApps(mockedRequest, mockedResponse); - assertEquals(expectedEcompApps, actualEcompApps); - } - - @Test - public void getPersUserAppsIfUserNotAdminTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedEcompApps = new ArrayList(); - - EcompApp ecompApp = new EcompApp(); - ecompApp.setId((long) 1); - ecompApp.setName("Test_app"); - ecompApp.setUrl("Test_URL"); - ecompApp.setUebKey("Test_key"); - ecompApp.setAlternateUrl("Test_alt_URL"); - expectedEcompApps.add(ecompApp); - List actualEcompApps = new ArrayList(); - - List expectedApps = new ArrayList(); - - EPApp app = new EPApp(); - - app.setName("Test"); - app.setImageUrl("test"); - app.setDescription("test"); - app.setNotes("test"); - app.setUrl("test"); - app.setId((long) 1); - app.setAppRestEndpoint("test"); - app.setAlternateUrl("test"); - app.setName("test"); - app.setMlAppName("test"); - app.setMlAppAdminId("test"); - app.setUsername("test"); - app.setAppPassword("test"); - app.setOpen(false); - app.setEnabled(false); - app.setUebKey("test"); - app.setUebSecret("test"); - app.setUebTopicName("test"); - app.setAppType(1); - - expectedApps.add(app); - - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(appService.getPersUserApps(user)).thenReturn(expectedApps); - Mockito.when(appService.transformAppsToEcompApps(expectedApps)).thenReturn(expectedEcompApps); - actualEcompApps = appsController.getPersUserApps(mockedRequest, mockedResponse); - assertEquals(expectedEcompApps, actualEcompApps); - } - - @Test - public void getPersUserAppsIfUserNullTest() throws IOException { - EPUser user = null; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - assertNull(appsController.getPersUserApps(mockedRequest, mockedResponse)); - } - - @Test - public void getPersUserAppsExceptionTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.getPersAdminApps(user)).thenThrow(nullPointerException); - assertNull(appsController.getPersUserApps(mockedRequest, mockedResponse)); - } - - @Test - public void getAdminAppsIfNotAdminTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); - assertNull(appsController.getAdminApps(mockedRequest, mockedResponse)); - } - - @Test - public void getAdminAppsTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedAdminApps = new ArrayList(); - AppIdAndNameTransportModel appIdAndNameTransportModel = new AppIdAndNameTransportModel(); - appIdAndNameTransportModel.setId((long) 1); - appIdAndNameTransportModel.setName("Test_app"); - expectedAdminApps.add(appIdAndNameTransportModel); - List actualAdminApps = new ArrayList(); - Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(true); - Mockito.when(appService.getAdminApps(user)).thenReturn(expectedAdminApps); - actualAdminApps = appsController.getAdminApps(mockedRequest, mockedResponse); - assertEquals(actualAdminApps, expectedAdminApps); - - } - - @Test - public void getAdminAppsExceptionTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(true); - Mockito.when(appService.getAdminApps(user)).thenThrow(nullPointerException); - assertNull(appsController.getAdminApps(mockedRequest, mockedResponse)); - } - - @Test - public void getAppsForSuperAdminAndAccountAdminifOnlyAccountAdminTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); - assertNull(appsController.getAppsForSuperAdminAndAccountAdmin(mockedRequest, mockedResponse)); - } - - @Test - public void getAppsForSuperAdminAndAccountAdminTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedAdminApps = new ArrayList(); - AppIdAndNameTransportModel appIdAndNameTransportModel = new AppIdAndNameTransportModel(); - appIdAndNameTransportModel.setId((long) 1); - appIdAndNameTransportModel.setName("Test_app"); - expectedAdminApps.add(appIdAndNameTransportModel); - List actualAdminApps = new ArrayList(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(true); - Mockito.when(appService.getAppsForSuperAdminAndAccountAdmin(user)).thenReturn(expectedAdminApps); - actualAdminApps = appsController.getAppsForSuperAdminAndAccountAdmin(mockedRequest, mockedResponse); - assertEquals(actualAdminApps, expectedAdminApps); - - } - - @Test - public void getAppsForSuperAdminExceptionTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); - Mockito.when(appService.getAppsForSuperAdminAndAccountAdmin(user)).thenThrow(nullPointerException); - assertNull(appsController.getAppsForSuperAdminAndAccountAdmin(mockedRequest, mockedResponse)); - } - - @Test - public void putUserAppsSortingManualTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List ePAppsManualPreference = new ArrayList(); - FieldsValidator expectedFieldValidator = new FieldsValidator(); - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(null); - expectedFieldValidator.setErrorCode(null); - FieldsValidator actualFieldValidator = new FieldsValidator(); - Mockito.when(appService.saveAppsSortManual(ePAppsManualPreference, user)).thenReturn(expectedFieldValidator); - actualFieldValidator = appsController.putUserAppsSortingManual(mockedRequest, ePAppsManualPreference, - mockedResponse); - assertEquals(actualFieldValidator, expectedFieldValidator); - } - - @Test - public void putUserAppsSortingManualExceptionTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List ePAppsManualPreference = new ArrayList(); - Mockito.when(appService.saveAppsSortManual(ePAppsManualPreference, user)).thenThrow(nullPointerException); - assertNull(appsController.putUserAppsSortingManual(mockedRequest, ePAppsManualPreference, mockedResponse)); - } - - @Test - public void putUserWidgetsSortManualTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List ePWidgetsSortPreference = new ArrayList(); - FieldsValidator expectedFieldValidator = new FieldsValidator(); - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(null); - expectedFieldValidator.setErrorCode(null); - FieldsValidator actualFieldValidator = new FieldsValidator(); - Mockito.when(appService.saveWidgetsSortManual(ePWidgetsSortPreference, user)) - .thenReturn(expectedFieldValidator); - actualFieldValidator = appsController.putUserWidgetsSortManual(mockedRequest, ePWidgetsSortPreference, - mockedResponse); - assertEquals(actualFieldValidator, expectedFieldValidator); - } - - @Test - public void putUserWidgetsSortManualExceptionTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List ePAppsManualPreference = new ArrayList(); - Mockito.when(appService.saveAppsSortManual(ePAppsManualPreference, user)).thenThrow(nullPointerException); - assertNull(appsController.putUserAppsSortingManual(mockedRequest, ePAppsManualPreference, mockedResponse)); - } - - @Test - public void putUserWidgetsSortPrefTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List ePWidgetsSortPreference = new ArrayList(); - FieldsValidator expectedFieldValidator = new FieldsValidator(); - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(null); - expectedFieldValidator.setErrorCode(null); - FieldsValidator actualFieldValidator = new FieldsValidator(); - Mockito.when(appService.deleteUserWidgetSortPref(ePWidgetsSortPreference, user)) - .thenReturn(expectedFieldValidator); - actualFieldValidator = appsController.putUserWidgetsSortPref(mockedRequest, ePWidgetsSortPreference, - mockedResponse); - assertEquals(actualFieldValidator, expectedFieldValidator); - } - - @Test - public void putUserWidgetsSortPrefExceptionTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List ePWidgetsSortPreference = new ArrayList(); - Mockito.when(appService.deleteUserWidgetSortPref(ePWidgetsSortPreference, user)) - .thenThrow(nullPointerException); - assertNull(appsController.putUserWidgetsSortPref(mockedRequest, ePWidgetsSortPreference, mockedResponse)); - } - - @Test - public void deleteUserAppSortManualTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - EPDeleteAppsManualSortPref epDeleteAppsManualSortPref = new EPDeleteAppsManualSortPref(); - - FieldsValidator expectedFieldValidator = new FieldsValidator(); - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(null); - expectedFieldValidator.setErrorCode(null); - FieldsValidator actualFieldValidator = new FieldsValidator(); - Mockito.when(appService.deleteUserAppSortManual(epDeleteAppsManualSortPref, user)) - .thenReturn(expectedFieldValidator); - actualFieldValidator = appsController.deleteUserAppSortManual(mockedRequest, epDeleteAppsManualSortPref, - mockedResponse); - assertEquals(actualFieldValidator, expectedFieldValidator); - } - - @Test - public void deleteUserAppSortManualExceptionTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - EPDeleteAppsManualSortPref epDeleteAppsManualSortPref = new EPDeleteAppsManualSortPref(); - Mockito.when(appService.deleteUserAppSortManual(epDeleteAppsManualSortPref, user)) - .thenThrow(nullPointerException); - assertNull(appsController.deleteUserAppSortManual(mockedRequest, epDeleteAppsManualSortPref, mockedResponse)); - } - - @Test - public void putUserAppsSortingPreferenceTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - EPAppsSortPreference userAppsValue = new EPAppsSortPreference(); - - FieldsValidator expectedFieldValidator = new FieldsValidator(); - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(null); - expectedFieldValidator.setErrorCode(null); - FieldsValidator actualFieldValidator = new FieldsValidator(); - Mockito.when(appService.saveAppsSortPreference(userAppsValue, user)).thenReturn(expectedFieldValidator); - actualFieldValidator = appsController.putUserAppsSortingPreference(mockedRequest, userAppsValue, - mockedResponse); - assertEquals(actualFieldValidator, expectedFieldValidator); - } - - @Test - public void putUserAppsSortingPreferenceExceptionTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - EPAppsSortPreference userAppsValue = new EPAppsSortPreference(); - Mockito.when(appService.saveAppsSortPreference(userAppsValue, user)).thenThrow(nullPointerException); - assertNull(appsController.putUserAppsSortingPreference(mockedRequest, userAppsValue, mockedResponse)); - } - - @Test - public void getUserAppsSortTypePreferenceTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - String expectedUserSortPreference = "TEST_DECE"; - String actualUserSortPreference = new String(); - Mockito.when(appService.getUserAppsSortTypePreference(user)).thenReturn(expectedUserSortPreference); - actualUserSortPreference = appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse); - assertEquals(actualUserSortPreference, expectedUserSortPreference); - } - - @Test - public void getUserAppsSortTypePreferenceExceptionTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(appService.getUserAppsSortTypePreference(user)).thenThrow(nullPointerException); - assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); - } - - @Test - public void getUserAppsSortTypePreferenceIfUserNullTest() throws IOException { - EPUser user = null; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(appService.getUserAppsSortTypePreference(user)).thenThrow(nullPointerException); - assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); - } - - @Test - public void getAppsAdministratorsTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expecteAdminUserApplications = new ArrayList(); - List actualAdminUserApplications = new ArrayList(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.getAppsAdmins()).thenReturn(expecteAdminUserApplications); - actualAdminUserApplications = appsController.getAppsAdministrators(mockedRequest, mockedResponse); - assertEquals(expecteAdminUserApplications, actualAdminUserApplications); - } - - @Test - public void getAppsAdministratorsIfUserNotSuperAdminTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); - } - - @Test - public void getAppsAdministratorsExceptionTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.getAppsAdmins()).thenThrow(nullPointerException); - assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); - } - - @Test - public void getAppsTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedApps = new ArrayList(); - AppsResponse apps = new AppsResponse((long) 1, "test", true, true); - expectedApps.add(apps); - - List atualApps = new ArrayList(); - - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.getAllApps(false)).thenReturn(expectedApps); - atualApps = appsController.getApps(mockedRequest, mockedResponse); - assertEquals(expectedApps, atualApps); - } - - @Test - public void getAppsExceptionTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - assertNull(appsController.getApps(mockedRequest, mockedResponse)); - } - - @Test - public void getAppsIfUserNotSuperAdminTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.getAllApps(false)).thenThrow(nullPointerException); - assertNull(appsController.getApps(mockedRequest, mockedResponse)); - } - - @Test - public void getAllAppsTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedApps = new ArrayList(); - AppsResponse apps = new AppsResponse((long) 1, "test", true, true); - expectedApps.add(apps); - List atualApps = new ArrayList(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.getAllApps(true)).thenReturn(expectedApps); - atualApps = appsController.getAllApps(mockedRequest, mockedResponse); - assertEquals(expectedApps, atualApps); - } - - @Test - public void getAllAppsExceptionTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - assertNull(appsController.getAllApps(mockedRequest, mockedResponse)); - } - - @Test - public void getAllAppsIfUserNotSuperAdminTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.getAllApps(true)).thenThrow(nullPointerException); - assertNull(appsController.getAllApps(mockedRequest, mockedResponse)); - } - - @Test - public void getAppsFullListTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedEcompApps = new ArrayList(); - - EcompApp ecompApp = new EcompApp(); - ecompApp.setId((long) 1); - ecompApp.setName("Test_app"); - ecompApp.setUrl("Test_URL"); - ecompApp.setUebKey("Test_key"); - ecompApp.setAlternateUrl("Test_alt_URL"); - expectedEcompApps.add(ecompApp); - List actualEcompApps = new ArrayList(); - Mockito.when(appService.getEcompAppAppsFullList()).thenReturn(expectedEcompApps); - actualEcompApps = appsController.getAppsFullList(mockedRequest, mockedResponse); - assertEquals(expectedEcompApps, actualEcompApps); - } - -// @Test -// public void getAppsFullListNoUserTest() { -// EPUser user = null; -// Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); -// Mockito.when(appService.getEcompAppAppsFullList()).thenReturn(null); -// assertNull(appsController.getAppsFullList(mockedRequest, mockedResponse)); -// -// } - - @Test - public void getUserProfileTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - - UserRole userRole = new UserRole(); - userRole.setUser_Id((long) 1); - userRole.setOrgUserId("guest"); - userRole.setFirstName("Test_User_FirstName"); - userRole.setLastName("Test_User_LastName"); - userRole.setRoleId((long) 1); - userRole.setRoleName("test"); - - UserRoles unexpectedserAndRoles = new UserRoles(userRole); - unexpectedserAndRoles.setFirstName("Test_User_FirstName"); - unexpectedserAndRoles.setLastName("Test_User_LastName"); - unexpectedserAndRoles.setGuestSession(false); - unexpectedserAndRoles.setOrgUserId("guest"); - List roles = new ArrayList(); - roles.add("Test"); - unexpectedserAndRoles.setRoles(roles); - Mockito.when(appService.getUserProfileNormalized(user)).thenReturn(unexpectedserAndRoles); - UserRoles actualUserAndRoles = appsController.getUserProfile(mockedRequest, mockedResponse); - assertEquals(unexpectedserAndRoles, actualUserAndRoles); - } - - @Test - public void getUserProfileIfUserNullTest() throws IOException { - EPUser user = null; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(appService.getUserProfileNormalized(user)).thenReturn(null); - assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); - } - - @Test - public void getUserProfileExcpetionTest() throws IOException { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(appService.getUserProfileNormalized(user)).thenThrow(nullPointerException); - assertNull(appsController.getUserAppsSortTypePreference(mockedRequest, mockedResponse)); - } - - @Test - public void getAppRolesTest() { - List expectedRoleList = new ArrayList(); - LocalRole localRole = new LocalRole(); - localRole.setRoleId(1); - localRole.setRolename("test"); - expectedRoleList.add(localRole); - long appId = 1; - Mockito.when(appService.getAppRoles(appId)).thenReturn(expectedRoleList); - List actualRoleList = appsController.getAppRoles(mockedRequest, appId); - assertEquals(actualRoleList, expectedRoleList); - } - - @Test - public void getAppRolesExceptionTest() { - long appId = 1; - Mockito.when(appService.getAppRoles(appId)).thenThrow(nullPointerException); - assertNull(appsController.getAppRoles(mockedRequest, appId)); - } - - @Test - public void getOnboardingAppsTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedOnboardingApps = new ArrayList(); - OnboardingApp onboardingApp = new OnboardingApp(); - onboardingApp.setUebKey("test"); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.getOnboardingApps()).thenReturn(expectedOnboardingApps); - List actualOnboardingApps = appsController.getOnboardingApps(mockedRequest, mockedResponse); - assertEquals(expectedOnboardingApps, actualOnboardingApps); - } - - @Test - public void getOnboardingAppsifSuperAdiminTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - assertNull(appsController.getOnboardingApps(mockedRequest, mockedResponse)); - } - - @Test - public void getOnboardingAppsExceptionTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(!adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.getOnboardingApps()).thenThrow(nullPointerException); - assertNull(appsController.getOnboardingApps(mockedRequest, mockedResponse)); - } - - @Test - public void putOnboardingAppTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - OnboardingApp OnboardingApp = new OnboardingApp(); - FieldsValidator expectedFieldValidator = new FieldsValidator(); - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(null); - expectedFieldValidator.setErrorCode(null); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.modifyOnboardingApp(OnboardingApp, user)).thenReturn(expectedFieldValidator); - FieldsValidator actualFieldValidator = appsController.putOnboardingApp(mockedRequest, OnboardingApp, - mockedResponse); - assertEquals(expectedFieldValidator, actualFieldValidator); - } - - @Test - public void putOnboardingAppIfSuperAdminTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - FieldsValidator expectedFieldValidator = null; - OnboardingApp OnboardingApp = new OnboardingApp(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(appService.modifyOnboardingApp(OnboardingApp, user)).thenReturn(expectedFieldValidator); - assertNull(appsController.putOnboardingApp(mockedRequest, OnboardingApp, mockedResponse)); - } - - @Test - public void putOnboardingAppExceptionTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - OnboardingApp OnboardingApp = new OnboardingApp(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.modifyOnboardingApp(OnboardingApp, user)).thenThrow(nullPointerException); - assertNull(appsController.putOnboardingApp(mockedRequest, OnboardingApp, mockedResponse)); - } - - @Test - public void postOnboardingAppTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - OnboardingApp OnboardingApp = new OnboardingApp(); - FieldsValidator expectedFieldValidator = new FieldsValidator(); - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(null); - expectedFieldValidator.setErrorCode(null); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.addOnboardingApp(OnboardingApp, user)).thenReturn(expectedFieldValidator); - FieldsValidator actualFieldValidator = appsController.postOnboardingApp(mockedRequest, OnboardingApp, - mockedResponse); - assertEquals(expectedFieldValidator, actualFieldValidator); - } - - @Test - public void postOnboardingAppIfSuperAdminTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - FieldsValidator expectedFieldValidator = null; - OnboardingApp OnboardingApp = new OnboardingApp(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(appService.addOnboardingApp(OnboardingApp, user)).thenReturn(expectedFieldValidator); - assertNull(appsController.postOnboardingApp(mockedRequest, OnboardingApp, mockedResponse)); - } - - @Test - public void postOnboardingAppExceptionTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - OnboardingApp OnboardingApp = new OnboardingApp(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(appService.addOnboardingApp(OnboardingApp, user)).thenThrow(nullPointerException); - assertNull(appsController.postOnboardingApp(mockedRequest, OnboardingApp, mockedResponse)); - } - - @Test - public void deleteOnboardingAppTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - FieldsValidator expectedFieldValidator = new FieldsValidator(); - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(null); - expectedFieldValidator.setErrorCode(null); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - long appId = 1; - Mockito.when(appService.deleteOnboardingApp(user,appId )).thenReturn(expectedFieldValidator); - FieldsValidator actualFieldValidator = appsController.deleteOnboardingApp(mockedRequest,appId, - mockedResponse); - assertEquals(expectedFieldValidator, actualFieldValidator); - } - - @Test - public void deleteOnboardingAppIfSuperAdminTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - FieldsValidator expectedFieldValidator = null; - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - long appId = 1; - Mockito.when(appService.deleteOnboardingApp(user,appId)).thenReturn(expectedFieldValidator); - assertNull(appsController.deleteOnboardingApp(mockedRequest,appId,mockedResponse)); - } - - @Test - public void deleteOnboardingAppExceptionTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - long appId = 1; - Mockito.when(appService.deleteOnboardingApp(user,appId)).thenThrow(nullPointerException); - assertNull(appsController.deleteOnboardingApp(mockedRequest,appId,mockedResponse)); - } - - @Test - public void getLeftMenuItemsTest() - { - EPUser user = mockUser.mockEPUser(); - String menuList = "Test"; - PowerMockito.mockStatic(EPUserUtils.class); - PowerMockito.mockStatic(SystemProperties.class); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Set menuSet = new HashSet<>(); - menuSet.add(1); - Mockito.when(AppUtils.getSession(mockedRequest) - .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME))).thenReturn(menuSet); - Mockito.when(AppUtils.getSession(mockedRequest) - .getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME))).thenReturn(menuSet); - Mockito.when(leftMenuService.getLeftMenuItems(user, menuSet, menuSet)).thenReturn(menuList); - String response = appsController.getLeftMenuItems(mockedRequest, mockedResponse); - assertTrue(response.equals("Test")); - } - - @Test - public void getLeftMenuItemsExceptionTest() - { - EPUser user = mockUser.mockEPUser(); - String menuList = "Test"; - PowerMockito.mockStatic(EPUserUtils.class); - PowerMockito.mockStatic(SystemProperties.class); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Set menuSet = new HashSet<>(); - menuSet.add(1); - Mockito.when(AppUtils.getSession(mockedRequest) - .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME))).thenReturn(menuSet); - Mockito.when(AppUtils.getSession(mockedRequest) - .getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME))).thenReturn(menuSet); - Mockito.when(leftMenuService.getLeftMenuItems(user, menuSet, menuSet)).thenThrow(nullPointerException); - assertNull(appsController.getLeftMenuItems(mockedRequest, mockedResponse)); - } - - @Test - public void getAppThumbnailExceptionTest() - { - EPApp app = null; - assertNull(appsController.getAppThumbnail(mockedRequest, (long) 1, mockedResponse)); - } - - @Test - public void getAppThumbnailTest() - { - EPApp app = new EPApp(); - app.setName("Test"); - app.setImageUrl("test"); - app.setDescription("test"); - app.setNotes("test"); - app.setUrl("test"); - app.setId((long) 1); - app.setAppType(1); - app.setImageUrl("www.ecomp.com"); - app.setThumbnail(new byte[] {1, 6, 3}); - Mockito.when(appService.getApp((long) 1)).thenReturn(app); - HttpEntity response = appsController.getAppThumbnail(mockedRequest, (long) 1, mockedResponse); - assertEquals(response.getHeaders().getContentLength(), 3); - } - - @Test - public void getAppThumbnailForMediaTypePngTest() - { - - EPApp app = new EPApp(); - app.setName("Test"); - app.setImageUrl("test"); - app.setDescription("test"); - app.setNotes("test"); - app.setUrl("test"); - app.setId((long) 1); - app.setAppType(1); - app.setImageUrl("www.ecomp.png"); - app.setThumbnail(new byte[] {1, 6, 3}); - Mockito.when(appService.getApp((long) 1)).thenReturn(app); - PowerMockito.mockStatic(MediaType.class); - HttpEntity response = appsController.getAppThumbnail(mockedRequest, (long) 1, mockedResponse); - assertEquals(response.getHeaders().getContentLength(), 3); - } - - @Test - public void getUserAppsOrderBySortPrefIfUSerNullTest(){ - List listOfApps = new ArrayList(); - - EcompApp app = new EcompApp(); - listOfApps.add(app); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null); - assertNull(appsController.getUserAppsOrderBySortPref(mockedRequest, mockedResponse)); - } - - @Test - public void getUserAppsOrderBySortPrefTest(){ - List listOfApps = new ArrayList(); - - EcompApp app = new EcompApp(); - listOfApps.add(app); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(mockedRequest.getParameter("mparams")).thenReturn(""); - Mockito.when(appService.transformAppsToEcompApps(appService.getAppsOrderByName(user))).thenReturn(listOfApps); - List listOfActualApps = appsController.getUserAppsOrderBySortPref(mockedRequest, mockedResponse); - assertEquals(listOfActualApps.size(), 1); - } - - @Test - public void getUserAppsOrderBySortPrefIfusrSortPrefIsMTest(){ - List listOfApps = new ArrayList(); - - EcompApp app = new EcompApp(); - listOfApps.add(app); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(mockedRequest.getParameter("mparams")).thenReturn("M"); - Mockito.when(appService.transformAppsToEcompApps(appService.getAppsOrderByName(user))).thenReturn(listOfApps); - List listOfActualApps = appsController.getUserAppsOrderBySortPref(mockedRequest, mockedResponse); - assertEquals(listOfActualApps.size(), 1); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AuditLogControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AuditLogControllerTest.java deleted file mode 100644 index 68371d06..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/AuditLogControllerTest.java +++ /dev/null @@ -1,139 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.AuditLogController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.service.AuditService; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest(EPUserUtils.class) -public class AuditLogControllerTest { - - - @Mock - AuditService auditService; - - @InjectMocks - AuditLogController auditLogController = new AuditLogController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - MockEPUser mockUser = new MockEPUser(); - @Test - public void auditLogTest() - { - PowerMockito.mockStatic(EPUserUtils.class); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(EPUserUtils.getUserId(mockedRequest)).thenReturn((int)1); - auditLogController.auditLog(mockedRequest, "1", "app", "test"); - } - - @Test - public void auditLogTabTest() - { - PowerMockito.mockStatic(EPUserUtils.class); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(EPUserUtils.getUserId(mockedRequest)).thenReturn((int)1); - auditLogController.auditLog(mockedRequest, "1", "tab", "test"); - } - - @Test - public void auditLogfunctionalTest() - { - PowerMockito.mockStatic(EPUserUtils.class); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(EPUserUtils.getUserId(mockedRequest)).thenReturn((int)1); - auditLogController.auditLog(mockedRequest, "1", "functional", "test"); - } - - @Test - public void auditLogleftMenuTest() - { - PowerMockito.mockStatic(EPUserUtils.class); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(EPUserUtils.getUserId(mockedRequest)).thenReturn((int)1); - auditLogController.auditLog(mockedRequest, "1", "leftMenu", "test"); - } - - @Test(expected = NumberFormatException.class) - public void auditLogExceptionTest() - { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(EPUserUtils.getUserId(mockedRequest)).thenReturn((int)1); - auditLogController.auditLog(mockedRequest, "1", "app", "test"); - } - - @Test - public void auditLogerrorTest() - { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenThrow(nullPointerException); - auditLogController.auditLog(mockedRequest, "1", "app", "test"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/BEPropertyReaderControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/BEPropertyReaderControllerTest.java deleted file mode 100644 index 41233c82..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/BEPropertyReaderControllerTest.java +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertTrue; - -import javax.servlet.http.HttpServletRequest; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.BEPropertyReaderController; -import org.openecomp.portalapp.portal.domain.BEProperty; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest(SystemProperties.class) -public class BEPropertyReaderControllerTest extends MockitoTestSuite { - - @InjectMocks - BEPropertyReaderController bEPropertyReaderController = new BEPropertyReaderController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - - NullPointerException nullPointerException = new NullPointerException(); - - @Test - public void readPropertyTest() { - String key = "DOMAIN_CLASS_LOCATION"; - BEProperty beProperty = new BEProperty("DOMAIN_CLASS_LOCATION", "domain_class_location"); - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("success"); - ecpectedPortalRestResponse.setResponse(beProperty); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); - PortalRestResponse actualPortalRestResponse = null; - PowerMockito.mockStatic(SystemProperties.class); - Mockito.when(SystemProperties.getProperty("DOMAIN_CLASS_LOCATION")).thenReturn("domain_class_location"); - actualPortalRestResponse = bEPropertyReaderController.readProperty(mockedRequest, key); - assertTrue(actualPortalRestResponse.equals(ecpectedPortalRestResponse)); - - } - - @Test - public void readPropertyExceptionTest() { - String key =null; - //BEProperty beProperty = new BEProperty("DOMAIN_CLASS_LOCATION", "domain_class_location"); - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("java.lang.NullPointerException"); - ecpectedPortalRestResponse.setResponse(null); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - PortalRestResponse actualPortalRestResponse = null; - PowerMockito.mockStatic(SystemProperties.class); - Mockito.when(new BEProperty(key, SystemProperties.getProperty(key))).thenThrow(nullPointerException); - actualPortalRestResponse = bEPropertyReaderController.readProperty(mockedRequest, key); - assertTrue(actualPortalRestResponse.equals(ecpectedPortalRestResponse)); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/BasicAuthAccountControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/BasicAuthAccountControllerTest.java deleted file mode 100644 index 5a27755a..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/BasicAuthAccountControllerTest.java +++ /dev/null @@ -1,301 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.BasicAuthAccountController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.BasicAuthCredentials; -import org.openecomp.portalapp.portal.domain.EPEndpoint; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl; -import org.openecomp.portalapp.portal.service.BasicAuthAccountService; -import org.openecomp.portalapp.portal.service.BasicAuthAccountServiceImpl; -import org.openecomp.portalapp.util.EPUserUtils; - -public class BasicAuthAccountControllerTest extends MockitoTestSuite { - - @Mock - BasicAuthAccountService basicAuthAccountService = new BasicAuthAccountServiceImpl(); - - @Mock - AdminRolesService adminRolesService = new AdminRolesServiceImpl(); - - @InjectMocks - BasicAuthAccountController basicAuthAccountController = new BasicAuthAccountController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Mock - EPUserUtils ePUserUtils = new EPUserUtils(); - - MockEPUser mockUser = new MockEPUser(); - - public BasicAuthCredentials basicAuthCredentials() { - BasicAuthCredentials basicAuthCredentials = new BasicAuthCredentials(); - - basicAuthCredentials.setId((long) 1); - basicAuthCredentials.setApplicationName("test"); - basicAuthCredentials.setUsername("Test"); - basicAuthCredentials.setPassword("Password"); - basicAuthCredentials.setIsActive("YES"); - - List endpoints = new ArrayList(); - - EPEndpoint ePEndpoint = new EPEndpoint(); - ePEndpoint.setId((long) 1); - ePEndpoint.setName("Test"); - endpoints.add(ePEndpoint); - basicAuthCredentials.setEndpoints(endpoints); - - return basicAuthCredentials; - - } - - @Test - public void createBasicAuthAccountTest() throws Exception { - BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); - - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage("SUCCESS"); - expectedResponse.setResponse(""); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedResponse.setStatus(portalRestStatusEnum.OK); - long accountd = 1; - - Mockito.when(basicAuthAccountService.saveBasicAuthAccount(basicAuthCredentials)).thenReturn(accountd); - - PortalRestResponse actualResponse = basicAuthAccountController.createBasicAuthAccount(mockedRequest, - mockedResponse, basicAuthCredentials); - assertEquals(actualResponse, expectedResponse); - } - - @Test - public void createBasicAuthAccountAdminTest() throws Exception { - BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage("Authorization Required"); - expectedResponse.setResponse("Admin Only Operation! "); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedResponse.setStatus(portalRestStatusEnum.ERROR); - - PortalRestResponse actualResponse = basicAuthAccountController.createBasicAuthAccount(mockedRequest, - mockedResponse, basicAuthCredentials); - assertEquals(actualResponse, expectedResponse); - } - - @Test - public void createBasicAuthAccountIfInputNullTest() throws Exception { - BasicAuthCredentials basicAuthCredentials = null; - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage("FAILURE"); - expectedResponse.setResponse("newBasicAuthAccount cannot be null or empty"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedResponse.setStatus(portalRestStatusEnum.ERROR); - PortalRestResponse actualResponse = basicAuthAccountController.createBasicAuthAccount(mockedRequest, - mockedResponse, basicAuthCredentials); - assertEquals(actualResponse, expectedResponse); - } - - @Test - public void getBasicAuthAccountTest() throws Exception { - PortalRestResponse> expectedPortalResponse = new PortalRestResponse>(); - List basicAuthCredentialsList = new ArrayList(); - BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); - basicAuthCredentialsList.add(basicAuthCredentials); - - expectedPortalResponse.setMessage("Success"); - expectedPortalResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedPortalResponse.setStatus(portalRestStatusEnum.OK); - - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(basicAuthAccountService.getAccountData()).thenReturn(null); - PortalRestResponse> actualResponse = basicAuthAccountController - .getBasicAuthAccount(mockedRequest, mockedResponse); - assertEquals(expectedPortalResponse, actualResponse); - } - - @Test - public void getBasicAuthAccountIfSuperAdminTest() throws Exception { - PortalRestResponse> expectedPortalResponse = new PortalRestResponse>(); - List basicAuthCredentialsList = new ArrayList(); - BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); - basicAuthCredentialsList.add(basicAuthCredentials); - - expectedPortalResponse.setMessage("UnAuthorized! Admin Only Operation"); - expectedPortalResponse.setResponse(new ArrayList<>()); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedPortalResponse.setStatus(portalRestStatusEnum.ERROR); - - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(basicAuthAccountService.getAccountData()).thenReturn(null); - PortalRestResponse> actualResponse = basicAuthAccountController - .getBasicAuthAccount(mockedRequest, mockedResponse); - assertEquals(expectedPortalResponse, actualResponse); - } - - @Test - public void updateAccountTest() throws Exception { - BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage("SUCCESS"); - expectedResponse.setResponse(""); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedResponse.setStatus(portalRestStatusEnum.OK); - long accountd = 1; - PortalRestResponse actualResponse = basicAuthAccountController.updateAccount(mockedRequest, - mockedResponse, accountd, basicAuthCredentials); - assertEquals(actualResponse, expectedResponse); - } - - @Test - public void updateAccountIfSuperAdminTest() throws Exception { - BasicAuthCredentials basicAuthCredentials = basicAuthCredentials(); - - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage("Authorization Required"); - expectedResponse.setResponse("Admin Only Operation! "); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedResponse.setStatus(portalRestStatusEnum.ERROR); - long accountd = 1; - PortalRestResponse actualResponse = basicAuthAccountController.updateAccount(mockedRequest, - mockedResponse, accountd, basicAuthCredentials); - assertEquals(actualResponse, expectedResponse); - } - - @Test - public void updateAccountIfInputNullTest() throws Exception { - BasicAuthCredentials basicAuthCredentials = null; - - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage("FAILURE"); - expectedResponse.setResponse("BasicAuthCredentials cannot be null or empty"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedResponse.setStatus(portalRestStatusEnum.ERROR); - long accountd = 1; - PortalRestResponse actualResponse = basicAuthAccountController.updateAccount(mockedRequest, - mockedResponse, accountd, basicAuthCredentials); - assertEquals(actualResponse, expectedResponse); - } - - @Test - public void deleteAccountTest() throws Exception { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage("SUCCESS"); - expectedResponse.setResponse(""); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedResponse.setStatus(portalRestStatusEnum.OK); - long accountd = 1; - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - PortalRestResponse actualResponse = basicAuthAccountController.deleteAccount(mockedRequest, - mockedResponse, accountd); - assertEquals(actualResponse, expectedResponse); - } - - @Test - public void deleteAccountIfNotSuperAdminTest() throws Exception { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage("Authorization Required"); - expectedResponse.setResponse("Admin Only Operation! "); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedResponse.setStatus(portalRestStatusEnum.ERROR); - long accountd = 1; - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - PortalRestResponse actualResponse = basicAuthAccountController.deleteAccount(mockedRequest, - mockedResponse, accountd); - System.out.println(actualResponse); - assertEquals(actualResponse, expectedResponse); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/CommonWidgetControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/CommonWidgetControllerTest.java deleted file mode 100644 index 51d871d9..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/CommonWidgetControllerTest.java +++ /dev/null @@ -1,121 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertTrue; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.CommonWidgetController; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.DashboardSearchService; -import org.openecomp.portalapp.portal.service.DashboardSearchServiceImpl; -import org.openecomp.portalapp.portal.transport.CommonWidgetMeta; - -public class CommonWidgetControllerTest { - - @Mock - DashboardSearchService dashboardSearchService = new DashboardSearchServiceImpl(); - - @InjectMocks - CommonWidgetController commonWidgetController = new CommonWidgetController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @SuppressWarnings("unchecked") - @Test - public void getWidgetDataTest() { - String resourceType = "Test"; - PortalRestResponse acutualPoratlRestResponse = null; - @SuppressWarnings("rawtypes") - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("Unexpected resource type Test"); - ecpectedPortalRestResponse.setResponse(null); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - acutualPoratlRestResponse = commonWidgetController.getWidgetData(mockedRequest, resourceType); - assertTrue(acutualPoratlRestResponse.equals(ecpectedPortalRestResponse)); - - } - - @SuppressWarnings("unchecked") - @Test - public void getWidgetDataTestNew() { - String resourceType = "EVENTS"; - PortalRestResponse acutualPoratlRestResponse = null; - @SuppressWarnings("rawtypes") - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("success"); - ecpectedPortalRestResponse.setResponse(null); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); - acutualPoratlRestResponse = commonWidgetController.getWidgetData(mockedRequest, resourceType); - assertTrue(acutualPoratlRestResponse.equals(ecpectedPortalRestResponse)); - - } - - @SuppressWarnings("unchecked") - @Test - public void getWidgetDataExceptionTest() { - String resourceType = "null"; - PortalRestResponse acutualPoratlRestResponse = null; - @SuppressWarnings("rawtypes") - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("Unexpected resource type null"); - ecpectedPortalRestResponse.setResponse(null); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - acutualPoratlRestResponse = commonWidgetController.getWidgetData(mockedRequest, resourceType); - assertTrue(acutualPoratlRestResponse.equals(ecpectedPortalRestResponse)); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ConsulClientControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ConsulClientControllerTest.java deleted file mode 100644 index d9e50467..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ConsulClientControllerTest.java +++ /dev/null @@ -1,179 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertTrue; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.ConsulClientController; -import org.openecomp.portalapp.portal.domain.BEProperty; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.ConsulHealthService; -import org.openecomp.portalapp.portal.service.ConsulHealthServiceImpl; - -import com.orbitz.consul.ConsulException; -import com.orbitz.consul.model.health.ServiceHealth; - -import io.searchbox.client.config.exception.NoServerConfiguredException; - -public class ConsulClientControllerTest { - - @Mock - ConsulHealthService consulHealthService = new ConsulHealthServiceImpl(); - - @InjectMocks - ConsulClientController consulClientController = new ConsulClientController(); - - NoServerConfiguredException noServerConfiguredException = new NoServerConfiguredException(null); - - String service = "Test"; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - ConsulException consulException = new ConsulException(nullPointerException); - - @Test - public void getServiceLocationTest() { - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("Success!"); - ecpectedPortalRestResponse.setResponse(null); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); - PortalRestResponse actualPortalRestRespone = new PortalRestResponse(); - actualPortalRestRespone = consulClientController.getServiceLocation(mockedRequest, mockedResponse, service); - assertTrue(actualPortalRestRespone.equals(ecpectedPortalRestResponse)); - } - - @Test - public void getServiceLocationExceptionTest() { - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("Warning!"); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.WARN); - PortalRestResponse actualPortalRestRespone = new PortalRestResponse(); - Mockito.when(consulHealthService.getServiceLocation(service, null)).thenThrow(noServerConfiguredException); - actualPortalRestRespone = consulClientController.getServiceLocation(mockedRequest, mockedResponse, service); - assertTrue(actualPortalRestRespone.getMessage().equals(ecpectedPortalRestResponse.getMessage())); - assertTrue(actualPortalRestRespone.getStatus().equals(ecpectedPortalRestResponse.getStatus())); - - } - - @Test - public void getServiceLocationExceptionConsulExceptionTest() { - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("Error!"); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - PortalRestResponse actualPortalRestRespone = new PortalRestResponse(); - Mockito.when(consulHealthService.getServiceLocation(service, null)).thenThrow(consulException); - actualPortalRestRespone = consulClientController.getServiceLocation(mockedRequest, mockedResponse, service); - assertTrue(actualPortalRestRespone.getMessage().equals(ecpectedPortalRestResponse.getMessage())); - assertTrue(actualPortalRestRespone.getStatus().equals(ecpectedPortalRestResponse.getStatus())); - } - - public PortalRestResponse> successResponse() { - PortalRestResponse> ecpectedPortalRestResponse = new PortalRestResponse>(); - List healths = new ArrayList(); - ecpectedPortalRestResponse.setMessage("Success!"); - ecpectedPortalRestResponse.setResponse(healths); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); - return ecpectedPortalRestResponse; - } - - public PortalRestResponse> errorResponse() { - PortalRestResponse> ecpectedPortalRestResponse = new PortalRestResponse>(); - List healths = new ArrayList(); - ecpectedPortalRestResponse.setMessage("Error!"); - ecpectedPortalRestResponse.setResponse(healths); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - return ecpectedPortalRestResponse; - } - - @Test - public void getAllHealthyNodesTest() { - PortalRestResponse> ecpectedPortalRestResponse = successResponse(); - PortalRestResponse> actualPortalRestRespone = new PortalRestResponse>(); - actualPortalRestRespone = consulClientController.getAllHealthyNodes(mockedRequest, mockedResponse, service); - assertTrue(actualPortalRestRespone.equals(ecpectedPortalRestResponse)); - - } - - @Test - public void getAllHealthyNodesExceptionTest() { - PortalRestResponse> ecpectedPortalRestResponse = errorResponse(); - PortalRestResponse> actualPortalRestRespone = new PortalRestResponse>(); - Mockito.when(consulHealthService.getAllHealthyNodes(service)).thenThrow(consulException); - actualPortalRestRespone = consulClientController.getAllHealthyNodes(mockedRequest, mockedResponse, service); - assertTrue(actualPortalRestRespone.equals(ecpectedPortalRestResponse)); - } - - @Test - public void getAllNodesTest() { - PortalRestResponse> ecpectedPortalRestResponse = successResponse(); - PortalRestResponse> actualPortalRestRespone = new PortalRestResponse>(); - actualPortalRestRespone = consulClientController.getAllNodes(mockedRequest, mockedResponse, service); - assertTrue(actualPortalRestRespone.equals(ecpectedPortalRestResponse)); - } - - @Test - public void getAllNodesExceptionTest() { - PortalRestResponse> ecpectedPortalRestResponse = errorResponse(); - PortalRestResponse> actualPortalRestRespone = new PortalRestResponse>(); - Mockito.when(consulHealthService.getAllNodes(service)).thenThrow(consulException); - actualPortalRestRespone = consulClientController.getAllNodes(mockedRequest, mockedResponse, service); - assertTrue(actualPortalRestRespone.equals(ecpectedPortalRestResponse)); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/DashboardControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/DashboardControllerTest.java deleted file mode 100644 index 0e8b74d8..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/DashboardControllerTest.java +++ /dev/null @@ -1,463 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.*; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.DashboardController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.DashboardSearchService; -import org.openecomp.portalapp.portal.service.DashboardSearchServiceImpl; -import org.openecomp.portalapp.portal.transport.CommonWidget; -import org.openecomp.portalapp.portal.transport.CommonWidgetMeta; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.domain.support.CollaborateList; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - - -@RunWith(PowerMockRunner.class) -@PrepareForTest({EPUserUtils.class, CollaborateList.class, SystemProperties.class, EPCommonSystemProperties.class}) -public class DashboardControllerTest { - - @Mock - DashboardSearchService searchService = new DashboardSearchServiceImpl(); - - @InjectMocks - DashboardController dashboardController = new DashboardController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - - NullPointerException nullPointerException = new NullPointerException(); - - MockEPUser mockUser = new MockEPUser(); - - public CommonWidgetMeta mockCommonWidgetMeta() { - CommonWidgetMeta commonWidgetMeta= new CommonWidgetMeta(); - List widgetList = new ArrayList<>(); - CommonWidget commonWidget = new CommonWidget(); - commonWidget.setId((long) 1); - commonWidget.setCategory("test"); - commonWidget.setHref("testhref"); - commonWidget.setTitle("testTitle"); - commonWidget.setContent("testcontent"); - commonWidget.setEventDate("testDate"); - commonWidget.setSortOrder(1); - widgetList.add(commonWidget); - commonWidgetMeta.setItems(widgetList); - - return commonWidgetMeta; - } - - public CommonWidget mockCommonWidget() { - - CommonWidget commonWidget = new CommonWidget(); - commonWidget.setId((long) 1); - commonWidget.setCategory("test"); - commonWidget.setHref("testhref"); - commonWidget.setTitle("testTitle"); - commonWidget.setContent("testcontent"); - commonWidget.setEventDate("testDate"); - commonWidget.setSortOrder(1); - - return commonWidget; - } - - - @Test - public void getWidgetDataTest() throws IOException { - - String resourceType = null; - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.ERROR); - expectedData.setMessage("Unexpected resource type null"); - expectedData.setResponse(null); - - PortalRestResponse actualResponse = dashboardController.getWidgetData(mockedRequest, resourceType); - assertEquals(expectedData,actualResponse); - } - - @Test - public void getWidgetDataWithValidResourceTest() throws IOException { - String resourceType = "EVENTS"; - CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta(); - commonWidgetMeta.setCategory(null); - - Mockito.when(searchService.getWidgetData(resourceType)).thenReturn(commonWidgetMeta); - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.OK); - expectedData.setMessage("success"); - expectedData.setResponse(commonWidgetMeta); - - PortalRestResponse actualResponse = dashboardController.getWidgetData(mockedRequest, resourceType); - System.out.println(actualResponse); - assertEquals(expectedData,actualResponse); - } - - @Test - public void saveWidgetDataBulkNullTest() throws IOException { - CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta(); - commonWidgetMeta.setCategory(null); - - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.ERROR); - expectedData.setMessage("ERROR"); - expectedData.setResponse("Category cannot be null or empty"); - - PortalRestResponse actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta); - assertEquals(expectedData,actualResponse); - } - - @Test - public void saveWidgetUnexpectedDataBulkTest() throws IOException { - CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta(); - commonWidgetMeta.setCategory("Unexpected Data"); - - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.ERROR); - expectedData.setMessage("Unexpected resource type Unexpected Data"); - expectedData.setResponse(null); - - PortalRestResponse actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta); - assertEquals(expectedData,actualResponse); - - } - - @Test - public void saveWidgetInvalidDataBulkTest() throws IOException { - CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta(); - commonWidgetMeta.setCategory("EVENTS"); - - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.ERROR); - expectedData.setMessage("Invalid category: test"); - expectedData.setResponse(null); - - PortalRestResponse actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta); - assertEquals(expectedData,actualResponse); - } - - @Test - public void saveWidgetDataBulkTest() throws IOException { - - List widgetList = new ArrayList<>(); - CommonWidget commonWidget = new CommonWidget("EVENTS", "http://test.com", "testTitle", "testcontent", "2017-07-01", 1); - widgetList.add(commonWidget); - CommonWidgetMeta commonWidgetMeta= new CommonWidgetMeta("EVENTS", widgetList); - - - - /* commonWidgetMeta.setItems(widgetList); - - commonWidgetMeta.setCategory("EVENTS");*/ - - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.OK); - expectedData.setMessage("success"); - expectedData.setResponse("success"); - - Mockito.when(searchService.saveWidgetDataBulk(commonWidgetMeta)).thenReturn("success"); - - PortalRestResponse actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta); - assertEquals(expectedData,actualResponse); - } - - @Test - public void saveWidgetDataNullTest() throws IOException { - - CommonWidget commonWidget = mockCommonWidget(); - commonWidget.setId((long)1); - commonWidget.setContent("test"); - commonWidget.setCategory(null); - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.ERROR); - expectedData.setMessage("ERROR"); - expectedData.setResponse("Category cannot be null or empty"); - - PortalRestResponse actualResponse = dashboardController.saveWidgetData(commonWidget); - assertEquals(expectedData,actualResponse); - - } - - @Test - public void saveWidgetDataErrorTest() throws IOException { - - CommonWidget commonWidget = mockCommonWidget(); - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.ERROR); - expectedData.setMessage("Invalid category: test"); - expectedData.setResponse(null); - - PortalRestResponse actualResponse = dashboardController.saveWidgetData(commonWidget); - assertEquals(expectedData,actualResponse); - } - - @Test - public void saveWidgetDataTest() throws IOException { - - CommonWidgetMeta commonWidgetMeta= new CommonWidgetMeta(); - List widgetList = new ArrayList<>(); - CommonWidget commonWidget = new CommonWidget(); - commonWidget.setId((long) 1); - commonWidget.setCategory("EVENTS"); - commonWidget.setHref("http://test.com"); - commonWidget.setTitle("testTitle"); - commonWidget.setContent("testcontent"); - commonWidget.setEventDate("2017-07-01"); - commonWidget.setSortOrder(1); - widgetList.add(commonWidget); - commonWidgetMeta.setItems(widgetList); - - commonWidgetMeta.setCategory("EVENTS"); - - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.OK); - expectedData.setMessage("success"); - expectedData.setResponse("success"); - - Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn("success"); - - PortalRestResponse actualResponse = dashboardController.saveWidgetData(commonWidget); - assertEquals(expectedData,actualResponse); - - } - - @Test - public void deleteWidgetDataTest() throws IOException { - - CommonWidget commonWidget = mockCommonWidget(); - - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.OK); - expectedData.setMessage("success"); - expectedData.setResponse(null); - - Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn("success"); - - PortalRestResponse actualResponse = dashboardController.deleteWidgetData(commonWidget); - assertEquals(expectedData,actualResponse); - - } - - @Test - public void getActiveUsersTest(){ - List activeUsers = new ArrayList<>(); - List expectedUsersList = new ArrayList<>(); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - String userId = user.getOrgUserId(); - Mockito.when(searchService.getRelatedUsers(userId)).thenReturn(activeUsers); - expectedUsersList= dashboardController.getActiveUsers(mockedRequest); - assertEquals(expectedUsersList, activeUsers); - } - - - @Test - public void getActiveUsersExceptionTest(){ - List activeUsers = new ArrayList<>(); - List expectedUsersList = new ArrayList<>(); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - String userId = user.getOrgUserId(); - Mockito.when(searchService.getRelatedUsers(userId)).thenThrow(nullPointerException); - expectedUsersList = dashboardController.getActiveUsers(mockedRequest); - assertEquals(expectedUsersList, activeUsers); - } - - @Test - public void getOnlineUserUpdateRateTest(){ - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.OK); - expectedData.setMessage("success"); - expectedData.setResponse("{onlineUserUpdateRate=1400000, onlineUserUpdateDuration=1400000}"); - - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_RATE)).thenReturn("1400"); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_DURATION)).thenReturn("1400"); - - PortalRestResponse> actualResponse = dashboardController.getOnlineUserUpdateRate(mockedRequest); - assertEquals(expectedData.getStatus(),actualResponse.getStatus()); - } - - @Test - public void getOnlineUserUpdateRateExceptionTest(){ - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.ERROR); - expectedData.setMessage("java.lang.NullPointerException"); - expectedData.setResponse(null); - - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_RATE)).thenThrow(nullPointerException); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_DURATION)).thenThrow(nullPointerException); - - PortalRestResponse> actualResponse = dashboardController.getOnlineUserUpdateRate(mockedRequest); - assertEquals(expectedData,actualResponse); - } - - @Test - public void getWindowWidthThresholdForRightMenuTest(){ - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.OK); - expectedData.setMessage("success"); - expectedData.setResponse("{windowWidth=1400}"); - - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_RIGHT_MENU)).thenReturn("1400"); - - PortalRestResponse> actualResponse = dashboardController.getWindowWidthThresholdForRightMenu(mockedRequest); - assertEquals(expectedData.getStatus(),actualResponse.getStatus()); - } - - @Test - public void getWindowWidthThresholdForRightMenuExceptionTest(){ - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.ERROR); - expectedData.setMessage("java.lang.NullPointerException"); - expectedData.setResponse(null); - - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_RIGHT_MENU)).thenThrow(nullPointerException); - - PortalRestResponse> actualResponse = dashboardController.getWindowWidthThresholdForRightMenu(mockedRequest); - assertEquals(expectedData,actualResponse); - } - - @Test - public void getWindowWidthThresholdForLeftMenuTest(){ - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.OK); - expectedData.setMessage("success"); - expectedData.setResponse("{windowWidth=1400}"); - - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_LEFT_MENU)).thenReturn("1400"); - - PortalRestResponse> actualResponse = dashboardController.getWindowWidthThresholdForLeftMenu(mockedRequest); - assertEquals(expectedData.getStatus(),actualResponse.getStatus()); - } - - @Test - public void getWindowWidthThresholdForLeftMenuExceptionTest(){ - PortalRestResponse expectedData = new PortalRestResponse(); - expectedData.setStatus(PortalRestStatusEnum.ERROR); - expectedData.setMessage("java.lang.NullPointerException"); - expectedData.setResponse(null); - - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_LEFT_MENU)).thenThrow(nullPointerException); - - PortalRestResponse> actualResponse = dashboardController.getWindowWidthThresholdForLeftMenu(mockedRequest); - assertEquals(expectedData,actualResponse); - } - - @Test - public void getActiveUsersNullTest(){ - PortalRestResponse> expectedData = new PortalRestResponse>(); - expectedData.setStatus(PortalRestStatusEnum.ERROR); - expectedData.setMessage("User object is null? - check logs"); - expectedData.setResponse(new ArrayList<>()); - - PortalRestResponse> actualResponse = dashboardController.activeUsers(mockedRequest); - assertEquals(expectedData,actualResponse); - } - - @Test - public void activeUsersTest(){ - EPUser user = mockUser.mockEPUser(); - PortalRestResponse> expectedData = new PortalRestResponse>(); - expectedData.setStatus(PortalRestStatusEnum.OK); - expectedData.setMessage("success"); - expectedData.setResponse(new ArrayList<>()); - PowerMockito.mockStatic(EPUserUtils.class); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - PortalRestResponse> actualResponse = dashboardController.activeUsers(mockedRequest); - assertEquals(expectedData,actualResponse); - } - - @Test - public void activeUsersExceptionTest(){ - EPUser user = mockUser.mockEPUser(); - user.setLoginId("test"); - PortalRestResponse> expectedData = new PortalRestResponse>(); - expectedData.setStatus(PortalRestStatusEnum.ERROR); - expectedData.setMessage("null - check logs."); - expectedData.setResponse(null); - - PowerMockito.mockStatic(EPUserUtils.class); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(searchService.getRelatedUsers(user.getLoginId())).thenThrow(nullPointerException); - PortalRestResponse> actualResponse = dashboardController.activeUsers(mockedRequest); - assertTrue(actualResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/DashboardSearchResultControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/DashboardSearchResultControllerTest.java deleted file mode 100644 index 9ac81b6c..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/DashboardSearchResultControllerTest.java +++ /dev/null @@ -1,403 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.DashboardSearchResultController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.ecomp.model.SearchResultItem; -import org.openecomp.portalapp.portal.service.DashboardSearchService; -import org.openecomp.portalapp.portal.service.DashboardSearchServiceImpl; -import org.openecomp.portalapp.portal.transport.CommonWidget; -import org.openecomp.portalapp.portal.transport.CommonWidgetMeta; -import org.openecomp.portalapp.util.EPUserUtils; - -public class DashboardSearchResultControllerTest { - - @Mock - DashboardSearchService searchService = new DashboardSearchServiceImpl(); - - @InjectMocks - DashboardSearchResultController dashboardSearchResultController = new DashboardSearchResultController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Mock - EPUserUtils ePUserUtils = new EPUserUtils(); - - MockEPUser mockUser = new MockEPUser(); - - @Test - public void getWidgetDataTest() { - String resourceType = "test"; - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("success"); - ecpectedPortalRestResponse.setResponse(null); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); - Mockito.when(searchService.getWidgetData(resourceType)).thenReturn(null); - PortalRestResponse acutualPoratlRestResponse = dashboardSearchResultController - .getWidgetData(mockedRequest, resourceType); - assertEquals(acutualPoratlRestResponse, ecpectedPortalRestResponse); - - } - - @Test - public void saveWidgetDataBulkTest() { - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("success"); - ecpectedPortalRestResponse.setResponse(null); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); - - CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta(); - commonWidgetMeta.setCategory("test"); - - List commonWidgetList = new ArrayList(); - CommonWidget commonWidget = new CommonWidget(); - commonWidget.setId((long) 1); - commonWidget.setCategory("test"); - commonWidget.setHref("test_href"); - commonWidget.setTitle("test_title"); - commonWidget.setContent("test_content"); - commonWidget.setEventDate(null); - commonWidget.setSortOrder(1); - - commonWidgetList.add(commonWidget); - - commonWidgetMeta.setItems(commonWidgetList); - - Mockito.when(searchService.saveWidgetDataBulk(commonWidgetMeta)).thenReturn(null); - - PortalRestResponse actualPortalRestResponse = dashboardSearchResultController - .saveWidgetDataBulk(commonWidgetMeta); - assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); - } - - @Test - public void saveWidgetDataBulkIfCategoryNullTest() { - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("java.text.ParseException: Unparseable date: \"1\""); - ecpectedPortalRestResponse.setResponse(null); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - - CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta(); - commonWidgetMeta.setCategory("test"); - - List commonWidgetList = new ArrayList(); - CommonWidget commonWidget = new CommonWidget(); - commonWidget.setId(null); - commonWidget.setCategory(null); - commonWidget.setHref(null); - commonWidget.setTitle(null); - commonWidget.setContent("test_content"); - commonWidget.setEventDate("1"); - commonWidget.setSortOrder(1); - commonWidgetList.add(commonWidget); - commonWidgetMeta.setItems(commonWidgetList); - - Mockito.when(searchService.saveWidgetDataBulk(commonWidgetMeta)).thenReturn(null); - - PortalRestResponse actualPortalRestResponse = dashboardSearchResultController - .saveWidgetDataBulk(commonWidgetMeta); - assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); - } - - @Test - public void saveWidgetDataTest() { - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("success"); - ecpectedPortalRestResponse.setResponse(null); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); - CommonWidget commonWidget = new CommonWidget(); - commonWidget.setId((long) 1); - commonWidget.setCategory("test"); - commonWidget.setHref("test_href"); - commonWidget.setTitle("test_title"); - commonWidget.setContent("test_content"); - commonWidget.setEventDate(null); - commonWidget.setSortOrder(1); - - Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn(null); - - PortalRestResponse actualPortalRestResponse = dashboardSearchResultController - .saveWidgetData(commonWidget); - assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); - - } - - @Test - public void saveWidgetDataExceptionTest() { - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("ERROR"); - ecpectedPortalRestResponse.setResponse("Cateogry cannot be null or empty"); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - CommonWidget commonWidget = new CommonWidget(); - commonWidget.setId((long) 1); - commonWidget.setCategory(""); - commonWidget.setHref("test_href"); - commonWidget.setTitle("test_title"); - commonWidget.setContent("test_content"); - commonWidget.setEventDate(null); - commonWidget.setSortOrder(1); - - Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn(null); - - PortalRestResponse actualPortalRestResponse = dashboardSearchResultController - .saveWidgetData(commonWidget); - assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); - - } - - @Test - public void saveWidgetDataDateErrorTest() { - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("java.text.ParseException: Unparseable date: \"1\""); - ecpectedPortalRestResponse.setResponse(null); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - CommonWidget commonWidget = new CommonWidget(); - commonWidget.setId((long) 1); - commonWidget.setCategory("test"); - commonWidget.setHref("test_href"); - commonWidget.setTitle("test_title"); - commonWidget.setContent("test_content"); - commonWidget.setEventDate("1"); - commonWidget.setSortOrder(1); - - Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn(null); - - PortalRestResponse actualPortalRestResponse = dashboardSearchResultController - .saveWidgetData(commonWidget); - assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); - - } - - public void deleteWidgetDataTest() { - PortalRestResponse ecpectedPortalRestResponse = new PortalRestResponse(); - ecpectedPortalRestResponse.setMessage("success"); - ecpectedPortalRestResponse.setResponse(null); - ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); - CommonWidget commonWidget = new CommonWidget(); - commonWidget.setId((long) 1); - commonWidget.setCategory("test"); - commonWidget.setHref("test_href"); - commonWidget.setTitle("test_title"); - commonWidget.setContent("test_content"); - commonWidget.setEventDate(null); - commonWidget.setSortOrder(1); - Mockito.when(searchService.deleteWidgetData(commonWidget)).thenReturn(null); - - PortalRestResponse actualPortalRestResponse = dashboardSearchResultController - .deleteWidgetData(commonWidget); - System.out.println(actualPortalRestResponse); - assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse); - } - - @Test - public void searchPortalIfUserIsNull() { - EPUser user = null; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - String searchString = "test"; - - PortalRestResponse>> expectedResult = new PortalRestResponse>>(); - expectedResult.setMessage("searchPortal: User object is null? - check logs"); - expectedResult.setResponse(new HashMap>()); - expectedResult.setStatus(PortalRestStatusEnum.ERROR); - PortalRestResponse>> actualResult = dashboardSearchResultController - .searchPortal(mockedRequest, searchString); - assertEquals(expectedResult, actualResult); - } - - @Test - public void searchPortalIfSearchStringNullTest() { - EPUser user = mockUser.mockEPUser(); - ; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - String searchString = null; - - PortalRestResponse>> expectedResult = new PortalRestResponse>>(); - expectedResult.setMessage("searchPortal: String string is null"); - expectedResult.setResponse(new HashMap>()); - expectedResult.setStatus(PortalRestStatusEnum.ERROR); - - PortalRestResponse>> actualResult = dashboardSearchResultController - .searchPortal(mockedRequest, searchString); - assertEquals(expectedResult, actualResult); - } - - @Test - public void searchPortalIfSearchTest() { - EPUser user = mockUser.mockEPUser(); - ; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - String searchString = "test"; - List searchResultItemList = new ArrayList(); - SearchResultItem searchResultItem = new SearchResultItem(); - - searchResultItem.setId((long) 1); - searchResultItem.setCategory("test"); - searchResultItem.setName("test_name"); - searchResultItem.setTarget("test_target"); - searchResultItem.setUuid("test_UUId"); - searchResultItemList.add(searchResultItem); - Map> expectedResultMap = new HashMap>(); - expectedResultMap.put(searchString, searchResultItemList); - - PortalRestResponse>> expectedResult = new PortalRestResponse>>(); - expectedResult.setMessage("success"); - expectedResult.setResponse(expectedResultMap); - expectedResult.setStatus(PortalRestStatusEnum.OK); - - Mockito.when(searchService.searchResults(user.getLoginId(), searchString)).thenReturn(expectedResultMap); - PortalRestResponse>> actualResult = dashboardSearchResultController - .searchPortal(mockedRequest, searchString); - assertEquals(expectedResult, actualResult); - - } - - @Test - public void searchPortalIfSearchExcptionTest() { - EPUser user = mockUser.mockEPUser(); - ; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - String searchString = "test"; - - PortalRestResponse>> expectedResult = new PortalRestResponse>>(); - expectedResult.setMessage("null - check logs."); - expectedResult.setResponse(new HashMap>()); - expectedResult.setStatus(PortalRestStatusEnum.ERROR); - - Mockito.when(searchService.searchResults(user.getLoginId(), searchString)).thenThrow(nullPointerException); - PortalRestResponse>> actualResult = dashboardSearchResultController - .searchPortal(mockedRequest, searchString); - assertEquals(expectedResult, actualResult); - } - - @Test - public void getActiveUsersTest() { - List expectedActiveUsers = new ArrayList(); - EPUser user = mockUser.mockEPUser(); - ; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - String userId = user.getOrgUserId(); - Mockito.when(searchService.getRelatedUsers(userId)).thenReturn(expectedActiveUsers); - List actualOnlineUsers = dashboardSearchResultController.getActiveUsers(mockedRequest); - assertEquals(expectedActiveUsers, actualOnlineUsers); - - } - - @Test - public void getActiveUsersExceptionTest() { - List expectedActiveUsers = new ArrayList(); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - String userId = user.getOrgUserId(); - Mockito.when(searchService.getRelatedUsers(userId)).thenThrow(nullPointerException); - List actualOnlineUsers = dashboardSearchResultController.getActiveUsers(mockedRequest); - assertEquals(expectedActiveUsers, actualOnlineUsers); - - } - - @Test - public void activeUsersTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - PortalRestResponse> expectedResult = new PortalRestResponse>(); - expectedResult.setMessage("success"); - expectedResult.setResponse(new ArrayList<>()); - expectedResult.setStatus(PortalRestStatusEnum.OK); - PortalRestResponse> actualResult = dashboardSearchResultController.activeUsers(mockedRequest); - - assertEquals(actualResult, expectedResult); - - } - - @Test - public void activeUsersIfUserNullTest() { - EPUser user = null; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - PortalRestResponse> expectedResult = new PortalRestResponse>(); - expectedResult.setMessage("User object is null? - check logs"); - expectedResult.setResponse(new ArrayList<>()); - expectedResult.setStatus(PortalRestStatusEnum.ERROR); - PortalRestResponse> actualResult = dashboardSearchResultController.activeUsers(mockedRequest); - assertEquals(actualResult, expectedResult); - - } - - @Test - public void activeUsersExceptionTest() { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - PortalRestResponse> expectedResult = new PortalRestResponse>(); - expectedResult.setMessage("null - check logs."); - expectedResult.setResponse(new ArrayList<>()); - expectedResult.setStatus(PortalRestStatusEnum.ERROR); - Mockito.when(searchService.getRelatedUsers(user.getLoginId())).thenThrow(nullPointerException); - PortalRestResponse> actualResult = dashboardSearchResultController.activeUsers(mockedRequest); - assertEquals(actualResult, expectedResult); - - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/EPFusionBaseControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/EPFusionBaseControllerTest.java deleted file mode 100644 index ef857d0d..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/EPFusionBaseControllerTest.java +++ /dev/null @@ -1,151 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.*; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.controller.EPFusionBaseController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.service.DashboardSearchService; -import org.openecomp.portalapp.portal.service.DashboardSearchServiceImpl; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.domain.MenuData; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({EPUserUtils.class, SystemProperties.class, EPCommonSystemProperties.class, EcompPortalUtils.class}) -public class EPFusionBaseControllerTest { - - @Mock - DashboardSearchService searchService = new DashboardSearchServiceImpl(); - - @InjectMocks - EPFusionBaseController epFusionBaseController = new EPFusionBaseController() { - }; - - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - - NullPointerException nullPointerException = new NullPointerException(); - - MockEPUser mockUser = new MockEPUser(); - - @Test - public void messagesExceptionTest(){ - Map expectedData = new HashMap(); - Map actualData = null; - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - PowerMockito.mockStatic(EcompPortalUtils.class); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME)).thenReturn("test"); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Set menuResult = null; - HttpSession session = mockedRequest.getSession(); - Mockito.when(session - .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME))).thenReturn(menuResult); - actualData = epFusionBaseController.messages(mockedRequest); - assertEquals(expectedData,actualData ); - System.out.println(); - - } - - @Test - public void messagesTest(){ - Map expectedData = new HashMap(); - Map actualData = null; - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - PowerMockito.mockStatic(EcompPortalUtils.class); - - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME)).thenReturn("test"); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Set menuResult = new HashSet<>(); - MenuData menuData= new MenuData(); - menuResult.add(menuData); - menuData.setChildMenus(menuResult); - HttpSession session = mockedRequest.getSession(); - Mockito.when(session - .getAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME))).thenReturn(menuResult); - actualData = epFusionBaseController.messages(mockedRequest); - assertEquals(actualData.size(), 2); - } - - @Test - public void isAccessibleTest() - { - assertTrue(epFusionBaseController.isAccessible()); - } - @Test - public void isRESTfulCallTest() - { - assertTrue(epFusionBaseController.isRESTfulCall()); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/EPRestrictedBaseControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/EPRestrictedBaseControllerTest.java deleted file mode 100644 index 6bcf2733..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/EPRestrictedBaseControllerTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.*; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.controller.EPRestrictedBaseController; - -public class EPRestrictedBaseControllerTest { - - @InjectMocks - EPRestrictedBaseController ePRestrictedBaseController = new EPRestrictedBaseController() ; - - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - @Test - public void isAccessibleTest() - { - assertFalse(ePRestrictedBaseController.isAccessible()); - } - - @Test - public void isRESTfulCallTest() - { - assertFalse(ePRestrictedBaseController.isRESTfulCall()); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ExternalAccessRolesControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ExternalAccessRolesControllerTest.java deleted file mode 100644 index e578844f..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ExternalAccessRolesControllerTest.java +++ /dev/null @@ -1,569 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.CentralRoleFunction; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.service.ExternalAccessRolesService; -import org.openecomp.portalapp.portal.service.ExternalAccessRolesServiceImpl; -import org.openecomp.portalapp.portal.transport.CentralRole; -import org.openecomp.portalsdk.core.domain.AuditLog; -import org.openecomp.portalsdk.core.domain.Role; -import org.openecomp.portalsdk.core.restful.domain.EcompUser; -import org.springframework.http.HttpStatus; -import org.springframework.web.client.HttpClientErrorException; -public class ExternalAccessRolesControllerTest { - - @Mock - ExternalAccessRolesService externalAccessRolesService = new ExternalAccessRolesServiceImpl(); - - @InjectMocks - ExternalAccessRolesController externalAccessRolesController = new ExternalAccessRolesController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - @Mock - AuditLog auditLog = new AuditLog(); - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - HttpClientErrorException httpClientErrorException = new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Failed"); - - MockEPUser mockUser = new MockEPUser(); - String loginId = "guestT"; - String uebKey = "testUebKey"; - - @Test - public void getUserTest() throws Exception { - List userList = new ArrayList<>(); - Mockito.when(externalAccessRolesService.getUser(loginId)).thenReturn(userList); - assertNull(externalAccessRolesController.getUser(mockedRequest, mockedResponse, loginId)); - } - - @Test - public void getUserExceptionTest() throws Exception { - Mockito.when(externalAccessRolesService.getUser(loginId)) - .thenThrow(nullPointerException); - assertNull(externalAccessRolesController.getUser(mockedRequest, mockedResponse, loginId)); - } - - public EPApp mockApp() - { - EPApp app = new EPApp(); - app.setName("Test"); - app.setImageUrl("test"); - app.setDescription("test"); - app.setNotes("test"); - app.setUrl("test"); - app.setId((long) 1); - app.setAppRestEndpoint("test"); - app.setAlternateUrl("test"); - app.setName("test"); - app.setMlAppName("test"); - app.setMlAppAdminId("test"); - app.setUsername("test"); - app.setAppPassword("test"); - app.setOpen(false); - app.setEnabled(false); - app.setUebKey("test"); - app.setUebSecret("test"); - app.setUebTopicName("test"); - app.setAppType(1); - return app; - } - - @Test - public void getRolesForAppTest() throws Exception { - List applicationList = new ArrayList(); - List answer = new ArrayList<>(); - EPApp app = mockApp(); - applicationList.add(app); - Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); - Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app); - Mockito.when(externalAccessRolesService.getRolesForApp(mockedRequest.getHeader(uebKey))).thenReturn(answer); - assertEquals(externalAccessRolesController.getRolesForApp(mockedRequest, mockedResponse), answer); - } - - @Test - public void getRolesForAppExceptionTest() throws Exception { - List applicationList = new ArrayList(); - List answer = new ArrayList<>(); - EPApp app = mockApp(); - applicationList.add(app); - Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); - Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app); - Mockito.when(externalAccessRolesService.getRolesForApp(mockedRequest.getHeader(uebKey))) - .thenThrow(httpClientErrorException); - assertNull(externalAccessRolesController.getRolesForApp(mockedRequest, mockedResponse)); - } - - @Test - public void getRoleFunctionsListTest() throws Exception { - List answer = new ArrayList<>(); - Mockito.when(externalAccessRolesService.getRoleFuncList(mockedRequest.getHeader(uebKey))).thenReturn(answer); - assertEquals(externalAccessRolesController.getRoleFunctionsList(mockedRequest, mockedResponse), answer); - } - - @Test - public void getRoleFunctionsListExceptionTest() throws Exception { - Mockito.when(externalAccessRolesService.getRoleFuncList(mockedRequest.getHeader(uebKey))) - .thenThrow(httpClientErrorException); - assertNull(externalAccessRolesController.getRoleFunctionsList(mockedRequest, mockedResponse)); - } - - @Test - public void getRoleInfoTest() throws Exception { - CentralRole answer = new CentralRole(); - long roleId = 1; - Mockito.when(externalAccessRolesService.getRoleInfo(roleId, mockedRequest.getHeader(uebKey))) - .thenReturn(answer); - assertEquals(externalAccessRolesController.getRoleInfo(mockedRequest, mockedResponse, roleId), answer); - } - - @Test - public void getRoleInfoExceptionTest() throws Exception { - long roleId = 1; - Mockito.when(externalAccessRolesService.getRoleInfo(roleId, mockedRequest.getHeader(uebKey))) - .thenThrow(httpClientErrorException); - assertNull(externalAccessRolesController.getRoleInfo(mockedRequest, mockedResponse, roleId)); - } - - @Test - public void getRoleFunctionTest() throws Exception { - CentralRoleFunction centralRoleFunction = new CentralRoleFunction(); - String code = "test_menu"; - Mockito.when(externalAccessRolesService.getRoleFunction(code, mockedRequest.getHeader(uebKey))) - .thenReturn(centralRoleFunction); - assertEquals(externalAccessRolesController.getRoleFunction(mockedRequest, mockedResponse, code), - centralRoleFunction); - } - - @Test - public void getRoleFunctionExceptionTest() throws Exception { - String code = "test_menu"; - Mockito.when(externalAccessRolesService.getRoleFunction(code, mockedRequest.getHeader(uebKey))) - .thenThrow(httpClientErrorException); - assertNull(externalAccessRolesController.getRoleFunction(mockedRequest, mockedResponse, code)); - } - - @Test - public void saveRoleFunctionIfIsIsNotDeletedTest() throws Exception { - List applicationList = new ArrayList(); - EPApp app = mockApp(); - applicationList.add(app); - Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse("Failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - String data = null; - CentralRoleFunction centralRoleFunction = new CentralRoleFunction(); - Mockito.when(externalAccessRolesService.saveCentralRoleFunction(centralRoleFunction, app)).thenReturn(false); - portalRestResponse = externalAccessRolesController.saveRoleFunction(mockedRequest, mockedResponse, data); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void saveRoleFunctionExceptionTest() throws Exception { - List applicationList = new ArrayList(); - EPApp app = mockApp(); - applicationList.add(app); - Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse("Failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - String data = null; - CentralRoleFunction centralRoleFunction = new CentralRoleFunction(); - Mockito.when(externalAccessRolesService.saveCentralRoleFunction(centralRoleFunction, app)).thenThrow(nullPointerException); - portalRestResponse = externalAccessRolesController.saveRoleFunction(mockedRequest, mockedResponse, data); - System.out.println(portalRestResponse); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void saveRoleFunctionTest() throws Exception { - List applicationList = new ArrayList(); - List answer = new ArrayList<>(); - EPApp app = mockApp(); - applicationList.add(app); - Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList); - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse("Failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - String data = null; - CentralRoleFunction centralRoleFunction = new CentralRoleFunction(); - Mockito.when(externalAccessRolesService.saveCentralRoleFunction(centralRoleFunction, app)).thenReturn(true); - portalRestResponse = externalAccessRolesController.saveRoleFunction(mockedRequest, mockedResponse, data); - System.out.println(portalRestResponse); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - -// @Test -// public void deleteRoleFunctionTest() throws Exception { -// PortalRestResponse portalRestResponse = null; -// PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); -// expectedportalRestResponse.setMessage("Successfully Deleted"); -// expectedportalRestResponse.setResponse("Success"); -// PortalRestStatusEnum portalRestStatusEnum = null; -// EPUser user = mockUser.mockEPUser(); -// EPApp app = mockApp(); -// expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); -// String code ="testNew"; -// Mockito.when(externalAccessRolesService.getUser(mockedRequest.getHeader("LOGIN_ID"))).thenReturn((List) user); -// Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("UEBKEY")).get(0)).thenReturn(app); -// Mockito.when(externalAccessRolesService.deleteCentralRoleFunction(code, app)).thenReturn(true); -// portalRestResponse = externalAccessRolesController.deleteRoleFunction(mockedRequest, mockedResponse, code); -// assertEquals(portalRestResponse, expectedportalRestResponse); -// } - - @Test - public void getActiveRolesTest() throws Exception { - List cenRole = new ArrayList<>(); - Mockito.when(externalAccessRolesService.getActiveRoles(mockedRequest.getHeader(uebKey))).thenReturn(cenRole); - List expectedCenRole = externalAccessRolesController.getActiveRoles(mockedRequest, mockedResponse); - assertEquals(expectedCenRole, cenRole); - } - - @Test - public void getActiveRolesExceptionTest() throws Exception { - Mockito.when(externalAccessRolesService.getActiveRoles(mockedRequest.getHeader(uebKey))) - .thenThrow(httpClientErrorException); - assertNull(externalAccessRolesController.getActiveRoles(mockedRequest, mockedResponse)); - } - - @Test - public void deleteDependcyRoleRecordExceptionTest() throws Exception { - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Failed to deleteDependencyRoleRecord"); - expectedportalRestResponse.setResponse("Failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - long roleId = 123; - portalRestResponse = externalAccessRolesController.deleteDependencyRoleRecord(mockedRequest, mockedResponse, roleId); - assertEquals(expectedportalRestResponse, portalRestResponse); - } - - @Test - public void bulkUploadFunctionsTest() throws Exception { - Integer result = 0; - Mockito.when(externalAccessRolesService.bulkUploadFunctions(mockedRequest.getHeader(uebKey))) - .thenReturn(result); - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Successfully added: 0"); - expectedportalRestResponse.setResponse("Success"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - portalRestResponse = externalAccessRolesController.bulkUploadFunctions(mockedRequest, mockedResponse); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void bulkUploadFunctionsExceptionTest() throws Exception { - Mockito.when(externalAccessRolesService.bulkUploadFunctions(mockedRequest.getHeader(uebKey))) - .thenThrow(httpClientErrorException); - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Failed to bulkUploadFunctions"); - expectedportalRestResponse.setResponse("Failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - portalRestResponse = externalAccessRolesController.bulkUploadFunctions(mockedRequest, mockedResponse); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void bulkUploadRolesTest() throws Exception { - Integer result = 0; - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Successfully added: 0"); - expectedportalRestResponse.setResponse("Success"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - Mockito.when(externalAccessRolesService.bulkUploadRoles(mockedRequest.getHeader(uebKey))).thenReturn(result); - portalRestResponse = externalAccessRolesController.bulkUploadRoles(mockedRequest, mockedResponse); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void bulkUploadRolesTestException() throws Exception { - Mockito.when(externalAccessRolesService.bulkUploadRoles(mockedRequest.getHeader(uebKey))) - .thenThrow(httpClientErrorException); - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Failed to bulkUploadRoles"); - expectedportalRestResponse.setResponse("Failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - portalRestResponse = externalAccessRolesController.bulkUploadRoles(mockedRequest, mockedResponse); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void bulkUploadRoleFunctionsTest() throws Exception { - Integer result = 0; - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Successfully added: 0"); - expectedportalRestResponse.setResponse("Success"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - Mockito.when(externalAccessRolesService.bulkUploadRolesFunctions(mockedRequest.getHeader(uebKey))) - .thenReturn(result); - portalRestResponse = externalAccessRolesController.bulkUploadRoleFunctions(mockedRequest, mockedResponse); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void bulkUploadRoleFunctionsException() throws Exception { - Mockito.when(externalAccessRolesService.bulkUploadRolesFunctions(mockedRequest.getHeader(uebKey))) - .thenThrow(httpClientErrorException); - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Failed to bulkUploadRoleFunctions"); - expectedportalRestResponse.setResponse("Failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - portalRestResponse = externalAccessRolesController.bulkUploadRoleFunctions(mockedRequest, mockedResponse); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void bulkUploadUserRolesTest() throws Exception { - Integer result = 0; - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Successfully added: 0"); - expectedportalRestResponse.setResponse("Success"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - Mockito.when(externalAccessRolesService.bulkUploadUserRoles(mockedRequest.getHeader(uebKey))) - .thenReturn(result); - portalRestResponse = externalAccessRolesController.bulkUploadUserRoles(mockedRequest, mockedResponse); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void bulkUploadUserRolesExceptionTest() throws Exception { - Mockito.when(externalAccessRolesService.bulkUploadUserRoles(mockedRequest.getHeader(uebKey))) - .thenThrow(httpClientErrorException); - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Failed to bulkUploadUserRoles"); - expectedportalRestResponse.setResponse("Failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - portalRestResponse = externalAccessRolesController.bulkUploadUserRoles(mockedRequest, mockedResponse); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void bulkUploadPartnerFunctionsTest() throws Exception { - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Successfully added"); - expectedportalRestResponse.setResponse("Success"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - portalRestResponse = externalAccessRolesController.bulkUploadPartnerFunctions(mockedRequest, mockedResponse, null); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - - @Test - public void bulkUploadPartnerRolesTest() throws Exception { - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Successfully added"); - expectedportalRestResponse.setResponse("Success"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - List upload = new ArrayList<>(); - portalRestResponse = externalAccessRolesController.bulkUploadPartnerRoles(mockedRequest, mockedResponse, - upload); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void bulkUploadPartnerRolesExceptionTest() throws Exception - { - ExternalAccessRolesService externalAccessRolesService = null; - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Successfully added"); - expectedportalRestResponse.setResponse("Success"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - List upload = new ArrayList<>(); - portalRestResponse = externalAccessRolesController.bulkUploadPartnerRoles(mockedRequest, mockedResponse, - upload); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void getMenuFunctionsTest() throws Exception { - List functionsList = new ArrayList<>(); - Mockito.when(externalAccessRolesService.getMenuFunctionsList(mockedRequest.getHeader(uebKey))) - .thenReturn(functionsList); - List expectedFunctionsList = externalAccessRolesController.getMenuFunctions(mockedRequest, - mockedResponse); - assertEquals(functionsList, expectedFunctionsList); - } - - @Test - public void getMenuFunctionsExceptionTest() throws Exception { - Mockito.when(externalAccessRolesService.getMenuFunctionsList(mockedRequest.getHeader(uebKey))) - .thenThrow(httpClientErrorException); - assertNull(externalAccessRolesController.getMenuFunctions(mockedRequest, mockedResponse)); - } - -// @Test -// public void getUsersOfApplicationTest() throws Exception { -// List users = new ArrayList<>(); -// Mockito.when(externalAccessRolesService.getAllUsers(mockedRequest.getHeader(uebKey))).thenReturn(users); -// List expectedusers = externalAccessRolesController.getUsersOfApplication(mockedRequest, mockedResponse); -// assertEquals(users, expectedusers); -// } - -// @Test -// public void getUsersOfApplicationExceptionTest() throws Exception { -// Mockito.when(externalAccessRolesService.getAllUsers(mockedRequest.getHeader(uebKey))) -// .thenThrow(httpClientErrorException); -// assertNull(externalAccessRolesController.getUsersOfApplication(mockedRequest, mockedResponse)); -// } - - @Test - public void saveRoleExceptionTest() throws Exception { - Role role = new Role(); - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Failed to saveRole"); - expectedportalRestResponse.setResponse("Failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - List upload = new ArrayList<>(); - portalRestResponse = externalAccessRolesController.saveRole(mockedRequest, mockedResponse,role); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void deleteRoleExceptionTest() throws Exception { - String role = "TestNew"; - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Failed to deleteRole for 'TestNew'"); - expectedportalRestResponse.setResponse("Failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - portalRestResponse = externalAccessRolesController.deleteRole(mockedRequest, mockedResponse,role); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - - @Test - public void bulkUploadPartnerRoleFunctionsTest() throws Exception { - PortalRestResponse portalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Successfully added"); - expectedportalRestResponse.setResponse("Success"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - List upload = new ArrayList<>(); - portalRestResponse = externalAccessRolesController.bulkUploadPartnerRoleFunctions(mockedRequest, mockedResponse,upload); - assertEquals(portalRestResponse, expectedportalRestResponse); - } - - @Test - public void getUsersOfApplicationTest() throws Exception - { - List users = new ArrayList<>(); - EcompUser user = new EcompUser(); - user.setOrgUserId("guestT"); - users.add(user); - Mockito.when(externalAccessRolesService.getAllAppUsers(mockedRequest.getHeader(uebKey))).thenReturn(users); - List expectedUsers = externalAccessRolesController.getUsersOfApplication(mockedRequest, mockedResponse); - assertEquals(expectedUsers, users); - } - - @Test(expected = Exception.class) - public void getUsersOfApplicationExceptionTest() throws Exception - { - List users = new ArrayList<>(); - EcompUser user = new EcompUser(); - user.setOrgUserId("guestT"); - users.add(user); - Mockito.when(externalAccessRolesService.getAllAppUsers(mockedRequest.getHeader(uebKey))).thenThrow(nullPointerException); - assertNull(externalAccessRolesController.getUsersOfApplication(mockedRequest, mockedResponse)); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ExternalAppsRestfulControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ExternalAppsRestfulControllerTest.java deleted file mode 100644 index 4bd3288a..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ExternalAppsRestfulControllerTest.java +++ /dev/null @@ -1,211 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.ExternalAppsRestfulController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl; -import org.openecomp.portalapp.portal.service.EPLoginService; -import org.openecomp.portalapp.portal.service.EPLoginServiceImpl; -import org.openecomp.portalapp.portal.service.EPRoleService; -import org.openecomp.portalapp.portal.service.EPRoleServiceImpl; -import org.openecomp.portalapp.portal.service.FunctionalMenuService; -import org.openecomp.portalapp.portal.service.FunctionalMenuServiceImpl; -import org.openecomp.portalapp.portal.service.UserNotificationService; -import org.openecomp.portalapp.portal.service.UserNotificationServiceImpl; -import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItem; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.service.DataAccessServiceImpl; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; -import org.slf4j.MDC; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({ MDC.class, EPCommonSystemProperties.class }) -public class ExternalAppsRestfulControllerTest { - - @InjectMocks - ExternalAppsRestfulController externalAppsRestfulController = new ExternalAppsRestfulController(); - @Mock - FunctionalMenuService functionalMenuService = new FunctionalMenuServiceImpl(); - - @Mock - EPLoginService epLoginService = new EPLoginServiceImpl(); - - @Mock - AdminRolesService adminRolesService = new AdminRolesServiceImpl(); - - @Mock - UserNotificationService userNotificationService = new UserNotificationServiceImpl(); - - @Mock - EPRoleService epRoleService = new EPRoleServiceImpl(); - - @Mock - EcompPortalUtils EcompPortalUtils = new EcompPortalUtils(); - - @Mock - DataAccessService DataAccessService = new DataAccessServiceImpl(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - MockEPUser mockUser = new MockEPUser(); - - @Test(expected = Exception.class) - public void getFunctionalMenuItemsForUserIfUSerNullTest() throws - Exception - { - PowerMockito.mockStatic(EPCommonSystemProperties.class); - PowerMockito.mockStatic(MDC.class); - EPUser epUser = null; - String loginId = "guestT"; - Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); - Mockito.when(epLoginService.findUserWithoutPwd(loginId)).thenReturn(epUser); - externalAppsRestfulController.getFunctionalMenuItemsForUser(mockedRequest, - mockedResponse); - } - - @Test - public void getFunctionalMenuItemsForUserIfSuperAdminTest() throws Exception { - PowerMockito.mockStatic(EPCommonSystemProperties.class); - PowerMockito.mockStatic(MDC.class); - EPUser epUser = mockUser.mockEPUser(); - epUser.setId((long) 1); - epUser.setLoginId("guestT"); - String loginId = "guestT"; - Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); - Mockito.when(epLoginService.findUserWithoutPwd(loginId)).thenReturn(epUser); - List expectedList = new ArrayList(); - FunctionalMenuItem functionalMenuItem = new FunctionalMenuItem(); - expectedList.add(functionalMenuItem); - Mockito.when(mockedRequest.getHeader("LoginId")).thenReturn("guestT"); - Mockito.when(adminRolesService.isSuperAdmin(epUser)).thenReturn(true); - Mockito.when(functionalMenuService.getFunctionalMenuItems()).thenReturn(expectedList); - List actualList = externalAppsRestfulController.getFunctionalMenuItemsForUser(mockedRequest, - mockedResponse); - assertNull(actualList.get(0).menuId); - } - - @Test - public void getFunctionalMenuItemsForUserTest() throws Exception { - PowerMockito.mockStatic(EPCommonSystemProperties.class); - PowerMockito.mockStatic(MDC.class); - EPUser epUser = mockUser.mockEPUser(); - epUser.setId((long) 1); - epUser.setLoginId("guestT"); - String loginId = "guestT"; - Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); - Mockito.when(epLoginService.findUserWithoutPwd(loginId)).thenReturn(epUser); - List expectedList = new ArrayList(); - FunctionalMenuItem functionalMenuItem = new FunctionalMenuItem(); - expectedList.add(functionalMenuItem); - Mockito.when(mockedRequest.getHeader("LoginId")).thenReturn("guestT"); - Mockito.when(adminRolesService.isSuperAdmin(epUser)).thenReturn(false); - Mockito.when(functionalMenuService.getFunctionalMenuItemsForUser(epUser.getOrgUserId())) - .thenReturn(expectedList); - List actualList = externalAppsRestfulController.getFunctionalMenuItemsForUser(mockedRequest, - mockedResponse); - assertNull(actualList.get(0).menuId); - } - - @Test(expected = Exception.class) - public void getFavoritesForUserIfUserNullTest() throws Exception { - List favorites = new ArrayList(); - FavoritesFunctionalMenuItemJson favoritesFunctionalMenuItemJson = new FavoritesFunctionalMenuItemJson(); - favorites.add(favoritesFunctionalMenuItemJson); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - PowerMockito.mockStatic(MDC.class); - Mockito.when(mockedRequest.getHeader(EPCommonSystemProperties.MDC_LOGIN_ID)).thenReturn("Login_URL"); - Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); - EPUser epUser = null; - externalAppsRestfulController.getFavoritesForUser(mockedRequest, mockedResponse); - } - - @Test - public void getFavoritesForUserTest() throws Exception { - PowerMockito.mockStatic(EPCommonSystemProperties.class); - PowerMockito.mockStatic(MDC.class); - EPUser epUser = mockUser.mockEPUser(); - epUser.setId((long) 1); - epUser.setLoginId("guestT"); - String loginId = "guestT"; - Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); - List favorites = new ArrayList(); - FavoritesFunctionalMenuItemJson favoritesFunctionalMenuItemJson = new FavoritesFunctionalMenuItemJson(); - favorites.add(favoritesFunctionalMenuItemJson); - Mockito.when(mockedRequest.getHeader(EPCommonSystemProperties.MDC_LOGIN_ID)).thenReturn("Login_URL"); - Mockito.when(MDC.get(EPCommonSystemProperties.PARTNER_NAME)).thenReturn("Test"); - Mockito.when(epLoginService.findUserWithoutPwd("Login_URL")).thenReturn(epUser); - Mockito.when(functionalMenuService.getFavoriteItems(epUser.getId())).thenReturn(favorites); - List actaulFavorites = externalAppsRestfulController - .getFavoritesForUser(mockedRequest, mockedResponse); - assertEquals(actaulFavorites.size(), 1); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/FunctionalMenuControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/FunctionalMenuControllerTest.java deleted file mode 100644 index b72ef9af..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/FunctionalMenuControllerTest.java +++ /dev/null @@ -1,607 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.mockito.runners.MockitoJUnitRunner; -import org.openecomp.portalapp.portal.controller.FunctionalMenuController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl; -import org.openecomp.portalapp.portal.service.FunctionalMenuService; -import org.openecomp.portalapp.portal.service.FunctionalMenuServiceImpl; -import org.openecomp.portalapp.portal.service.SearchService; -import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRole; -import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRolesList; -import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItem; -import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.FieldsValidator.FieldName; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItem; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItemWithRoles; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest(SystemProperties.class) -public class FunctionalMenuControllerTest extends MockitoTestSuite { - - String userid = "ab1234"; - - @Mock - FunctionalMenuService functionalMenuService = new FunctionalMenuServiceImpl(); - - @InjectMocks - FunctionalMenuController functionalMenuController = new FunctionalMenuController(); - - @Mock - private DataAccessService dataAccessService; - - @Mock - SearchService searchService; - - @Mock - AdminRolesService adminRolesService = new AdminRolesServiceImpl(); - - NullPointerException nullPointerException = new NullPointerException(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - - @InjectMocks - EPUserUtils ePUserUtils = new EPUserUtils(); - - @Mock - EPUser epuser; - - MockEPUser mockUser = new MockEPUser(); - - List appRoles = new ArrayList(); - List appRolesActual = new ArrayList(); - - List userAppRoleList = new ArrayList(); - - public List mockBusinessCardApplicationRole() { - List userAppRoleList = new ArrayList(); - - BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole(); - businessCardApplicationRole.setRoleName("ADMIN"); - businessCardApplicationRole.setAppName("ASDC"); - - BusinessCardApplicationRole businessCardApplicationRole1 = new BusinessCardApplicationRole(); - businessCardApplicationRole1.setAppName("ASDC"); - businessCardApplicationRole1.setRoleName("Tester"); - - userAppRoleList.add(businessCardApplicationRole); - userAppRoleList.add(businessCardApplicationRole1); - return userAppRoleList; - } - - public List mockBusinessCardApplicationRolesList() { - List appRolesActual = new ArrayList(); - - BusinessCardApplicationRolesList businessCardApplicationRolesList = new BusinessCardApplicationRolesList(); - businessCardApplicationRolesList.setAppName("ASDC"); - - List roleNames = new ArrayList(); - roleNames.add("ADMIN"); - roleNames.add("Tester"); - businessCardApplicationRolesList.setRoleNames(roleNames); - - appRolesActual.add(businessCardApplicationRolesList); - return appRolesActual; - } - - @Test - public void getAppListTestIfAppAlredyExistsBusinessCardApplicationRolesList() throws IOException { - - userAppRoleList = mockBusinessCardApplicationRole(); - appRolesActual = mockBusinessCardApplicationRolesList(); - - Mockito.when(functionalMenuService.getUserAppRolesList(userid)).thenReturn(userAppRoleList); - - appRoles = functionalMenuController.getAppList(mockedRequest, userid); - - assertEquals(appRolesActual.size(), appRoles.size()); - assertEquals(appRolesActual.get(0).getAppName(), appRoles.get(0).getAppName()); - assertEquals(appRolesActual.get(0).getRoleNames(), appRoles.get(0).getRoleNames()); - - } - - @Test - public void getAppListTestIfAppDoesnotExistsInBusinessCardApplicationRolesList() throws IOException { - - userAppRoleList = mockBusinessCardApplicationRole(); - BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole(); - businessCardApplicationRole.setAppName("CCD"); - businessCardApplicationRole.setRoleName("ADMIN"); - userAppRoleList.add(businessCardApplicationRole); - appRolesActual = mockBusinessCardApplicationRolesList(); - BusinessCardApplicationRolesList businessCardApplicationRolesList = new BusinessCardApplicationRolesList(); - businessCardApplicationRolesList.setAppName("CCD"); - List roleNames1 = new ArrayList(); - roleNames1.add("ADMIN"); - businessCardApplicationRolesList.setRoleNames(roleNames1); - appRolesActual.add(businessCardApplicationRolesList); - Mockito.when(functionalMenuService.getUserAppRolesList(userid)).thenReturn(userAppRoleList); - appRoles = functionalMenuController.getAppList(mockedRequest, userid); - assertEquals(appRolesActual.size(), appRoles.size()); - assertEquals(appRolesActual.get(0).getAppName(), appRoles.get(0).getAppName()); - assertEquals(appRolesActual.get(0).getRoleNames(), appRoles.get(0).getRoleNames()); - assertEquals(appRolesActual.get(1).getAppName(), appRoles.get(1).getAppName()); - assertEquals(appRolesActual.get(1).getRoleNames(), appRoles.get(1).getRoleNames()); - - } - - @Test - public void regenerateAncestorTableTest() { - EPUser user = mockUser.mockEPUser(); - - HttpSession session = mockedRequest.getSession(); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - FieldsValidator acutualFieldValidator = null; - FieldsValidator expectedFieldValidator = new FieldsValidator(); - List fields = new ArrayList<>(); - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(fields); - expectedFieldValidator.setErrorCode(null); - Mockito.when(!adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(functionalMenuService.regenerateAncestorTable()).thenReturn(expectedFieldValidator); - acutualFieldValidator = functionalMenuController.regenerateAncestorTable(mockedRequest, mockedResponse); - assertTrue(acutualFieldValidator.equals(expectedFieldValidator)); - } - - @Test - public void getMenuItemsExceptionTest(){ - List actualmenuItems = null; - List expectedmenuItems = null; - - Mockito.when(functionalMenuController.getMenuItemsForAuthUser(mockedRequest, mockedResponse)).thenThrow(nullPointerException); - actualmenuItems = functionalMenuController.getMenuItemsForAuthUser(mockedRequest, mockedResponse); - assertEquals(actualmenuItems, expectedmenuItems); - } - - @Test - public void getFunctionalMenuStaticInfoExceptionTest(){ - String fnMenuStaticactualResponse = null; - String fnMenuStaticexpectedResponse = null; - String orgUserIdStr = null; - - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(searchService.searchUserByUserId(orgUserIdStr)).thenReturn(user); - fnMenuStaticactualResponse = functionalMenuController.getFunctionalMenuStaticInfo(mockedRequest, mockedResponse); - - assertEquals(fnMenuStaticactualResponse, fnMenuStaticexpectedResponse); - - } - - @Test - public void getFunctionalMenuStaticInfoTest(){ - String fnMenuStaticactualResponse = null; - String fnMenuStaticexpectedResponse = "{\"firstName\":\"test\",\"lastName\":\"test\",\"last_login\":\"09/08/2017 03:48:13-0400\",\"userId\":\"guestT\",\"email\":\"test\"}"; - String orgUserIdStr = null; - - EPUser user = mockUser.mockEPUser(); - user.setEmail("test"); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(searchService.searchUserByUserId(orgUserIdStr)).thenReturn(user); - fnMenuStaticactualResponse = functionalMenuController.getFunctionalMenuStaticInfo(mockedRequest, mockedResponse); - assertEquals(fnMenuStaticactualResponse.length(), fnMenuStaticexpectedResponse.length()); - } - - @Test - public void getMenuItemsForAuthUserNullTest(){ - List actualmenuItems = null; - List expectedmenuItems = null; - - actualmenuItems = functionalMenuController.getMenuItemsForAuthUser(mockedRequest, mockedResponse); - assertEquals(actualmenuItems, expectedmenuItems); - } - - @Test - public void getMenuItemsForAuthUserIsSuperAdminTest(){ - List actualmenuItems = null; - List expectedmenuItems = new ArrayList(); - EPUser user = mockUser.mockEPUser(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - - actualmenuItems = functionalMenuController.getMenuItemsForAuthUser(mockedRequest, mockedResponse); - assertEquals(actualmenuItems, expectedmenuItems); - } - - @Test - public void getMenuItemsForAuthUserTest(){ - List actualmenuItems = null; - List expectedmenuItems = new ArrayList(); - EPUser user = mockUser.mockEPUser(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - - actualmenuItems = functionalMenuController.getMenuItemsForAuthUser(mockedRequest, mockedResponse); - assertEquals(actualmenuItems, expectedmenuItems); - } - - @Test - public void getFunctionalMenuItemDetailsBadPermissionTest(){ - Integer menuId = 1234; - FunctionalMenuItem actualmenuItem = null; - FunctionalMenuItem expectedmenuItem = null; - EPUser user = mockUser.mockEPUser(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - - actualmenuItem = functionalMenuController.getFunctionalMenuItemDetails(mockedRequest, menuId, mockedResponse); - assertEquals(actualmenuItem, expectedmenuItem); - } - - @Test - public void getFunctionalMenuItemDetailsExceptionTest(){ - Integer menuId = 1234; - FunctionalMenuItem actualmenuItem = null; - FunctionalMenuItem expectedmenuItem = null; - EPUser user = mockUser.mockEPUser(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(functionalMenuService.getFunctionalMenuItemDetails(menuId)).thenThrow(nullPointerException); - - actualmenuItem = functionalMenuController.getFunctionalMenuItemDetails(mockedRequest, menuId, mockedResponse); - assertEquals(actualmenuItem, expectedmenuItem); - } - - @Test - public void getFunctionalMenuItemDetailsTest(){ - Integer menuId = 1234; - FunctionalMenuItem actualmenuItem = null; - FunctionalMenuItem expectedmenuItem = null; - EPUser user = mockUser.mockEPUser(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(functionalMenuService.getFunctionalMenuItemDetails(menuId)).thenReturn(actualmenuItem); - - actualmenuItem = functionalMenuController.getFunctionalMenuItemDetails(mockedRequest, menuId, mockedResponse); - assertEquals(actualmenuItem, expectedmenuItem); - } - - @Test - public void getMenuItemsForEditingTest(){ - List actualMenuItems = null; - List expectedMenuItems = null; - EPUser user = mockUser.mockEPUser(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(functionalMenuService.getFunctionalMenuItems(true)).thenReturn(actualMenuItems); - - actualMenuItems = functionalMenuController.getMenuItemsForEditing(mockedRequest, mockedResponse); - assertEquals(actualMenuItems, expectedMenuItems); - } - - @Test - public void getMenuItemsForEditingBadPermissionsTest(){ - List actualMenuItems = null; - List expectedMenuItems = null; - EPUser user = mockUser.mockEPUser(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(functionalMenuService.getFunctionalMenuItems(true)).thenReturn(actualMenuItems); - - actualMenuItems = functionalMenuController.getMenuItemsForEditing(mockedRequest, mockedResponse); - assertEquals(actualMenuItems, expectedMenuItems); - } - - @Test - public void getMenuItemsForEditingExceptionTest(){ - List actualMenuItems = null; - List expectedMenuItems = null; - EPUser user = mockUser.mockEPUser(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(functionalMenuService.getFunctionalMenuItems(true)).thenThrow(nullPointerException); - actualMenuItems = functionalMenuController.getMenuItemsForEditing(mockedRequest, mockedResponse); - assertEquals(actualMenuItems, expectedMenuItems); - } - - @Test - public void getMenuItemsForNotificationsExceptionTest(){ - List actualMenuItems = null; - List expectedMenuItems = null; - Mockito.when(functionalMenuService.getFunctionalMenuItemsForNotificationTree(true)).thenThrow(nullPointerException); - - actualMenuItems = functionalMenuController.getMenuItemsForNotifications(mockedRequest, mockedResponse); - assertEquals(actualMenuItems, expectedMenuItems); - } - @Test - public void getMenuItemsForNotificationsTest(){ - List actualMenuItems = null; - List expectedMenuItems = new ArrayList(); - Mockito.when(functionalMenuService.getFunctionalMenuItemsForNotificationTree(false)).thenReturn(actualMenuItems); - - actualMenuItems = functionalMenuController.getMenuItemsForNotifications(mockedRequest, mockedResponse); - assertEquals(actualMenuItems, expectedMenuItems); - } - - @Test - public void getMenuItemsForAppTest(){ - Integer appId = 1234; - List actualMenuItems = null; - List expectedMenuItems = null; - Mockito.when(functionalMenuService.getFunctionalMenuItemsForApp(appId)).thenReturn(actualMenuItems); - - actualMenuItems = functionalMenuController.getMenuItemsForApp(mockedRequest, appId); - assertEquals(actualMenuItems, expectedMenuItems); - } - - @Test - public void getMenuItemsForAppExceptionTest(){ - Integer appId = 1234; - List actualMenuItems = null; - List expectedMenuItems = null; - Mockito.when(functionalMenuService.getFunctionalMenuItemsForApp(appId)).thenThrow(nullPointerException); - - actualMenuItems = functionalMenuController.getMenuItemsForApp(mockedRequest, appId); - assertEquals(actualMenuItems, expectedMenuItems); - } - - @Test - public void getMenuItemsForUserTest(){ - String orgUserId ="test"; - List actualMenuItems = null; - List expectedMenuItems = null; - Mockito.when(functionalMenuService.getFunctionalMenuItemsForUser(orgUserId)).thenReturn(actualMenuItems); - - actualMenuItems = functionalMenuController.getMenuItemsForUser(mockedRequest, orgUserId); - assertEquals(actualMenuItems, expectedMenuItems); - } - - @Test - public void getMenuItemsForUserExceptionTest(){ - String orgUserId ="test"; - List actualMenuItems = null; - List expectedMenuItems = null; - Mockito.when(functionalMenuService.getFunctionalMenuItemsForUser(orgUserId)).thenThrow(nullPointerException); - - actualMenuItems = functionalMenuController.getMenuItemsForUser(mockedRequest, orgUserId); - assertEquals(actualMenuItems, expectedMenuItems); - } - - @Test - public void createFunctionalMenuItemTest(){ - FieldsValidator actualFieldsValidator = new FieldsValidator(); - FieldsValidator expectedFieldsValidator = new FieldsValidator(); - List fields = new ArrayList<>(); - expectedFieldsValidator.setHttpStatusCode((long) 200); - expectedFieldsValidator.setFields(fields); - expectedFieldsValidator.setErrorCode(null); - FunctionalMenuItemWithRoles menuItemJson = new FunctionalMenuItemWithRoles(); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(functionalMenuService.createFunctionalMenuItem(menuItemJson)).thenReturn(expectedFieldsValidator); - actualFieldsValidator = functionalMenuController.createFunctionalMenuItem(mockedRequest, menuItemJson, mockedResponse); - assertEquals(actualFieldsValidator, expectedFieldsValidator); - } - - @Test - public void createFunctionalMenuItemBadPermisssionsTest(){ - FieldsValidator actualFieldsValidator = null; - FieldsValidator expectedFieldsValidator = null; - FunctionalMenuItemWithRoles menuItemJson = new FunctionalMenuItemWithRoles(); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(functionalMenuService.createFunctionalMenuItem(menuItemJson)).thenReturn(expectedFieldsValidator); - actualFieldsValidator = functionalMenuController.createFunctionalMenuItem(mockedRequest, menuItemJson, mockedResponse); - assertEquals(actualFieldsValidator, expectedFieldsValidator); - } - - @Test - public void getFavoritesForUserTest(){ - List actualFavoritesFunctionalMenuItemsJson = null; - List expectedFunctionalMenuItemsJson = new ArrayList(); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(functionalMenuService.getFavoriteItems(user.getId())).thenReturn(expectedFunctionalMenuItemsJson); - actualFavoritesFunctionalMenuItemsJson = functionalMenuController.getFavoritesForUser(mockedRequest, mockedResponse); - assertEquals(actualFavoritesFunctionalMenuItemsJson, expectedFunctionalMenuItemsJson); - } - - @Test - public void deleteFavoriteItemTest(){ - Long userId = (long)1; - Long menuId = (long)1; - FieldsValidator actualFieldsValidator = new FieldsValidator(); - FieldsValidator expectedFieldsValidator = new FieldsValidator(); - List fields = new ArrayList<>(); - expectedFieldsValidator.setHttpStatusCode((long) 200); - expectedFieldsValidator.setFields(fields); - expectedFieldsValidator.setErrorCode(null); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(functionalMenuService.removeFavoriteItem(user.getId(), menuId)).thenReturn(actualFieldsValidator); - actualFieldsValidator = functionalMenuController.deleteFavoriteItem(mockedRequest, menuId, mockedResponse); - assertEquals(actualFieldsValidator, expectedFieldsValidator); - } - - @Test - public void addFavoriteItemTest(){ - FavoritesFunctionalMenuItem menuItemJson = new FavoritesFunctionalMenuItem(); - FieldsValidator actualFieldsValidator = new FieldsValidator(); - FieldsValidator expectedFieldsValidator = new FieldsValidator(); - List fields = new ArrayList<>(); - expectedFieldsValidator.setHttpStatusCode((long) 200); - expectedFieldsValidator.setFields(fields); - expectedFieldsValidator.setErrorCode(null); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(functionalMenuService.setFavoriteItem(menuItemJson)).thenReturn(actualFieldsValidator); - actualFieldsValidator = functionalMenuController.addFavoriteItem(mockedRequest, menuItemJson, mockedResponse); - assertEquals(actualFieldsValidator, expectedFieldsValidator); - } - - @Test - public void getMenuItemsTest(){ - List actualFunctionalMenuItems = new ArrayList(); - List expectedFunctionalMenuItems = new ArrayList(); - List menuItems = new ArrayList(); - Mockito.when(functionalMenuService.getFunctionalMenuItems()).thenReturn(menuItems); - actualFunctionalMenuItems = functionalMenuController.getMenuItems(mockedRequest, mockedResponse); - assertEquals(actualFunctionalMenuItems, expectedFunctionalMenuItems); - } - - @Test - public void deleteFunctionalMenuItemTest(){ - Long menuId = (long)1; - FieldsValidator actualFieldsValidator = new FieldsValidator(); - FieldsValidator expectedFieldsValidator = new FieldsValidator(); - List fields = new ArrayList<>(); - expectedFieldsValidator.setHttpStatusCode((long) 200); - expectedFieldsValidator.setFields(fields); - expectedFieldsValidator.setErrorCode(null); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(functionalMenuService.deleteFunctionalMenuItem(menuId)).thenReturn(actualFieldsValidator); - actualFieldsValidator = functionalMenuController.deleteFunctionalMenuItem(mockedRequest, menuId, mockedResponse); - assertEquals(actualFieldsValidator, expectedFieldsValidator); - } - - @Test - public void deleteFunctionalMenuItemBadPermissionsTest(){ - Long menuId = (long)1; - FieldsValidator actualFieldsValidator = null; - FieldsValidator expectedFieldsValidator = null; - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(functionalMenuService.deleteFunctionalMenuItem(menuId)).thenReturn(actualFieldsValidator); - actualFieldsValidator = functionalMenuController.deleteFunctionalMenuItem(mockedRequest, menuId, mockedResponse); - assertEquals(actualFieldsValidator, expectedFieldsValidator); - } - - @Test - public void editFunctionalMenuItemTest(){ - FunctionalMenuItemWithRoles menuItemJson = new FunctionalMenuItemWithRoles(); - FieldsValidator actualFieldsValidator = new FieldsValidator(); - FieldsValidator expectedFieldsValidator = new FieldsValidator(); - List fields = new ArrayList<>(); - expectedFieldsValidator.setHttpStatusCode((long) 200); - expectedFieldsValidator.setFields(fields); - expectedFieldsValidator.setErrorCode(null); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(functionalMenuService.editFunctionalMenuItem(menuItemJson)).thenReturn(actualFieldsValidator); - actualFieldsValidator = functionalMenuController.editFunctionalMenuItem(mockedRequest, menuItemJson, mockedResponse); - assertEquals(actualFieldsValidator, expectedFieldsValidator); - } - - @Test - public void editFunctionalMenuItemBadPermissionsTest(){ - FunctionalMenuItemWithRoles menuItemJson = new FunctionalMenuItemWithRoles(); - FieldsValidator actualFieldsValidator = null; - FieldsValidator expectedFieldsValidator = null; - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(functionalMenuService.editFunctionalMenuItem(menuItemJson)).thenReturn(actualFieldsValidator); - actualFieldsValidator = functionalMenuController.editFunctionalMenuItem(mockedRequest, menuItemJson, mockedResponse); - assertEquals(actualFieldsValidator, expectedFieldsValidator); - } - - @Test - public void getECOMPTitleTest(){ - PortalRestResponse actualportalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setStatus(PortalRestStatusEnum.OK); - expectedportalRestResponse.setMessage("success"); - expectedportalRestResponse.setResponse("Portal"); - PowerMockito.mockStatic(SystemProperties.class); - Mockito.when(SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME)).thenReturn("Portal"); - actualportalRestResponse = functionalMenuController.getECOMPTitle(mockedRequest, mockedResponse); - assertEquals(actualportalRestResponse, expectedportalRestResponse); - } - - @Test - public void getECOMPTitleExceptionTest(){ - PortalRestResponse actualportalRestResponse = null; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse(null); - PowerMockito.mockStatic(SystemProperties.class); - - Mockito.when(SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME)).thenThrow(nullPointerException); - actualportalRestResponse = functionalMenuController.getECOMPTitle(mockedRequest, mockedResponse); - assertEquals(actualportalRestResponse, expectedportalRestResponse); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/GetAccessControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/GetAccessControllerTest.java deleted file mode 100644 index e18704fe..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/GetAccessControllerTest.java +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertTrue; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.GetAccessController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.GetAccessResult; -import org.openecomp.portalapp.portal.service.GetAccessService; -import org.openecomp.portalapp.portal.service.GetAccessServiceImpl; -import org.openecomp.portalapp.util.EPUserUtils; - -public class GetAccessControllerTest { - - @Mock - GetAccessService getAccessService = new GetAccessServiceImpl(); - - @InjectMocks - GetAccessController getAccessController = new GetAccessController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - MockEPUser mockUser = new MockEPUser(); - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - - @Test - public void getAppList() throws IOException - { - List expectedAppsList = new ArrayList(); - EPUser user = mockUser.mockEPUser(); - GetAccessResult getAccessResult = new GetAccessResult(); - getAccessResult.setRowId("1"); - getAccessResult.setRoleId((long) 1); - getAccessResult.setEcompFunction("test"); - getAccessResult.setAppName("Test_App"); - getAccessResult.setAppMotsId(1); - getAccessResult.setRoleName("Test_role"); - getAccessResult.setRoleActive("N"); - getAccessResult.setReqType("test"); - - expectedAppsList.add(getAccessResult); - - List actualAppsList = null; - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(getAccessService.getAppAccessList(user)).thenReturn(expectedAppsList); - actualAppsList = getAccessController.getAppList(mockedRequest); - assertTrue(actualAppsList.contains(getAccessResult)); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ManifestControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ManifestControllerTest.java deleted file mode 100644 index 61d5bb34..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/ManifestControllerTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertTrue; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.jar.Attributes; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.ManifestController; -import org.openecomp.portalapp.portal.service.ManifestService; -import org.openecomp.portalapp.portal.service.ManifestServiceImpl; - -public class ManifestControllerTest extends MockitoTestSuite{ - - - @Mock - ManifestService manifestService = new ManifestServiceImpl(); - - @InjectMocks - ManifestController manifestController = new ManifestController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - NullPointerException nullPointerException = new NullPointerException(); - - @Test - public void getManifestTest() throws IOException - { - Map expectedResponse = new HashMap(); - Attributes attributes = new Attributes(); - expectedResponse.put("test", attributes); - Mockito.when(manifestService.getWebappManifest()).thenReturn(attributes); - Map actualResponse = manifestController.getManifest(mockedRequest); - assertTrue((actualResponse.keySet().toArray().length) == 1); - - } - - @Test - public void getManifestExceptionTest() throws IOException - { - Mockito.when(manifestService.getWebappManifest()).thenThrow(nullPointerException); - Map actualResponse = manifestController.getManifest(mockedRequest); - assertTrue((actualResponse.keySet().toArray().length) == 1); - assertTrue(actualResponse.get("error").equals("failed to get manifest: java.lang.NullPointerException")); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/MicroserviceControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/MicroserviceControllerTest.java deleted file mode 100644 index 3b569aca..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/MicroserviceControllerTest.java +++ /dev/null @@ -1,271 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.domain.MicroserviceData; -import org.openecomp.portalapp.portal.domain.WidgetCatalog; -import org.openecomp.portalapp.portal.domain.WidgetServiceHeaders; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.service.ConsulHealthService; -import org.openecomp.portalapp.portal.service.ConsulHealthServiceImpl; -import org.openecomp.portalapp.portal.service.MicroserviceService; -import org.openecomp.portalapp.portal.service.MicroserviceServiceImpl; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; -import org.springframework.core.ParameterizedTypeReference; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.client.RestTemplate; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({WidgetServiceHeaders.class, EcompPortalUtils.class}) -public class MicroserviceControllerTest extends MockitoTestSuite{ - - @InjectMocks - MicroserviceController microserviceController = new MicroserviceController(); - - @Mock - ConsulHealthService consulHealthService = new ConsulHealthServiceImpl(); - - @Mock - MicroserviceService microserviceService = new MicroserviceServiceImpl(); - - @Mock - RestTemplate template = new RestTemplate(); - - @Mock - MicroserviceData microserviceData = new MicroserviceData(); - - @SuppressWarnings("rawtypes") - @Mock - ResponseEntity> ans = new ResponseEntity>(HttpStatus.OK); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - @Mock - EcompPortalUtils EcompPortalUtils = new EcompPortalUtils(); - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Test - public void createMicroserviceIfServiceDataNullTest() throws Exception { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("FAILURE"); - expectedportalRestResponse.setResponse("MicroserviceData cannot be null or empty"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - MicroserviceData microserviceData = null; - PortalRestResponse actualportalRestResponse = microserviceController.createMicroservice(mockedRequest, - mockedResponse, microserviceData); - assertEquals(actualportalRestResponse, expectedportalRestResponse); - } - - @Test - public void createMicroserviceTest() throws Exception { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("SUCCESS"); - expectedportalRestResponse.setResponse(""); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - PortalRestResponse actualportalRestResponse = microserviceController.createMicroservice(mockedRequest, - mockedResponse, microserviceData); - assertEquals(actualportalRestResponse, expectedportalRestResponse); - } - - @Test - public void createMicroserviceExceptionTest() throws Exception { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("FAILURE"); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - Mockito.when(microserviceService.saveMicroservice(microserviceData)).thenReturn((long) 1); - Mockito.when(microserviceData.getParameterList()).thenThrow(nullPointerException); - PortalRestResponse actualportalRestResponse = microserviceController.createMicroservice(mockedRequest, - mockedResponse, microserviceData); - assertEquals(actualportalRestResponse, expectedportalRestResponse); - } - - @Test - public void getMicroserviceTest() throws Exception { - Mockito.when(microserviceService.getMicroserviceData()).thenReturn(null); - List list = microserviceController.getMicroservice(mockedRequest, mockedResponse); - assertEquals(list, null); - } - - @Test - public void updateMicroserviceIfServiceISNullTest() throws Exception { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("FAILURE"); - expectedportalRestResponse.setResponse("MicroserviceData cannot be null or empty"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - MicroserviceData microserviceData = null; - PortalRestResponse actualportalRestResponse = microserviceController.updateMicroservice(mockedRequest, - mockedResponse, 1, microserviceData); - assertEquals(actualportalRestResponse, expectedportalRestResponse); - } - - @Test - public void updateMicroserviceTest() throws Exception { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("SUCCESS"); - expectedportalRestResponse.setResponse(""); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - PortalRestResponse actualportalRestResponse = microserviceController.updateMicroservice(mockedRequest, - mockedResponse, 1, microserviceData); - assertEquals(actualportalRestResponse, expectedportalRestResponse); - } - - @Test - public void updateMicroserviceExceptionTest() throws Exception { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("FAILURE"); - expectedportalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - Mockito.when(microserviceController.updateMicroservice(mockedRequest, mockedResponse, 1, microserviceData)) - .thenThrow(nullPointerException); - PortalRestResponse actualportalRestResponse = microserviceController.updateMicroservice(mockedRequest, - mockedResponse, 1, microserviceData); - assertEquals(actualportalRestResponse, expectedportalRestResponse); - } - - @Test - public void deleteMicroserviceExceptionTest() throws Exception { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("FAILURE"); - PowerMockito.mockStatic(EcompPortalUtils.class); - expectedportalRestResponse.setResponse( - "I/O error on GET request for \"" + EcompPortalUtils.widgetMsProtocol() + "://null/widget/microservices/widgetCatalog/service/1\":null; nested exception is java.net.UnknownHostException: null"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - PowerMockito.mockStatic(WidgetServiceHeaders.class); - PortalRestResponse actuaPportalRestResponse = microserviceController.deleteMicroservice(mockedRequest, - mockedResponse, 1); - assertEquals(actuaPportalRestResponse.getStatus(), expectedportalRestResponse.getStatus()); - } - - @SuppressWarnings("unchecked") - @Test - public void deleteMicroserviceTest() throws Exception { - String HTTPS = "https://"; - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("SOME WIDGETS ASSOICATE WITH THIS SERVICE"); - expectedportalRestResponse.setResponse("'null' ,'null' "); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.WARN); - List List = new ArrayList(); - WidgetCatalog widgetCatalog = new WidgetCatalog(); - widgetCatalog.setId(1); - WidgetCatalog widgetCatalog1 = new WidgetCatalog(); - widgetCatalog.setId(2); - List.add(widgetCatalog); - List.add(widgetCatalog1); - PowerMockito.mockStatic(WidgetServiceHeaders.class); - PowerMockito.mockStatic(EcompPortalUtils.class); - String whatService = "widgets-service"; - Mockito.when(consulHealthService.getServiceLocation(whatService, SystemProperties.getProperty("microservices.widget.local.port"))).thenReturn("Test"); - Mockito.when(ans.getBody()).thenReturn(List); - ParameterizedTypeReference> typeRef = new ParameterizedTypeReference>() { - }; - Mockito.when(template.exchange( - EcompPortalUtils.widgetMsProtocol() + "://" + consulHealthService.getServiceLocation(whatService, SystemProperties.getProperty("microservices.widget.local.port")) - + "/widget/microservices/widgetCatalog/service/" + 1, - HttpMethod.GET, new HttpEntity(WidgetServiceHeaders.getInstance()), typeRef)).thenReturn(ans); - - PortalRestResponse actuaPportalRestResponse = microserviceController.deleteMicroservice(mockedRequest, - mockedResponse, 1); - assertEquals(actuaPportalRestResponse, expectedportalRestResponse); - } - - @SuppressWarnings("unchecked") - @Test - public void deleteMicroserviceWhenNoWidgetsAssociatedTest() throws Exception { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("SUCCESS"); - expectedportalRestResponse.setResponse(""); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - List List = new ArrayList(); - PowerMockito.mockStatic(WidgetServiceHeaders.class); - PowerMockito.mockStatic(EcompPortalUtils.class); - String whatService = "widgets-service"; - Mockito.when(consulHealthService.getServiceLocation(whatService, SystemProperties.getProperty("microservices.widget.local.port"))).thenReturn("Test"); - Mockito.when(ans.getBody()).thenReturn(List); - ParameterizedTypeReference> typeRef = new ParameterizedTypeReference>() { - }; - Mockito.when(template.exchange( - EcompPortalUtils.widgetMsProtocol() + "://" + consulHealthService.getServiceLocation(whatService, SystemProperties.getProperty("microservices.widget.local.port")) - + "/widget/microservices/widgetCatalog/service/" + 1, - HttpMethod.GET, new HttpEntity(WidgetServiceHeaders.getInstance()), typeRef)).thenReturn(ans); - PortalRestResponse actuaPportalRestResponse = microserviceController.deleteMicroservice(mockedRequest, - mockedResponse, 1); - assertEquals(actuaPportalRestResponse, expectedportalRestResponse); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/MicroserviceProxyControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/MicroserviceProxyControllerTest.java deleted file mode 100644 index e712e4d2..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/MicroserviceProxyControllerTest.java +++ /dev/null @@ -1,143 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertTrue; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.MicroserviceProxyController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.service.MicroserviceProxyService; -import org.openecomp.portalapp.portal.service.MicroserviceProxyServiceImpl; -import org.openecomp.portalapp.util.EPUserUtils; -import org.springframework.http.HttpStatus; -import org.springframework.web.client.HttpClientErrorException; - -import com.fasterxml.jackson.databind.ObjectMapper; - - - -public class MicroserviceProxyControllerTest extends MockitoTestSuite { - - @Mock - MicroserviceProxyService microserviceProxyService = new MicroserviceProxyServiceImpl(); - - @InjectMocks - MicroserviceProxyController microserviceProxyController = new MicroserviceProxyController(); - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Mock - EPUserUtils ePUserUtils = new EPUserUtils(); - @Mock - ObjectMapper objectMapper = new ObjectMapper(); - MockEPUser mockUser = new MockEPUser(); - - @Test - public void getMicroserviceProxyTest() throws Exception { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(microserviceProxyService.proxyToDestination(1, user, mockedRequest)).thenReturn("Success"); - String acutualString = microserviceProxyController.getMicroserviceProxy(mockedRequest, getMockedResponse(), 1); - assertTrue(acutualString.equals("{\"error\":\"Success\"}")); - } - - @Test(expected = NullPointerException.class) - public void getMicroserviceProxyNullPoniterExceptionTest() throws Exception { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(microserviceProxyService.proxyToDestination(1, user, mockedRequest)) - .thenThrow(nullPointerException); - microserviceProxyController.getMicroserviceProxy(mockedRequest, getMockedResponse(), 1); - } - - @Test - public void getMicroserviceProxyExceptionTest() throws Exception { - HttpClientErrorException httpClientErrorException = new HttpClientErrorException(HttpStatus.OK, "Success"); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(microserviceProxyService.proxyToDestination(1, user, mockedRequest)) - .thenThrow(httpClientErrorException); - String acutualString = microserviceProxyController.getMicroserviceProxy(mockedRequest, getMockedResponse(), 1); - assertTrue(acutualString.equals("{\"error\":\"\"}")); - } - - @Test - public void getMicroserviceProxyByWidgetIdTest() throws Exception { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(microserviceProxyService.proxyToDestinationByWidgetId(1, user, mockedRequest)) - .thenReturn("Success"); - String acutualString = microserviceProxyController.getMicroserviceProxyByWidgetId(mockedRequest, - getMockedResponse(), 1); - assertTrue(acutualString.equals("{\"error\":\"Success\"}")); - } - - @Test(expected = NullPointerException.class) - public void getMicroserviceProxyByWidgetIdNullPointerExceptionTest() throws Exception { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(microserviceProxyService.proxyToDestinationByWidgetId(1, user, mockedRequest)) - .thenThrow(nullPointerException); - microserviceProxyController.getMicroserviceProxyByWidgetId(mockedRequest, getMockedResponse(), 1); - } - - @Test - public void getMicroserviceProxyByWidgetIdExceptionTest() throws Exception { - HttpClientErrorException httpClientErrorException = new HttpClientErrorException(HttpStatus.OK, "Success"); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(microserviceProxyService.proxyToDestinationByWidgetId(1, user, mockedRequest)) - .thenThrow(httpClientErrorException); - String acutualString = microserviceProxyController.getMicroserviceProxyByWidgetId(mockedRequest, - getMockedResponse(), 1); - assertTrue(acutualString.equals("{\"error\":\"\"}")); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/PolicyControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/PolicyControllerTest.java deleted file mode 100644 index 84b600be..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/PolicyControllerTest.java +++ /dev/null @@ -1,159 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.BadRequestException; - -import org.json.simple.JSONObject; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Matchers; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.scheduler.SchedulerRestInterface; -import org.openecomp.portalapp.portal.scheduler.policy.PolicyProperties; -import org.openecomp.portalapp.portal.scheduler.policy.PolicyResponseWrapper; -import org.openecomp.portalapp.portal.scheduler.policy.PolicyRestInterfaceFactory; -import org.openecomp.portalapp.portal.scheduler.policy.PolicyRestInterfaceIfc; -import org.openecomp.portalapp.portal.scheduler.policy.PolicyUtil; -import org.openecomp.portalapp.portal.scheduler.policy.RestObject; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.web.support.UserUtils; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; - -import junit.framework.Assert; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({ UserUtils.class, SystemProperties.class, PolicyProperties.class, PolicyRestInterfaceFactory.class, - PolicyUtil.class }) -public class PolicyControllerTest { - - @Mock - SchedulerRestInterface schedulerRestInterface; - - @InjectMocks - PolicyController policyController = new PolicyController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockEPUser mockUser = new MockEPUser(); - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Before - public void setUp() { - - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(PolicyProperties.class); - Mockito.when(SystemProperties.getProperty(PolicyProperties.POLICY_GET_CONFIG_VAL)).thenReturn("/api/getConfig"); - Mockito.when(SystemProperties.getProperty(PolicyProperties.POLICY_CLIENT_MECHID_VAL)) - .thenReturn("m06814@controller.dcae.ecomp.att.com"); - Mockito.when(SystemProperties.getProperty(PolicyProperties.POLICY_CLIENT_PASSWORD_VAL)) - .thenReturn("OBF:1ffu1qvu1t2z1l161fuk1i801nz91ro41xf71xfv1rqi1nx51i7y1fuq1kxw1t371qxw1fh0"); - Mockito.when(SystemProperties.getProperty(PolicyProperties.POLICY_USERNAME_VAL)).thenReturn("testpdp"); - Mockito.when(SystemProperties.getProperty(PolicyProperties.POLICY_PASSWORD_VAL)) - .thenReturn("OBF:1igd1kft1l1a1sw61svs1kxs1kcl1idt"); - Mockito.when(SystemProperties.getProperty(PolicyProperties.POLICY_ENVIRONMENT_VAL)).thenReturn("TEST"); - Mockito.when(SystemProperties.getProperty(PolicyProperties.POLICY_SERVER_URL_VAL)) - .thenReturn("https://policypdp-conexus-e2e.ecomp.cci.att.com:8081/pdp"); - - } - - @SuppressWarnings({ "unchecked", "deprecation" }) - @Test - public void getPolicyInfoTest1() throws Exception { - - JSONObject jsonObject = Mockito.mock(JSONObject.class); - PowerMockito.mockStatic(PolicyRestInterfaceFactory.class); - PowerMockito.mockStatic(SystemProperties.class); - PolicyRestInterfaceIfc policyRestInterface = Mockito.mock(PolicyRestInterfaceIfc.class); - PowerMockito.mockStatic(PolicyUtil.class); - // RestObject restObj=Mockito.mock(RestObject.class); - PolicyResponseWrapper policyWrapper = Mockito.mock(PolicyResponseWrapper.class); - PowerMockito.when(PolicyUtil.wrapResponse(Matchers.any(RestObject.class))).thenReturn(policyWrapper); - Mockito.when(policyWrapper.getResponse()).thenReturn("Success"); - Mockito.when(policyWrapper.getStatus()).thenReturn(200); - - PowerMockito.when(PolicyRestInterfaceFactory.getInstance()).thenReturn(policyRestInterface); - Mockito.doNothing().when(policyRestInterface).Post(Matchers.anyString(), Matchers.anyObject(), - Matchers.anyString(), Matchers.anyString(), Matchers.anyObject()); - - ResponseEntity responsePolicy = policyController.getPolicyInfo(mockedRequest, jsonObject); - Assert.assertEquals(responsePolicy.getStatusCode(), HttpStatus.OK); - } - - @SuppressWarnings("unchecked") - @Test(expected = Exception.class) - public void getPolicyInfoTestexpected() throws Exception { - - JSONObject jsonObject = Mockito.mock(JSONObject.class); - PowerMockito.mockStatic(PolicyRestInterfaceFactory.class); - PowerMockito.mockStatic(SystemProperties.class); - PolicyRestInterfaceIfc policyRestInterface = Mockito.mock(PolicyRestInterfaceIfc.class); - PowerMockito.mockStatic(PolicyUtil.class); - // RestObject restObj=Mockito.mock(RestObject.class); - PolicyResponseWrapper policyWrapper = Mockito.mock(PolicyResponseWrapper.class); - PowerMockito.when(PolicyUtil.wrapResponse(Matchers.any(RestObject.class))).thenReturn(policyWrapper); - Mockito.when(policyWrapper.getResponse()).thenThrow(new BadRequestException()); - Mockito.when(policyWrapper.getStatus()).thenThrow(new BadRequestException()); - - PowerMockito.when(PolicyRestInterfaceFactory.getInstance()).thenReturn(policyRestInterface); - Mockito.doNothing().when(policyRestInterface).Post(Matchers.anyString(), Matchers.anyObject(), - Matchers.anyString(), Matchers.anyString(), Matchers.anyObject()); - - policyController.getPolicyInfo(mockedRequest, jsonObject); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/PortalAdminControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/PortalAdminControllerTest.java deleted file mode 100644 index 142d5ff4..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/PortalAdminControllerTest.java +++ /dev/null @@ -1,189 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl; -import org.openecomp.portalapp.portal.service.PortalAdminService; -import org.openecomp.portalapp.portal.service.PortalAdminServiceImpl; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.PortalAdmin; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.service.AuditService; -import org.openecomp.portalsdk.core.service.AuditServiceImpl; - -public class PortalAdminControllerTest extends MockitoTestSuite{ - - @InjectMocks - PortalAdminController portalAdminController = new PortalAdminController(); - - @Mock - AdminRolesService adminRolesService = new AdminRolesServiceImpl(); - - @Mock - PortalAdminService portalAdminService = new PortalAdminServiceImpl(); - - @Mock - AuditService auditService = new AuditServiceImpl(); - - - @Mock - EcompPortalUtils ecompPortalUtils = new EcompPortalUtils(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Mock - EPUserUtils ePUserUtils = new EPUserUtils(); - - MockEPUser mockUser = new MockEPUser(); - - - @Test - public void getPortalAdminsTest() - { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedPortalAdminsList = new ArrayList(); - PortalAdmin portalAdmin= new PortalAdmin(); - - portalAdmin.setUserId((long) 1); - portalAdmin.setLoginId("guestT"); - portalAdmin.setFirstName("Test_FirstName"); - portalAdmin.setLastName("Test_LastName"); - - expectedPortalAdminsList.add(portalAdmin); - - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - - Mockito.when(portalAdminService.getPortalAdmins()).thenReturn(expectedPortalAdminsList); - List actualPortalAdminsList = portalAdminController.getPortalAdmins(mockedRequest, mockedResponse); - assertEquals(actualPortalAdminsList,expectedPortalAdminsList); - - } -// @Test -// public void getPortalAdminsIfUserIsNullTest() -// { -// EPUser user = null; -// Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); -// -// assertNull(portalAdminController.getPortalAdmins(mockedRequest, mockedResponse)); -// -// } - - @Test - public void getPortalAdminsIfUserIsSuperAdminTest() - { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - assertNull(portalAdminController.getPortalAdmins(mockedRequest, mockedResponse)); - - } - - - - @Test - public void createPortalAdminTest() - { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - - FieldsValidator expectedFieldValidator = new FieldsValidator(); - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(null); - expectedFieldValidator.setErrorCode(null); - FieldsValidator actualFieldValidator = new FieldsValidator(); - String sbcid = "Test"; - - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(portalAdminService.createPortalAdmin(sbcid)).thenReturn(expectedFieldValidator); - actualFieldValidator = portalAdminController.createPortalAdmin(mockedRequest, sbcid, mockedResponse); - assertEquals(actualFieldValidator,expectedFieldValidator); - - } - -// @Test -// public void createPortalAdminIfUserIsNullTest() -// { -// //EPUser user = null; -// Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null); -// String sbcid = "null"; -// assertNull(portalAdminController.createPortalAdmin(mockedRequest, sbcid, mockedResponse)); -// -// } - - @Test - public void createPortalAdminIfUserIsSuperAdminTest() - { - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - String sbcid = "Test"; - assertNull(portalAdminController.createPortalAdmin(mockedRequest, sbcid, mockedResponse)); - - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/RoleManageControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/RoleManageControllerTest.java deleted file mode 100644 index 08cddd69..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/RoleManageControllerTest.java +++ /dev/null @@ -1,226 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.controller.core.RoleController; -import org.openecomp.portalapp.controller.core.RoleFunctionListController; -import org.openecomp.portalapp.controller.core.RoleListController; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.RoleManageController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.ExternalAccessRolesService; -import org.springframework.web.servlet.ModelAndView; - -public class RoleManageControllerTest { - - - - @Mock - RoleController roleController; - - @Mock - RoleListController roleListController; - - @Mock - RoleFunctionListController roleFunctionListController; - - - @Mock - ExternalAccessRolesService externalAccessRolesService; - - @Mock - ExternalAccessRolesService externalAccessRolesService1 = null; - - @InjectMocks - RoleManageController roleManageController = new RoleManageController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - MockEPUser mockUser = new MockEPUser(); - - @Test - public void toggleRoleTest() - { - PortalRestResponse portalRestResponse = new PortalRestResponse(); - portalRestResponse.setMessage("success"); - portalRestResponse.setResponse(null); - PortalRestStatusEnum portalRestStatusEnum = null; - portalRestResponse.setStatus(portalRestStatusEnum.OK); - - PortalRestResponse expectedpPortalRestResponse=roleManageController.toggleRole(mockedRequest, mockedResponse); - assertEquals(portalRestResponse,expectedpPortalRestResponse); - - } - -// @Test -// public void toggleRoleExceptionTest() -// { -// PortalRestResponse portalRestResponse = new PortalRestResponse(); -// portalRestResponse.setMessage("success"); -// portalRestResponse.setResponse(null); -// PortalRestStatusEnum portalRestStatusEnum = null; -// portalRestResponse.setStatus(portalRestStatusEnum.OK); -// Mockito.doNothing().when(roleListController).toggleRole(mockedRequest, mockedResponse))).th -// getRoleListController().toggleRole(request, response) -// -// PortalRestResponse expectedpPortalRestResponse=roleManageController.toggleRole(mockedRequest, mockedResponse); -// assertEquals(portalRestResponse,expectedpPortalRestResponse); -// -// } - @Test - public void removeRoleTest() throws Exception - { - ModelAndView modelandView = new ModelAndView("login.htm"); - Mockito.when(roleListController.removeRole(mockedRequest, mockedResponse)).thenReturn(modelandView); - ModelAndView expectedModelandView = roleManageController.removeRole(mockedRequest, mockedResponse); - assertEquals(expectedModelandView, modelandView); - } - - @Test - public void saveRoleTest() throws Exception - { - ModelAndView modelandView = new ModelAndView("login.htm"); - Mockito.when(roleController.saveRole(mockedRequest, mockedResponse)).thenReturn(modelandView); - ModelAndView expectedModelandView = roleManageController.saveRole(mockedRequest, mockedResponse); - assertEquals(expectedModelandView, modelandView); - } - - @Test - public void removeRoleRoleFunctionTest() throws Exception - { - ModelAndView modelandView = new ModelAndView("login.htm"); - Mockito.when(roleController.removeRoleFunction(mockedRequest, mockedResponse)).thenReturn(modelandView); - ModelAndView expectedModelandView = roleManageController.removeRoleRoleFunction(mockedRequest, mockedResponse); - assertEquals(expectedModelandView, modelandView); - } - - @Test - public void addRoleRoRoleFunctionTest() throws Exception - { - ModelAndView modelandView = new ModelAndView("login.htm"); - Mockito.when(roleController.addRoleFunction(mockedRequest, mockedResponse)).thenReturn(modelandView); - ModelAndView expectedModelandView = roleManageController.addRoleRoRoleFunction(mockedRequest, mockedResponse); - assertEquals(expectedModelandView, modelandView); - } - - @Test - public void removeChildRoleTest() throws Exception - { - ModelAndView modelandView = new ModelAndView("login.htm"); - Mockito.when(roleController.removeChildRole(mockedRequest, mockedResponse)).thenReturn(modelandView); - ModelAndView expectedModelandView = roleManageController.removeChildRole(mockedRequest, mockedResponse); - assertEquals(expectedModelandView, modelandView); - } - - - @Test - public void getRoleTest() throws Exception - { - Mockito.doNothing().when(roleController).getRole(mockedRequest, mockedResponse); - roleManageController.getRole(mockedRequest, mockedResponse); - } - - @Test - public void getRolesTest() throws Exception - { - Mockito.doNothing().when(roleListController).getRoles(mockedRequest, mockedResponse); - roleManageController.getRoles(mockedRequest, mockedResponse); - } - - @Test - public void getRoleFunctionListTest() throws Exception - { - Mockito.doNothing().when(roleFunctionListController).getRoleFunctionList(mockedRequest, mockedResponse); - roleManageController.getRoleFunctionList(mockedRequest, mockedResponse); - } - - @Test - public void saveRoleFunctionTest() throws Exception - { - Mockito.doNothing().when(roleFunctionListController).saveRoleFunction(mockedRequest, mockedResponse, "test"); - roleManageController.saveRoleFunction(mockedRequest, mockedResponse, "test"); - } - - @Test - public void removeRoleFunctionTest() throws Exception - { - Mockito.doNothing().when(roleFunctionListController).removeRoleFunction(mockedRequest, mockedResponse, "test"); - roleManageController.removeRoleFunction(mockedRequest, mockedResponse, "test"); - } - - @Test - public void syncRolesTest() throws Exception - { - EPApp app = new EPApp(); - Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app); - roleManageController.syncRoles(app); - } - - - @Test - public void addeChildRoleTest() throws Exception - { - ModelAndView modelandView = new ModelAndView("login.htm"); - Mockito.when(roleController.addChildRole(mockedRequest, mockedResponse)).thenReturn(modelandView); - ModelAndView expectedModelandView = roleManageController.addChildRole(mockedRequest, mockedResponse); - assertEquals(expectedModelandView, modelandView); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/RolesApprovalSystemControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/RolesApprovalSystemControllerTest.java deleted file mode 100644 index d7cdfe7a..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/RolesApprovalSystemControllerTest.java +++ /dev/null @@ -1,373 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.externalsystemapproval.model.ExternalSystemRoleApproval; -import org.openecomp.portalapp.externalsystemapproval.model.ExternalSystemUser; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.RolesApprovalSystemController; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.UserRolesService; -import org.openecomp.portalapp.portal.transport.ExternalRequestFieldsValidator; - -public class RolesApprovalSystemControllerTest extends MockitoTestSuite { - - @Mock - UserRolesService userRolesService; - - @InjectMocks - RolesApprovalSystemController rolesApprovalSystemController = new RolesApprovalSystemController(); - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - @Test - public void postUserProfileIfRolesNullTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Request has no roles"); - expectedportalRestResponse.setResponse("save user profile failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test_App"); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = null; - extSysUser.setRoles(externalSystemRoleApprovalList); - - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .postUserProfile(mockedRequest, extSysUser, mockedResponse); - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void postUserProfileTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Saved Successfully"); - expectedportalRestResponse.setResponse("Success"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test_App"); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = new ArrayList(); - ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); - externalSystemRoleApprovalList.add(externalSystemRoleApproval); - extSysUser.setRoles(externalSystemRoleApprovalList); - ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(true, - "Saved Successfully"); - - Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "POST")) - .thenReturn(externalRequestFieldsValidator); - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .postUserProfile(mockedRequest, extSysUser, mockedResponse); - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void postUserProfileFailureTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Received Bad String"); - expectedportalRestResponse.setResponse("save user profile failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test_App"); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = new ArrayList(); - ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); - externalSystemRoleApprovalList.add(externalSystemRoleApproval); - extSysUser.setRoles(externalSystemRoleApprovalList); - ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(false, - "Received Bad String"); - Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "POST")) - .thenReturn(externalRequestFieldsValidator); - - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .postUserProfile(mockedRequest, extSysUser, mockedResponse); - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void postUserProfileExceptionTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse("save user profile failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test_App"); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = new ArrayList(); - ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); - externalSystemRoleApprovalList.add(externalSystemRoleApproval); - extSysUser.setRoles(externalSystemRoleApprovalList); - Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "POST")).thenThrow(nullPointerException); - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .postUserProfile(mockedRequest, extSysUser, mockedResponse); - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void putUserProfileIfLoginIdNullTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Request has no login ID"); - expectedportalRestResponse.setResponse("save user profile failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test_App"); - extSysUser.setLoginId(null); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = new ArrayList(); - extSysUser.setRoles(externalSystemRoleApprovalList); - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .putUserProfile(mockedRequest, extSysUser, mockedResponse); - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void putUserProfileTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Updated Successfully"); - expectedportalRestResponse.setResponse("Success"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test_App"); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = new ArrayList(); - ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); - externalSystemRoleApprovalList.add(externalSystemRoleApproval); - extSysUser.setRoles(externalSystemRoleApprovalList); - ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(true, - "Updated Successfully"); - - Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "PUT")) - .thenReturn(externalRequestFieldsValidator); - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .putUserProfile(mockedRequest, extSysUser, mockedResponse); - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void putUserProfileFailureTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Received Bad String"); - expectedportalRestResponse.setResponse("save user profile failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test_App"); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = new ArrayList(); - ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); - externalSystemRoleApprovalList.add(externalSystemRoleApproval); - extSysUser.setRoles(externalSystemRoleApprovalList); - ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(false, - "Received Bad String"); - - Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "PUT")) - .thenReturn(externalRequestFieldsValidator); - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .putUserProfile(mockedRequest, extSysUser, mockedResponse); - - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void putUserProfileExceptionTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse("save user profile failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test_App"); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = new ArrayList(); - ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); - externalSystemRoleApprovalList.add(externalSystemRoleApproval); - extSysUser.setRoles(externalSystemRoleApprovalList); - Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "PUT")).thenThrow(nullPointerException); - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .putUserProfile(mockedRequest, extSysUser, mockedResponse); - - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void deleteUserProfileIfApplicationNameNullTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Request has no application name"); - expectedportalRestResponse.setResponse("delete user profile failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName(null); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = new ArrayList(); - extSysUser.setRoles(externalSystemRoleApprovalList); - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .deleteUserProfile(mockedRequest, extSysUser, mockedResponse); - - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void deleteUserProfileIfMyloginrequestIdNullTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Request has no request ID"); - expectedportalRestResponse.setResponse("delete user profile failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test"); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId(null); - List externalSystemRoleApprovalList = new ArrayList(); - extSysUser.setRoles(externalSystemRoleApprovalList); - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .deleteUserProfile(mockedRequest, extSysUser, mockedResponse); - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void deleteUserProfileTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("Deleted Successfully"); - expectedportalRestResponse.setResponse("Success"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.OK); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test_App"); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = new ArrayList(); - ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); - externalSystemRoleApprovalList.add(externalSystemRoleApproval); - extSysUser.setRoles(externalSystemRoleApprovalList); - ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(true, - "Success"); - - Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "DELETE")) - .thenReturn(externalRequestFieldsValidator); - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .deleteUserProfile(mockedRequest, extSysUser, mockedResponse); - - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void deleteUserProfileFailureTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage("failed"); - expectedportalRestResponse.setResponse("delete user profile failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test_App"); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = new ArrayList(); - ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); - externalSystemRoleApprovalList.add(externalSystemRoleApproval); - extSysUser.setRoles(externalSystemRoleApprovalList); - ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(false, - "failed"); - - Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "DELETE")) - .thenReturn(externalRequestFieldsValidator); - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .deleteUserProfile(mockedRequest, extSysUser, mockedResponse); - - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } - - @Test - public void deleteUserProfileExceptionTest() { - PortalRestResponse expectedportalRestResponse = new PortalRestResponse(); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse("delete user profile failed"); - PortalRestStatusEnum portalRestStatusEnum = null; - expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR); - ExternalSystemUser extSysUser = new ExternalSystemUser(); - extSysUser.setApplicationName("Test_App"); - extSysUser.setLoginId("1"); - extSysUser.setMyloginrequestId("Test"); - List externalSystemRoleApprovalList = new ArrayList(); - ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); - externalSystemRoleApprovalList.add(externalSystemRoleApproval); - extSysUser.setRoles(externalSystemRoleApprovalList); - Mockito.when(userRolesService.setExternalRequestUserAppRole(extSysUser, "DELETE")).thenThrow(nullPointerException); - PortalRestResponse actualportalRestResponse = rolesApprovalSystemController - .deleteUserProfile(mockedRequest, extSysUser, mockedResponse); - - assertEquals(expectedportalRestResponse, actualportalRestResponse); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SchedulerControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SchedulerControllerTest.java deleted file mode 100644 index 755ec51c..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SchedulerControllerTest.java +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.json.simple.JSONObject; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.scheduler.SchedulerProperties; -import org.openecomp.portalapp.portal.scheduler.SchedulerRestInterface; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.web.support.UserUtils; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({UserUtils.class,SystemProperties.class}) - -public class SchedulerControllerTest { - - @Mock - SchedulerRestInterface schedulerRestInterface; - - - - @InjectMocks - SchedulerController schedulerController = new SchedulerController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockEPUser mockUser = new MockEPUser(); - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Test - public void getTimeSlotsTest() throws Exception{ - schedulerController.getTimeSlots(mockedRequest, "12"); - - } - - @Test - public void postCreateNewVNFChangeTest() throws Exception{ - //String testJsonData="{\"domain\":\"ChangeManagement\",\"scheduleName\":\"VnfUpgrade/DWF\",\"userId\":\"su7376\",\"domainData\":[{\"WorkflowName\":\"HEAT Stack Software Update for vNFs\",\"CallbackUrl\":\"http://127.0.0.1:8989/scheduler/v1/loopbacktest/vid\",\"CallbackData\":\"testing\"}],\"schedulingInfo\":{\"normalDurationInSeconds\":60,\"additionalDurationInSeconds\":60,\"concurrencyLimit\":60,\"policyId\":\"SNIRO_CM_1707.Config_MS_Demo_TimeLimitAndVerticalTopology_zone_localTime.1.xml\",\"vnfDetails\":[{\"groupId\":\"group1\",\"node\":[\"satmo415vbc\",\"satmo455vbc\"]}]}}"; - JSONObject jsonObject =Mockito.mock(JSONObject.class); - - schedulerController.postCreateNewVNFChange(mockedRequest, jsonObject); - } - - @Test - public void postSubmitVnfChangeTimeslotsTest() throws Exception{ - JSONObject jsonObject =Mockito.mock(JSONObject.class); - Mockito.when(jsonObject.get("scheduleId")).thenReturn("12"); - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.when(SystemProperties.getProperty(SchedulerProperties.SCHEDULER_SUBMIT_NEW_VNF_CHANGE)).thenReturn("/v1/ChangeManagement/schedules/{scheduleId}/approvals"); - schedulerController.postSubmitVnfChangeTimeslots(mockedRequest, jsonObject); - } - -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SessionCommunicationControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SessionCommunicationControllerTest.java deleted file mode 100644 index e425e270..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SessionCommunicationControllerTest.java +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.controller.sessionmgt.SessionCommunicationController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.service.sessionmgt.ManageService; - -public class SessionCommunicationControllerTest { - - - @Mock - ManageService manageService; - - @InjectMocks - SessionCommunicationController SessionCommunicationController = new SessionCommunicationController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - NullPointerException nullPointerException = new NullPointerException(); - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - MockEPUser mockUser = new MockEPUser(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - - - @Test - public void getSessionSlotCheckIntervalTest() throws Exception - { - Mockito.when(manageService.fetchSessionSlotCheckInterval()).thenReturn(1); - int result = SessionCommunicationController.getSessionSlotCheckInterval(mockedRequest, mockedResponse); - assertEquals(result, 1); - - } - - @Test - public void extendSessionTimeOutsTest() throws Exception - { - Mockito.doNothing().when(manageService).extendSessionTimeOuts("test"); - Boolean result = SessionCommunicationController.extendSessionTimeOuts(mockedRequest, mockedResponse, "test"); - assertEquals(result, true); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextRestClient.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextRestClient.java deleted file mode 100644 index 8cf3e9c0..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextRestClient.java +++ /dev/null @@ -1,299 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.net.URI; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; - -import javax.net.ssl.SSLContext; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.http.Consts; -import org.apache.http.HttpEntity; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.utils.URIBuilder; -import org.apache.http.conn.ssl.NoopHostnameVerifier; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.entity.ContentType; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.ssl.SSLContexts; -import org.apache.http.ssl.TrustStrategy; -import org.apache.http.util.EntityUtils; - -/** - * Provides reusable features for test cases to get or post from an REST - * endpoint, allowing use of HTTPS connections to servers that use self-signed - * certificates. - */ -public class SharedContextRestClient { - - private static final Log logger = LogFactory.getLog(SharedContextRestClient.class); - - /** - * Convenience method that builds and sends a GET request using properties - * to build the URI and populate header with credentials. - * - * @param task - * last component(s) of REST endpoint name; e.g., "get". - * @param contextId - * @param contextKey - * @return JSON string fetched - * @throws Exception - * if the HTTP response code is anything other than OK. - */ - public static String getJson(final SharedContextTestProperties properties, final String task, - final String contextId, final String contextKey) throws Exception { - String requestPath = '/' + properties.getProperty(SharedContextTestProperties.APPNAME) // - + '/' + properties.getProperty(SharedContextTestProperties.RESTPATH) // - + '/' + task; - return getJson(properties.getProperty(SharedContextTestProperties.HOSTNAME), // - properties.getProperty(SharedContextTestProperties.PORT, -1), // - properties.getProperty(SharedContextTestProperties.SECURE, true), // - properties.getProperty(SharedContextTestProperties.UEBKEY), // - properties.getProperty(SharedContextTestProperties.USERNAME), // - properties.getProperty(SharedContextTestProperties.PASSWORD), requestPath, // - contextId, // - contextKey); - } - - /** - * Constructs and sends a GET request using the specified values. - * - * @param hostname - * @param port - * ignored if negative - * @param secure - * If true, uses https; else http. - * @param headerUebkey - * @param headerUsername - * @param headerPassword - * @param requestPath - * full path of the REST endpoint - * @param contextId - * @param contextKey - * Ignored if null - * @return JSON result - */ - public static String getJson(final String hostname, final int port, boolean secure, final String headerUebkey, - final String headerUsername, final String headerPassword, final String requestPath, final String contextId, - final String contextKey) throws Exception { - - URIBuilder uriBuilder = new URIBuilder(); - if (secure) - uriBuilder.setScheme("https"); - else - uriBuilder.setScheme("http"); - uriBuilder.setHost(hostname); - if (port > 0) - uriBuilder.setPort(port); - uriBuilder.setPath(requestPath); - uriBuilder.addParameter("context_id", contextId); - if (contextKey != null) - uriBuilder.addParameter("ckey", contextKey); - final URI uri = uriBuilder.build(); - - CloseableHttpClient httpClient; - if (secure) { - // Tell HttpClient to accept any server certificate for HTTPS. - // http://stackoverflow.com/questions/24720013/apache-http-client-ssl-certificate-error - SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() { - @Override - public boolean isTrusted(final X509Certificate[] chain, final String authType) - throws CertificateException { - return true; - } - }).build(); - SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, - NoopHostnameVerifier.INSTANCE); - httpClient = HttpClientBuilder.create().setSSLSocketFactory(sslsf).build(); - } else { - httpClient = HttpClients.createDefault(); - } - - HttpGet httpGet = new HttpGet(uri); - httpGet.setHeader("uebkey", headerUebkey); - httpGet.setHeader("username", headerUsername); - httpGet.setHeader("password", headerPassword); - - String json = null; - CloseableHttpResponse response = null; - try { - logger.debug("GET from " + uri); - response = httpClient.execute(httpGet); - logger.info("Status is " + response.getStatusLine()); - if (response.getStatusLine().getStatusCode() != HttpServletResponse.SC_OK) - throw new Exception("Status is " + response.getStatusLine().toString()); - HttpEntity entity = response.getEntity(); - if (entity == null) { - logger.warn("Entity is null!"); - } else { - // entity content length is never set. - // this naively tries to read everything. - json = EntityUtils.toString(entity); - EntityUtils.consume(entity); - } - } finally { - if (response != null) - response.close(); - } - return json; - } - - /** - * Convenience method that builds and sends a POST request using properties - * to build the URI and populate header with credentials. - * - * @param path - * last component(s) of REST endpoint name; e.g., "users" or - * "user/ab1234/roles". - * @return JSON string fetched - * @throws Exception - * if the HTTP response code is anything other than OK. - */ - public static String postJson(final SharedContextTestProperties properties, final String path, final String json) - throws Exception { - String requestPath = '/' + properties.getProperty(SharedContextTestProperties.APPNAME) // - + '/' + properties.getProperty(SharedContextTestProperties.RESTPATH) // - + '/' + path; - return postJson(properties.getProperty(SharedContextTestProperties.HOSTNAME), // - properties.getProperty(SharedContextTestProperties.PORT, -1), // - properties.getProperty(SharedContextTestProperties.SECURE, true), // - properties.getProperty(SharedContextTestProperties.UEBKEY), // - properties.getProperty(SharedContextTestProperties.USERNAME), // - properties.getProperty(SharedContextTestProperties.PASSWORD), // - requestPath, // - json); - } - - /** - * Constructs and sends a POST request using the specified values. - * - * @param hostname - * @param port - * @param secure - * If true, uses https; else http. - * @param requestPath - * full path of the REST endpoint - * @param headerUebkey - * @param headerUsername - * @param headerPassword - * @param json - * Content to post - * @return JSON result - * @throws Exception - */ - public static String postJson(final String hostname, final int port, boolean secure, final String headerUebkey, - final String headerUsername, final String headerPassword, final String requestPath, final String json) - throws Exception { - - URIBuilder builder = new URIBuilder(); - if (secure) - builder.setScheme("https"); - else - builder.setScheme("http"); - builder.setHost(hostname); - if (port > 0) - builder.setPort(port); - builder.setPath(requestPath); - final URI uri = builder.build(); - - CloseableHttpClient httpClient; - if (secure) { - // Tell HttpClient to accept any server certificate for HTTPS. - // http://stackoverflow.com/questions/24720013/apache-http-client-ssl-certificate-error - SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() { - @Override - public boolean isTrusted(final X509Certificate[] chain, final String authType) - throws CertificateException { - return true; - } - }).build(); - SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, - NoopHostnameVerifier.INSTANCE); - httpClient = HttpClientBuilder.create().setSSLSocketFactory(sslsf).build(); - } else { - httpClient = HttpClients.createDefault(); - } - HttpPost httpPost = new HttpPost(uri); - httpPost.setHeader("uebkey", headerUebkey); - httpPost.setHeader("username", headerUsername); - httpPost.setHeader("password", headerPassword); - - StringEntity postEntity = new StringEntity(json, ContentType.create("application/json", Consts.UTF_8)); - httpPost.setEntity(postEntity); - - String responseJson = null; - CloseableHttpResponse response = null; - try { - logger.debug("POST to " + uri); - response = httpClient.execute(httpPost); - logger.info("Status is " + response.getStatusLine()); - if (response.getStatusLine().getStatusCode() != HttpServletResponse.SC_OK) - throw new Exception("Status is " + response.getStatusLine().toString()); - - HttpEntity entity = response.getEntity(); - if (entity == null) { - logger.warn("Entity is null!"); - } else { - long len = entity.getContentLength(); - if (len < 0) - logger.warn("Content length is -1"); - if (len < 2048) { - responseJson = EntityUtils.toString(entity); - logger.debug(responseJson); - } else { - logger.warn("Not implemented - stream content"); - } - EntityUtils.consume(entity); - } - } finally { - if (response != null) - response.close(); - } - return responseJson; - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextRestControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextRestControllerTest.java deleted file mode 100644 index bdede7d1..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextRestControllerTest.java +++ /dev/null @@ -1,145 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -/*package org.openecomp.portalapp.portal.controller; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.junit.Assert; - -import com.fasterxml.jackson.databind.ObjectMapper; - -*//** - * Tests the endpoints exposed by the Shared Context REST controller in Portal - * Core. - * - * @author clott - *//* -public class SharedContextRestControllerTest { - - private final Log logger = LogFactory.getLog(getClass()); - - private final SharedContextTestProperties properties; - - private final String ckey = "ckey"; - private final String cvalue = "cvalue"; - - // Supposed to be a Portal session ID - private final String cxid = UUID.randomUUID().toString(); - - private final String key = "key123"; - private final String value1 = "first value"; - private final String value2 = "second value"; - - public SharedContextRestControllerTest() throws IOException { - properties = new SharedContextTestProperties(); - } - - @SuppressWarnings("unchecked") - //@Test - public void test() throws Exception { - String response = null, val = null; - ObjectMapper mapper = new ObjectMapper(); - Map responseMap, jsonMap; - - logger.info("Get on empty context"); - response = SharedContextRestClient.getJson(properties, "get", cxid, key); - // Should not exist - just generated the UUID - Map responseMap1 = mapper.readValue(response, Map.class); - response = (String) responseMap1.get("response"); - Assert.assertNull(response); - - logger.info("Set a new context"); - response = setContext(cxid, key, value1); - Assert.assertNotNull(response); - responseMap = mapper.readValue(response, Map.class); - String responseValue = (String) responseMap.get("response"); - Assert.assertNotNull(responseValue); - Assert.assertEquals("added", responseValue); - - logger.info("Get existing context"); - response = SharedContextRestClient.getJson(properties, "get", cxid, key); - responseMap = mapper.readValue(response, Map.class); - jsonMap = (Map) responseMap.get("response"); - Assert.assertNotNull(jsonMap); - val = (String) jsonMap.get(cvalue); - Assert.assertEquals(val, value1); - - logger.info("Overwrite exiting context"); - response = setContext(cxid, key, value2); - Assert.assertNotNull(response); - responseMap = mapper.readValue(response, Map.class); - response = (String) responseMap.get("response"); - Assert.assertNotNull(responseValue); - // Assert.assertEquals("replaced", responseValue); - - logger.info("Get existing context to verify overwrite"); - response = SharedContextRestClient.getJson(properties, "get", cxid, key); - responseMap = mapper.readValue(response, Map.class); - jsonMap = (Map) responseMap.get("response"); - Assert.assertNotNull(jsonMap); - val = (String) jsonMap.get(cvalue); - Assert.assertEquals(val, value2); - - logger.info("Delete one context"); - response = SharedContextRestClient.getJson(properties, "remove", cxid, key); - responseMap = mapper.readValue(response, Map.class); - response = (String) responseMap.get("response"); - Assert.assertEquals(response, "removed"); - - logger.info("Clear the context"); - response = SharedContextRestClient.getJson(properties, "clear", cxid, null); - Assert.assertEquals("", response); - } - - private String setContext(String context, String id, String value) throws Exception { - ObjectMapper mapper = new ObjectMapper(); - HashMap stringMap = new HashMap(); - stringMap.put("context_id", cxid); - stringMap.put(ckey, key); - stringMap.put(cvalue, value2); - String json = mapper.writeValueAsString(stringMap); - String response = SharedContextRestClient.postJson(properties, "set", json); - return response; - } -} -*/ diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextTestProperties.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextTestProperties.java deleted file mode 100644 index 1c849420..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/SharedContextTestProperties.java +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - -/** - * Trivial extension of Properties that populates itself from a known source. - */ -public class SharedContextTestProperties extends Properties { - - private static final long serialVersionUID = -4064100267979036550L; - - // property names - public static final String HOSTNAME = "hostname"; - public static final String PORT = "port"; - public static final String SECURE = "secure"; - public static final String APPNAME = "appname"; - public static final String RESTPATH = "restpath"; - public static final String UEBKEY = "uebkey"; - public static final String USERNAME = "username"; - public static final String PASSWORD = "password"; - - /** - * Expected on the classpath - */ - private static final String propertiesFileName = "shared-context-test.properties"; - - /** - * Constructor populates itself from properties file found in same package. - * - * @throws Exception - */ - public SharedContextTestProperties() throws IOException { - InputStream inStream = getClass().getResourceAsStream(propertiesFileName); - if (inStream == null) - throw new IOException("Failed to find file on classpath: " + propertiesFileName); - super.load(inStream); - inStream.close(); - } - - public int getProperty(final String name, final int defVal) throws NumberFormatException { - String prop = getProperty(name); - if (prop == null) - return defVal; - return Integer.parseInt(prop); - } - - public boolean getProperty(final String name, final boolean defVal) { - String prop = getProperty(name); - if (prop == null) - return false; - return Boolean.parseBoolean(prop); - } - - // Test this class - public static void main(String[] args) throws Exception { - SharedContextTestProperties p = new SharedContextTestProperties(); - System.out.println("Property " + SharedContextTestProperties.HOSTNAME + " = " - + p.getProperty(SharedContextTestProperties.HOSTNAME)); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/TicketEventControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/TicketEventControllerTest.java deleted file mode 100644 index ad696c2c..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/TicketEventControllerTest.java +++ /dev/null @@ -1,206 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.service.TicketEventService; -import org.openecomp.portalapp.portal.service.UserNotificationService; -import org.openecomp.portalsdk.core.web.support.UserUtils; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import com.fasterxml.jackson.databind.JsonNode; - -@RunWith(PowerMockRunner.class) -@PrepareForTest(UserUtils.class) -public class TicketEventControllerTest { - - @Mock - UserNotificationService userNotificationService; - - @Mock - TicketEventService ticketEventService; - - @InjectMocks - TicketEventController ticketEventController = new TicketEventController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockEPUser mockUser = new MockEPUser(); - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Test - public void saveUserValidationTest() throws Exception { - PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); - PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); - expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - expectedPortalRestResponse.setMessage("Invalid Org User ID"); - expectedPortalRestResponse.setResponse(null); - String ticketEventJson = "{\"application\": \"cbus\",\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site." - + " The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", " - + "\"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601," - + "\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; " - + "ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\"," - + "\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\"," - + "\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": " - + "{\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\", " - + "\"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"}," - + "\"SubscriberInfo\": {\"UserList\": [\"guest\"] }}"; - - actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, - mockedResponse, ticketEventJson); - assertEquals(actualPortalRestResponse, expectedPortalRestResponse); - } - - @Test - public void saveTest() throws Exception { - String UserIds[] = new String[1]; - UserIds[0] = "guest"; - ArrayList users = new ArrayList<>(); - EPUser user = new EPUser(); - user.setOrgUserId("guest"); - user.setId((long)1); - users.add(user); - List userIdlist = new ArrayList<>(); - userIdlist.add("guest"); - JsonNode application = null ; - String ticketEventJson = "{\"application\":\"cbus\",\"event\":{\"body\":{\"ticketStatePhrase\":\"We recently detected a problem with the equipment at your site. " - + "The event is in queue for immediate work.\",\"ivrNotificationFlag\":\"1\",\"expectedRestoreDate\":0,\"bridgeTransport\":\"AOTS\",\"reptRequestType\":0," - + "\"ticketNum\":\"000002000857405\",\"assetID\":\"CISCO_1921C1_ISR_G2\",\"eventDate\":1490545134601," - + "\"eventAbstract\":\"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; " - + "ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\"," - + "\"severity\":\"2 - Major\",\"ticketPriority\":\"3\",\"reportedCustomerImpact\":0,\"testAutoIndicator\":0," - + "\"supportGroupName\":\"US-TEST-ORT\",\"lastModifiedDate\":\"1487687703\",\"messageGroup\":\"SNMP\",\"csi\":0,\"mfabRestoredTime\":0}," - + "\"header\":{\"timestamp\":\"2017-02-21T14:35:05.219+0000\",\"eventSource\":\"aotstm\",\"entityId\":\"000002000857405\",\"sequenceNumber\":2}," - + "\"blinkMsgId\":\"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\":\"130.4.165.158\"},\"SubscriberInfo\":{\"UserList\":[\"guest\"]}}"; - PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); - PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); - expectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); - expectedPortalRestResponse.setMessage("processEventNotification: notification created"); - expectedPortalRestResponse.setResponse("NotificationId"); - - - Mockito.when(userNotificationService.getUsersByOrgIds(userIdlist)).thenReturn(users); - Mockito.when(ticketEventService.getNotificationHyperLink(application, "", "")).thenReturn(""); - actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, - mockedResponse, ticketEventJson); - assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.OK) == 0); - } - - @Test - public void saveTestForException() throws Exception { - String ticketEventJson = "\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site. The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", \"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601,\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\",\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\",\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\", \"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {\"UserList\": [\"hk8777\"] }}"; - PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, - mockedResponse, ticketEventJson); - assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); - } - -// @Test -// public void saveTestForApplicationValid() throws Exception { -// String ticketEventJson = "{\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site. The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", \"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601,\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\",\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\",\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\", \"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {\"UserList\": [\"hk8777\"] }}"; -// PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, -// mockedResponse, ticketEventJson); -// assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); -// assertEquals(actualPortalRestResponse.getMessage(), "application is mandatory"); -// -// } - - @Test - public void saveTestForBodyValid() throws Exception { - String ticketEventJson = "{\"application\": \"cbus\",\"event\": {\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\",\"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {\"UserList\": [\"hk8777\"] }}"; - PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, - mockedResponse, ticketEventJson); - assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); - assertEquals(actualPortalRestResponse.getMessage(), "body is mandatory"); - } - - @Test - public void saveTestForEventSourceValid() throws Exception { - String ticketEventJson = "{\"application\": \"cbus\",\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site. The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", \"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601,\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\",\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\",\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"entityId\": \"000002000857405\", \"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {\"UserList\": [\"hk8777\"] }}"; - PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, - mockedResponse, ticketEventJson); - assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); - assertEquals(actualPortalRestResponse.getMessage(), "Message Source is mandatory"); - } - - @Test - public void saveTestForUserListValid() throws Exception { - String ticketEventJson = "{\"application\": \"cbus\",\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site. The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", \"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601,\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\",\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\",\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\", \"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {}}"; - PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, - mockedResponse, ticketEventJson); - assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); - assertEquals(actualPortalRestResponse.getMessage(), "At least one user Id is mandatory"); - } - - @Test - public void saveTestForApplicationValid() throws Exception { - String ticketEventJson = "{\"event\": {\"body\": {\"ticketStatePhrase\": \"We recently detected a problem with the equipment at your site. The event is in queue for immediate work.\", \"ivrNotificationFlag\": \"1\",\"expectedRestoreDate\": 0,\"bridgeTransport\": \"AOTS\", \"reptRequestType\": 0,\"ticketNum\": \"000002000857405\",\"assetID\": \"CISCO_1921C1_ISR_G2\", \"eventDate\": 1490545134601,\"eventAbstract\": \"ospfIfConfigError trap received from Cisco_1921c1_ISR_G2 with arguments: ospfRouterId=Cisco_1921c1_ISR_G2; ospfIfIpAddress=1921c1_288266; ospfAddressLessIf=0; ospfPacketSrc=172.17.0.11; ospfConfigErrorType=2; ospfPacketType=1\",\"severity\": \"2 - Major\",\"ticketPriority\": \"3\",\"reportedCustomerImpact\": 0,\"testAutoIndicator\": 0,\"supportGroupName\": \"US-TEST-ORT\",\"lastModifiedDate\": \"1487687703\",\"messageGroup\": \"SNMP\",\"csi\": 0,\"mfabRestoredTime\": 0},\"header\": {\"timestamp\": \"2017-02-21T14:35:05.219+0000\",\"eventSource\": \"aotstm\",\"entityId\": \"000002000857405\", \"sequenceNumber\": 2 },\"blinkMsgId\": \"f38c071e-1a47-4b55-9e72-1db830100a61\",\"sourceIP\": \"130.4.165.158\"},\"SubscriberInfo\": {\"UserList\": [\"hk8777\"] }}"; - PortalRestResponse actualPortalRestResponse = ticketEventController.handleRequest(mockedRequest, - mockedResponse, ticketEventJson); - assertTrue(actualPortalRestResponse.getStatus().compareTo(PortalRestStatusEnum.ERROR) == 0); - assertEquals(actualPortalRestResponse.getMessage(), "Application is mandatory"); - - } -} \ No newline at end of file diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserControllerTest.java deleted file mode 100644 index b821b31a..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserControllerTest.java +++ /dev/null @@ -1,178 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.UserController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.UserService; -import org.openecomp.portalapp.portal.service.UserServiceImpl; -import org.openecomp.portalapp.portal.transport.ProfileDetail; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest(CipherUtil.class) -public class UserControllerTest extends MockitoTestSuite { - - @InjectMocks - UserController userController = new UserController(); - - @Mock - UserService userService = new UserServiceImpl(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - @Mock - EPUserUtils ePUserUtils = new EPUserUtils(); - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - MockEPUser mockUser = new MockEPUser(); - - @Test - public void getLoggedinUserExceptionTest() { - EPUser epUser = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(epUser); - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage(null); - expectedResponse.setResponse(null); - PortalRestStatusEnum enu = null; - expectedResponse.setStatus(enu.ERROR); - PortalRestResponse response = userController.getLoggedinUser(mockedRequest); - assertEquals(response, expectedResponse); - } - - @Test - public void getLoggedinUserTest() throws Exception { - EPUser epUser = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(epUser); - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage("success"); - ProfileDetail profileDetail = new ProfileDetail(); - expectedResponse.setResponse(profileDetail); - PortalRestStatusEnum enu = null; - expectedResponse.setStatus(enu.OK); - PowerMockito.mockStatic(CipherUtil.class); - Mockito.when(CipherUtil.decrypt(epUser.getLoginPwd())).thenReturn("Password"); - PortalRestResponse response = userController.getLoggedinUser(mockedRequest); - assertEquals(response.getMessage(), expectedResponse.getMessage()); - assertEquals(response.getStatus(), expectedResponse.getStatus()); - } - - @Test - public void modifyLoggedinUserIfProfileNullTest() { - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage("java.lang.NullPointerException"); - expectedResponse.setResponse(null); - PortalRestStatusEnum enu = null; - expectedResponse.setStatus(enu.ERROR); - ProfileDetail profileDetail = null; - PortalRestResponse actualResponse = userController.modifyLoggedinUser(mockedRequest, profileDetail); - assertEquals(actualResponse, expectedResponse); - assertEquals(actualResponse.getStatus(), expectedResponse.getStatus()); - } - - @Test - public void modifyLoggedinUserExceptionTest() { - EPUser epUser = mockUser.mockEPUser(); - - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage( - "java.lang.ClassCastException: com.sun.crypto.provider.AESCipher$General cannot be cast to javax.crypto.CipherSpi"); - expectedResponse.setResponse(null); - PortalRestStatusEnum enu = null; - expectedResponse.setStatus(enu.ERROR); - ProfileDetail profileDetail = new ProfileDetail(); - profileDetail.setFirstName("Test_FirstName"); - profileDetail.setLastName("Test_LastName"); - profileDetail.setEmail("Test_Email"); - profileDetail.setLoginId("Test_LoginId"); - profileDetail.setLoginPassword("Test_LoginPassword"); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(epUser); - PortalRestResponse actualResponse = userController.modifyLoggedinUser(mockedRequest, profileDetail); - assertEquals(actualResponse, expectedResponse); - - } - - /*@Test - public void modifyLoggedinUserTest() throws Exception { - EPUser epUser = mockUser.mockEPUser(); - PortalRestResponse expectedResponse = new PortalRestResponse(); - expectedResponse.setMessage("success"); - expectedResponse.setResponse(null); - PortalRestStatusEnum enu = null; - expectedResponse.setStatus(enu.OK); - ProfileDetail profileDetail = new ProfileDetail(); - profileDetail.setFirstName("Test_FirstName"); - profileDetail.setLastName("Test_LastName"); - profileDetail.setEmail("Test_Email"); - profileDetail.setLoginId("Test_LoginId"); - profileDetail.setLoginPassword("Test_LoginPassword"); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(epUser); - PowerMockito.mockStatic(CipherUtil.class); - Mockito.when(CipherUtil.decrypt(epUser.getLoginPwd())).thenReturn("Password"); - PortalRestResponse actualResponse = userController.modifyLoggedinUser(mockedRequest, profileDetail); - System.out.println(actualResponse); - }*/ -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserNotificationControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserNotificationControllerTest.java deleted file mode 100644 index ff08d8a6..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserNotificationControllerTest.java +++ /dev/null @@ -1,281 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertTrue; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Matchers; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.UserNotificationController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse; -import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum; -import org.openecomp.portalapp.portal.service.FunctionalMenuService; -import org.openecomp.portalapp.portal.service.FunctionalMenuServiceImpl; -import org.openecomp.portalapp.portal.service.UserNotificationService; -import org.openecomp.portalapp.portal.service.UserNotificationServiceImpl; -import org.openecomp.portalapp.portal.transport.EpNotificationItem; -import org.openecomp.portalapp.portal.transport.EpNotificationItemVO; -import org.openecomp.portalapp.portal.transport.FunctionalMenuRole; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.web.support.UserUtils; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest(UserUtils.class) -public class UserNotificationControllerTest { - - @Mock - FunctionalMenuService functionalMenuService = new FunctionalMenuServiceImpl(); - - @Mock - UserNotificationService userNotificationService = new UserNotificationServiceImpl(); - - @InjectMocks - UserNotificationController userNotificationController = new UserNotificationController(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockEPUser mockUser = new MockEPUser(); - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - @Test - public void getMenuIdRoleIdTest() { - List expectedMenuRoleList = new ArrayList(); - FunctionalMenuRole functionalMenuRole = new FunctionalMenuRole(); - functionalMenuRole.setId(new Integer(99999999)); - functionalMenuRole.setMenuId((long) 137); - functionalMenuRole.setAppId(new Integer(456)); - functionalMenuRole.setRoleId(new Integer(6214)); - expectedMenuRoleList.add(functionalMenuRole); - List actualFunctionalMenuRoleList = null; - Mockito.when(functionalMenuService.getFunctionalMenuRole()).thenReturn(expectedMenuRoleList); - actualFunctionalMenuRoleList = userNotificationController.getMenuIdRoleId(mockedRequest, mockedResponse); - assertTrue(actualFunctionalMenuRoleList.equals(expectedMenuRoleList)); - - } - - @Test - public void getNotificationsTest() { - EPUser user = mockUser.mockEPUser(); - HttpSession session = mockedRequest.getSession(); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedEpNotificationList = new ArrayList(); - EpNotificationItem epNotificationItem = new EpNotificationItem(); - epNotificationItem.setNotificationId((long) 200); - expectedEpNotificationList.add(epNotificationItem); - PortalRestResponse> expectedportalRestResponse = new PortalRestResponse>(); - expectedportalRestResponse.setMessage("success"); - expectedportalRestResponse.setResponse(expectedEpNotificationList); - expectedportalRestResponse.setStatus(PortalRestStatusEnum.OK); - PortalRestResponse> actualPortalRestResponse = null; - Mockito.when(userNotificationService.getNotifications(user.getId())).thenReturn(expectedEpNotificationList); - actualPortalRestResponse = userNotificationController.getNotifications(mockedRequest, mockedResponse); - assertTrue(expectedportalRestResponse.equals(actualPortalRestResponse)); - - } - - @Test - public void getNotificationsCatchesExceptionTest() { - EPUser user = mockUser.mockEPUser(); - HttpSession session = mockedRequest.getSession(); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List expectedEpNotificationList = null; - PortalRestResponse> expectedportalRestResponse = new PortalRestResponse>(); - expectedportalRestResponse.setMessage(null); - expectedportalRestResponse.setResponse(expectedEpNotificationList); - expectedportalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - PortalRestResponse> actualPortalRestResponse = null; - Mockito.when(userNotificationService.getNotifications(user.getId())).thenThrow(new NullPointerException()); - actualPortalRestResponse = userNotificationController.getNotifications(mockedRequest, mockedResponse); - assertTrue(expectedportalRestResponse.equals(actualPortalRestResponse)); - } - - @Test - public void getAdminNotificationsTest() { - EPUser user = mockUser.mockEPUser(); - HttpSession session = mockedRequest.getSession(); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - List actualEpNotificationsList = new ArrayList(); - List expectedEpNotificationsList = new ArrayList(); - EpNotificationItemVO epNotificationItemVO = new EpNotificationItemVO(); - epNotificationItemVO.setId((long) 1); - expectedEpNotificationsList.add(epNotificationItemVO); - Mockito.when(userNotificationService.getAdminNotificationVOS(Matchers.anyLong())).thenReturn(expectedEpNotificationsList); - actualEpNotificationsList = userNotificationController.getAdminNotifications(mockedRequest, mockedResponse); - assertTrue(actualEpNotificationsList.equals(expectedEpNotificationsList)); - } - - @Test - public void saveTestWhenNotificationIsNull() throws Exception { - EPUser user = mockUser.mockEPUser(); - HttpSession session = mockedRequest.getSession(); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - - PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); - PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); - expectedPortalRestResponse.setMessage("FAILURE"); - expectedPortalRestResponse.setResponse("Notification Header cannot be null or empty"); - expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - - EpNotificationItem notificationItem = null; - actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem); - assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse)); - } - - @Test - public void saveTestWhenEndTimeIsGreater() throws Exception { - EPUser user = mockUser.mockEPUser(); - HttpSession session = mockedRequest.getSession(); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); - PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); - expectedPortalRestResponse.setMessage("FAILURE"); - expectedPortalRestResponse.setResponse("End Time should be greater than start time"); - expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - EpNotificationItem notificationItem = new EpNotificationItem(); - notificationItem.setNotificationId((long) 1); - notificationItem.setMsgHeader("Test"); - Date currentDate = new Date(); - Calendar c = Calendar.getInstance(); - c.setTime(currentDate); - c.add(Calendar.DATE, 1); - Date currentDatePlusOne = c.getTime(); - notificationItem.setStartTime(currentDatePlusOne); - notificationItem.setEndTime(currentDate); - - actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem); - assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse)); - - } - - @Test - public void saveTestWhenNoRoleIDExists() throws Exception { - EPUser user = mockUser.mockEPUser(); - HttpSession session = mockedRequest.getSession(); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); - PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); - expectedPortalRestResponse.setMessage("FAILURE"); - expectedPortalRestResponse.setResponse("No Roles Ids Exist for the selected Roles"); - expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR); - EpNotificationItem notificationItem = new EpNotificationItem(); - notificationItem.setNotificationId((long) 1); - notificationItem.setMsgHeader("Test"); - notificationItem.setIsForAllRoles("N"); - Date currentDate = new Date(); - Calendar c = Calendar.getInstance(); - c.setTime(currentDate); - c.add(Calendar.DATE, 1); - Date currentDatePlusOne = c.getTime(); - notificationItem.setStartTime(currentDate); - notificationItem.setEndTime(currentDatePlusOne); - List roleList = new ArrayList(); - notificationItem.setRoleIds(roleList); - actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem); - assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse)); - } - - @Test - public void saveTest() throws Exception { - EPUser user = mockUser.mockEPUser(); - HttpSession session = mockedRequest.getSession(); - session.setAttribute("user", user); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - PortalRestResponse actualPortalRestResponse = new PortalRestResponse(); - PortalRestResponse expectedPortalRestResponse = new PortalRestResponse(); - expectedPortalRestResponse.setMessage("SUCCESS"); - expectedPortalRestResponse.setResponse(""); - expectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK); - EpNotificationItem notificationItem = new EpNotificationItem(); - notificationItem.setNotificationId((long) 1); - notificationItem.setMsgHeader("Test"); - notificationItem.setIsForAllRoles("Y"); - Date currentDate = new Date(); - Calendar c = Calendar.getInstance(); - c.setTime(currentDate); - c.add(Calendar.DATE, 1); - Date currentDatePlusOne = c.getTime(); - notificationItem.setStartTime(currentDate); - notificationItem.setEndTime(currentDatePlusOne); - List roleList = new ArrayList(); - Long role1 = (long) 1; - roleList.add(role1); - notificationItem.setRoleIds(roleList); - HttpServletRequest request = mockitoTestSuite.getMockedRequest(); - PowerMockito.mockStatic(UserUtils.class); - Mockito.when(UserUtils.getUserIdAsLong(request)).thenReturn((long) 1); - Mockito.when(userNotificationService.saveNotification(notificationItem)).thenReturn("Test"); - actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem); - assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse)); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserRolesControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserRolesControllerTest.java deleted file mode 100644 index 138c207b..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/UserRolesControllerTest.java +++ /dev/null @@ -1,326 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.controller.UserRolesController; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EcompAuditLog; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.SearchService; -import org.openecomp.portalapp.portal.service.UserRolesService; -import org.openecomp.portalapp.portal.transport.AppWithRolesForUser; -import org.openecomp.portalapp.portal.transport.AppsListWithAdminRole; -import org.openecomp.portalapp.portal.transport.FieldsValidator; -import org.openecomp.portalapp.portal.transport.FieldsValidator.FieldName; -import org.openecomp.portalapp.portal.transport.RoleInAppForUser; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.service.AuditService; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({EcompPortalUtils.class, EPCommonSystemProperties.class, EcompAuditLog.class, SystemProperties.class}) -public class UserRolesControllerTest extends MockitoTestSuite { - - String userid = "ab1234"; - - @Mock - UserRolesService userRolesService; - - @Mock - SearchService searchService; - - @Mock - AuditService auditService; - - @Mock - AdminRolesService adminRolesService; - - @Mock - FieldsValidator fieldsValidator; - - @InjectMocks - UserRolesController userRolesController = new UserRolesController(); - - @Mock - private DataAccessService dataAccessService; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - - @Mock - EPUserUtils ePUserUtils = new EPUserUtils(); - - @Mock - EPUser epuser; - - MockEPUser mockUser = new MockEPUser(); - - @Test - public void putAppWithUserRoleRequestTest() { - - FieldsValidator actualFieldsValidator = null; - - AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser(); - List listofRoles = new ArrayList(); - - appWithRolesForUser.setOrgUserId("guest"); - appWithRolesForUser.setAppId((long) 550); - appWithRolesForUser.setAppName("D2 Services Analytics Dashboard"); - appWithRolesForUser.setAppRoles(listofRoles); - - RoleInAppForUser roleInAppForUser = new RoleInAppForUser(); - roleInAppForUser.setIsApplied(false); - roleInAppForUser.setRoleId((long) 1); - roleInAppForUser.setRoleName("System Administrator"); - - RoleInAppForUser roleInAppForUser1 = new RoleInAppForUser(); - roleInAppForUser1.setIsApplied(true); - roleInAppForUser1.setRoleId((long) 16); - roleInAppForUser1.setRoleName("Standard User"); - - listofRoles.add(roleInAppForUser); - listofRoles.add(roleInAppForUser1); - EPUser user = mockUser.mockEPUser(); - FieldsValidator expectedFieldValidator = new FieldsValidator(); - List fields = new ArrayList<>(); - - expectedFieldValidator.setHttpStatusCode((long) 200); - expectedFieldValidator.setFields(fields); - expectedFieldValidator.setErrorCode(null); - HttpSession session = mockedRequest.getSession(); - session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user); - - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(userRolesService.putUserAppRolesRequest(appWithRolesForUser, user)) - .thenReturn(expectedFieldValidator); - - actualFieldsValidator = userRolesController.putAppWithUserRoleRequest(mockedRequest, appWithRolesForUser, - mockedResponse); - assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode()); - assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode()); - assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields()); - - } - - @Test - public void getPhoneBookSearchResultBadPermissionsTest() { - String searchString = "test"; - String actualResult = null; - String expectedResult = null; - - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); - Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult); - - actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse); - assertEquals(expectedResult, actualResult); - - } - - @Test - public void getPhoneBookSearchResultValidationTest() { - String searchString = " t"; - String actualResult = null; - String expectedResult = null; - - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); - Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult); - - actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse); - assertEquals(expectedResult, actualResult); - - } - - @Test - public void getPhoneBookSearchResultTest() { - String searchString = "test"; - String actualResult = null; - String expectedResult = null; - - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); - Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult); - - actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse); - assertEquals(expectedResult, actualResult); - - } - - @Test - public void getAppsWithAdminRoleStateForUserTest(){ - - String orgUserId = "hb123f"; - AppsListWithAdminRole actualResult = new AppsListWithAdminRole(); - AppsListWithAdminRole expectedResult = new AppsListWithAdminRole(); - EPUser user = mockUser.mockEPUser(); - // PowerMockito.mockStatic(EcompPortalUtils.class); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId)).thenReturn(actualResult); - - actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse); - assertEquals(expectedResult, actualResult); - } - - /*@Test - public void getAppsWithAdminRoleStateForUserBadRequestTest(){ - - String orgUserId = "hb123f"; - AppsListWithAdminRole actualResult = null; - AppsListWithAdminRole expectedResult = null; - EPUser user = mockUser.mockEPUser(); - PowerMockito.mockStatic(EcompPortalUtils.class); - PowerMockito.when(EcompPortalUtils.legitimateUserId(orgUserId)).thenReturn(false); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId)).thenReturn(actualResult); - - actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse); - assertEquals(expectedResult, actualResult); - }*/ - - @Test - public void putAppsWithAdminRoleStateForUserBadStatusCodeTest(){ - FieldsValidator actualFieldsValidator = null; - AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole(); - FieldsValidator expectedFieldsValidator = new FieldsValidator(); - List fieldNames = new ArrayList(); - expectedFieldsValidator.setErrorCode(null); - expectedFieldsValidator.setFields(fieldNames); - expectedFieldsValidator.setHttpStatusCode((long)200); - - EPUser user = mockUser.mockEPUser(); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - - actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse); - assertEquals(expectedFieldsValidator, actualFieldsValidator); - } - - - /*@Test - public void putAppsWithAdminRoleStateForUserTest() { - - FieldsValidator actualFieldsValidator = null; - AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole(); - EPUser user = mockUser.mockEPUser(); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - PowerMockito.mockStatic(EcompAuditLog.class); - PowerMockito.mockStatic(SystemProperties.class); - Mockito.when(SystemProperties.getProperty(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN)).thenReturn("1400"); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)).thenReturn("1400"); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)).thenReturn("1400"); - Mockito.when(SystemProperties.getProperty(SystemProperties.MDC_TIMER)).thenReturn("1400"); - - actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse); - - System.out.println(actualFieldsValidator); - Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult); - - actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse); - assertEquals(expectedResult, actualResult); - - }*/ - - /*@Test - public void putAppsWithAdminRoleStateForUserTest(){ - FieldsValidator actualFieldsValidator = null; - AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole(); - FieldsValidator expectedFieldsValidator = new FieldsValidator(); - List fieldNames = new ArrayList(); - expectedFieldsValidator.setErrorCode(null); - expectedFieldsValidator.setFields(fieldNames); - expectedFieldsValidator.setHttpStatusCode((long)200); - - EPUser user = mockUser.mockEPUser(); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - PowerMockito.mockStatic(EcompAuditLog.class); - PowerMockito.mockStatic(SystemProperties.class); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - Mockito.when(adminRolesService.setAppsWithAdminRoleStateForUser(newAppsListWithAdminRoles)); - Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); - - // Mockito.call(auditService.logActivity(auditLog, null)); -// Mockito.when(SystemProperties.getProperty(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN)).thenReturn("1400"); -// Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)).thenReturn("1400"); -// Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)).thenReturn("1400"); -// Mockito.when(SystemProperties.getProperty(SystemProperties.MDC_TIMER)).thenReturn("1400"); - - actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse); - assertEquals(expectedFieldsValidator, actualFieldsValidator); - }*/ -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/WebAnalyticsExtAppControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/WebAnalyticsExtAppControllerTest.java deleted file mode 100644 index 43f40192..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/WebAnalyticsExtAppControllerTest.java +++ /dev/null @@ -1,141 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertTrue; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.io.IOUtils; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl; -import org.openecomp.portalapp.portal.service.AppsCacheService; -import org.openecomp.portalapp.portal.service.AppsCacheServiceImple; -import org.openecomp.portalapp.portal.transport.Analytics; -import org.openecomp.portalsdk.core.onboarding.crossapi.PortalAPIResponse; -import org.openecomp.portalsdk.core.service.AuditService; -import org.openecomp.portalsdk.core.service.AuditServiceImpl; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - - -@RunWith(PowerMockRunner.class) -@PrepareForTest({SystemProperties.class,IOUtils.class,Object.class}) -public class WebAnalyticsExtAppControllerTest { - - - - @InjectMocks - WebAnalyticsExtAppController webAnalyticsExtAppController = new WebAnalyticsExtAppController(); - - @Mock - AdminRolesService adminRolesService = new AdminRolesServiceImpl(); - - @Mock - AppsCacheService appCacheService = new AppsCacheServiceImple(); - - @Mock - AuditService auditService = new AuditServiceImpl(); - -// @Mock -// InputStream analyticsFileStream; - - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - /*@Test - public void getAnalyticsScriptTest() throws Exception - { - String expectedResponse = "http://www.ecomp.com"; - - InputStream analyticsFileStream = null; - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(IOUtils.class); - Mockito.when(IOUtils.toString(analyticsFileStream, StandardCharsets.UTF_8.name())).thenReturn("PORTAL_ENV_URL"); - Mockito.when(SystemProperties.getProperty("frontend_url")).thenReturn("http://www.ecomp.com/test"); - String actualResponse = webAnalyticsExtAppController.getAnalyticsScript(mockedRequest); -// assertNull(webAnalyticsExtAppController.getAnalyticsScript(mockedRequest)); - - // System.out.println(actualResponse); - assertTrue(actualResponse.equals(expectedResponse)); - }*/ - - /*@Test - public void getAnalyticsScriptExceptionTest() throws Exception - { - String expectedResponse = ""; - InputStream analyticsFileStream = null; - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(IOUtils.class); - Mockito.when(IOUtils.toString(analyticsFileStream, StandardCharsets.UTF_8.name())).thenThrow(nullPointerException); - Mockito.when(SystemProperties.getProperty("frontend_url")).thenReturn("http://www.ecomp.com/test"); - String actualResponse = webAnalyticsExtAppController.getAnalyticsScript(mockedRequest); - assertEquals(actualResponse,expectedResponse); - }*/ - - @Test - public void storeAnalyticsScriptIfAnalyticsNullTest() throws Exception - { - PortalAPIResponse expectedPortalAPIResponse = new PortalAPIResponse(true, "error"); - Analytics analytics= null; - Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(null); - PortalAPIResponse actualPortalAPIResponse = webAnalyticsExtAppController.storeAnalyticsScript(mockedRequest, analytics); - assertTrue(expectedPortalAPIResponse.getMessage().equals(actualPortalAPIResponse.getMessage())); - assertTrue(expectedPortalAPIResponse.getStatus().equals(actualPortalAPIResponse.getStatus())); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogMarkupControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogMarkupControllerTest.java deleted file mode 100644 index 7f8d6a48..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/WidgetsCatalogMarkupControllerTest.java +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.controller; - -import static org.junit.Assert.assertTrue; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.domain.WidgetServiceHeaders; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.service.ConsulHealthService; -import org.openecomp.portalapp.portal.service.ConsulHealthServiceImpl; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; -import org.springframework.web.client.RestClientException; -import org.springframework.web.client.RestTemplate; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({WidgetServiceHeaders.class, EcompPortalUtils.class}) -public class WidgetsCatalogMarkupControllerTest extends MockitoTestSuite { - - @InjectMocks - WidgetsCatalogMarkupController widgetsCatalogMarkupController = new WidgetsCatalogMarkupController(); - - @Mock - ConsulHealthService consulHealthService = new ConsulHealthServiceImpl(); - - @Mock - RestTemplate template = new RestTemplate(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - @Mock - CipherUtil cipherUtil= new CipherUtil(); - - @Mock - EcompPortalUtils ecompPortalUtils =new EcompPortalUtils(); - - @Mock - WidgetServiceHeaders WidgetServiceHeaders ; - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - - @SuppressWarnings("static-access") - @Test - public void getWidgetMarkupTest() throws RestClientException, Exception - { - String whatService = "widgets-service"; - PowerMockito.mockStatic(WidgetServiceHeaders.class); - PowerMockito.mockStatic(EcompPortalUtils.class); - Mockito.when(template.getForObject(EcompPortalUtils.widgetMsProtocol() + "://" + consulHealthService.getServiceLocation(whatService, null) + "/widget/microservices/markup/" + 1, String.class, - WidgetServiceHeaders.getInstance())).thenReturn("Success"); - String response = widgetsCatalogMarkupController.getWidgetMarkup(mockedRequest, mockedResponse, 1); - assertTrue(response.equals("Success")); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/shared-context-test.properties b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/shared-context-test.properties deleted file mode 100644 index 938d11fb..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/controller/shared-context-test.properties +++ /dev/null @@ -1,46 +0,0 @@ -### -# ============LICENSE_START========================================== -# ONAP Portal -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software 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. -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# 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============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -### - -hostname= www.portal.onap.org -# port = 80 -secure = true -appname = ecompportal -restpath = context -uebkey = xgnLrmNmkfCRnIwa -username = username -password = password diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/core/MockEPUser.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/core/MockEPUser.java deleted file mode 100644 index 4cc471b0..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/core/MockEPUser.java +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.core; - -import java.util.Date; - -import org.openecomp.portalapp.portal.domain.EPUser; - -public class MockEPUser { - - public EPUser mockEPUser() { - - EPUser ePUser = new EPUser(); - ePUser.setOrgId(null); - ePUser.setManagerId(null); - ePUser.setFirstName("test"); - ePUser.setLastName("test"); - ePUser.setMiddleInitial(null); - ePUser.setPhone(null); - ePUser.setFax(null); - ePUser.setCellular(null); - ePUser.setEmail(null); - ePUser.setAddressId(null); - ePUser.setAlertMethodCd(null); - ePUser.setHrid(null); - ePUser.setOrgUserId("guestT"); - ePUser.setOrgCode(null); - ePUser.setAddress1(null); - ePUser.setAddress2(null); - ePUser.setCity(null); - ePUser.setState(null); - ePUser.setZipCode(null); - ePUser.setCountry(null); - ePUser.setOrgManagerUserId(null); - ePUser.setLocationClli(null); - ePUser.setBusinessCountryCode(null); - ePUser.setBusinessCountryName(null); - ePUser.setBusinessUnit(null); - ePUser.setBusinessUnitName(null); - ePUser.setDepartment(null); - ePUser.setDepartmentName(null); - ePUser.setCompanyCode(null); - ePUser.setCompany(null); - ePUser.setZipCodeSuffix(null); - ePUser.setJobTitle(null); - ePUser.setCommandChain(null); - ePUser.setSiloStatus(null); - ePUser.setCostCenter(null); - ePUser.setFinancialLocCode(null); - - ePUser.setLoginId(null); - ePUser.setLoginPwd(null); - Date date = new Date(); - ePUser.setLastLoginDate(date); - ePUser.setActive(true); - ePUser.setInternal(false); - ePUser.setSelectedProfileId(null); - ePUser.setTimeZoneId(null); - ePUser.setOnline(true); - ePUser.setChatId(null); - ePUser.setUserApps(null); - ePUser.setPseudoRoles(null); - - ePUser.setId((long) -1); - return ePUser; - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AdminUserAppTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AdminUserAppTest.java deleted file mode 100644 index c6160b2d..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AdminUserAppTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.AdminUserApp; - -public class AdminUserAppTest { - - public AdminUserApp mockAdminUserApp(){ - - AdminUserApp adminUserApp = new AdminUserApp(); - - adminUserApp.setUserId((long)1); - adminUserApp.setFirstName("test"); - adminUserApp.setLastName("test"); - adminUserApp.setOrgUserId("test"); - adminUserApp.setAppId((long)1); - adminUserApp.setAppName("test"); - - return adminUserApp; - } - - @Test - public void adminUserAppTest(){ - AdminUserApp adminUserApp = mockAdminUserApp(); - - assertEquals(adminUserApp.getUser_Id(), new Long(1)); - assertEquals(adminUserApp.getFirstName(), "test"); - assertEquals(adminUserApp.getLastName(), "test"); - assertEquals(adminUserApp.getOrgUserId(), "test"); - assertEquals(adminUserApp.getAppName(), "test"); - assertEquals(adminUserApp.getAppId(), new Long(1)); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AdminUserApplicationsTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AdminUserApplicationsTest.java deleted file mode 100644 index bf931a60..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AdminUserApplicationsTest.java +++ /dev/null @@ -1,94 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import javax.persistence.Column; -import javax.persistence.Id; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.AdminUserApp; -import org.openecomp.portalapp.portal.domain.AdminUserApplications; - -public class AdminUserApplicationsTest { - - public AdminUserApplications mockAdminUserApplications(){ - - AdminUserApp adminUserApp = new AdminUserApp(); - - adminUserApp.setUserId((long)1); - adminUserApp.setFirstName("test"); - adminUserApp.setLastName("test"); - adminUserApp.setOrgUserId("test"); - adminUserApp.setAppId((long)1); - adminUserApp.setAppName("test"); - - AdminUserApplications adminUserApplications = new AdminUserApplications(adminUserApp); - - adminUserApplications.setUser_Id((long)1); - adminUserApplications.setFirstName("test"); - adminUserApplications.setLastName("test"); - adminUserApplications.setOrgUserId("test"); - return adminUserApplications; - } - - @Test - public void adminUserAppTest(){ - AdminUserApplications adminUserApplications = mockAdminUserApplications(); - AdminUserApp adminUserApp = new AdminUserApp(); - - adminUserApp.setUserId((long)1); - adminUserApp.setFirstName("test"); - adminUserApp.setLastName("test"); - adminUserApp.setOrgUserId("test"); - adminUserApp.setAppId((long)1); - adminUserApp.setAppName("test"); - AdminUserApplications adminUserApplications1 = new AdminUserApplications(adminUserApp); - - assertEquals(adminUserApplications.getUser_Id(), new Long(1)); - assertEquals(adminUserApplications.getFirstName(), "test"); - assertEquals(adminUserApplications.getLastName(), "test"); - assertEquals(adminUserApplications.getOrgUserId(), "test"); - - - assertEquals(adminUserApplications1.getApps().get(0).getAppId(),adminUserApp.getAppId()); - assertEquals(adminUserApplications1.getApps().get(0).getAppName(),adminUserApp.getAppName()); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AppContactUsTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AppContactUsTest.java deleted file mode 100644 index 8043a9dc..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/AppContactUsTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.AppContactUs; - -public class AppContactUsTest { - - public AppContactUs mockAppContactUs(){ - AppContactUs appContactUs = new AppContactUs(); - appContactUs.setDescription("test"); - appContactUs.setContactEmail("test"); - appContactUs.setContactName("test"); - appContactUs.setUrl("test"); - appContactUs.setActiveYN("test"); - - return appContactUs; - } - - @Test - public void mockAppContactUsTest(){ - AppContactUs appContactUs = mockAppContactUs(); - - assertEquals(appContactUs.getDescription(), "test"); - assertEquals(appContactUs.getContactEmail(), "test"); - assertEquals(appContactUs.getContactName(), "test"); - assertEquals(appContactUs.getUrl(), "test"); - assertEquals(appContactUs.getActiveYN(), "test"); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/CentralRoleFunctionTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/CentralRoleFunctionTest.java deleted file mode 100644 index fb0aee8e..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/CentralRoleFunctionTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.CentralRoleFunction; - -public class CentralRoleFunctionTest { - - public CentralRoleFunction mockCentralRoleFunction(){ - - CentralRoleFunction centralRoleFunction = new CentralRoleFunction(); - - centralRoleFunction.setCode("test"); - centralRoleFunction.setName("test"); - centralRoleFunction.setAppId((long)1); - centralRoleFunction.setEditUrl("test"); - - return centralRoleFunction; - } - - @Test - public void centralRoleFunctionTest(){ - CentralRoleFunction centralRoleFunction = mockCentralRoleFunction(); - - assertEquals(centralRoleFunction.getAppId(), new Long(1)); - assertEquals(centralRoleFunction.getCode(), "test"); - assertEquals(centralRoleFunction.getName(), "test"); - assertEquals(centralRoleFunction.getEditUrl(), "test"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPAppRoleFunctionTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPAppRoleFunctionTest.java deleted file mode 100644 index 0b46857c..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPAppRoleFunctionTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPAppRoleFunction; - -public class EPAppRoleFunctionTest { - - public EPAppRoleFunction mockEPAppRoleFunction(){ - EPAppRoleFunction epAppRoleFunction = new EPAppRoleFunction(); - epAppRoleFunction.setRoleId((long)1); - epAppRoleFunction.setAppId((long)1); - epAppRoleFunction.setCode("test"); - - return epAppRoleFunction; - } - - @Test - public void epAppRoleFunctionTest(){ - EPAppRoleFunction epAppRoleFunction = mockEPAppRoleFunction(); - - assertEquals(epAppRoleFunction.getRoleId(), new Long(1)); - assertEquals(epAppRoleFunction.getAppId(), new Long(1)); - assertEquals(epAppRoleFunction.getCode(), "test"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPAppTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPAppTest.java deleted file mode 100644 index 08383095..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPAppTest.java +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPApp; - -public class EPAppTest { - - public EPApp mockEPApp(){ - EPApp epApp = new EPApp(); - - epApp.setName("test"); - epApp.setImageUrl("test"); - epApp.setDescription("test"); - epApp.setNotes("test"); - epApp.setUrl("test"); - epApp.setAlternateUrl("test"); - epApp.setAppRestEndpoint("test"); - epApp.setMlAppName("test"); - epApp.setMlAppAdminId("test"); - epApp.setMotsId((long)1); - epApp.setUsername("test"); - epApp.setAppPassword("test"); - epApp.setOpen(false); - epApp.setEnabled(false); - epApp.setUebTopicName("test"); - epApp.setUebSecret("test"); - epApp.setAppType(1); - epApp.setCentralAuth(false); - epApp.setNameSpace("test"); - - return epApp; - } - - @Test - public void epAppTest(){ - EPApp epApp = mockEPApp(); - - assertEquals(epApp.getName(), "test"); - assertEquals(epApp.getImageUrl(), "test"); - assertEquals(epApp.getDescription(), "test"); - assertEquals(epApp.getNotes(), "test"); - assertEquals(epApp.getUrl(), "test"); - assertEquals(epApp.getAlternateUrl(), "test"); - assertEquals(epApp.getAppRestEndpoint(), "test"); - assertEquals(epApp.getMlAppName(), "test"); - assertEquals(epApp.getMlAppAdminId(), "test"); - assertEquals(epApp.getMotsId(), new Long(1)); - assertEquals(epApp.getUsername(), "test"); - assertEquals(epApp.getAppPassword(), "test"); - assertEquals(epApp.getOpen(), false); - assertEquals(epApp.getEnabled(), false); - assertEquals(epApp.getUebTopicName(), "test"); - assertEquals(epApp.getUebSecret(), "test"); - assertEquals(epApp.getAppType(), Integer.valueOf(1)); - assertEquals(epApp.getCentralAuth(), false); - assertEquals(epApp.getNameSpace(), "test"); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPEndpointAccountTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPEndpointAccountTest.java deleted file mode 100644 index db407633..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPEndpointAccountTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPEndpointAccount; - -public class EPEndpointAccountTest { - - public EPEndpointAccount mockEPEndpointAccount(){ - EPEndpointAccount epEndpointAccount = new EPEndpointAccount(); - - epEndpointAccount.setEp_id((long)1); - epEndpointAccount.setAccount_id((long)1); - epEndpointAccount.setId((long)1); - - return epEndpointAccount; - } - - @Test - public void epEndpointAccount(){ - EPEndpointAccount epEndpointAccount = mockEPEndpointAccount(); - assertEquals(epEndpointAccount.getEp_id(), new Long(1)); - assertEquals(epEndpointAccount.getAccount_id(), new Long(1)); - assertEquals(epEndpointAccount.getId(), new Long(1)); - - assertEquals(epEndpointAccount.toString(), "EPEndpointAccount [id=1, ep_id=1, account_id=1]"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPEndpointTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPEndpointTest.java deleted file mode 100644 index 76cd5806..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPEndpointTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPEndpoint; - -public class EPEndpointTest { - - public EPEndpoint mockEPEndpoint(){ - EPEndpoint epEndpoint = new EPEndpoint(); - - epEndpoint.setId((long)1); - epEndpoint.setName("test"); - - return epEndpoint; - } - - @Test - public void epEndpointTest(){ - EPEndpoint epEndpoint = mockEPEndpoint(); - - assertEquals(epEndpoint.getId(), new Long(1)); - assertEquals(epEndpoint.getName(), "test"); - assertEquals("EPEndpoint [id=1, name=test]", epEndpoint.toString()); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPRoleTest.java deleted file mode 100644 index 891ad0eb..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPRoleTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPRole; - -public class EPRoleTest { - - public EPRole mockEPRole(){ - EPRole epRole = new EPRole(); - - epRole.setName("test"); - epRole.setActive(false); - epRole.setPriority(1); - epRole.setAppId((long)1); - epRole.setAppRoleId((long)1); - - return epRole; - } - - @Test - public void epRoleTest(){ - EPRole epRole = mockEPRole(); - - assertEquals(epRole.getName(), "test"); - assertEquals(epRole.getActive(), false); - assertEquals(epRole.getPriority().toString(),"1"); - assertEquals(epRole.getAppId(), new Long(1)); - assertEquals(epRole.getAppRoleId(), new Long(1)); - - assertEquals(epRole.toString(), "[Id = null, name = test]"); - - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppCatalogRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppCatalogRolesTest.java deleted file mode 100644 index 7090d495..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppCatalogRolesTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPUserAppCatalogRoles; - -public class EPUserAppCatalogRolesTest { - - public EPUserAppCatalogRoles mockEPUserAppCatalogRoles(){ - EPUserAppCatalogRoles epUserAppCatalogRoles = new EPUserAppCatalogRoles(); - - epUserAppCatalogRoles.setRequestedRoleId((long)1); - epUserAppCatalogRoles.setRolename("test"); - epUserAppCatalogRoles.setRequestStatus("status"); - epUserAppCatalogRoles.setAppId((long)1); - - return epUserAppCatalogRoles; - } - - @Test - public void epUserAppCatalogRolesTest(){ - EPUserAppCatalogRoles epUserAppCatalogRoles = mockEPUserAppCatalogRoles(); - - assertEquals(epUserAppCatalogRoles.getRequestedRoleId(), new Long(1)); - assertEquals(epUserAppCatalogRoles.getRolename(), "test"); - assertEquals(epUserAppCatalogRoles.getRequestStatus(), "status"); - assertEquals(epUserAppCatalogRoles.getAppId(), new Long(1)); - - assertEquals("EPUserAppCatalogRoles [requestedRoleId=1, rolename=test, requestStatus=status, appId=1]", epUserAppCatalogRoles.toString()); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequestDetailTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequestDetailTest.java deleted file mode 100644 index 93405f13..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesRequestDetailTest.java +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import java.util.Date; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPUserAppRolesRequest; -import org.openecomp.portalapp.portal.domain.EPUserAppRolesRequestDetail; - -public class EPUserAppRolesRequestDetailTest { - - public EPUserAppRolesRequestDetail mockEPUserAppRolesRequestDetail(){ - - EPUserAppRolesRequest epUserAppRolesRequest = new EPUserAppRolesRequest(); - epUserAppRolesRequest.setUserId((long)1); - epUserAppRolesRequest.setAppId((long)1); - epUserAppRolesRequest.setCreated(new Date()); - epUserAppRolesRequest.setUpdatedDate(new Date()); - epUserAppRolesRequest.setRequestStatus("test"); - - EPUserAppRolesRequestDetail epUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail(); - epUserAppRolesRequestDetail.setReqRoleId((long)1); - epUserAppRolesRequestDetail.setReqType("test"); - epUserAppRolesRequestDetail.setEpRequestIdData(epUserAppRolesRequest); - - return epUserAppRolesRequestDetail; - } - - @Test - public void epUserAppRolesRequestDetailTest(){ - - EPUserAppRolesRequest epUserAppRolesRequest = new EPUserAppRolesRequest(); - epUserAppRolesRequest.setUserId((long)1); - epUserAppRolesRequest.setAppId((long)1); - epUserAppRolesRequest.setCreated(new Date()); - epUserAppRolesRequest.setUpdatedDate(new Date()); - epUserAppRolesRequest.setRequestStatus("test"); - - EPUserAppRolesRequestDetail epUserAppRolesRequestDetail = mockEPUserAppRolesRequestDetail(); - - EPUserAppRolesRequestDetail epUserAppRolesRequestDetail1 = new EPUserAppRolesRequestDetail(); - epUserAppRolesRequestDetail1.setReqRoleId((long)1); - epUserAppRolesRequestDetail1.setReqType("test"); - epUserAppRolesRequestDetail1.setEpRequestIdData(epUserAppRolesRequest); - - assertEquals(epUserAppRolesRequestDetail.getReqRoleId(), new Long(1)); - assertEquals(epUserAppRolesRequestDetail.getReqType(), "test"); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesTest.java deleted file mode 100644 index eede33eb..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppRolesTest.java +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPUserAppRoles; - -public class EPUserAppRolesTest { - - public EPUserAppRoles mockEPUserAppRoles(){ - EPUserAppRoles epUserAppRoles = new EPUserAppRoles(); - - epUserAppRoles.setRoleId((long)1); - epUserAppRoles.setAppId((long)1); - - return epUserAppRoles; - } - - @Test - public void epUserAppRolesTest(){ - EPUserAppRoles epUserAppRoles = mockEPUserAppRoles(); - - assertEquals(epUserAppRoles.getRoleId(), new Long(1)); - assertEquals(epUserAppRoles.getAppId(), new Long(1)); - assertEquals("EpUserAppRoles [roleId=1, appId=1]", epUserAppRoles.toString()); - } -} - diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppTest.java deleted file mode 100644 index 1ab2f67e..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppTest.java +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUserApp; - -public class EPUserAppTest { - - public EPUserApp mockEPUserApp(){ - - EPApp epApp = new EPApp(); - epApp.setName("test"); - epApp.setImageUrl("test"); - epApp.setDescription("test"); - epApp.setNotes("test"); - epApp.setUrl("test"); - epApp.setAlternateUrl("test"); - epApp.setAppRestEndpoint("test"); - epApp.setMlAppName("test"); - epApp.setMlAppAdminId("test"); - epApp.setMotsId((long)1); - epApp.setUsername("test"); - epApp.setAppPassword("test"); - - - //Role - EPRole epRole = new EPRole(); - epRole.setName("test"); - epRole.setActive(false); - epRole.setPriority(1); - epRole.setAppId((long)1); - epRole.setAppRoleId((long)1); - - EPUserApp user = new EPUserApp(); - user.setUserId((long)1); - user.setApp(epApp); - user.setRole(epRole); - user.setPriority((short)32767); - - - return user; - } - - @Test - public void userTest(){ - EPUserApp user = mockEPUserApp(); - - EPApp epApp = new EPApp(); - epApp.setName("test"); - epApp.setImageUrl("test"); - epApp.setDescription("test"); - epApp.setNotes("test"); - epApp.setUrl("test"); - epApp.setAlternateUrl("test"); - epApp.setAppRestEndpoint("test"); - epApp.setMlAppName("test"); - epApp.setMlAppAdminId("test"); - epApp.setMotsId((long)1); - epApp.setUsername("test"); - epApp.setAppPassword("test"); - user.setApp(epApp); - - //Role - EPRole epRole = new EPRole(); - epRole.setName("test"); - epRole.setActive(false); - epRole.setPriority(1); - epRole.setAppId((long)1); - epRole.setAppRoleId((long)1); - - - assertEquals(user.getUserId(),Long.valueOf(1)); - assertEquals(user.getApp(), epApp); - assertEquals(user.getPriority().getClass(), Short.class); - - assertEquals(user.toString(), "[u: 1; a: null, r: null; appRoleId: 1]"); - - assertEquals(user.hashCode(), user.hashCode()); - - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java deleted file mode 100644 index fdf864bb..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPUserAppsManualSortPreference; - -public class EPUserAppsManualSortPreferenceTest { - - public EPUserAppsManualSortPreference mockEPUserAppsManualSortPreference(){ - - EPUserAppsManualSortPreference epUserAppsManualSortPreference = new EPUserAppsManualSortPreference(); - epUserAppsManualSortPreference.setUserId(1); - epUserAppsManualSortPreference.setAppId((long)1); - epUserAppsManualSortPreference.setAppManualSortOrder(1); - - return epUserAppsManualSortPreference; - } - - @Test - public void epUserAppsManualSortPreferenceTest(){ - - EPUserAppsManualSortPreference epUserAppsManualSortPreference = mockEPUserAppsManualSortPreference(); - - assertEquals(epUserAppsManualSortPreference.getUserId(), 1); - assertEquals(epUserAppsManualSortPreference.getAppId(), new Long(1)); - assertEquals(epUserAppsManualSortPreference.getAppManualSortOrder(), 1); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppsSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppsSortPreferenceTest.java deleted file mode 100644 index 9e608fdd..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserAppsSortPreferenceTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import java.util.Date; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPUserAppsSortPreference; - -public class EPUserAppsSortPreferenceTest { - - public EPUserAppsSortPreference mockEPUserAppsSortPreferenceTest(){ - - EPUserAppsSortPreference epUserAppsSortPreference = new EPUserAppsSortPreference(); - epUserAppsSortPreference.setUserId(1); - epUserAppsSortPreference.setSortPref("test"); - epUserAppsSortPreference.setId((long)1); - epUserAppsSortPreference.setCreated(new Date()); - epUserAppsSortPreference.setModified(new Date()); - epUserAppsSortPreference.setModifiedId((long)1); - epUserAppsSortPreference.setRowNum((long)1); - epUserAppsSortPreference.setAuditTrail(null); - - return epUserAppsSortPreference; - } - - @Test - public void epUserAppsSortPreferenceTest() { - EPUserAppsSortPreference epUserAppsSortPreference = mockEPUserAppsSortPreferenceTest(); - - assertEquals(epUserAppsSortPreference.getUserId(), 1); - assertEquals(epUserAppsSortPreference.getSortPref(), "test"); - assertEquals(epUserAppsSortPreference.getId(), new Long(1)); -// assertEquals(epUserAppsSortPreference.getCreated(), new Date()); -// assertEquals(epUserAppsSortPreference.getModified(), new Date()); - assertEquals(epUserAppsSortPreference.getModifiedId(), new Long(1)); - assertEquals(epUserAppsSortPreference.getRowNum(), new Long(1)); - assertEquals(epUserAppsSortPreference.getAuditTrail(), null); - - - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserNotificationTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserNotificationTest.java deleted file mode 100644 index 88c02ae5..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserNotificationTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import java.util.Date; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPUserNotification; - -public class EPUserNotificationTest { - - public EPUserNotification mockEPUserNotification(){ - - EPUserNotification epUserNotification = new EPUserNotification(); - - epUserNotification.setUserId((long)1); - epUserNotification.setNotificationId((long)1); - epUserNotification.setViewed("test"); - epUserNotification.setUpdateTime(new Date()); - - return epUserNotification; - } - - @Test - public void epUserNotificationTest(){ - EPUserNotification epUserNotification = mockEPUserNotification(); - - assertEquals(epUserNotification.getUserId(), new Long(1)); - assertEquals(epUserNotification.getNotificationId(), new Long(1)); - assertEquals(epUserNotification.getViewed(), "test"); - // assertEquals(epUserNotification.getUpdateTime(), new Date()); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserTest.java deleted file mode 100644 index 1561cb87..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPUserTest.java +++ /dev/null @@ -1,151 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import java.util.Date; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPUser; - -public class EPUserTest { - - public EPUser mockEPUser(){ - - EPUser epUser = new EPUser(); - - epUser.setId((long)1); - epUser.setManagerId((long) 1234); - epUser.setFirstName("test"); - epUser.setLastName("test"); - epUser.setMiddleInitial("test"); - epUser.setPhone("test"); - epUser.setFax("test"); - epUser.setCellular("test"); - epUser.setEmail("test"); - epUser.setAddressId((long) 123); - epUser.setAlertMethodCd("test"); - epUser.setHrid("test"); - epUser.setOrgUserId("test"); - epUser.setOrgCode("test"); - epUser.setAddress1("test"); - epUser.setAddress2("test"); - epUser.setCity("test"); - epUser.setState("test"); - epUser.setZipCode("test"); - epUser.setCountry("test"); - epUser.setOrgManagerUserId("test"); - epUser.setLocationClli("test"); - epUser.setBusinessCountryCode("test"); - epUser.setBusinessCountryName("test"); - epUser.setBusinessUnit("test"); - epUser.setBusinessUnitName("test"); - epUser.setDepartment("test"); - epUser.setDepartmentName("test"); - epUser.setCompanyCode("test"); - epUser.setCompany("test"); - epUser.setZipCodeSuffix("test"); - epUser.setJobTitle("test"); - epUser.setCommandChain("test"); - epUser.setSiloStatus("test"); - epUser.setCostCenter("test"); - epUser.setFinancialLocCode("test"); - epUser.setLoginId("test"); - epUser.setLoginPwd("test"); - epUser.setLastLoginDate(new Date()); - epUser.setActive(false); - epUser.setInternal(false); - epUser.setSelectedProfileId((long) 12345); - epUser.setTimeZoneId((long) 12345); - epUser.setOnline(false); - epUser.setChatId("test"); - return epUser; - - } - - @Test - public void userTest(){ - EPUser user = mockEPUser(); - - assertEquals(user.getId(), new Long(1)); - assertEquals(user.getManagerId(), new Long(1234)); - assertEquals(user.getFirstName(), "test"); - assertEquals(user.getLastName(), "test"); - assertEquals(user.getMiddleInitial(), "test"); - assertEquals(user.getPhone(), "test"); - assertEquals(user.getFax(), "test"); - assertEquals(user.getCellular(), "test"); - assertEquals(user.getEmail(), "test"); - assertEquals(user.getAddressId(), new Long(123) ); - assertEquals(user.getAlertMethodCd(), "test"); - assertEquals(user.getHrid(), "test"); - assertEquals(user.getOrgUserId(), "test"); - assertEquals(user.getOrgCode(), "test"); - assertEquals(user.getAddress1(), "test"); - assertEquals(user.getAddress2(), "test"); - assertEquals(user.getState(), "test"); - assertEquals(user.getZipCode(), "test"); - assertEquals(user.getCountry(), "test"); - assertEquals(user.getOrgManagerUserId(), "test"); - assertEquals(user.getLocationClli(), "test"); - assertEquals(user.getBusinessCountryCode(), "test"); - assertEquals(user.getBusinessCountryName(), "test"); - assertEquals(user.getBusinessUnit(), "test"); - assertEquals(user.getBusinessUnitName(), "test"); - assertEquals(user.getDepartment(), "test"); - assertEquals(user.getDepartmentName(), "test"); - assertEquals(user.getCompanyCode(), "test"); - assertEquals(user.getCompany(), "test"); - assertEquals(user.getZipCodeSuffix(), "test"); - assertEquals(user.getJobTitle(), "test"); - assertEquals(user.getCommandChain(), "test"); - assertEquals(user.getSiloStatus(), "test"); - assertEquals(user.getFinancialLocCode(), "test"); - assertEquals(user.getLoginId(), "test"); - assertEquals(user.getLoginPwd(), "test"); - assertEquals(user.getActive(), false); - assertEquals(user.getInternal(), false); - assertEquals(user.getSelectedProfileId(), new Long (12345)); - assertEquals(user.getTimeZoneId(), new Long (12345)); - assertEquals(user.getChatId(), "test"); - - //assertEquals(user.toString(), "EPUser [orgId=null, managerId=1234, firstName=test, middleInitial=test, lastName=test, phone=test, fax=test, cellular=test, email=test, addressId=123, alertMethodCd=test, hrid=test, orgUserId=test, orgCode=test, address1=test, address2=test, city=test, state=test, zipCode=test, country=test, orgManagerUserId=test, locationClli=test, businessCountryCode=test, businessCountryName=test, businessUnit=test, businessUnitName=test, department=test, departmentName=test, companyCode=test, company=test, zipCodeSuffix=test, jobTitle=test, commandChain=test, siloStatus=test, costCenter=test, financialLocCode=test, loginId=test, loginPwd=test, lastLoginDate=Tue Sep 05 11:04:49 EDT 2017, active=false, internal=false, selectedProfileId=12345, timeZoneId=12345, online=false, chatId=test, isGuest=false, userApps=[], pseudoRoles=[]]"); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java deleted file mode 100644 index 61054ab9..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPWidgetsManualSortPreference; - -public class EPWidgetsManualSortPreferenceTest { - - public EPWidgetsManualSortPreference mockEPWidgetsManualSortPreference(){ - EPWidgetsManualSortPreference epWidgetsManualSortPreference = new EPWidgetsManualSortPreference(); - - epWidgetsManualSortPreference.setUserId(1); - epWidgetsManualSortPreference.setWidgetId((long)1); - epWidgetsManualSortPreference.setWidgetRow(1); - epWidgetsManualSortPreference.setWidgetCol(1); - epWidgetsManualSortPreference.setWidgetWidth(1); - epWidgetsManualSortPreference.setWidgetHeight(1); - - return epWidgetsManualSortPreference; - } - - @Test - public void epWidgetsManualSortPreferenceTest(){ - EPWidgetsManualSortPreference epWidgetsManualSortPreference = mockEPWidgetsManualSortPreference(); - - assertEquals(epWidgetsManualSortPreference.getWidgetId(), new Long(1)); - assertEquals(epWidgetsManualSortPreference.getUserId(), 1); - assertEquals(epWidgetsManualSortPreference.getWidgetRow(), 1); - assertEquals(epWidgetsManualSortPreference.getWidgetCol(), 1); - assertEquals(epWidgetsManualSortPreference.getWidgetHeight(), 1); - assertEquals(epWidgetsManualSortPreference.getWidgetWidth(), 1); - - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EcompAppRoleIdTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EcompAppRoleIdTest.java deleted file mode 100644 index 3adfa236..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EcompAppRoleIdTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EcompAppRoleId; - -public class EcompAppRoleIdTest { - - public EcompAppRoleId mockEcompAppRoleId(){ - - EcompAppRoleId ecompAppRoleId = new EcompAppRoleId(); - - ecompAppRoleId.setAppId((long)1); - ecompAppRoleId.setAppName("test"); - ecompAppRoleId.setRoleId(1); - ecompAppRoleId.setRoleName("test"); - - return ecompAppRoleId; - } - - @Test - public void ecompAppRoleIdTest(){ - - EcompAppRoleId ecompAppRoleId = mockEcompAppRoleId(); - - assertEquals(ecompAppRoleId.getAppId(), new Long(1)); - assertEquals(ecompAppRoleId.getAppName(), "test"); - assertEquals(ecompAppRoleId.getRoleId().toString(), "1"); - assertEquals(ecompAppRoleId.getRoleName(), "test"); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EcompAppRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EcompAppRoleTest.java deleted file mode 100644 index 6b6dd67d..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/EcompAppRoleTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EcompAppRole; - -public class EcompAppRoleTest { - - public EcompAppRole mockEcompAppRole(){ - EcompAppRole ecompAppRole = new EcompAppRole(); - - ecompAppRole.setAppId((long)1); - ecompAppRole.setAppName("test"); - ecompAppRole.setRoleId(1); - ecompAppRole.setRoleName("test"); - - return ecompAppRole; - } - - @Test - public void ecompAppRoleTest(){ - EcompAppRole ecompAppRole = mockEcompAppRole(); - - assertEquals(ecompAppRole.getAppId(), new Long(1)); - assertEquals(ecompAppRole.getAppName(), "test"); - assertEquals(ecompAppRole.getRoleId().toString(), "1"); - assertEquals(ecompAppRole.getRoleName(), "test"); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalRoleDetailsTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalRoleDetailsTest.java deleted file mode 100644 index 1220aa12..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalRoleDetailsTest.java +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.EPAppRoleFunction; -import org.openecomp.portalapp.portal.domain.ExternalRoleDetails; - -public class ExternalRoleDetailsTest { - - public ExternalRoleDetails mockExternalRoleDetails(){ - - List epAppRoleFunctionList = new ArrayList(); - - EPAppRoleFunction epAppRoleFunction = new EPAppRoleFunction(); - epAppRoleFunction.setRoleId((long)1); - epAppRoleFunction.setAppId((long)1); - epAppRoleFunction.setCode("test"); - - epAppRoleFunctionList.add(epAppRoleFunction); - - ExternalRoleDetails externalRoleDetails = new ExternalRoleDetails(); - - externalRoleDetails.setName("test"); - externalRoleDetails.setActive(false); - externalRoleDetails.setPriority(1); - externalRoleDetails.setAppId((long)1); - externalRoleDetails.setAppRoleId((long)1); - externalRoleDetails.setPerms(epAppRoleFunctionList); - - return externalRoleDetails; - } - - @Test - public void externalRoleDetailsTest(){ - - List epAppRoleFunctionList = new ArrayList(); - - EPAppRoleFunction epAppRoleFunction = new EPAppRoleFunction(); - epAppRoleFunction.setRoleId((long)1); - epAppRoleFunction.setAppId((long)1); - epAppRoleFunction.setCode("test"); - - epAppRoleFunctionList.add(epAppRoleFunction); - - ExternalRoleDetails externalRoleDetails = mockExternalRoleDetails(); - - assertEquals(externalRoleDetails.getAppId(), new Long(1)); - assertEquals(externalRoleDetails.getAppRoleId(), new Long(1)); - assertEquals(externalRoleDetails.getPriority().toString(), "1"); - assertEquals(externalRoleDetails.getName(), "test"); - assertEquals(externalRoleDetails.getPriority().toString(), "1"); - assertEquals(externalRoleDetails.getPerms().size(), epAppRoleFunctionList.size()); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalSystemAccessTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalSystemAccessTest.java deleted file mode 100644 index d5c964fc..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalSystemAccessTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.ExternalSystemAccess; - -public class ExternalSystemAccessTest { - - public ExternalSystemAccess mockExternalSystemAccess(){ - ExternalSystemAccess externalSystemAccess = new ExternalSystemAccess("test", false); - - externalSystemAccess.setKey("test"); - externalSystemAccess.setAccessValue(false); - - return externalSystemAccess; - } - - @Test - public void externalSystemAccessTest(){ - ExternalSystemAccess externalSystemAccess = mockExternalSystemAccess(); - - assertEquals(externalSystemAccess.getKey(), "test"); - assertEquals(externalSystemAccess.getAccessValue(), false); - } -} - diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalSystemRoleApprovalTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalSystemRoleApprovalTest.java deleted file mode 100644 index cfc6ab48..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ExternalSystemRoleApprovalTest.java +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.externalsystemapproval.model.ExternalSystemRoleApproval; - -public class ExternalSystemRoleApprovalTest { - - public ExternalSystemRoleApproval mockExternalSystemRoleApproval(){ - ExternalSystemRoleApproval externalSystemRoleApproval = new ExternalSystemRoleApproval(); - externalSystemRoleApproval.setRoleName("test"); - - return externalSystemRoleApproval; - } - - @Test - public void externalSystemRoleApprovalTest(){ - ExternalSystemRoleApproval externalSystemRoleApproval = mockExternalSystemRoleApproval(); - - assertEquals(externalSystemRoleApproval.getRoleName(), "test"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/FunctionalMenuItemWithAppIDTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/FunctionalMenuItemWithAppIDTest.java deleted file mode 100644 index 17a3c320..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/FunctionalMenuItemWithAppIDTest.java +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.FunctionalMenuItemWithAppID; - -public class FunctionalMenuItemWithAppIDTest { - - public FunctionalMenuItemWithAppID mockFunctionalMenuItemWithAppID(){ - FunctionalMenuItemWithAppID functionalMenuItemWithAppID = new FunctionalMenuItemWithAppID(); - - functionalMenuItemWithAppID.setRestrictedApp(false); - functionalMenuItemWithAppID.setUrl("test"); - - - return functionalMenuItemWithAppID; - } - - @Test - public void functionalMenuItemWithAppIDTest(){ - FunctionalMenuItemWithAppID functionalMenuItemWithAppID = mockFunctionalMenuItemWithAppID(); - - assertEquals(functionalMenuItemWithAppID.toString(), "FunctionalMenuItem [menuId=null, column=null, text=null, parentMenuId=null, url=test, active_yn=null, appid=null, roles=null, restrictedApp=false]"); - - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/GetAccessResultIdTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/GetAccessResultIdTest.java deleted file mode 100644 index b0cf94dd..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/GetAccessResultIdTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.GetAccessResultId; - -public class GetAccessResultIdTest { - - public GetAccessResultId mockGetAccessResultId(){ - - GetAccessResultId getAccessResultIdObj = new GetAccessResultId(); - getAccessResultIdObj.setEcompFunction("test"); - getAccessResultIdObj.setAppName("test"); - getAccessResultIdObj.setRoleName("test"); - - return getAccessResultIdObj; - } - - @Test - public void getAccessResultIdObjTest(){ - GetAccessResultId getAccessResultIdObj = mockGetAccessResultId(); - - assertEquals(getAccessResultIdObj.getEcompFunction(), "test"); - assertEquals(getAccessResultIdObj.getAppName(), "test"); - assertEquals(getAccessResultIdObj.getRoleName(), "test"); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/MicroserviceDataTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/MicroserviceDataTest.java deleted file mode 100644 index c6681089..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/MicroserviceDataTest.java +++ /dev/null @@ -1,94 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import java.util.ArrayList; -import java.util.List; -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.MicroserviceData; -import org.openecomp.portalapp.portal.domain.MicroserviceParameter; - -public class MicroserviceDataTest { - - public MicroserviceData mockMicroserviceData(){ - - MicroserviceData microserviceData= new MicroserviceData(); - - List parameterList = new ArrayList(); - - MicroserviceParameter microserviceParameter = new MicroserviceParameter(); - microserviceParameter.setId((long)1); - microserviceParameter.setServiceId((long)1); - microserviceParameter.setPara_key("test"); - microserviceParameter.setPara_value("test"); - parameterList.add(microserviceParameter); - - microserviceData.setId((long)1); - microserviceData.setName("test"); - microserviceData.setActive("test"); - microserviceData.setDesc("test"); - microserviceData.setAppId((long)1); - microserviceData.setUrl("test"); - microserviceData.setSecurityType("test"); - microserviceData.setUsername("test"); - microserviceData.setPassword("test"); - - - return microserviceData; - } - - @Test - public void microserviceDataTest(){ - MicroserviceData microserviceData= mockMicroserviceData(); - - assertEquals(microserviceData.getId(), new Long(1)); - assertEquals(microserviceData.getName(), "test"); - assertEquals(microserviceData.getActive(), "test"); - assertEquals(microserviceData.getDesc(), "test"); - // assertEquals(microserviceData.getAppId(), new long(1)); - assertEquals(microserviceData.getUrl(), "test"); - assertEquals(microserviceData.getSecurityType(), "test"); - assertEquals(microserviceData.getUsername(), "test"); - assertEquals(microserviceData.getPassword(), "test"); - - assertEquals(microserviceData.toString(), "MicroserviceData [id=1, name=test, desc=test, appId=1, " - + "url=test, securityType=test, username=test, password=test, parameterList=null]"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/MicroserviceParameterTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/MicroserviceParameterTest.java deleted file mode 100644 index 112fc0d6..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/MicroserviceParameterTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.MicroserviceParameter; - -public class MicroserviceParameterTest { - - public MicroserviceParameter mockMicroserviceParameter(){ - MicroserviceParameter microserviceParameter = new MicroserviceParameter(); - - microserviceParameter.setId((long)1); - microserviceParameter.setServiceId((long)1); - microserviceParameter.setPara_key("test"); - microserviceParameter.setPara_value("test"); - - return microserviceParameter; - } - - @Test - public void microserviceParameterTest(){ - MicroserviceParameter microserviceParameter = mockMicroserviceParameter(); - assertEquals(microserviceParameter.getId(), new Long(1)); - assertEquals(microserviceParameter.getServiceId(),(long)1); - assertEquals(microserviceParameter.getPara_key(), "test"); - assertEquals(microserviceParameter.getPara_value(), "test"); - - assertEquals(microserviceParameter.toString(), "MicroserviceParameter [id=1, serviceId=1, para_key=test, para_value=test]"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/PersUserAppSelectionTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/PersUserAppSelectionTest.java deleted file mode 100644 index 1a06b05d..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/PersUserAppSelectionTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.PersUserAppSelection; - -public class PersUserAppSelectionTest { - - public PersUserAppSelection mockPersUserAppSelection(){ - - PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); - persUserAppSelection.setUserId((long)1); - persUserAppSelection.setAppId((long)1); - persUserAppSelection.setStatusCode("test"); - - return persUserAppSelection; - } - - @Test - public void persUserAppSelectionTest(){ - - PersUserAppSelection persUserAppSelection1 = new PersUserAppSelection((long)1, (long)1, (long)1,"test"); - - PersUserAppSelection persUserAppSelection = mockPersUserAppSelection(); - - assertEquals(persUserAppSelection.getUserId(), new Long(1)); - assertEquals(persUserAppSelection.getAppId(), new Long(1)); - assertEquals(persUserAppSelection.getStatusCode(), "test"); - assertEquals(persUserAppSelection1.hashCode(), new PersUserAppSelection((long)1, (long)1, (long)1,"test").hashCode()); - assertEquals(persUserAppSelection1, new PersUserAppSelection((long)1, (long)1, (long)1,"test")); - assertTrue(persUserAppSelection1.equals(new PersUserAppSelection((long)1, (long)1, (long)1,"test"))); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/PersUserWidgetSelectionTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/PersUserWidgetSelectionTest.java deleted file mode 100644 index 10a4bcba..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/PersUserWidgetSelectionTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.PersUserWidgetSelection; - -public class PersUserWidgetSelectionTest { - - public PersUserWidgetSelection mockPersUserWidgetSelection(){ - - PersUserWidgetSelection persUserWidgetSelection = new PersUserWidgetSelection(); - - persUserWidgetSelection.setUserId((long)1); - persUserWidgetSelection.setWidgetId((long)1); - persUserWidgetSelection.setStatusCode("test"); - - return persUserWidgetSelection; - } - - @Test - public void persUserWidgetSelectionTest(){ - PersUserWidgetSelection persUserWidgetSelection = mockPersUserWidgetSelection(); - - PersUserWidgetSelection persUserWidgetSelection1 = new PersUserWidgetSelection((long)1, (long)1, (long)1, "test"); - - assertEquals(persUserWidgetSelection.getUserId(), new Long(1)); - assertEquals(persUserWidgetSelection.getWidgetId(), new Long(1)); - assertEquals(persUserWidgetSelection.getStatusCode(), "test"); - assertEquals(persUserWidgetSelection1, new PersUserWidgetSelection((long)1, (long)1, (long)1, "test")); - assertTrue(persUserWidgetSelection1.equals(new PersUserWidgetSelection((long)1, (long)1, (long)1,"test"))); - assertEquals(persUserWidgetSelection.hashCode(), persUserWidgetSelection1.hashCode()); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ResultTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ResultTest.java deleted file mode 100644 index cd558cfd..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/ResultTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.model.Result; - -public class ResultTest { - - public Result mockResult(){ - - Result result= new Result("test"); - - result.setResult("test"); - return result; - } - - @Test - public void resultTest(){ - - Result result = mockResult(); - result.setResult("test"); - - assertEquals(result.getResult(), "test"); - - } - - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/SharedContextTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/SharedContextTest.java deleted file mode 100644 index da00649d..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/SharedContextTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import java.util.Date; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.SharedContext; - -public class SharedContextTest { - - public SharedContext mockSharedContext(){ - - SharedContext sharedContext = new SharedContext(); - sharedContext.setId((long)1); - sharedContext.setCreate_time(new Date()); - sharedContext.setContext_id("test"); - sharedContext.setCkey("test"); - sharedContext.setCvalue("test"); - - return sharedContext; - } - - @Test - public void sharedContextTest(){ - SharedContext sharedContext = mockSharedContext(); - - assertEquals(sharedContext.getId(), new Long(1)); - // assertEquals(sharedContext.getCreate_time(), new Date()); - assertEquals(sharedContext.getContext_id(), "test"); - assertEquals(sharedContext.getCkey(), "test"); - assertEquals(sharedContext.getCvalue(), "test"); - - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/UserIdRoleIdTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/UserIdRoleIdTest.java deleted file mode 100644 index 10a1f21a..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/UserIdRoleIdTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.UserIdRoleId; - -public class UserIdRoleIdTest { - - public UserIdRoleId mockUserIdRoleId(){ - UserIdRoleId userIdRoleId = new UserIdRoleId(); - userIdRoleId.setUser_Id("test"); - userIdRoleId.setRoleId("test"); - userIdRoleId.setOrgUserId("test"); - userIdRoleId.setAppId("test"); - - return userIdRoleId; - } - - @Test - public void userIdRoleIdTest(){ - UserIdRoleId userIdRoleId = mockUserIdRoleId(); - - assertEquals(userIdRoleId.getUser_Id(), "test"); - assertEquals(userIdRoleId.getRoleId(), "test"); - assertEquals(userIdRoleId.getOrgUserId(), "test"); - assertEquals(userIdRoleId.getAppId(), "test"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetCatalogParameterTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetCatalogParameterTest.java deleted file mode 100644 index 101896a0..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetCatalogParameterTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.WidgetCatalogParameter; - -public class WidgetCatalogParameterTest { - - public WidgetCatalogParameter mockWidgetCatalogParameter(){ - WidgetCatalogParameter widgetCatalogParameter = new WidgetCatalogParameter(); - - widgetCatalogParameter.setId((long)1); - widgetCatalogParameter.setWidgetId((long)1); - widgetCatalogParameter.setUserId((long)1); - widgetCatalogParameter.setParamId((long)1); - widgetCatalogParameter.setUser_value("test"); - - return widgetCatalogParameter; - } - - @Test - public void widgetCatalogParameterTest(){ - WidgetCatalogParameter widgetCatalogParameter = mockWidgetCatalogParameter(); - - assertEquals(widgetCatalogParameter.getId(), new Long(1)); - assertEquals(widgetCatalogParameter.getWidgetId(), new Long(1)); - assertEquals(widgetCatalogParameter.getUserId(), new Long(1)); - assertEquals(widgetCatalogParameter.getParamId(), new Long(1)); - assertEquals(widgetCatalogParameter.getUser_value(), "test"); - assertEquals(widgetCatalogParameter.toString(), "WidgetCatalogParameter [id=1, widgetId=1, userId=1, paramId=1, user_value=test]"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetCatalogTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetCatalogTest.java deleted file mode 100644 index 4c7844f3..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetCatalogTest.java +++ /dev/null @@ -1,121 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.*; -import static org.junit.Assert.assertEquals; - -import java.util.HashSet; -import java.util.Set; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.App; -import org.openecomp.portalapp.portal.domain.RoleApp; -import org.openecomp.portalapp.portal.domain.WidgetCatalog; - -public class WidgetCatalogTest { - - public WidgetCatalog mockWidgetCatalog() { - - WidgetCatalog widgetCatalog = new WidgetCatalog(); - - Set roleAppSet = new HashSet(); - // App - App app = new App(); - app.setAppId((long) 1); - app.setAppName("test"); - - // RoleApp - RoleApp roleApp = new RoleApp(); - roleApp.setRoleId((long) 1); - roleApp.setRoleName("test"); - roleApp.setApp(app); - roleApp.setWidgets(null); - - roleAppSet.add(roleApp); - - widgetCatalog.setId((long) 1); - widgetCatalog.setName("test"); - widgetCatalog.setDesc("test"); - widgetCatalog.setFileLocation("test"); - widgetCatalog.setAllowAllUser("test"); - widgetCatalog.setServiceId((long) 1); - widgetCatalog.setSortOrder("test"); - widgetCatalog.setStatusCode("test"); - - widgetCatalog.setWidgetRoles(roleAppSet); - - return widgetCatalog; - - } - - @Test - public void widgetCatalogTest() { - - // App - App app = new App(); - app.setAppId((long) 1); - app.setAppName("test"); - - Set roleAppSet = new HashSet(); - // RoleApp - RoleApp roleApp = new RoleApp(); - roleApp.setRoleId((long) 1); - roleApp.setRoleName("test"); - roleApp.setApp(app); - roleApp.setWidgets(null); - - roleAppSet.add(roleApp); - - WidgetCatalog widgetCatalog = mockWidgetCatalog(); - - - assertEquals(widgetCatalog.getId(), (long)1); - assertEquals(widgetCatalog.getName(), "test"); - assertEquals(widgetCatalog.getDesc(), "test"); - assertEquals(widgetCatalog.getFileLocation(), "test"); - assertEquals(widgetCatalog.getAllowAllUser(), "test"); - assertEquals(widgetCatalog.getServiceId(), new Long (1)); - assertEquals(widgetCatalog.getSortOrder(), "test"); - assertEquals(widgetCatalog.getStatusCode(), "test"); - assertEquals(widgetCatalog.getWidgetRoles().size(),1); - - assertEquals("WidgetCatalog [id=1, name=test, desc=test, fileLocation=test, allowAllUser=test]", widgetCatalog.toString()); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetParameterResultTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetParameterResultTest.java deleted file mode 100644 index 65a984d8..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetParameterResultTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.WidgetParameterResult; - -public class WidgetParameterResultTest { - - public WidgetParameterResult mockWidgetParameterResult(){ - - WidgetParameterResult widgetParameterResult = new WidgetParameterResult(); - widgetParameterResult.setParam_id((long)1); - widgetParameterResult.setParam_key("test"); - widgetParameterResult.setUser_value("test"); - widgetParameterResult.setDefault_value("test"); - - return widgetParameterResult; - } - - @Test - public void widgetParameterResultTest(){ - - WidgetParameterResult widgetParameterResult = mockWidgetParameterResult(); - - assertEquals(widgetParameterResult.getParam_key(), "test"); - assertEquals(widgetParameterResult.getParam_id(), new Long(1)); - assertEquals(widgetParameterResult.getUser_value(), "test"); - assertEquals(widgetParameterResult.getDefault_value(), "test"); - - assertEquals("WidgetParameterResult [param_id=1, param_key=test, user_value=test, default_value=test]", widgetParameterResult.toString()); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetTest.java deleted file mode 100644 index d9abd91d..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/domain/WidgetTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.domain; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.domain.Widget; - -public class WidgetTest { - - public Widget mockWidget(){ - - Widget widget = new Widget(); - widget.setName("test"); - widget.setWidth(100); - widget.setHeight(100); - widget.setUrl("test"); - widget.setAppId((long)1); - - return widget; - } - - @Test - public void widgetTest(){ - Widget widget = mockWidget(); - - assertEquals(widget.getName(), "test"); - assertTrue(widget.getWidth() == 100); - assertTrue(widget.getHeight() == 100); - assertEquals(widget.getUrl(), "test"); - assertEquals(widget.getAppId(), new Long(1)); - - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/exceptions/NoHealthyServiceExceptionTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/exceptions/NoHealthyServiceExceptionTest.java deleted file mode 100644 index f67b0e2d..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/exceptions/NoHealthyServiceExceptionTest.java +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.exceptions; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.exceptions.NoHealthyServiceException; - -public class NoHealthyServiceExceptionTest { - - public NoHealthyServiceException mockNoHealthyServiceException(){ - NoHealthyServiceException noHealthyServiceException = new NoHealthyServiceException("test"); - - return noHealthyServiceException; - } - - @Test - public void noHealthyServiceExceptionTest(){ - NoHealthyServiceException noHealthyServiceException = mockNoHealthyServiceException(); - - // assertEquals(noHealthyServiceException, new NoHealthyServiceException("test")); - assertEquals(noHealthyServiceException.toString(), "NoHealthyServiceException [] test"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/framework/MockitoTestSuite.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/framework/MockitoTestSuite.java deleted file mode 100644 index 6ba142b1..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/framework/MockitoTestSuite.java +++ /dev/null @@ -1,94 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.framework; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.mockito.runners.MockitoJUnitRunner; - -@RunWith(MockitoJUnitRunner.class) -public class MockitoTestSuite { - - - public MockHttpServletRequestWrapper mockedRequest = new MockHttpServletRequestWrapper( - Mockito.mock(HttpServletRequest.class)); - public HttpServletResponse mockedResponse = Mockito.mock(HttpServletResponse.class); - - public MockHttpServletRequestWrapper getMockedRequest() { - return mockedRequest; - } - - public HttpServletResponse getMockedResponse() { - return mockedResponse; - } - - public class MockHttpServletRequestWrapper extends HttpServletRequestWrapper { - - HttpSession session = Mockito.mock(HttpSession.class); - - public MockHttpServletRequestWrapper(HttpServletRequest request) { - super(request); - - } - - @Override - public HttpSession getSession() { - - return session; - } - - @Override - public HttpSession getSession(boolean create) { - - return session; - } - - } - - @Test - public void test() - { - assert(true); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/listener/HealthMonitorTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/listener/HealthMonitorTest.java deleted file mode 100644 index 651f7f61..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/listener/HealthMonitorTest.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.listener; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -public class HealthMonitorTest { - - @Test - public void initialFlagsTest() { - assertEquals(false, HealthMonitor.isBackEndUp()); - assertEquals(false, HealthMonitor.isFrontEndUp()); - assertEquals(false, HealthMonitor.isDatabaseUp()); - assertEquals(false, HealthMonitor.isUebUp()); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/lm/FusionLicenseManagerImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/lm/FusionLicenseManagerImplTest.java deleted file mode 100644 index ecdf415c..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/lm/FusionLicenseManagerImplTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.lm; - -import static org.junit.Assert.assertEquals; - -import java.util.Date; - -import org.junit.Test; -import org.openecomp.portalapp.lm.FusionLicenseManagerImpl; - -public class FusionLicenseManagerImplTest { - - - @Test - public void FusionLicenseManagerImplTest(){ - FusionLicenseManagerImpl fusionLicenseManagerImpl = new FusionLicenseManagerImpl(); - - String nvlReturn = null; - - int installLicenseInt = fusionLicenseManagerImpl.installLicense(); - nvlReturn = fusionLicenseManagerImpl.nvl("test"); - Date expiredDateReturn = fusionLicenseManagerImpl.getExpiredDate(); - - assertEquals(installLicenseInt, 0); - assertEquals(nvlReturn, null); - assertEquals(expiredDateReturn, null); - - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/lm/LicenseableClassImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/lm/LicenseableClassImplTest.java deleted file mode 100644 index 64a04892..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/lm/LicenseableClassImplTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.lm; - -import static org.junit.Assert.assertEquals; - -import java.io.FileNotFoundException; - -import org.junit.Test; -import org.openecomp.portalapp.lm.LicenseableClassImpl; - -public class LicenseableClassImplTest { - - @Test - public void licenseableClassImplTest() throws FileNotFoundException{ - LicenseableClassImpl licenseableClassImpl = new LicenseableClassImpl(); - - String appNameReturn = licenseableClassImpl.getApplicationName(); - java.io.InputStream inputStream = licenseableClassImpl.getPublicKeystoreAsInputStream(); - String aliasReturn = licenseableClassImpl.getAlias(); - String pswdReturn = licenseableClassImpl.getKeyPasswd(); - String pkPswd = licenseableClassImpl.getPublicKeystorePassword(); - String cpPswd = licenseableClassImpl.getCipherParamPassword(); - - assertEquals(appNameReturn, ""); - assertEquals(inputStream, null); - assertEquals(aliasReturn, ""); - assertEquals(pswdReturn, ""); - assertEquals(pkPswd, ""); - assertEquals(cpPswd, ""); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppCatalogItemTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppCatalogItemTest.java deleted file mode 100644 index b87deb2c..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppCatalogItemTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.model; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.ecomp.model.AppCatalogItem; - -public class AppCatalogItemTest { - - public AppCatalogItem mockAppCatalogItem(){ - AppCatalogItem appCatalogItem = new AppCatalogItem(); - - appCatalogItem.setAlternateUrl("test"); - appCatalogItem.setMlAppName("test"); - - return appCatalogItem; - } - - @Test - public void appCatalogItemTest(){ - AppCatalogItem appCatalogItem = mockAppCatalogItem(); - - AppCatalogItem appCatalogItem1 = new AppCatalogItem(); - appCatalogItem1.setAlternateUrl("test"); - appCatalogItem1.setMlAppName("test"); - - assertEquals(appCatalogItem.getAlternateUrl(), appCatalogItem1.getAlternateUrl()); - assertEquals(appCatalogItem.getMlAppName(), appCatalogItem1.getMlAppName()); - - assertEquals(appCatalogItem.toString(), "AppCatalogItem [id=null, name=null, access=null, select=null, pending=null]"); - assertEquals(appCatalogItem.hashCode(), appCatalogItem1.hashCode()); - assertTrue(appCatalogItem.equals(appCatalogItem1)); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppCategoryFunctionsItemTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppCategoryFunctionsItemTest.java deleted file mode 100644 index 9c31aa45..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppCategoryFunctionsItemTest.java +++ /dev/null @@ -1,79 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.model; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.openecomp.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; - -public class AppCategoryFunctionsItemTest { - - public AppCategoryFunctionsItem mockAppCategoryFunctionsItem(){ - AppCategoryFunctionsItem appCategoryFunctionsItem = new AppCategoryFunctionsItem(); - - appCategoryFunctionsItem.setRowId("test"); - appCategoryFunctionsItem.setAppId("test"); - appCategoryFunctionsItem.setApplication("test"); - appCategoryFunctionsItem.setFunctions("test"); - - return appCategoryFunctionsItem; - } - - @Test - public void appCategoryFunctionsItemTest(){ - AppCategoryFunctionsItem appCategoryFunctionsItem = mockAppCategoryFunctionsItem(); - - AppCategoryFunctionsItem appCategoryFunctionsItem1 = new AppCategoryFunctionsItem(); - - appCategoryFunctionsItem1.setRowId("test"); - appCategoryFunctionsItem1.setAppId("test"); - appCategoryFunctionsItem1.setApplication("test"); - appCategoryFunctionsItem1.setFunctions("test"); - - assertEquals(appCategoryFunctionsItem.getRowId(), appCategoryFunctionsItem1.getRowId()); - assertEquals(appCategoryFunctionsItem.getAppId(), appCategoryFunctionsItem1.getAppId()); - assertEquals(appCategoryFunctionsItem.getApplication(), appCategoryFunctionsItem1.getApplication()); - assertEquals(appCategoryFunctionsItem.getFunctions(), appCategoryFunctionsItem1.getFunctions()); - assertEquals(appCategoryFunctionsItem.toString(), "AppCategoryFunctionsItem [rowId=test, appId=test, application=test, category=null, functions=test]"); - assertEquals(appCategoryFunctionsItem.hashCode(), appCategoryFunctionsItem1.hashCode()); - assertTrue(appCategoryFunctionsItem.equals(appCategoryFunctionsItem1)); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppContactUsItemTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppContactUsItemTest.java deleted file mode 100644 index effb0069..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/AppContactUsItemTest.java +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.model; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.openecomp.portalapp.portal.ecomp.model.AppContactUsItem; - -public class AppContactUsItemTest { - - public AppContactUsItem mockAppContactUsItem(){ - AppContactUsItem appContactUsItem = new AppContactUsItem(); - - appContactUsItem.setAppId((long)1); - appContactUsItem.setAppName("test"); - appContactUsItem.setDescription("test"); - appContactUsItem.setContactName("test"); - appContactUsItem.setContactEmail("test"); - appContactUsItem.setUrl("test"); - appContactUsItem.setActiveYN("test"); - - return appContactUsItem; - } - - @Test - public void appContactUsItemTest(){ - AppContactUsItem appContactUsItem = mockAppContactUsItem(); - - AppContactUsItem appContactUsItem1 = new AppContactUsItem(); - appContactUsItem1.setAppId((long)1); - appContactUsItem1.setAppName("test"); - appContactUsItem1.setDescription("test"); - appContactUsItem1.setContactName("test"); - appContactUsItem1.setContactEmail("test"); - appContactUsItem1.setUrl("test"); - appContactUsItem1.setActiveYN("test"); - - assertEquals(appContactUsItem.getAppId(), appContactUsItem1.getAppId()); - assertEquals(appContactUsItem.getAppName(), appContactUsItem1.getAppName()); - assertEquals(appContactUsItem.getDescription(), appContactUsItem1.getDescription()); - assertEquals(appContactUsItem.getContactName(), appContactUsItem1.getContactName()); - assertEquals(appContactUsItem.getContactEmail(), appContactUsItem1.getContactEmail()); - assertEquals(appContactUsItem.getUrl(), appContactUsItem1.getUrl()); - assertEquals(appContactUsItem.getActiveYN(), appContactUsItem1.getActiveYN()); - assertEquals(appContactUsItem.toString(), "AppContactUsItem [appId=1, appName=test, description=test, contactName=test, contactEmail=test, url=test, activeYN=test]"); - assertEquals(appContactUsItem.hashCode(), appContactUsItem1.hashCode()); - assertTrue(appContactUsItem.equals(appContactUsItem1)); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/SearchResultItemTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/SearchResultItemTest.java deleted file mode 100644 index e9c3faae..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/model/SearchResultItemTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.model; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.ecomp.model.SearchResultItem; - -public class SearchResultItemTest { - - public SearchResultItem mockSearchResultItem(){ - SearchResultItem searchResultItem = new SearchResultItem(); - - searchResultItem.setRowId("test"); - searchResultItem.setCategory("test"); - searchResultItem.setName("test"); - searchResultItem.setTarget("test"); - searchResultItem.setUuid("test"); - - return searchResultItem; - } - - @Test - public void searchResultItemTest(){ - SearchResultItem searchResultItem = mockSearchResultItem(); - - SearchResultItem searchResultItem1 = new SearchResultItem(); - searchResultItem1.setRowId("test"); - searchResultItem1.setCategory("test"); - searchResultItem1.setName("test"); - searchResultItem1.setTarget("test"); - searchResultItem1.setUuid("test"); - - assertEquals(searchResultItem.getRowId(), searchResultItem.getRowId()); - assertEquals(searchResultItem.getCategory(), searchResultItem.getCategory()); - assertEquals(searchResultItem.getName(), searchResultItem.getName()); - assertEquals(searchResultItem.getTarget(), searchResultItem.getTarget()); - assertEquals(searchResultItem.getUuid(), searchResultItem.getUuid()); - assertEquals(searchResultItem.toString(), searchResultItem.toString()); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/AppContactUsServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/AppContactUsServiceImplTest.java deleted file mode 100644 index e80087e8..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/AppContactUsServiceImplTest.java +++ /dev/null @@ -1,184 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.domain.AppContactUs; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.ecomp.model.AppCategoryFunctionsItem; -import org.openecomp.portalapp.portal.ecomp.model.AppContactUsItem; -import org.openecomp.portalapp.portal.service.AppContactUsService; -import org.openecomp.portalapp.portal.service.AppContactUsServiceImpl; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.service.DataAccessServiceImpl; - -public class AppContactUsServiceImplTest { - - - @Mock - DataAccessService dataAccessService = new DataAccessServiceImpl(); - - @Mock - AppContactUsService AppContactUsService = new AppContactUsServiceImpl(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - @InjectMocks - AppContactUsServiceImpl appContactUsServiceImpl = new AppContactUsServiceImpl(); - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - - - public EPApp getApp() { - EPApp app = new EPApp(); - app.setName("Test"); - app.setImageUrl("test"); - app.setDescription("test"); - app.setNotes("test"); - app.setUrl("test"); - app.setId((long) 1); - app.setAppRestEndpoint("test"); - app.setAlternateUrl("test"); - app.setName("test"); - app.setMlAppName("test"); - app.setMlAppAdminId("test"); - app.setUsername("test"); - app.setAppPassword("test"); - app.setOpen(true); - app.setEnabled(false); - app.setUebKey("test"); - app.setUebSecret("test"); - app.setUebTopicName("test"); - app.setAppType(1); - return app; - } - @Test - public void getAppContactUsTest() throws Exception - { - - List contactUsItemList = new ArrayList<>(); - AppContactUsItem appContactUsItem= new AppContactUsItem(); - appContactUsItem.setAppName("testNew"); - contactUsItemList.add(appContactUsItem); - AppContactUsItem appContactUsItem1= new AppContactUsItem(); - appContactUsItem1.setAppName("test"); - contactUsItemList.add(appContactUsItem1); - Mockito.when(dataAccessService.executeNamedQuery("getAppContactUsItems", null, null)).thenReturn(contactUsItemList); - List expectedcontactUsItemList = appContactUsServiceImpl.getAppContactUs(); - assertEquals(expectedcontactUsItemList, contactUsItemList); - } - - @Test - public void getAppsAndContactsTest() throws Exception - { - List contactUsItemList = new ArrayList<>(); - AppContactUsItem appContactUsItem= new AppContactUsItem(); - appContactUsItem.setAppName("testNew"); - contactUsItemList.add(appContactUsItem); - AppContactUsItem appContactUsItem1= new AppContactUsItem(); - appContactUsItem1.setAppName("test"); - contactUsItemList.add(appContactUsItem1); - Mockito.when(dataAccessService.executeNamedQuery("getAppsAndContacts", null, null)).thenReturn(contactUsItemList); - List expectedcontactUsItemList = appContactUsServiceImpl.getAppsAndContacts(); - assertEquals(expectedcontactUsItemList, contactUsItemList); - } - - @Test - public void getAppCategoryFunctionsTest() throws Exception - { - List list = new ArrayList<>(); - Mockito.when(dataAccessService.executeNamedQuery("getAppCategoryFunctions", null, null)).thenReturn(list); - List expectedlist = appContactUsServiceImpl.getAppCategoryFunctions(); - assertEquals(list, expectedlist); - } - - @Test(expected = java.lang.Exception.class) - public void saveAppContactUsTest() throws Exception - { - HashMap map = new HashMap(); - List contactUsModelList = new ArrayList<>(); - AppContactUsItem appContactUsItem= new AppContactUsItem(); - appContactUsItem.setAppId((long) 1); - contactUsModelList.add(appContactUsItem); - AppContactUs appContact = new AppContactUs(); - Mockito.when(dataAccessService.getDomainObject(AppContactUs.class, 1, map)).thenReturn(appContact); - EPApp app = getApp(); - Mockito.when(dataAccessService.getDomainObject(EPApp.class, 1, new HashMap())).thenReturn(app); - AppContactUs contactUs = new AppContactUs(); - contactUs.setApp(app); - contactUs.setDescription(appContactUsItem.getDescription()); - contactUs.setContactName(appContactUsItem.getContactName()); - contactUs.setContactEmail(appContactUsItem.getContactEmail()); - contactUs.setActiveYN(appContactUsItem.getActiveYN()); - contactUs.setUrl(appContactUsItem.getUrl()); - Mockito.doNothing().when(dataAccessService).saveDomainObject(contactUs,map); - appContactUsServiceImpl.saveAppContactUs(contactUsModelList); - } - - @Test(expected = java.lang.NullPointerException.class) - public void deleteContactUsTest() throws Exception - { - HashMap map = new HashMap(); - AppContactUs contactUs = new AppContactUs(); - Mockito.when((AppContactUs) dataAccessService.getDomainObject(AppContactUs.class, 1, map)).thenReturn(contactUs); - appContactUsServiceImpl.deleteContactUs((long) 1); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/DashboardSearchServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/DashboardSearchServiceImplTest.java deleted file mode 100644 index 853ecbe0..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/DashboardSearchServiceImplTest.java +++ /dev/null @@ -1,151 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.ecomp.model.SearchResultItem; -import org.openecomp.portalapp.portal.service.DashboardSearchServiceImpl; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.transport.CommonWidget; -import org.openecomp.portalapp.portal.transport.CommonWidgetMeta; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalsdk.core.service.DataAccessService; - -public class DashboardSearchServiceImplTest { - - @Mock - DataAccessService dataAccessService; - - @InjectMocks - DashboardSearchServiceImpl dashboardSearchServiceImpl = new DashboardSearchServiceImpl(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - NullPointerException nullPointerException = new NullPointerException(); - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - MockEPUser mockUser = new MockEPUser(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - - @Test - public void searchResultsTest() - { - Map params = new HashMap<>(); - params.put("userId", "guestT"); - params.put("searchQuery", "test"); - - List list = new ArrayList<>(); - SearchResultItem searchResultItem= new SearchResultItem(); - searchResultItem.setCategory("test"); - list.add(searchResultItem); - Mockito.when(dataAccessService.executeNamedQuery("searchPortal", params, null)).thenReturn(list); - Map> result = dashboardSearchServiceImpl.searchResults("guestT", "test"); - assertTrue(result.keySet().contains("test")); - } - - @Test - public void getRelatedUsersTest() - { - List activeUsers = new ArrayList<>(); - Map params = new HashMap<>(); - params.put("userId", "guestT"); - Mockito.when(dataAccessService.executeNamedQuery("relatedUsers", params, null)).thenReturn(activeUsers); - List expectedActiveUsers = dashboardSearchServiceImpl.getRelatedUsers("guestT"); - assertEquals(expectedActiveUsers,activeUsers); - } - @Test - public void getWidgetDataTest() - { - CommonWidgetMeta CommonWidgetMeta = null; - Map params = new HashMap<>(); - params.put("cat", "test"); - @SuppressWarnings("unchecked") - List widgetItems = new ArrayList<>(); - CommonWidget commonWidget = new CommonWidget(); - widgetItems.add(commonWidget); - Mockito.when(dataAccessService.executeNamedQuery("getCommonWidgetItem", params, null)).thenReturn(widgetItems); - CommonWidgetMeta expectedCommonWidgetMeta =dashboardSearchServiceImpl.getWidgetData("test"); - assertEquals(expectedCommonWidgetMeta.getCategory(), "test"); - } - - @Test - public void saveWidgetDataBulkTest() - { - CommonWidgetMeta CommonWidgetMeta = new CommonWidgetMeta(); - List widgetList = new ArrayList<>(); - CommonWidget commonWidget = new CommonWidget(); - widgetList.add(commonWidget); - CommonWidgetMeta.setItems(widgetList); - Mockito.doNothing().when(dataAccessService).saveDomainObject(commonWidget, null); - assertEquals(dashboardSearchServiceImpl.saveWidgetDataBulk(CommonWidgetMeta), "success"); - } - - @Test - public void saveWidgetDataTest() - { - CommonWidget commonWidget = new CommonWidget(); - Mockito.doNothing().when(dataAccessService).saveDomainObject(commonWidget, null); - assertEquals(dashboardSearchServiceImpl.saveWidgetData(commonWidget), "success"); - } - - @Test - public void deleteWidgetDataTest() - { - CommonWidget commonWidget = new CommonWidget(); - Mockito.doNothing().when(dataAccessService).deleteDomainObject(commonWidget, null); - assertEquals(dashboardSearchServiceImpl.deleteWidgetData(commonWidget), "success"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceCentralizedImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceCentralizedImplTest.java deleted file mode 100644 index 072d6347..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceCentralizedImplTest.java +++ /dev/null @@ -1,126 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import static org.junit.Assert.*; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.hibernate.SessionFactory; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.domain.CentralRoleFunction; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.service.EPRoleFunctionServiceCentralizedImpl; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest(SystemProperties.class) -public class EPRoleFunctionServiceCentralizedImplTest { - - - @Mock - DataAccessService dataAccessService; - - @Mock - SessionFactory sessionFactory; - - @InjectMocks - EPRoleFunctionServiceCentralizedImpl ePRoleFunctionServiceCentralizedImpl = new EPRoleFunctionServiceCentralizedImpl(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - NullPointerException nullPointerException = new NullPointerException(); - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - MockEPUser mockUser = new MockEPUser(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - - @Test - public void getRoleFunctions() - { - List getRoleFuncList = new ArrayList<>(); - CentralRoleFunction centralRoleFunction = new CentralRoleFunction(); - getRoleFuncList.add(centralRoleFunction); - List getRoleFuncListOfPortal = new ArrayList<>(); - RoleFunction roleFunction = new RoleFunction(); - getRoleFuncListOfPortal.add(roleFunction); - final Map params = new HashMap<>(); - params.put("appId", (long) 1); - Mockito.when(dataAccessService.executeNamedQuery("getAllRoleFunctions", params, null)).thenReturn(getRoleFuncList); - List expectedGetRoleFuncListOfPortal = ePRoleFunctionServiceCentralizedImpl.getRoleFunctions(); - assertEquals(expectedGetRoleFuncListOfPortal.size(),getRoleFuncListOfPortal.size()); - } - - @Test - public void getRoleFunctionsNewTest() - { - HttpSession session = mockedRequest.getSession(); - EPUser user = mockUser.mockEPUser(); - user.setId((long) 1); - String userId = user.getId().toString(); - final Map params = new HashMap<>(); - params.put("userId", userId); - @SuppressWarnings("unused") - List getRoleFuncListOfPortal = new ArrayList<>(); - Mockito.when(dataAccessService.executeNamedQuery("getRoleFunctionsOfUser", params, null)).thenReturn(getRoleFuncListOfPortal); - Set getRoleFuncListOfPortalSet = ePRoleFunctionServiceCentralizedImpl.getRoleFunctions(mockedRequest, user); - assertTrue(getRoleFuncListOfPortalSet.size() == 0); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceImplTest.java deleted file mode 100644 index 288b854f..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleFunctionServiceImplTest.java +++ /dev/null @@ -1,135 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import static org.junit.Assert.*; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.SortedSet; -import java.util.TreeSet; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.service.EPRoleFunctionServiceImpl; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.util.EPUserUtils; -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({ SystemProperties.class, EPUserUtils.class }) -public class EPRoleFunctionServiceImplTest { - - @Mock - DataAccessService dataAccessService; - - @InjectMocks - EPRoleFunctionServiceImpl ePRoleFunctionServiceImpl = new EPRoleFunctionServiceImpl(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - NullPointerException nullPointerException = new NullPointerException(); - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - MockEPUser mockUser = new MockEPUser(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - - @Test - public void getRoleFunctionsTest() { - List functions = new ArrayList<>(); - Mockito.when(dataAccessService.getList(RoleFunction.class, null)).thenReturn(functions); - List expectedFunctions = ePRoleFunctionServiceImpl.getRoleFunctions(); - assertEquals(expectedFunctions, functions); - } - - @Test - public void getRoleFunctionsRequestTest() { - EPUser user = mockUser.mockEPUser(); - HashSet roleFunctions = new HashSet<>(); - PowerMockito.mockStatic(SystemProperties.class); - HttpSession session = mockedRequest.getSession(); - Mockito.when(session.getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME))) - .thenReturn(roleFunctions); - HashSet expectedRoleFunctions = (HashSet) ePRoleFunctionServiceImpl.getRoleFunctions(mockedRequest, user); - assertEquals(expectedRoleFunctions, roleFunctions); - } - - @SuppressWarnings("unchecked") - @Test - public void getRoleFunctionsRequestIfNullTest() { - EPUser user = mockUser.mockEPUser(); - HashSet roleFunctions = null; - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPUserUtils.class); - HttpSession session = mockedRequest.getSession(); - Mockito.when(session.getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME))) - .thenReturn(roleFunctions); - HashMap roles = new HashMap<>(); - EPRole role = new EPRole(); - SortedSet roleFunctionSet = new TreeSet(); - RoleFunction rolefun = new RoleFunction(); - roleFunctionSet.add(rolefun); - role.setRoleFunctions(roleFunctionSet); - roles.put((long) 1, role); - Mockito.when(EPUserUtils.getRoles(mockedRequest)).thenReturn(roles); - HashSet expectedRoleFunctions = (HashSet) ePRoleFunctionServiceImpl.getRoleFunctions(mockedRequest, user); - assertTrue(expectedRoleFunctions.size() == 1); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleServiceImplTest.java deleted file mode 100644 index 1a2d76ca..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/EPRoleServiceImplTest.java +++ /dev/null @@ -1,245 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import static org.junit.Assert.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.service.EPRoleServiceImpl; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalsdk.core.domain.RoleFunction; -import org.openecomp.portalsdk.core.service.DataAccessService; - -public class EPRoleServiceImplTest { - - @Mock - DataAccessService dataAccessService; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - @InjectMocks - EPRoleServiceImpl ePRoleServiceImpl = new EPRoleServiceImpl(); - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - MockEPUser mockUser = new MockEPUser(); - - @Test - public void getRoleFunctionsTest() { - List roleFunctionList = new ArrayList<>(); - Mockito.when(dataAccessService.getList(RoleFunction.class, null)).thenReturn(roleFunctionList); - List expectedRoleFunctionList = ePRoleServiceImpl.getRoleFunctions(); - assertEquals(roleFunctionList, expectedRoleFunctionList); - } - - @Test - public void getAvailableChildRolesIfRoleIdIsNullTest() { - List roleList = new ArrayList<>(); - EPRole role = new EPRole(); - EPRole role1 = new EPRole(); - role.addChildRole(role1); - roleList.add(role); - Mockito.when(dataAccessService.getList(EPRole.class, null)).thenReturn(roleList); - List expectedRoleList = ePRoleServiceImpl.getAvailableChildRoles(null); - assertEquals(roleList, expectedRoleList); - } - - // @Test - // public void getAvailableChildRolesIfRoleIdNotNullTest() - // { - // List roleList = new ArrayList<>(); - // EPRole role = new EPRole(); - // EPRole role1= new EPRole(); - // role.addChildRole(role1); - // roleList.add(role); - // Mockito.when(dataAccessService.getDomainObject(EPRole.class, 1, - // null)).thenReturn(role); - // Mockito.when(dataAccessService.getList(EPRole.class, - // null)).thenReturn(roleList); - // - // List expectedRoleList = - // ePRoleServiceImpl.getAvailableChildRoles((long) 1); - // System.out.println(expectedRoleList); - // assertEquals(roleList,expectedRoleList); - // } - // - @Test - public void getRoleFunctionTest() { - RoleFunction roleFunction = new RoleFunction(); - Mockito.when(dataAccessService.getDomainObject(RoleFunction.class, "test", null)).thenReturn(roleFunction); - RoleFunction expectedRoleFunction = ePRoleServiceImpl.getRoleFunction("test"); - assertEquals(expectedRoleFunction, roleFunction); - } - - @Test - public void saveRoleFunctionTest() { - EPRole role = new EPRole(); - Mockito.doNothing().when(dataAccessService).saveDomainObject(role, null); - ePRoleServiceImpl.saveRole(role); - } - - @Test - public void deleteRoleFunctionTest() { - RoleFunction roleFunction = new RoleFunction(); - Mockito.doNothing().when(dataAccessService).deleteDomainObject(roleFunction, null); - ePRoleServiceImpl.deleteRoleFunction(roleFunction); - } - - @Test - public void getRoleTest() { - EPRole role = null; - Mockito.when(dataAccessService.getDomainObject(EPRole.class, 1, null)).thenReturn(role); - EPRole expectedRole = ePRoleServiceImpl.getRole((long) 1); - assertEquals(expectedRole, role); - } - - @Test - public void getRoleIfappIdNullTest() { - assertNull(ePRoleServiceImpl.getRole(null, null)); - - } - - @Test - public void getRoleIfappIdNotNullTest() { - List roles = new ArrayList<>(); - EPRole role = new EPRole(); - roles.add(role); - String sql = "SELECT * FROM fn_role where APP_ID = 1 AND APP_ROLE_ID = 1"; - Mockito.when(dataAccessService.executeSQLQuery(sql, EPRole.class, null)).thenReturn(roles); - EPRole expectedRole = ePRoleServiceImpl.getRole((long) 1, (long) 1); - assertEquals(expectedRole, role); - - } - - @Test - public void getRoleIfListSizeIsMoreThan1Test() { - List roles = new ArrayList<>(); - EPRole role = new EPRole(); - EPRole role1 = new EPRole(); - roles.add(role); - roles.add(role1); - String sql = "SELECT * FROM fn_role where APP_ID = 1 AND APP_ROLE_ID = 1"; - Mockito.when(dataAccessService.executeSQLQuery(sql, EPRole.class, null)).thenReturn(roles); - EPRole expectedRole = ePRoleServiceImpl.getRole((long) 1, (long) 1); - assertEquals(expectedRole, role); - - } - - @Test - public void getRoleIfListSizeIsEmptyTest() { - List roles = new ArrayList<>(); - String sql = "SELECT * FROM fn_role where APP_ID = 1 AND APP_ROLE_ID = 1"; - Mockito.when(dataAccessService.executeSQLQuery(sql, EPRole.class, null)).thenReturn(roles); - assertNull(ePRoleServiceImpl.getRole((long) 1, (long) 1)); - - } - - @Test - public void saveRoleTest() { - EPRole role = new EPRole(); - Mockito.doNothing().when(dataAccessService).saveDomainObject(role, null); - ePRoleServiceImpl.saveRole(role); - } - - @Test - public void deleteRoleTest() { - EPRole role = new EPRole(); - Mockito.doNothing().when(dataAccessService).deleteDomainObject(role, null); - ePRoleServiceImpl.deleteRole(role); - } - - @Test - public void getAvailableRolesTest() { - List roleList = new ArrayList<>(); - Mockito.when(dataAccessService.getList(EPRole.class, null)).thenReturn(roleList); - List expectedRoleList = ePRoleServiceImpl.getAvailableRoles(); - assertEquals(expectedRoleList, roleList); - } - - @Test - public void getAppRolesTest() { - final Map portalParams = null; - List roleList = new ArrayList<>(); - Mockito.when(dataAccessService.executeNamedQuery("getPortalAppRoles", portalParams, null)).thenReturn(roleList); - assertNull(ePRoleServiceImpl.getAppRole("test", (long) 1)); - - } - - @SuppressWarnings("unchecked") - @Test - public void getAppRolesIfNotPortalTest() { - final Map params = null; - List roleList = new ArrayList<>(); - EPRole role = new EPRole(); - EPRole role1 = new EPRole(); - roleList.add(role); - roleList.add(role1); - Mockito.when((List) dataAccessService.executeNamedQuery("getAppRoles", params, null)) - .thenReturn(roleList); - List expectedRoleList = (List) ePRoleServiceImpl.getAppRole("test", (long) 10); - System.out.println(expectedRoleList); - - } - - @Test - public void saveRoleFunction() { - RoleFunction domainRoleFunction = new RoleFunction(); - Mockito.doNothing().when(dataAccessService).saveDomainObject(domainRoleFunction, null); - ePRoleServiceImpl.saveRoleFunction(domainRoleFunction); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java deleted file mode 100644 index f1103fbb..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java +++ /dev/null @@ -1,428 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Matchers; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.domain.CentralRoleFunction; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPAppRoleFunction; -import org.openecomp.portalapp.portal.domain.EPRole; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalapp.portal.transport.EcompUserRoles; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalapp.portal.utils.EcompPortalUtils; -import org.openecomp.portalsdk.core.domain.Role; -import org.openecomp.portalsdk.core.restful.domain.EcompUser; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.service.DataAccessServiceImpl; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.client.HttpClientErrorException; -import org.springframework.web.client.RestTemplate; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({ EcompPortalUtils.class, SystemProperties.class, EPCommonSystemProperties.class }) -public class ExternalAccessRolesServiceImplTest { - @Mock - DataAccessService dataAccessService1 = new DataAccessServiceImpl(); - - @Mock - RestTemplate template = new RestTemplate(); - - @InjectMocks - ExternalAccessRolesServiceImpl externalAccessRolesServiceImpl = new ExternalAccessRolesServiceImpl(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - MockEPUser mockUser = new MockEPUser(); - String uebKey = "test-ueb-key"; - - public EPApp mockApp() { - EPApp app = new EPApp(); - app.setName("Test"); - app.setImageUrl("test"); - app.setDescription("test"); - app.setNotes("test"); - app.setUrl("test"); - app.setId((long) 10); - app.setAppRestEndpoint("test"); - app.setAlternateUrl("test"); - app.setName("test"); - app.setMlAppName("test"); - app.setMlAppAdminId("test"); - app.setUsername("test"); - app.setAppPassword("test"); - app.setOpen(false); - app.setEnabled(false); - app.setUebKey("test"); - app.setUebSecret("test"); - app.setUebTopicName("test"); - app.setAppType(1); - return app; - } - - @Test - public void getAppRolesIfAppIsPortalTest() throws Exception { - List applicationRoles = new ArrayList<>(); - Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); - List expectedApplicationRoles = externalAccessRolesServiceImpl.getAppRoles((long) 1); - assertEquals(expectedApplicationRoles, applicationRoles); - } - - @Test - public void getAppRolesTest() throws Exception { - List applicationRoles = new ArrayList<>(); - Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); - List expectedApplicationRoles = externalAccessRolesServiceImpl.getAppRoles((long) 10); - assertEquals(expectedApplicationRoles, applicationRoles); - } - - // @SuppressWarnings("null") - // @Test(expected = java.lang.Exception.class) - // public void getAppRolesExceptionTest() throws Exception{ - // List applicationRoles = new ArrayList<>(); - // DataAccessService dataAccessService = null ; - // Mockito.when(dataAccessService.getList(EPRole.class, "where app_id = 10", - // null, null)).thenThrow(nullPointerException); - // List expectedApplicationRoles = - // externalAccessRolesServiceImpl.getAppRoles((long) 10); - // assertEquals(expectedApplicationRoles,applicationRoles); - // } - - @Test(expected = java.lang.Exception.class) - public void getAppExceptionTest() throws Exception { - List app = new ArrayList<>(); - Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)) - .thenReturn(app); - List expectedapp = externalAccessRolesServiceImpl.getApp(uebKey); - assertEquals(app, expectedapp); - } - - @Test(expected = java.lang.Exception.class) - public void getAppTest() throws Exception { - List appList = new ArrayList<>(); - EPApp app = mockApp(); - appList.add(app); - Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)) - .thenReturn(appList); - List expectedapp = externalAccessRolesServiceImpl.getApp(uebKey); - } - - @Test - public void getAppErrorTest() throws Exception { - List appList = new ArrayList<>(); - EPApp app = mockApp(); - app.setId((long) 1); - appList.add(app); - Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)) - .thenReturn(appList); - List expectedapp = externalAccessRolesServiceImpl.getApp(uebKey); - assertEquals(appList, expectedapp); - } - - @Test - public void addRoleTest() throws Exception { - HttpHeaders headers = new HttpHeaders(); - PowerMockito.mockStatic(EcompPortalUtils.class); - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - String uebKey = "test-ueb-key"; - Role role = new Role(); - role.setId((long) 25); - EPApp app = mockApp(); - app.setEnabled(true); - app.setId((long) 10); - app.setNameSpace("test_namesapce"); - Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); - List appList = new ArrayList<>(); - appList.add(app); - List roleList = new ArrayList<>(); - EPRole ePRole = new EPRole(); - role.setName("Test Role"); - roleList.add(ePRole); - Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)) - .thenReturn(appList); - Mockito.when(dataAccessService1.getList(EPRole.class, " where app_role_id = " + role.getId() + " and app_id ="+app.getId(), null, null)).thenReturn(roleList); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL)) - .thenReturn("Testurl"); - ResponseEntity addResponse = new ResponseEntity<>(HttpStatus.CREATED); - Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), - Matchers.>any(), Matchers.eq(String.class))).thenReturn(addResponse); - - assertTrue(externalAccessRolesServiceImpl.addRole(role, uebKey)); - } - - - @Test - public void addRoleMethodNotAllowedTest() throws Exception { - HttpHeaders headers = new HttpHeaders(); - PowerMockito.mockStatic(EcompPortalUtils.class); - PowerMockito.mockStatic(SystemProperties.class); - PowerMockito.mockStatic(EPCommonSystemProperties.class); - Role role = new Role(); - role.setId((long) 25); - EPApp app = mockApp(); - app.setEnabled(true); - app.setId((long) 10); - app.setNameSpace("test_namesapce"); - Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); - List appList = new ArrayList<>(); - appList.add(app); - List roleList = new ArrayList<>(); - EPRole ePRole = new EPRole(); - role.setName("Test Role"); - roleList.add(ePRole); - Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)) - .thenReturn(appList); - - Mockito.when(dataAccessService1.getList(EPRole.class, " where app_role_id = " + role.getId() + " and app_id ="+app.getId(), null, null)).thenReturn(roleList); -// Mockito.when(dataAccessService1.getList(EPRole.class, " where app_role_id = " + role.getId(), null, null)) -// .thenReturn(roleList); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL)) - .thenReturn("Testurl"); - ResponseEntity addResponse = new ResponseEntity<>(HttpStatus.METHOD_NOT_ALLOWED); - Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), - Matchers.>any(), Matchers.eq(String.class))).thenReturn(addResponse); - - assertFalse(externalAccessRolesServiceImpl.addRole(role, uebKey)); - } - - public EPApp getApp() { - EPApp app = new EPApp(); - app.setName("Test"); - app.setImageUrl("test"); - app.setDescription("test"); - app.setNotes("test"); - app.setUrl("test"); - app.setId((long) 1); - app.setAppRestEndpoint("test"); - app.setAlternateUrl("test"); - app.setName("test"); - app.setMlAppName("test"); - app.setMlAppAdminId("test"); - app.setUsername("test"); - app.setAppPassword("test"); - app.setOpen(true); - app.setEnabled(false); - app.setUebKey("test"); - app.setUebSecret("test"); - app.setUebTopicName("test"); - app.setAppType(1); - return app; - } - - @Test - public void deleteCentralRoleFunctionTest() throws Exception { - final Map params = new HashMap<>(); - EPApp app = mockApp(); - params.put("functionCode", "menu_fun_code"); - params.put("appId", String.valueOf(10)); - List centralRoleFunctionList = new ArrayList<>(); - CentralRoleFunction domainCentralRoleFunction = new CentralRoleFunction(); - domainCentralRoleFunction.setCode("menu_fun_code"); - centralRoleFunctionList.add(domainCentralRoleFunction); - Mockito.when(dataAccessService1.executeNamedQuery("getRoleFunction", params, null)) - .thenReturn(centralRoleFunctionList); - ResponseEntity addResponse = new ResponseEntity<>(HttpStatus.OK); - Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE), - Matchers.>any(), Matchers.eq(String.class))).thenReturn(addResponse); - HttpHeaders headers = new HttpHeaders(); - PowerMockito.mockStatic(EcompPortalUtils.class); - Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); - - Mockito.doNothing().when(dataAccessService1).deleteDomainObjects(EPAppRoleFunction.class, - "app_id = " + app.getId() + " and function_cd = '" + "menu_fun_code" + "'", null); - - assertTrue(externalAccessRolesServiceImpl.deleteCentralRoleFunction("menu_fun_code", app)); - } - @Test - public void deleteCentralRoleFunctionFailTest() throws Exception { - final Map params = new HashMap<>(); - EPApp app = mockApp(); - params.put("functionCode", "menu_fun_code"); - params.put("appId", String.valueOf(10)); - List centralRoleFunctionList = new ArrayList<>(); - CentralRoleFunction domainCentralRoleFunction = new CentralRoleFunction(); - domainCentralRoleFunction.setCode("menu_fun_code"); - centralRoleFunctionList.add(domainCentralRoleFunction); - HttpClientErrorException httpClientErrorException = new HttpClientErrorException(HttpStatus.NOT_FOUND); - Mockito.when(dataAccessService1.executeNamedQuery("getRoleFunction", params, null)) - .thenReturn(centralRoleFunctionList); - ResponseEntity addResponse = new ResponseEntity<>(HttpStatus.NOT_FOUND); - Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE), - Matchers.>any(), Matchers.eq(String.class))).thenThrow(httpClientErrorException); - HttpHeaders headers = new HttpHeaders(); - PowerMockito.mockStatic(EcompPortalUtils.class); - Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); - - Mockito.doNothing().when(dataAccessService1).deleteDomainObjects(EPAppRoleFunction.class, - "app_id = " + app.getId() + " and function_cd = '" + "menu_fun_code" + "'", null); - - assertTrue(externalAccessRolesServiceImpl.deleteCentralRoleFunction("menu_fun_code", app)); - } - - @Test - public void deleteCentralRoleFunctionExceptionTest() { - final Map params = new HashMap<>(); - EPApp app = mockApp(); - params.put("functionCd", "menu_fun_code"); - params.put("appId", String.valueOf(10)); - List centralRoleFunctionList = new ArrayList<>(); - CentralRoleFunction domainCentralRoleFunction = new CentralRoleFunction(); - domainCentralRoleFunction.setCode("menu_fun_code"); - centralRoleFunctionList.add(domainCentralRoleFunction); - Mockito.when(dataAccessService1.executeNamedQuery("getAppFunctionDetails", params, null)) - .thenThrow(nullPointerException); - assertFalse(externalAccessRolesServiceImpl.deleteCentralRoleFunction("menu_fun_code", app)); - } - - @Test - public void getUserTest() { - List userList = new ArrayList<>(); - EPUser user = mockUser.mockEPUser(); - userList.add(user); - Mockito.when(dataAccessService1.getList(EPUser.class, " where org_user_id = '" + "guestT" + "'", null, null)) - .thenReturn(userList); - List expectedUserList = externalAccessRolesServiceImpl.getUser("guestT"); - assertEquals(expectedUserList, userList); - } - - - public void saveCentralRoleFunctionTest() throws Exception { - CentralRoleFunction centralRoleFunction = new CentralRoleFunction(); - centralRoleFunction.setCode("menu_test"); - EPApp app = mockApp(); - app.setId((long) 1); - final Map params = new HashMap<>(); - params.put("functionCd", "menu_test"); - params.put("appId", String.valueOf(1)); - PowerMockito.mockStatic(EcompPortalUtils.class); - HttpHeaders headers = new HttpHeaders(); - Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); - List appRoleFunc = new ArrayList<>(); - appRoleFunc.add(centralRoleFunction); - Mockito.when(dataAccessService1.executeNamedQuery("getAppFunctionDetails", params, - null)).thenReturn(appRoleFunc); - ResponseEntity addResponse = new ResponseEntity<>(HttpStatus.OK); - Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), - Matchers.>any(), Matchers.eq(String.class))).thenReturn(addResponse); - } - -// @Test -// public void getAllAppUsersIfAppIsPortalTest() throws Exception -// { -// List expectedapps = new ArrayList<>(); -// EPApp app = new EPApp(); -// app.setEnabled(true); -// app.setId((long) 1); -// expectedapps.add(app); -// List applicationRoles = new ArrayList<>(); -// Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); -// Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)).thenReturn(expectedapps); -// externalAccessRolesServiceImpl.getAllAppUsers(uebKey); -// } - - - @Test - public void getAllAppUsersTest() throws Exception - { - List expectedapps = new ArrayList<>(); - EPApp app = new EPApp(); - app.setEnabled(true); - app.setId((long) 10); - expectedapps.add(app); - List applicationRoles = new ArrayList<>(); - Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); - Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)).thenReturn(expectedapps); - final Map appParams = new HashMap<>(); - appParams.put("appId", app.getId()); - List userList = new ArrayList<>(); - EcompUserRoles ecompUserRoles = new EcompUserRoles(); - ecompUserRoles.setOrgUserId("guestT"); - ecompUserRoles.setRoleId((long) 1); - ecompUserRoles.setRoleName("test"); - - EcompUserRoles ecompUserRoles2 = new EcompUserRoles(); - ecompUserRoles2.setOrgUserId("guestT"); - ecompUserRoles2.setRoleId((long) 2); - ecompUserRoles2.setRoleName("test new"); - userList.add(ecompUserRoles); - userList.add(ecompUserRoles2); - - Mockito.when(dataAccessService1.executeNamedQuery("ApplicationUserRoles", appParams, null)).thenReturn(userList); - List usersfinalList = externalAccessRolesServiceImpl.getAllAppUsers(uebKey); - assertEquals(usersfinalList.get(0).getRoles().size(), 2); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/FunctionalMenuMockServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/FunctionalMenuMockServiceImplTest.java deleted file mode 100644 index 62a3f850..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/FunctionalMenuMockServiceImplTest.java +++ /dev/null @@ -1,222 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.domain.FunctionalMenuItemWithAppID; -import org.openecomp.portalapp.portal.service.FunctionalMenuService; -import org.openecomp.portalapp.portal.service.FunctionalMenuServiceImpl; -import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItemJson; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItem; -import org.openecomp.portalapp.portal.transport.FunctionalMenuRole; -import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({SystemProperties.class, EPCommonSystemProperties.class}) -public class FunctionalMenuMockServiceImplTest { - - @Mock - FunctionalMenuService functionalMenuService; - - @Mock - DataAccessService dataAccessService; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - @InjectMocks - FunctionalMenuServiceImpl functionalMenuServiceImpl= new FunctionalMenuServiceImpl(); - - @Test - public void assignHelpURLsTest(){ - List menuItems = new ArrayList(); - FunctionalMenuItem functionalMenuItem1 = new FunctionalMenuItem(); - functionalMenuItem1.text = "Contact Us"; - FunctionalMenuItem functionalMenuItem2 = new FunctionalMenuItem(); - functionalMenuItem2.text = "Get Access"; - FunctionalMenuItem functionalMenuItem3 = new FunctionalMenuItem(); - functionalMenuItem3.text = "User Guide"; - menuItems.add(functionalMenuItem1); - menuItems.add(functionalMenuItem2); - menuItems.add(functionalMenuItem3); - - PowerMockito.mockStatic(SystemProperties.class); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.USER_GUIDE_URL)).thenReturn("http://todo_enter_user_guide_link"); -// Mockito.doNothing().when(functionalMenuServiceImpl).assignHelpURLs(menuItems); - functionalMenuServiceImpl.assignHelpURLs(menuItems); - } - - @Test - public void getFunctionalMenuItemsTest(){ - String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, " - + "fn_menu_functional_roles r WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' " - + "UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn,-1 app_id FROM fn_menu_functional m " - + "WHERE m.url='' AND UPPER(m.active_yn) = 'Y'"; - List actualResult = new ArrayList(); - List expectedResult = new ArrayList(); - - Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); - - actualResult = functionalMenuServiceImpl.getFunctionalMenuItems(true); - assertEquals(actualResult, expectedResult); - } - - @Test - public void getFunctionalMenuItemsNegativeTest(){ - String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, " - + "fn_menu_functional_roles r WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' " - + "UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn,-1 app_id FROM fn_menu_functional m " - + "WHERE m.url='' AND UPPER(m.active_yn) = 'Y'"; - List actualResult = new ArrayList(); - List expectedResult = new ArrayList(); - - Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); - - actualResult = functionalMenuServiceImpl.getFunctionalMenuItems(false); - assertEquals(actualResult, expectedResult); - } - - @Test - public void getFunctionalMenuItemsForNotificationTreeTest(){ - String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, fn_menu_functional_roles r " - + "WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id," - + " m.url, m.active_yn,-1 app_id FROM fn_menu_functional m WHERE m.url='' AND UPPER(m.active_yn) = 'Y'"; - List actualResult = new ArrayList(); - List expectedResult = new ArrayList(); - - Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); - - actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForNotificationTree(true); - assertEquals(actualResult, expectedResult); - - } - - @Test - public void getFunctionalMenuItemsForNotificationNegativeTreeTest(){ - String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, fn_menu_functional_roles r " - + "WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id," - + " m.url, m.active_yn,-1 app_id FROM fn_menu_functional m WHERE m.url='' AND UPPER(m.active_yn) = 'Y'"; - List actualResult = new ArrayList(); - List expectedResult = new ArrayList(); - - Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); - - actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForNotificationTree(false); - assertEquals(actualResult, expectedResult); - } - - @Test - public void getFunctionalMenuItemsForAppTest(){ - String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn " - + "FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, fn_menu_functional_roles mr " - + "WHERE mr.app_id='1' AND mr.menu_id = m.menu_id AND UPPER(m.active_yn) = 'Y' AND UPPER(m1.active_yn) ='Y' AND a.menu_id = m.menu_id " - + "AND a.ancestor_menu_id = m1.menu_id"; - Integer appId = 1; - List actualResult = new ArrayList(); - List expectedResult = new ArrayList(); - - Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); - - actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForApp(appId); - assertEquals(actualResult, expectedResult); - } - - @Test - public void getFunctionalMenuItemsForUserTest(){ - String orgUserId = "test"; - String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn " - + "FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, fn_menu_functional_roles mr, fn_user u , fn_user_role ur " - + "WHERE u.org_user_id='test' AND u.user_id = ur.user_id AND ur.app_id = mr.app_id AND (ur.role_id = mr.role_id OR ur.role_id = '999') " - + "AND m.menu_id = mr.menu_id AND UPPER(m.active_yn) = 'Y' AND UPPER(m1.active_yn) ='Y' AND a.menu_id = m.menu_id " - + "AND a.ancestor_menu_id = m1.menu_id UNION select m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m1.active_yn " - + "FROM fn_menu_functional m, fn_menu_functional_roles mr, fn_menu_functional m1, fn_menu_functional_ancestors a where a.menu_id = m.menu_id AND a.ancestor_menu_id = m1.menu_id AND m.menu_id != m1.menu_id AND m.menu_id = mr.menu_id AND mr.role_id = '900' AND UPPER(m.active_yn) = 'Y' AND UPPER(m1.active_yn) ='Y' UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn FROM fn_menu_functional m WHERE m.text in ('Favorites','Get Access','Contact Us','Support','User Guide','Help')"; - List actualResult = new ArrayList(); - List expectedResult = new ArrayList(); - - Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult); - - actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForUser(orgUserId); - assertEquals(actualResult, expectedResult); - } - - @Test - public void getFunctionalMenuItemDetailsTest(){ - Integer menuid = 1; - String sql = "SELECT * FROM fn_menu_functional_roles WHERE menu_id = '1'"; - FunctionalMenuItem actualResult = null; - FunctionalMenuItem expectedResult = null; - List roleItems = new ArrayList(); - Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(roleItems); - - actualResult = functionalMenuServiceImpl.getFunctionalMenuItemDetails(menuid); - assertEquals(actualResult, expectedResult); - } - - @Test - public void getFavoriteItemsTest(){ - Long userId = (long)1; - String sql = "SELECT DISTINCT f.user_id,f.menu_id,m.text,m.url " - + "FROM fn_menu_favorites f, fn_menu_functional m, fn_menu_functional_roles mr " - + "WHERE f.user_id='1' AND f.menu_id = m.menu_id AND f.menu_id = mr.menu_id AND mr.role_id != '900' "; - List actualResult = new ArrayList(); - List expectedResult = new ArrayList(); - - Mockito.when(dataAccessService.executeSQLQuery(sql, FavoritesFunctionalMenuItemJson.class, null)).thenReturn(expectedResult); - - actualResult = functionalMenuServiceImpl.getFavoriteItems(userId); - assertEquals(actualResult, expectedResult); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/GetAccessServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/GetAccessServiceImplTest.java deleted file mode 100644 index 4d887c47..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/GetAccessServiceImplTest.java +++ /dev/null @@ -1,87 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.GetAccessResult; -import org.openecomp.portalapp.portal.service.GetAccessServiceImpl; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.service.DataAccessServiceImpl; - -public class GetAccessServiceImplTest { - - - @Mock - DataAccessService dataAccessService = new DataAccessServiceImpl(); - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - @InjectMocks - GetAccessServiceImpl getAccessServiceImpl = new GetAccessServiceImpl(); - - MockEPUser mockUser = new MockEPUser(); - - @Test - public void getAppAccessListTest() - { - EPUser user = mockUser.mockEPUser(); - Map params = new HashMap<>(); - params.put("userId", user.getId()); - List appAccessList = new ArrayList<>(); - Mockito.when(dataAccessService.executeNamedQuery("getAppAccessFunctionRole", params, null)).thenReturn(appAccessList); - - List expectedAppAccessList = getAccessServiceImpl.getAppAccessList(user); - assertEquals(expectedAppAccessList, appAccessList); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/LicenseableClassImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/LicenseableClassImplTest.java deleted file mode 100644 index e3b3d8fe..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/LicenseableClassImplTest.java +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import java.io.IOException; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.lm.LicenseableClassImpl; - -public class LicenseableClassImplTest { - - @InjectMocks - LicenseableClassImpl licenseableClassImpl= new LicenseableClassImpl(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - @Test - public void getApplicationNameTest() - { - assertEquals(licenseableClassImpl.getApplicationName(), ""); - } - @Test - public void getPublicKeystoreAsInputStreamTest() throws IOException - { - assertNull(licenseableClassImpl.getPublicKeystoreAsInputStream()); - } - @Test - public void getAliasTest() - { - assertEquals(licenseableClassImpl.getAlias(), ""); - } - @Test - public void getKeyPasswdTest() - { - assertEquals(licenseableClassImpl.getKeyPasswd(), ""); - } - @Test - public void getPublicKeystorePasswordTest() - { - assertEquals(licenseableClassImpl.getPublicKeystorePassword(), ""); - } - @Test - public void getCipherParamPasswordTest() - { - assertEquals(licenseableClassImpl.getPublicKeystorePassword(), ""); - } - @Test - public void getClassToLicenseTest() - { - assertEquals(licenseableClassImpl.getClassToLicense(), LicenseableClassImpl.class); - } - - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/ManifestServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/ManifestServiceImplTest.java deleted file mode 100644 index 26973b99..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/ManifestServiceImplTest.java +++ /dev/null @@ -1,92 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import static org.junit.Assert.assertTrue; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.jar.Attributes; - -import javax.servlet.ServletContext; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.service.ManifestServiceImpl; - -public class ManifestServiceImplTest { - - @Mock - ServletContext context; - - @Mock - ServletContext context1 = null; - - @InjectMocks - ManifestServiceImpl manifestServiceImpl = new ManifestServiceImpl(); - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - NullPointerException nullPointerException = new NullPointerException(); - - @Test - public void getWebappManifestTest() throws IOException { - final String MANIFEST_RESOURCE_PATH = "/META-INF/MANIFEST.MF"; - InputStream inputStream = new ByteArrayInputStream("test data".getBytes()); - Mockito.when(context.getResourceAsStream(MANIFEST_RESOURCE_PATH)).thenReturn(inputStream); - Attributes attributes = manifestServiceImpl.getWebappManifest(); - assertTrue(attributes.size() == 0); - } - - @Test(expected = java.lang.NullPointerException.class) - public void getWebappManifestExceptionTest() throws IOException { - final String MANIFEST_RESOURCE_PATH = "/META-INF/MANIFEST.MF"; - InputStream inputStream = new ByteArrayInputStream("test data".getBytes()); - Mockito.when(context1.getResourceAsStream(MANIFEST_RESOURCE_PATH)).thenThrow(nullPointerException); - Attributes attributes = manifestServiceImpl.getWebappManifest(); - assertTrue(attributes.size() == 0); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/PersUserAppServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/PersUserAppServiceImplTest.java deleted file mode 100644 index 14e3f9f8..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/service/PersUserAppServiceImplTest.java +++ /dev/null @@ -1,218 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.service; - -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.portalapp.portal.domain.EPApp; -import org.openecomp.portalapp.portal.domain.EPUser; -import org.openecomp.portalapp.portal.domain.EPUserApp; -import org.openecomp.portalapp.portal.domain.PersUserAppSelection; -import org.openecomp.portalapp.portal.service.AdminRolesService; -import org.openecomp.portalapp.portal.service.PersUserAppServiceImpl; -import org.openecomp.portalapp.portal.service.UserRolesService; -import org.openecomp.portalapp.portal.core.MockEPUser; -import org.openecomp.portalapp.portal.framework.MockitoTestSuite; -import org.openecomp.portalsdk.core.service.DataAccessService; - -public class PersUserAppServiceImplTest { - - @Mock - DataAccessService dataAccessService; - @Mock - AdminRolesService adminRolesService; - @Mock - UserRolesService userRolesService; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - } - - @InjectMocks - PersUserAppServiceImpl persUserAppServiceImpl = new PersUserAppServiceImpl(); - - MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); - - HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); - HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); - NullPointerException nullPointerException = new NullPointerException(); - MockEPUser mockUser = new MockEPUser(); - - public EPApp getApp() { - EPApp app = new EPApp(); - app.setName("Test"); - app.setImageUrl("test"); - app.setDescription("test"); - app.setNotes("test"); - app.setUrl("test"); - app.setId((long) 1); - app.setAppRestEndpoint("test"); - app.setAlternateUrl("test"); - app.setName("test"); - app.setMlAppName("test"); - app.setMlAppAdminId("test"); - app.setUsername("test"); - app.setAppPassword("test"); - app.setOpen(true); - app.setEnabled(false); - app.setUebKey("test"); - app.setUebSecret("test"); - app.setUebTopicName("test"); - app.setAppType(1); - return app; - } - - @Test(expected = IllegalArgumentException.class) - public void setPersUserAppValueIfUserNull() { - persUserAppServiceImpl.setPersUserAppValue(null, null, false, false); - } - - @Test - public void setPersUserAppValueTest() { - EPApp app = getApp(); - EPUser user = mockUser.mockEPUser(); - List persUserAppSelectionList = new ArrayList<>(); - PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); - persUserAppSelection.setId((long) 1); - persUserAppSelectionList.add(persUserAppSelection); - Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) - .thenReturn(persUserAppSelectionList); - Mockito.doNothing().when(dataAccessService).deleteDomainObject(persUserAppSelection, null); - persUserAppServiceImpl.setPersUserAppValue(user, app, false, true); - } - - @Test - public void setPersUserAppValueIfSelectTest() { - EPApp app = getApp(); - EPUser user = mockUser.mockEPUser(); - List persUserAppSelectionList = new ArrayList<>(); - PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); - persUserAppSelection.setId((long) 1); - persUserAppSelectionList.add(persUserAppSelection); - Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) - .thenReturn(persUserAppSelectionList); - Mockito.doNothing().when(dataAccessService).saveDomainObject(persUserAppSelection, null); - persUserAppServiceImpl.setPersUserAppValue(user, app, true, true); - } - - @Test - public void setPersUserAppValueIfOpenTest() { - EPApp app = getApp(); - app.setOpen(false); - EPUser user = mockUser.mockEPUser(); - List persUserAppSelectionList = new ArrayList<>(); - PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); - persUserAppSelection.setId((long) 1); - persUserAppSelectionList.add(persUserAppSelection); - Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) - .thenReturn(persUserAppSelectionList); - Mockito.doNothing().when(dataAccessService).saveDomainObject(persUserAppSelection, null); - persUserAppServiceImpl.setPersUserAppValue(user, app, true, true); - } - - @Test - public void setPersUserAppValueIfAppNotOpenTest() { - EPApp app = getApp(); - app.setOpen(false); - EPUser user = mockUser.mockEPUser(); - List persUserAppSelectionList = new ArrayList<>(); - PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); - persUserAppSelection.setId((long) 1); - persUserAppSelectionList.add(persUserAppSelection); - Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) - .thenReturn(persUserAppSelectionList); - Mockito.doNothing().when(dataAccessService).saveDomainObject(persUserAppSelection, null); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - List roles = new ArrayList<>(); - EPUserApp epUserApp = new EPUserApp(); - roles.add(epUserApp); - Mockito.when(userRolesService.getCachedAppRolesForUser(app.getId(), user.getId())).thenReturn(roles); - persUserAppServiceImpl.setPersUserAppValue(user, app, true, false); - } - - @Test - public void setPersUserAppValueIfNotPortalAdminTest() { - EPApp app = getApp(); - app.setOpen(false); - EPUser user = mockUser.mockEPUser(); - List persUserAppSelectionList = new ArrayList<>(); - PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); - persUserAppSelection.setId((long) 1); - persUserAppSelectionList.add(persUserAppSelection); - Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) - .thenReturn(persUserAppSelectionList); - Mockito.doNothing().when(dataAccessService).deleteDomainObject(persUserAppSelection, null); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false); - List roles = new ArrayList<>(); - EPUserApp epUserApp = new EPUserApp(); - roles.add(epUserApp); - Mockito.when(userRolesService.getCachedAppRolesForUser(app.getId(), user.getId())).thenReturn(roles); - persUserAppServiceImpl.setPersUserAppValue(user, app, true, false); - } - - @Test - public void setPersUserAppValueNewTest() { - EPApp app = getApp(); - app.setOpen(false); - EPUser user = mockUser.mockEPUser(); - List persUserAppSelectionList = new ArrayList<>(); - PersUserAppSelection persUserAppSelection = new PersUserAppSelection(); - persUserAppSelection.setId((long) 1); - persUserAppSelectionList.add(persUserAppSelection); - Mockito.when(dataAccessService.getList(PersUserAppSelection.class, "test", null, null)) - .thenReturn(persUserAppSelectionList); - Mockito.doNothing().when(dataAccessService).saveDomainObject(persUserAppSelection, null); - Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true); - List roles = new ArrayList<>(); - EPUserApp epUserApp = new EPUserApp(); - roles.add(epUserApp); - Mockito.when(userRolesService.getCachedAppRolesForUser(app.getId(), user.getId())).thenReturn(roles); - persUserAppServiceImpl.setPersUserAppValue(user, app, false, false); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AnalyticsTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AnalyticsTest.java deleted file mode 100644 index ea37b921..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AnalyticsTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ - -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.Analytics; - -public class AnalyticsTest { - - public Analytics mockAnalytics(){ - Analytics analytics = new Analytics(); - - analytics.setAction("test"); - analytics.setPage("test"); - analytics.setFunction("test"); - analytics.setUserid("test"); - analytics.setType("test"); - - return analytics; - } - - @Test - public void analyticsTest(){ - Analytics analytics = mockAnalytics(); - - assertEquals(analytics.getAction(), "test"); - assertEquals(analytics.getPage(), "test"); - assertEquals(analytics.getFunction(), "test"); - assertEquals(analytics.getUserid(), "test"); - assertEquals(analytics.getType(), "test"); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppCatalogPersonalizationTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppCatalogPersonalizationTest.java deleted file mode 100644 index d2c92864..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppCatalogPersonalizationTest.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import org.junit.Test; - -public class AppCatalogPersonalizationTest { - - public AppCatalogPersonalization mockAppCatalogPersonalization(){ - AppCatalogPersonalization appCatalogPersonalization = new AppCatalogPersonalization(); - - return appCatalogPersonalization; - } - - @Test - public void appCatalogPersonalizationTest(){ - AppCatalogPersonalization appCatalogPersonalization = mockAppCatalogPersonalization(); - - AppCatalogPersonalization appCatalogPersonalization1 = new AppCatalogPersonalization(); - - assertEquals(appCatalogPersonalization.hashCode(), appCatalogPersonalization1.hashCode()); - assertTrue(appCatalogPersonalization.equals(appCatalogPersonalization1)); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppNameIdIsAdminTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppNameIdIsAdminTest.java deleted file mode 100644 index cb52c50f..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppNameIdIsAdminTest.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.AppNameIdIsAdmin; - -public class AppNameIdIsAdminTest { - - public AppNameIdIsAdmin mockAppNameIdIsAdmin(){ - AppNameIdIsAdmin appNameIdIsAdmin = new AppNameIdIsAdmin(); - appNameIdIsAdmin.setId((long)1); - appNameIdIsAdmin.setAppName("test"); - appNameIdIsAdmin.setRestrictedApp(false); - appNameIdIsAdmin.setIsAdmin(false); - return appNameIdIsAdmin; - } - - @Test - public void appNameIdIsAdminTest(){ - AppNameIdIsAdmin appNameIdIsAdmin = mockAppNameIdIsAdmin(); - - AppNameIdIsAdmin appNameIdIsAdmin1 = new AppNameIdIsAdmin(); - appNameIdIsAdmin1.setId((long)1); - appNameIdIsAdmin1.setAppName("test"); - appNameIdIsAdmin1.setRestrictedApp(false); - appNameIdIsAdmin1.setIsAdmin(false); - - assertEquals(appNameIdIsAdmin.getId(), new Long(1)); - assertEquals(appNameIdIsAdmin.getAppName(), "test"); - assertEquals(appNameIdIsAdmin.getRestrictedApp(), false); - assertEquals(appNameIdIsAdmin.getIsAdmin(), false); - - assertEquals(appNameIdIsAdmin.toString(), "AppNameIdIsAdmin [id=1, appName=test, isAdmin=false, restrictedApp=false]"); - assertEquals(appNameIdIsAdmin.hashCode(), appNameIdIsAdmin1.hashCode()); - assertTrue(appNameIdIsAdmin.equals(appNameIdIsAdmin1)); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppWithRolesForUserTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppWithRolesForUserTest.java deleted file mode 100644 index 1be7622e..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppWithRolesForUserTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import org.openecomp.portalapp.portal.transport.AppWithRolesForUser; - -public class AppWithRolesForUserTest { - - public AppWithRolesForUser mockAppWithRolesForUser(){ - AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser(); - - // List appRoles = new ArrayList(); - - appWithRolesForUser.setOrgUserId("test"); - appWithRolesForUser.setAppId((long)1); - appWithRolesForUser.setAppName("test"); - appWithRolesForUser.setAppRoles(null); - - return appWithRolesForUser; - } - - @Test - public void roleInAppForUserTest(){ - AppWithRolesForUser appWithRolesForUser = mockAppWithRolesForUser(); - - assertEquals(appWithRolesForUser.getOrgUserId(), "test"); - assertEquals(appWithRolesForUser.getAppId(), new Long(1)); - assertEquals(appWithRolesForUser.getAppName(), "test"); - assertEquals(appWithRolesForUser.getAppRoles(), null); - assertEquals(appWithRolesForUser.toString(), "AppWithRolesForUser [orgUserId=test, appId=1, appName=test, appRoles=null]"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppsListWithAdminRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppsListWithAdminRoleTest.java deleted file mode 100644 index 0b0edc88..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/AppsListWithAdminRoleTest.java +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import java.util.ArrayList; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.AppNameIdIsAdmin; -import org.openecomp.portalapp.portal.transport.AppsListWithAdminRole; - -public class AppsListWithAdminRoleTest { - - public AppsListWithAdminRole mockAppsListWithAdminRole(){ - AppsListWithAdminRole appsListWithAdminRole = new AppsListWithAdminRole(); - - ArrayList appsRoles = new ArrayList(); - AppNameIdIsAdmin appNameIdIsAdmin = new AppNameIdIsAdmin(); - appsRoles.add(appNameIdIsAdmin); - - appsListWithAdminRole.setOrgUserId("test"); - appsListWithAdminRole.setAppsRoles(appsRoles); - - return appsListWithAdminRole; - } - - @Test - public void appsListWithAdminRoleTest(){ - AppsListWithAdminRole appsListWithAdminRole = mockAppsListWithAdminRole(); - - AppsListWithAdminRole appsListWithAdminRole1 = new AppsListWithAdminRole(); - - ArrayList appsRoles = new ArrayList(); - AppNameIdIsAdmin appNameIdIsAdmin = new AppNameIdIsAdmin(); - appsRoles.add(appNameIdIsAdmin); - - appsListWithAdminRole1.setOrgUserId("test"); - appsListWithAdminRole1.setAppsRoles(appsRoles); - - assertEquals(appsListWithAdminRole.getOrgUserId(), "test"); - assertEquals(appsListWithAdminRole.getAppsRoles(), appsRoles); - - assertTrue(appsListWithAdminRole.equals(appsListWithAdminRole1)); - assertEquals(appsListWithAdminRole.hashCode(), appsListWithAdminRole1.hashCode()); - assertEquals(appsListWithAdminRole.toString(), "AppsListWithAdminRole [orgUserId=test, appsRoles=[AppNameIdIsAdmin [id=null, appName=null, isAdmin=null, restrictedApp=null]]]"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BulkUploadRoleFunctionTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BulkUploadRoleFunctionTest.java deleted file mode 100644 index 327060a9..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BulkUploadRoleFunctionTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.BulkUploadRoleFunction; - -public class BulkUploadRoleFunctionTest { - - public BulkUploadRoleFunction mockBulkUploadRoleFunction(){ - - BulkUploadRoleFunction bulkUploadRoleFunction = new BulkUploadRoleFunction(); - - bulkUploadRoleFunction.setFunctionName("test"); - bulkUploadRoleFunction.setFunctionCd("test"); - - return bulkUploadRoleFunction; - } - - @Test - public void bulkUploadRoleFunctionTest(){ - BulkUploadRoleFunction bulkUploadRoleFunction = mockBulkUploadRoleFunction(); - - BulkUploadRoleFunction bulkUploadRoleFunction1 = new BulkUploadRoleFunction(); - - bulkUploadRoleFunction1.setFunctionName("test"); - bulkUploadRoleFunction1.setFunctionCd("test"); - - assertEquals(bulkUploadRoleFunction.getFunctionCd(), "test"); - assertEquals(bulkUploadRoleFunction.getFunctionName(), "test"); - assertEquals(bulkUploadRoleFunction.hashCode(), bulkUploadRoleFunction1.hashCode()); - assertTrue(bulkUploadRoleFunction.equals(bulkUploadRoleFunction1)); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BulkUploadUserRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BulkUploadUserRolesTest.java deleted file mode 100644 index 5469ff62..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BulkUploadUserRolesTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.BulkUploadUserRoles; - -public class BulkUploadUserRolesTest { - - public BulkUploadUserRoles mockBulkUploadUserRoles(){ - BulkUploadUserRoles bulkUploadUserRoles = new BulkUploadUserRoles(); - - bulkUploadUserRoles.setRoleName("test"); - bulkUploadUserRoles.setOrgUserId("test"); - bulkUploadUserRoles.setAppNameSpace("test"); - - return bulkUploadUserRoles; - } - - @Test - public void bulkUploadUserRolesTest(){ - BulkUploadUserRoles bulkUploadUserRoles = mockBulkUploadUserRoles(); - - BulkUploadUserRoles bulkUploadUserRoles1 = new BulkUploadUserRoles(); - - bulkUploadUserRoles1.setRoleName("test"); - bulkUploadUserRoles1.setOrgUserId("test"); - bulkUploadUserRoles1.setAppNameSpace("test"); - - assertEquals(bulkUploadUserRoles.getRoleName(), "test"); - assertEquals(bulkUploadUserRoles.getOrgUserId(), "test"); - assertEquals(bulkUploadUserRoles.getAppNameSpace(), "test"); - - assertEquals(bulkUploadUserRoles.hashCode(), bulkUploadUserRoles1.hashCode()); - assertTrue(bulkUploadUserRoles.equals(bulkUploadUserRoles1)); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRoleTest.java deleted file mode 100644 index b01da14d..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRoleTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -public class BusinessCardApplicationRoleTest { - - public BusinessCardApplicationRole mockBusinessCardApplicationRole(){ - BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole(); - - return businessCardApplicationRole; - } - - @Test - public void businessCardApplicationRoleTest(){ - BusinessCardApplicationRole businessCardApplicationRole = mockBusinessCardApplicationRole(); - - BusinessCardApplicationRole businessCardApplicationRole1 = new BusinessCardApplicationRole(); - - assertEquals(businessCardApplicationRole.hashCode(), businessCardApplicationRole1.hashCode()); - assertTrue(businessCardApplicationRole.equals(businessCardApplicationRole1)); - assertEquals(businessCardApplicationRole.toString(), "BusinessCardUserApplicationRoles [appName=null, roleName=null]"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRolesListTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRolesListTest.java deleted file mode 100644 index a6ecb2f9..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/BusinessCardApplicationRolesListTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -public class BusinessCardApplicationRolesListTest { - - public BusinessCardApplicationRolesList mockBusinessCardApplicationRolesList(){ - BusinessCardApplicationRolesList businessCardApplicationRolesList = new BusinessCardApplicationRolesList(); - - return businessCardApplicationRolesList; - } - - @Test - public void businessCardApplicationRolesListTest(){ - BusinessCardApplicationRolesList businessCardApplicationRolesList = mockBusinessCardApplicationRolesList(); - - BusinessCardApplicationRolesList businessCardApplicationRolesList1 = new BusinessCardApplicationRolesList(); - - assertEquals(businessCardApplicationRolesList.hashCode(), businessCardApplicationRolesList1.hashCode()); - assertTrue(businessCardApplicationRolesList.equals(businessCardApplicationRolesList1)); - assertEquals(businessCardApplicationRolesList.toString(), "BusinessCardUserAppRoles [appName=null, roleNames=null]"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralAppTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralAppTest.java deleted file mode 100644 index 69acdaa1..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralAppTest.java +++ /dev/null @@ -1,139 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.CentralApp; - -public class CentralAppTest { - - public CentralApp mockCentralApp(){ - CentralApp centralApp = new CentralApp((long)1, null, null, (long)1, (long)1, (long)1, "test", "test", "test", "test", "test", "test", "test", "test", "test", - "test", "test", "test", "test", null, "test", "test", "test", "test"); - - - /* public CentralApp(Long id, Date created, Date modified, Long createdId, Long modifiedId, Long rowNum, String name, - String imageUrl, String description, String notes, String url, String alternateUrl, String restEndpoint, - String mlAppName, String mlAppAdminId, String motsId, String appPassword, String open, String enabled, - byte[] thumbnail, String username, String uebKey, String uebSecret, String uebTopicName)*/ - - centralApp.setId((long)1); - centralApp.setCreatedId((long)1); - centralApp.setModifiedId((long)1); - centralApp.setRowNum((long)1); - centralApp.setName("test"); - centralApp.setImageUrl("test"); - centralApp.setDescription("test"); - centralApp.setNotes("test"); - centralApp.setUrl("test"); - centralApp.setAlternateUrl("test"); - centralApp.setRestEndpoint("test"); - centralApp.setMlAppName("test"); - centralApp.setMlAppAdminId("test"); - centralApp.setMotsId("test"); - centralApp.setAppPassword("test"); - centralApp.setOpen("test"); - centralApp.setEnabled("test"); - centralApp.setUsername("test"); - centralApp.setUebKey("test"); - centralApp.setUebSecret("test"); - centralApp.setUebTopicName("test"); - - return centralApp; - } - - @Test - public void centralAppTest(){ - CentralApp centralApp = mockCentralApp(); - - CentralApp centralApp1 = new CentralApp((long)1, null, null, (long)1, (long)1, (long)1, "test", "test", "test", "test", "test", "test", "test", "test", "test", - "test", "test", "test", "test", null, "test", "test", "test", "test"); - - /*centralApp1.setId((long)1); - centralApp1.setCreatedId((long)1); - centralApp1.setModifiedId((long)1); - centralApp1.setRowNum((long)1); - centralApp1.setName("test"); - centralApp1.setImageUrl("test"); - centralApp1.setDescription("test"); - centralApp1.setNotes("test"); - centralApp1.setUrl("test"); - centralApp1.setAlternateUrl("test"); - centralApp1.setRestEndpoint("test"); - centralApp1.setMlAppName("test"); - centralApp1.setMlAppAdminId("test"); - centralApp1.setMotsId("test"); - centralApp1.setAppPassword("test"); - centralApp1.setOpen("test"); - centralApp1.setEnabled("test"); - centralApp1.setUsername("test"); - centralApp1.setUebKey("test"); - centralApp1.setUebSecret("test"); - centralApp1.setUebTopicName("test");*/ - - assertEquals(centralApp.getId(), new Long(1)); - assertEquals(centralApp.getCreatedId(), new Long(1)); - assertEquals(centralApp.getModifiedId(), new Long(1)); - assertEquals(centralApp.getRowNum(), new Long(1)); - assertEquals(centralApp.getName(), "test"); - assertEquals(centralApp.getImageUrl(), "test"); - assertEquals(centralApp.getDescription(), "test"); - assertEquals(centralApp.getNotes(), "test"); - assertEquals(centralApp.getUrl(), "test"); - assertEquals(centralApp.getAlternateUrl(), "test"); - assertEquals(centralApp.getRestEndpoint(), "test"); - assertEquals(centralApp.getMlAppName(), "test"); - assertEquals(centralApp.getMlAppAdminId(), "test"); - assertEquals(centralApp.getMotsId(), "test"); - assertEquals(centralApp.getAppPassword(), "test"); - assertEquals(centralApp.getOpen(), "test"); - assertEquals(centralApp.getEnabled(), "test"); - assertEquals(centralApp.getUsername(), "test"); - assertEquals(centralApp.getUebKey(), "test"); - assertEquals(centralApp.getUebSecret(), "test"); - assertEquals(centralApp.getUebTopicName(), "test"); - - assertTrue(centralApp.equals(centralApp1)); - assertEquals(centralApp.hashCode(), centralApp1.hashCode()); - /* assertTrue(centralApp.equals(new CentralApp((long)1, null, null, (long)1, (long)1, (long)1, "test", "test", "test", "test", "test", "test", "test", "test", "test", - "test", "test", "test", "test", null, "test", "test", "test", "test")));*/ - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralRoleTest.java deleted file mode 100644 index 0ec0a300..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralRoleTest.java +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -public class CentralRoleTest { - - public CentralRole mockCentralRole(){ - CentralRole centralRole = new CentralRole((long)1, null, null, (long)1, (long)1, (long)1, - "test", false, 1, null, null, null); - - centralRole.setId((long)1); - centralRole.setCreatedId((long)1); - centralRole.setModifiedId((long)1); - centralRole.setRowNum((long)1); - centralRole.setName("test"); - centralRole.setActive(false); - centralRole.setPriority(1); - - centralRole.setCreated(null); - centralRole.setModified(null); - centralRole.setRoleFunctions(null); - centralRole.setChildRoles(null); - centralRole.setParentRoles(null); - - return centralRole; - } - - @Test - public void centralRoleTest(){ - CentralRole centralRole = mockCentralRole(); - - CentralRole centralRole1 = new CentralRole((long)1, null, null, (long)1, (long)1, (long)1, - "test", false, 1, null, null, null); - - CentralRole centralRole2 = new CentralRole((long)1, "test"); - - assertEquals(centralRole.getId(), new Long(1)); - assertEquals(centralRole.getCreatedId(), new Long(1)); - assertEquals(centralRole.getModifiedId(), new Long(1)); - assertEquals(centralRole.getRowNum(), new Long(1)); - assertEquals(centralRole.getName(), "test"); - assertEquals(centralRole.isActive(), false); - assertEquals(centralRole.getCreated(), null); - assertEquals(centralRole.getModified(), null); - assertEquals(centralRole.getRoleFunctions(), null); - assertEquals(centralRole.getChildRoles(), null); - assertEquals(centralRole.getParentRoles(), null); - assertEquals(centralRole.getPriority().toString(), "1"); - assertEquals(centralRole.hashCode(), centralRole1.hashCode()); - assertTrue(centralRole.equals(centralRole1)); - assertEquals(centralRole, centralRole1); - assertEquals(centralRole2, new CentralRole((long)1, "test")); - } - - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralUserAppTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralUserAppTest.java deleted file mode 100644 index 9b4b5f8a..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralUserAppTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.CentralApp; -import org.openecomp.portalapp.portal.transport.CentralRole; -import org.openecomp.portalapp.portal.transport.CentralUserApp; - -public class CentralUserAppTest { - - public CentralUserApp mockCentralUserApp(){ - CentralUserApp centralUserApp = new CentralUserApp(); - - CentralApp app = new CentralApp((long)1, null, null, (long)1, (long)1, (long)1, "test", "test", "test", "test", "test", "test", "test", "test", "test", - "test", "test", "test", "test", null, "test", "test", "test", "test"); - - CentralRole role = new CentralRole(); - - centralUserApp.setUserId((long)1); - centralUserApp.setApp(app); - centralUserApp.setRole(role); - centralUserApp.setPriority((short) 123); - - return centralUserApp; - } - - @Test - public void centralUserAppTest(){ - CentralUserApp centralUserApp = mockCentralUserApp(); - - CentralApp app1 = new CentralApp((long)1, null, null, (long)1, (long)1, (long)1, "test", "test", "test", "test", "test", "test", "test", "test", "test", - "test", "test", "test", "test", null, "test", "test", "test", "test"); - - CentralRole role1 = new CentralRole(); - - assertEquals(centralUserApp.getUserId(), new Long(1)); - assertEquals(centralUserApp.getPriority(), new Short((short) 123)); - assertEquals(centralUserApp.getApp(), app1); - assertEquals(centralUserApp.getRole(), role1); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralUserTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralUserTest.java deleted file mode 100644 index aad881b2..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/CentralUserTest.java +++ /dev/null @@ -1,89 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import java.util.HashSet; -import java.util.Set; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.CentralRole; -import org.openecomp.portalapp.portal.transport.CentralUser; -import org.openecomp.portalapp.portal.transport.CentralUserApp; - -public class CentralUserTest { - - public CentralUser mockCentralUser(){ - Set userApps = new HashSet(); - Set pseudoRoles = new HashSet(); - CentralUser centralUser = new CentralUser((long)1, null, null, (long)1, (long)1, (long)1, (long)1, - (long)1, "test", "test", "test", "test", "test", - "test", "test", (long)1, "test", "test", "test", - "test", "test", "test", "test", "test", "test", "test", - "test", "test", "test", "test", - "test", "test", "test", "test", "test", - "test", "test", "test", "test", "test", - "test", "test", "test", "test", null, - false, false, (long)1, (long)1, false, "test", userApps, pseudoRoles); - - return centralUser; - } - - @Test - public void centralRoleTest(){ - CentralUser centralUser = mockCentralUser(); - - Set userApps = new HashSet(); - Set pseudoRoles = new HashSet(); - CentralUser centralUser1 = new CentralUser((long)1, null, null, (long)1, (long)1, (long)1, (long)1, - (long)1, "test", "test", "test", "test", "test", - "test", "test", (long)1, "test", "test", "test", - "test", "test", "test", "test", "test", "test", "test", - "test", "test", "test", "test", - "test", "test", "test", "test", "test", - "test", "test", "test", "test", "test", - "test", "test", "test", "test", null, - false, false, (long)1, (long)1, false, "test", userApps, pseudoRoles); - - - assertEquals(centralUser, centralUser1); - assertEquals(centralUser.hashCode(), centralUser1.hashCode()); - assertTrue(centralUser.equals(centralUser1)); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPAppsManualPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPAppsManualPreferenceTest.java deleted file mode 100644 index 0d4c09a1..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPAppsManualPreferenceTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.EPAppsManualPreference; - -public class EPAppsManualPreferenceTest { - - public EPAppsManualPreference mockEPAppsManualPreference(){ - EPAppsManualPreference epAppsManualPreference = new EPAppsManualPreference(); - - epAppsManualPreference.setAppid((long)1); - epAppsManualPreference.setCol(1); - epAppsManualPreference.setHeaderText("test"); - epAppsManualPreference.setImageLink("test"); - epAppsManualPreference.setOrder(1); - epAppsManualPreference.setRestrictedApp(false); - epAppsManualPreference.setRow(1); - epAppsManualPreference.setSizeX(1); - epAppsManualPreference.setSizeY(1); - epAppsManualPreference.setSubHeaderText("test"); - epAppsManualPreference.setUrl("test"); - epAppsManualPreference.setAddRemoveApps(false); - - return epAppsManualPreference; - } - - @Test - public void epAppsManualPreferenceTest(){ - - EPAppsManualPreference epAppsManualPreference = mockEPAppsManualPreference(); - - assertEquals(epAppsManualPreference.getAppid(), new Long(1)); - assertEquals(epAppsManualPreference.getCol(), 1); - assertEquals(epAppsManualPreference.getHeaderText(), "test"); - assertEquals(epAppsManualPreference.getImageLink(), "test"); - assertEquals(epAppsManualPreference.getOrder(), 1); - assertEquals(epAppsManualPreference.isRestrictedApp(), false); - assertEquals(epAppsManualPreference.getRow(), 1); - assertEquals(epAppsManualPreference.getSizeX(), 1); - assertEquals(epAppsManualPreference.getSizeY(), 1); - assertEquals(epAppsManualPreference.getSubHeaderText(), "test"); - assertEquals(epAppsManualPreference.getUrl(), "test"); - assertEquals(epAppsManualPreference.isAddRemoveApps(), false); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPAppsSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPAppsSortPreferenceTest.java deleted file mode 100644 index 693cd61e..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPAppsSortPreferenceTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.EPAppsSortPreference; - -public class EPAppsSortPreferenceTest { - - public EPAppsSortPreference mockEPAppsSortPreference(){ - EPAppsSortPreference epAppsSortPreference = new EPAppsSortPreference(); - - epAppsSortPreference.setIndex(1); - epAppsSortPreference.setValue("test"); - epAppsSortPreference.setTitle("test"); - - return epAppsSortPreference; - } - - @Test - public void epAppsSortPreferenceTest(){ - EPAppsSortPreference epAppsSortPreference = mockEPAppsSortPreference(); - - assertEquals(epAppsSortPreference.getIndex(), 1); - assertEquals(epAppsSortPreference.getValue(), "test"); - assertEquals(epAppsSortPreference.getTitle(), "test"); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPDeleteAppsManualSortPrefTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPDeleteAppsManualSortPrefTest.java deleted file mode 100644 index 9dc739a8..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPDeleteAppsManualSortPrefTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.EPDeleteAppsManualSortPref; - -public class EPDeleteAppsManualSortPrefTest { - - public EPDeleteAppsManualSortPref mockEPDeleteAppsManualSortPref(){ - EPDeleteAppsManualSortPref epDeleteAppsManualSortPref = new EPDeleteAppsManualSortPref(); - - epDeleteAppsManualSortPref.setAppId((long)1); - epDeleteAppsManualSortPref.setSelect(false); - epDeleteAppsManualSortPref.setPending(false); - - return epDeleteAppsManualSortPref; - } - - @Test - public void epDeleteAppsManualSortPrefTest(){ - EPDeleteAppsManualSortPref epDeleteAppsManualSortPref = mockEPDeleteAppsManualSortPref(); - - assertEquals(epDeleteAppsManualSortPref.getAppId(), new Long(1)); - assertEquals(epDeleteAppsManualSortPref.isSelect(), false); - assertEquals(epDeleteAppsManualSortPref.isPending(), false); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPUserAppCurrentRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPUserAppCurrentRolesTest.java deleted file mode 100644 index 6bb70f71..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPUserAppCurrentRolesTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.EPUserAppCurrentRoles; - -public class EPUserAppCurrentRolesTest { - - public EPUserAppCurrentRoles mockEPUserAppCurrentRoles(){ - EPUserAppCurrentRoles epUserAppCurrentRoles = new EPUserAppCurrentRoles(); - - epUserAppCurrentRoles.setRoleName("test"); - epUserAppCurrentRoles.setUserId((long)1); - epUserAppCurrentRoles.setPriority("test"); - epUserAppCurrentRoles.setRoleId((long)1); - - return epUserAppCurrentRoles; - } - - @Test - public void epUserAppCurrentRolesTest(){ - EPUserAppCurrentRoles epUserAppCurrentRoles = mockEPUserAppCurrentRoles(); - - EPUserAppCurrentRoles epUserAppCurrentRoles1 = new EPUserAppCurrentRoles(); - - epUserAppCurrentRoles1.setRoleName("test"); - epUserAppCurrentRoles1.setUserId((long)1); - epUserAppCurrentRoles1.setPriority("test"); - epUserAppCurrentRoles1.setRoleId((long)1); - - assertEquals(epUserAppCurrentRoles.getRoleName(), "test"); - assertEquals(epUserAppCurrentRoles.getUserId(), new Long(1)); - assertEquals(epUserAppCurrentRoles.getRoleId(), new Long(1)); - assertEquals(epUserAppCurrentRoles.getPriority(), "test"); - assertEquals(epUserAppCurrentRoles.hashCode(), epUserAppCurrentRoles1.hashCode()); - assertTrue(epUserAppCurrentRoles.equals(epUserAppCurrentRoles1)); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPWidgetsSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPWidgetsSortPreferenceTest.java deleted file mode 100644 index 5b94b09e..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EPWidgetsSortPreferenceTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.EPWidgetsSortPreference; - -public class EPWidgetsSortPreferenceTest { - - public EPWidgetsSortPreference mockEPWidgetsSortPreference(){ - EPWidgetsSortPreference epWidgetsSortPreference = new EPWidgetsSortPreference(); - - epWidgetsSortPreference.setSizeX(1); - epWidgetsSortPreference.setSizeY(1); - epWidgetsSortPreference.setHeaderText("test"); - epWidgetsSortPreference.setUrl("test"); - epWidgetsSortPreference.setWidgetid((long)1); - epWidgetsSortPreference.setWidgetIdentifier("test"); - epWidgetsSortPreference.setRow(1); - epWidgetsSortPreference.setCol(1); - - return epWidgetsSortPreference; - } - - @Test - public void epWidgetsSortPreferenceTest(){ - EPWidgetsSortPreference epWidgetsSortPreference = mockEPWidgetsSortPreference(); - - assertEquals(epWidgetsSortPreference.getSizeX(), 1); - assertEquals(epWidgetsSortPreference.getSizeY(), 1); - assertEquals(epWidgetsSortPreference.getHeaderText(), "test"); - assertEquals(epWidgetsSortPreference.getUrl(), "test"); - assertEquals(epWidgetsSortPreference.getWidgetid(), new Long(1)); - assertEquals(epWidgetsSortPreference.getWidgetIdentifier(), "test"); - assertEquals(epWidgetsSortPreference.getRow(), 1); - assertEquals(epWidgetsSortPreference.getRow(), 1); - - } - - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EcompUserAppRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EcompUserAppRolesTest.java deleted file mode 100644 index 4bfb98b2..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EcompUserAppRolesTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.EcompUserAppRoles; - -public class EcompUserAppRolesTest { - - public EcompUserAppRoles mockEcompUserAppRoles(){ - EcompUserAppRoles ecompUserAppRoles = new EcompUserAppRoles(); - - ecompUserAppRoles.setAppId("test"); - ecompUserAppRoles.setUserId((long)1); - ecompUserAppRoles.setPriority("test"); - ecompUserAppRoles.setRoleId((long)1); - ecompUserAppRoles.setRoleName("test"); - - return ecompUserAppRoles; - } - - @Test - public void ecompUserAppRolesTest(){ - - EcompUserAppRoles ecompUserAppRoles = mockEcompUserAppRoles(); - - assertEquals(ecompUserAppRoles.getAppId(), "test"); - assertEquals(ecompUserAppRoles.getPriority(), "test"); - assertEquals(ecompUserAppRoles.getRoleName(), "test"); - assertEquals(ecompUserAppRoles.getUserId(), new Long(1)); - assertEquals(ecompUserAppRoles.getRoleId(), new Long(1)); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemExtVOTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemExtVOTest.java deleted file mode 100644 index 41a12f90..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemExtVOTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.EpNotificationItemExtVO; - -public class EpNotificationItemExtVOTest { - - public EpNotificationItemExtVO mockEpNotificationItemExtVO(){ - EpNotificationItemExtVO epNotificationItemExtVO = new EpNotificationItemExtVO(); - - //epNotificationItemExtVO.setActiveYn("abc"); - epNotificationItemExtVO.setMsgHeader("test"); - epNotificationItemExtVO.setMsgDescription("test"); - epNotificationItemExtVO.setPriority(1); - epNotificationItemExtVO.setCreatorId(1); - epNotificationItemExtVO.setLoginId("test"); - - return epNotificationItemExtVO; - } - - @Test - public void epNotificationItemExtVOTest(){ - EpNotificationItemExtVO epNotificationItemExtVO = mockEpNotificationItemExtVO(); - - assertEquals(epNotificationItemExtVO.getMsgHeader(), "test"); - assertEquals(epNotificationItemExtVO.getMsgDescription(), "test"); - assertEquals(epNotificationItemExtVO.getPriority().toString(), "1"); - assertEquals(epNotificationItemExtVO.getCreatorId().toString(), "1"); - assertEquals(epNotificationItemExtVO.getLoginId(), "test"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemTest.java deleted file mode 100644 index 2961a2de..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemTest.java +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.EpNotificationItem; - -public class EpNotificationItemTest { - - public EpNotificationItem mockEpNotificationItem(){ - EpNotificationItem epNotificationItem = new EpNotificationItem(); - - epNotificationItem.setNotificationId((long)1); - epNotificationItem.setIsForOnlineUsers("test"); - epNotificationItem.setIsForAllRoles("test"); - epNotificationItem.setActiveYn("test"); - epNotificationItem.setMsgHeader("test"); - epNotificationItem.setMsgDescription("test"); - epNotificationItem.setMsgSource("test"); - - epNotificationItem.setPriority((long)1); - epNotificationItem.setCreatedId((long)1); - epNotificationItem.setNotificationHyperlink("test"); - - return epNotificationItem; - } - - @Test - public void epNotificationItemTest(){ - EpNotificationItem epNotificationItem = mockEpNotificationItem(); - - EpNotificationItem epNotificationItem1 = new EpNotificationItem(); - epNotificationItem1.setNotificationId((long)1); - epNotificationItem1.setIsForOnlineUsers("test"); - epNotificationItem1.setIsForAllRoles("test"); - epNotificationItem1.setActiveYn("test"); - epNotificationItem1.setMsgHeader("test"); - epNotificationItem1.setMsgDescription("test"); - epNotificationItem1.setMsgSource("test"); - - epNotificationItem1.setPriority((long)1); - epNotificationItem1.setCreatedId((long)1); - epNotificationItem1.setNotificationHyperlink("test"); - - assertEquals(epNotificationItem.getNotificationId(), new Long(1)); - assertEquals(epNotificationItem.getIsForOnlineUsers(), "test"); - assertEquals(epNotificationItem.getIsForAllRoles(), "test"); - assertEquals(epNotificationItem.getActiveYn(), "test"); - assertEquals(epNotificationItem.getMsgHeader(), "test"); - assertEquals(epNotificationItem.getMsgDescription(), "test"); - assertEquals(epNotificationItem.getMsgSource(), "test"); - assertEquals(epNotificationItem.getPriority(), new Long(1)); - assertEquals(epNotificationItem.getCreatedId(), new Long(1)); - assertEquals(epNotificationItem.getNotificationHyperlink(), "test"); - - assertEquals(epNotificationItem.toString(), "EpNotificationItem [notificationId=1, isForOnlineUsers=test, isForAllRoles=test, activeYn=test, msgHeader=test, msgDescription=test, msgSource=test, startTime=null, endTime=null, priority=1, creatorId=null, createdDate=null, roles=null, roleIds=null]"); - assertEquals(epNotificationItem.hashCode(), epNotificationItem1.hashCode()); - assertTrue(epNotificationItem.equals(epNotificationItem1)); - - } - -} - - diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemVOTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemVOTest.java deleted file mode 100644 index 9cf1458b..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpNotificationItemVOTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -public class EpNotificationItemVOTest { - - public EpNotificationItemVO mockEpNotificationItemVO(){ - EpNotificationItemVO epNotificationItemVO = new EpNotificationItemVO(); - - epNotificationItemVO.setNotificationId(1); - epNotificationItemVO.setIsForOnlineUsers('a'); - epNotificationItemVO.setIsForAllRoles('a'); - epNotificationItemVO.setActiveYn('a'); - epNotificationItemVO.setMsgHeader("test"); - epNotificationItemVO.setMsgDescription("test"); - epNotificationItemVO.setMsgSource("test"); - epNotificationItemVO.setPriority(1); - epNotificationItemVO.setCreatorId(1); - epNotificationItemVO.setLoginId("test"); - epNotificationItemVO.setNotificationHyperlink("test"); - - return epNotificationItemVO; - } - - @Test - public void epNotificationItemVOTest(){ - EpNotificationItemVO epNotificationItemVO = mockEpNotificationItemVO(); - - assertEquals(epNotificationItemVO.getNotificationId().toString(), "1"); - /*assertEquals(epNotificationItemVO.getIsForOnlineUsers(), 'a'); - assertEquals(epNotificationItemVO.getIsForAllRoles(), 'a'); - assertEquals(epNotificationItemVO.getActiveYn(), 'a');*/ - assertEquals(epNotificationItemVO.getMsgHeader(), "test"); - assertEquals(epNotificationItemVO.getMsgDescription(), "test"); - assertEquals(epNotificationItemVO.getMsgSource(), "test"); - assertEquals(epNotificationItemVO.getPriority().toString(), "1"); - assertEquals(epNotificationItemVO.getCreatorId().toString(), "1"); - assertEquals(epNotificationItemVO.getLoginId(), "test"); - assertEquals(epNotificationItemVO.getNotificationHyperlink(), "test"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpRoleNotificationItemTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpRoleNotificationItemTest.java deleted file mode 100644 index 6ebc0ff8..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/EpRoleNotificationItemTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.EpRoleNotificationItem; - -public class EpRoleNotificationItemTest { - - public EpRoleNotificationItem mockEpRoleNotificationItem(){ - EpRoleNotificationItem epRoleNotificationItem = new EpRoleNotificationItem(); - - epRoleNotificationItem.setId((long)1); - epRoleNotificationItem.setNotificationId((long)1); - epRoleNotificationItem.setRoleId(1); - epRoleNotificationItem.setRecvUserId(1); - - return epRoleNotificationItem; - } - - @Test - public void epRoleNotificationItemTest(){ - EpRoleNotificationItem epRoleNotificationItem = mockEpRoleNotificationItem(); - - assertEquals(epRoleNotificationItem.getId(), new Long(1)); - assertEquals(epRoleNotificationItem.getNotificationId(), new Long(1)); - assertEquals(epRoleNotificationItem.getRoleId().toString(), "1"); - assertEquals(epRoleNotificationItem.getRecvUserId().toString(), "1"); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsDetailTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsDetailTest.java deleted file mode 100644 index 60f718c5..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsDetailTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.ExternalAccessPermsDetail; - -public class ExternalAccessPermsDetailTest { - - public ExternalAccessPermsDetail mockExternalAccessPermsDetail(){ - ExternalAccessPermsDetail externalAccessPermsDetail = new ExternalAccessPermsDetail(); - - List roles = new ArrayList(); - - externalAccessPermsDetail.setType("test"); - externalAccessPermsDetail.setInstance("test"); - externalAccessPermsDetail.setAction("test"); - externalAccessPermsDetail.setDescription("test"); - externalAccessPermsDetail.setRoles(roles); - - return externalAccessPermsDetail; - } - - @Test - public void externalAccessPermsDetailTest(){ - ExternalAccessPermsDetail externalAccessPermsDetail = mockExternalAccessPermsDetail(); - - List roles = new ArrayList(); - - assertEquals(externalAccessPermsDetail.getType(), "test"); - assertEquals(externalAccessPermsDetail.getInstance(), "test"); - assertEquals(externalAccessPermsDetail.getAction(), "test"); - assertEquals(externalAccessPermsDetail.getDescription(), "test"); - assertEquals(externalAccessPermsDetail.getRoles(), roles); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsTest.java deleted file mode 100644 index e8a212d9..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessPermsTest.java +++ /dev/null @@ -1,79 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.ExternalAccessPerms; - -public class ExternalAccessPermsTest { - - public ExternalAccessPerms mockExternalAccessPerms(){ - ExternalAccessPerms externalAccessPerms = new ExternalAccessPerms(); - - externalAccessPerms.setType("test"); - externalAccessPerms.setInstance("test"); - externalAccessPerms.setAction("test"); - externalAccessPerms.setDescription("test"); - - return externalAccessPerms; - } - - @Test - public void externalAccessPermsTest(){ - ExternalAccessPerms externalAccessPerms = mockExternalAccessPerms(); - - ExternalAccessPerms externalAccessPerms1 = new ExternalAccessPerms("test", "test", "test"); - ExternalAccessPerms externalAccessPerms2 = new ExternalAccessPerms("test", "test", "test", "test"); - ExternalAccessPerms externalAccessPerms3 = new ExternalAccessPerms(); - externalAccessPerms3.setType("test"); - externalAccessPerms3.setInstance("test"); - externalAccessPerms3.setAction("test"); - externalAccessPerms3.setDescription("test"); - - assertEquals(externalAccessPerms.getType(), "test"); - assertEquals(externalAccessPerms.getInstance(), "test"); - assertEquals(externalAccessPerms.getAction(), "test"); - assertEquals(externalAccessPerms.getDescription(), "test"); - assertEquals(externalAccessPerms.hashCode(), externalAccessPerms3.hashCode()); - - assertTrue(externalAccessPerms1.equals(new ExternalAccessPerms("test", "test", "test"))); - assertTrue(externalAccessPerms2.equals(new ExternalAccessPerms("test", "test", "test", "test"))); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessRolePermsTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessRolePermsTest.java deleted file mode 100644 index 6bdcb3bd..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessRolePermsTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.ExternalAccessPerms; -import org.openecomp.portalapp.portal.transport.ExternalAccessRolePerms; - -public class ExternalAccessRolePermsTest { - - public ExternalAccessRolePerms mockExternalAccessRolePerms(){ - ExternalAccessPerms externalAccessPerms = new ExternalAccessPerms(); - externalAccessPerms.setAction("test"); - externalAccessPerms.setDescription("test"); - externalAccessPerms.setInstance("test"); - externalAccessPerms.setType("test"); - ExternalAccessRolePerms ExternalAccessRolePerms = new ExternalAccessRolePerms(externalAccessPerms, "test"); - - return ExternalAccessRolePerms; - } - - @Test - public void externalAccessRolePermsTest(){ - ExternalAccessPerms externalAccessPerms = new ExternalAccessPerms(); - externalAccessPerms.setAction("test"); - externalAccessPerms.setDescription("test"); - externalAccessPerms.setInstance("test"); - externalAccessPerms.setType("test"); - - ExternalAccessRolePerms ExternalAccessRolePerms = mockExternalAccessRolePerms(); - - assertEquals(ExternalAccessRolePerms.getRole(), "test"); - assertEquals(ExternalAccessRolePerms.getPerm(), externalAccessPerms); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessRoleTest.java deleted file mode 100644 index 11ff44bc..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessRoleTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.ExternalAccessRole; - -public class ExternalAccessRoleTest { - - public ExternalAccessRole mockExternalAccessRole(){ - ExternalAccessRole externalAccessRole = new ExternalAccessRole(); - - externalAccessRole.setName("test"); - externalAccessRole.setDescription("test"); - - return externalAccessRole; - } - - @Test - public void externalAccessRoleTest(){ - ExternalAccessRole externalAccessRole = mockExternalAccessRole(); - - assertEquals(externalAccessRole.getName(), "test"); - assertEquals(externalAccessRole.getDescription(), "test"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserRoleDetailTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserRoleDetailTest.java deleted file mode 100644 index d332b60a..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserRoleDetailTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.ExternalAccessUserRoleDetail; -import org.openecomp.portalapp.portal.transport.ExternalRoleDescription; - -public class ExternalAccessUserRoleDetailTest { - - public ExternalAccessUserRoleDetail mockExternalAccessUserRoleDetail(){ - - ExternalRoleDescription externalRoleDescription = new ExternalRoleDescription(); - externalRoleDescription.setId("test"); - externalRoleDescription.setName("test"); - externalRoleDescription.setActive("test"); - externalRoleDescription.setPriority("test"); - externalRoleDescription.setAppId("test"); - externalRoleDescription.setAppRoleId("test"); - - ExternalAccessUserRoleDetail externalAccessUserRoleDetail = new ExternalAccessUserRoleDetail("test", externalRoleDescription); - - externalAccessUserRoleDetail.setName("test"); - externalAccessUserRoleDetail.setDescription(externalRoleDescription); - return externalAccessUserRoleDetail; - } - - @Test - public void externalAccessUserRoleDetailTest(){ - ExternalAccessUserRoleDetail externalAccessUserRoleDetail = mockExternalAccessUserRoleDetail(); - - ExternalRoleDescription externalRoleDescription1 = new ExternalRoleDescription(); - externalRoleDescription1.setId("test"); - externalRoleDescription1.setName("test"); - externalRoleDescription1.setActive("test"); - externalRoleDescription1.setPriority("test"); - externalRoleDescription1.setAppId("test"); - externalRoleDescription1.setAppRoleId("test"); - - ExternalAccessUserRoleDetail externalAccessUserRoleDetail1 = new ExternalAccessUserRoleDetail("test", externalRoleDescription1); - - assertEquals(externalAccessUserRoleDetail.getName(), externalAccessUserRoleDetail1.getName()); - assertEquals(externalAccessUserRoleDetail.getDescription(), externalAccessUserRoleDetail1.getDescription()); - assertEquals(externalAccessUserRoleDetail.hashCode(), externalAccessUserRoleDetail1.hashCode()); - assertTrue(externalAccessUserRoleDetail.equals(externalAccessUserRoleDetail1)); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserTest.java deleted file mode 100644 index 1c6a819a..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalAccessUserTest.java +++ /dev/null @@ -1,61 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.ExternalAccessUser; - -public class ExternalAccessUserTest { - - public ExternalAccessUser mockExternalAccessUser(){ - ExternalAccessUser externalAccessUser = new ExternalAccessUser("test", "test"); - - return externalAccessUser; - } - - @Test - public void externalAccessUserTest(){ - ExternalAccessUser externalAccessUser = mockExternalAccessUser(); - - assertEquals(externalAccessUser.getRole(), "test"); - assertEquals(externalAccessUser.getUser(), "test"); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalRoleDescriptionTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalRoleDescriptionTest.java deleted file mode 100644 index f99f54f2..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/ExternalRoleDescriptionTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.ExternalRoleDescription; - -public class ExternalRoleDescriptionTest { - - public ExternalRoleDescription mockExternalRoleDescription(){ - - ExternalRoleDescription externalRoleDescription = new ExternalRoleDescription(); - - externalRoleDescription.setId("test"); - externalRoleDescription.setName("test"); - externalRoleDescription.setActive("test"); - externalRoleDescription.setPriority("test"); - externalRoleDescription.setAppId("test"); - externalRoleDescription.setAppRoleId("test"); - - return externalRoleDescription; - } - - @Test - public void externalRoleDescriptionTest(){ - ExternalRoleDescription externalRoleDescription = mockExternalRoleDescription(); - - assertEquals(externalRoleDescription.getId(), "test"); - assertEquals(externalRoleDescription.getName(), "test"); - assertEquals(externalRoleDescription.getActive(), "test"); - assertEquals(externalRoleDescription.getPriority(), "test"); - assertEquals(externalRoleDescription.getAppId(), "test"); - assertEquals(externalRoleDescription.getAppRoleId(), "test"); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItemTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItemTest.java deleted file mode 100644 index 15b27def..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/FunctionalMenuItemTest.java +++ /dev/null @@ -1,79 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.FunctionalMenuItem; - -public class FunctionalMenuItemTest { - - public FunctionalMenuItem mockFunctionalMenuItem(){ - FunctionalMenuItem functionalMenuItem = new FunctionalMenuItem(); - - List roles = new ArrayList(); - - functionalMenuItem.setRestrictedApp(false); - functionalMenuItem.setUrl("test"); - functionalMenuItem.setRoles(roles); - - return functionalMenuItem; - } - - @Test - public void functionalMenuItemTest(){ - FunctionalMenuItem functionalMenuItem = mockFunctionalMenuItem(); - - FunctionalMenuItem functionalMenuItem1 = mockFunctionalMenuItem(); - - List roles = new ArrayList(); - - functionalMenuItem1.setRestrictedApp(false); - functionalMenuItem1.setUrl("test"); - functionalMenuItem1.setRoles(roles); - - assertEquals(functionalMenuItem.getRoles(), functionalMenuItem1.getRoles()); - assertEquals(functionalMenuItem.toString(), "FunctionalMenuItem [menuId=null, column=null, text=null, parentMenuId=null, url=test, active_yn=null, appid=null, roles=[], restrictedApp=false]"); - // assertTrue(functionalMenuItem.normalize(), functionalMenuItem1.normalize()); - } - -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/FunctionalMenuRoleTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/FunctionalMenuRoleTest.java deleted file mode 100644 index ea170e10..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/FunctionalMenuRoleTest.java +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.FunctionalMenuRole; - -public class FunctionalMenuRoleTest { - - public FunctionalMenuRole mockFunctionalMenuRole(){ - FunctionalMenuRole functionalMenuRole = new FunctionalMenuRole(); - - functionalMenuRole.setId(1); - functionalMenuRole.setMenuId((long)1); - functionalMenuRole.setAppId(1); - functionalMenuRole.setRoleId(1); - - return functionalMenuRole; - } - - @Test - public void functionalMenuRoleTest(){ - FunctionalMenuRole functionalMenuRole = mockFunctionalMenuRole(); - - FunctionalMenuRole functionalMenuRole1 = new FunctionalMenuRole(); - functionalMenuRole1.setId(1); - functionalMenuRole1.setMenuId((long)1); - functionalMenuRole1.setAppId(1); - functionalMenuRole1.setRoleId(1); - - assertEquals(functionalMenuRole.getId().toString(), "1"); - assertEquals(functionalMenuRole.getMenuId(), new Long(1)); - assertEquals(functionalMenuRole.getAppId().toString(), "1"); - assertEquals(functionalMenuRole.getRoleId().toString(), "1"); - assertEquals(functionalMenuRole.toString(), "FunctionalMenuRole [id=1, menuId=1, appId=1, roleId=1]"); - assertTrue(functionalMenuRole.equals(functionalMenuRole1)); - assertEquals(functionalMenuRole.hashCode(), functionalMenuRole1.hashCode()); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/RemoteUserWithRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/RemoteUserWithRolesTest.java deleted file mode 100644 index c54bdf9e..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/RemoteUserWithRolesTest.java +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.RemoteRole; -import org.openecomp.portalapp.portal.transport.RemoteUserWithRoles; - -public class RemoteUserWithRolesTest { - - public RemoteUserWithRoles mockRemoteUserWithRoles(){ - RemoteUserWithRoles remoteUserWithRoles = new RemoteUserWithRoles(); - - List roles = new ArrayList(); - RemoteRole remoteRole = new RemoteRole(); - remoteRole.setId((long)1); - remoteRole.setName("test"); - roles.add(remoteRole); - - remoteUserWithRoles.setOrgId((long)1); - remoteUserWithRoles.setManagerId((long)1); - remoteUserWithRoles.setFirstName("test"); - remoteUserWithRoles.setMiddleInitial("test"); - remoteUserWithRoles.setLastName("test"); - remoteUserWithRoles.setPhone("test"); - remoteUserWithRoles.setEmail("test"); - remoteUserWithRoles.setHrid("test"); - remoteUserWithRoles.setOrgUserId("test"); - remoteUserWithRoles.setOrgCode("test"); - remoteUserWithRoles.setOrgManagerUserId("test"); - remoteUserWithRoles.setJobTitle("test"); - remoteUserWithRoles.setLoginId("test"); - remoteUserWithRoles.setActive(false); - remoteUserWithRoles.setRoles(roles); - - return remoteUserWithRoles; - } - - @Test - public void remoteUserWithRolesTest(){ - RemoteUserWithRoles remoteUserWithRoles = mockRemoteUserWithRoles(); - - assertEquals(remoteUserWithRoles.getOrgId(), new Long(1)); - assertEquals(remoteUserWithRoles.getManagerId(), new Long(1)); - assertEquals(remoteUserWithRoles.getFirstName(), "test"); - assertEquals(remoteUserWithRoles.getMiddleInitial(), "test"); - assertEquals(remoteUserWithRoles.getLastName(), "test"); - assertEquals(remoteUserWithRoles.getPhone(), "test"); - assertEquals(remoteUserWithRoles.getEmail(), "test"); - assertEquals(remoteUserWithRoles.getHrid(), "test"); - assertEquals(remoteUserWithRoles.getOrgUserId(), "test"); - assertEquals(remoteUserWithRoles.getOrgCode(), "test"); - assertEquals(remoteUserWithRoles.getOrgManagerUserId(), "test"); - assertEquals(remoteUserWithRoles.getJobTitle(), "test"); - assertEquals(remoteUserWithRoles.getLoginId(), "test"); - assertEquals(remoteUserWithRoles.getActive(), false); - assertEquals(remoteUserWithRoles.getRoles().size(), 1); - assertEquals(remoteUserWithRoles.toString(), "RemoteUserWithRoles [orgId=1, managerId=1, firstName=test, middleInitial=test, lastName=test, phone=test, " - + "email=test, hrid=test, orgUserId=test, orgCode=test, orgManagerUserId=test, jobTitle=test, loginId=test, active=false, roles=[RemoteRole [id=1, name=test]]]"); - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/RoleInAppForUserTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/RoleInAppForUserTest.java deleted file mode 100644 index 5348f686..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/RoleInAppForUserTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.RoleInAppForUser; - -public class RoleInAppForUserTest { - - public RoleInAppForUser mockRoleInAppForUser(){ - RoleInAppForUser roleInAppForUser = new RoleInAppForUser((long)1 , "test"); - roleInAppForUser.setRoleId((long)1); - roleInAppForUser.setRoleName("test"); - roleInAppForUser.setIsApplied(false); - - return roleInAppForUser; - } - - @Test - public void roleInAppForUserTest(){ - RoleInAppForUser roleInAppForUser = mockRoleInAppForUser(); - - RoleInAppForUser roleInAppForUser1 = new RoleInAppForUser((long)1 , "test"); - roleInAppForUser1.setRoleId((long)1); - roleInAppForUser1.setRoleName("test"); - roleInAppForUser1.setIsApplied(false); - - assertEquals(roleInAppForUser.getRoleId(), new Long(1)); - assertEquals(roleInAppForUser.getRoleName(), "test"); - assertEquals(roleInAppForUser.getIsApplied(), false); - - assertEquals(roleInAppForUser.toString(), "RoleInAppForUser [roleId=1, roleName=test, isApplied=false]"); - assertTrue(roleInAppForUser.equals(roleInAppForUser1)); - assertEquals(roleInAppForUser.hashCode(), roleInAppForUser1.hashCode()); - //constructor - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/UserApplicationRolesTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/UserApplicationRolesTest.java deleted file mode 100644 index 625f0589..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/UserApplicationRolesTest.java +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.RemoteRole; -import org.openecomp.portalapp.portal.transport.UserApplicationRoles; - -public class UserApplicationRolesTest { - - public UserApplicationRoles mockUserApplicationRoles(){ - UserApplicationRoles userApplicationRoles = new UserApplicationRoles(); - - List roles = new ArrayList(); - RemoteRole remoteRole = new RemoteRole(); - remoteRole.setId((long)1); - remoteRole.setName("test"); - roles.add(remoteRole); - - userApplicationRoles.setAppId((long)1); - userApplicationRoles.setOrgUserId("test"); - userApplicationRoles.setFirstName("test"); - userApplicationRoles.setLastName("test"); - userApplicationRoles.setRoles(roles); - - return userApplicationRoles; - } - - @Test - public void userApplicationRolesTest(){ - UserApplicationRoles userApplicationRoles = mockUserApplicationRoles(); - - UserApplicationRoles userApplicationRoles1 = new UserApplicationRoles(); - - List roles = new ArrayList(); - RemoteRole remoteRole = new RemoteRole(); - remoteRole.setId((long)1); - remoteRole.setName("test"); - roles.add(remoteRole); - - userApplicationRoles1.setAppId((long)1); - userApplicationRoles1.setOrgUserId("test"); - userApplicationRoles1.setFirstName("test"); - userApplicationRoles1.setLastName("test"); - userApplicationRoles1.setRoles(roles); - - assertEquals(userApplicationRoles.getAppId(), userApplicationRoles1.getAppId()); - assertEquals(userApplicationRoles.getOrgUserId(), userApplicationRoles1.getOrgUserId()); - assertEquals(userApplicationRoles.getFirstName(), userApplicationRoles1.getFirstName()); - assertEquals(userApplicationRoles.getLastName(), userApplicationRoles1.getLastName()); - assertEquals(userApplicationRoles.getRoles(), userApplicationRoles1.getRoles()); - - - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/UserWithNameSurnameTitleTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/UserWithNameSurnameTitleTest.java deleted file mode 100644 index 2238bf98..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/UserWithNameSurnameTitleTest.java +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.UserWithNameSurnameTitle; - -public class UserWithNameSurnameTitleTest { - - @Test - public void userWithNameSurnameTitleTest(){ - - UserWithNameSurnameTitle userWithNameSurnameTitle = new UserWithNameSurnameTitle("test", "test", "test", "test"); - - assertEquals(userWithNameSurnameTitle, new UserWithNameSurnameTitle("test", "test", "test", "test")); - assertEquals(userWithNameSurnameTitle.hashCode(), new UserWithNameSurnameTitle("test", "test", "test", "test").hashCode()); - assertTrue(userWithNameSurnameTitle.equals(new UserWithNameSurnameTitle("test", "test", "test", "test"))); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/WidgetCatalogPersonalizationTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/WidgetCatalogPersonalizationTest.java deleted file mode 100644 index 236990c8..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/transport/WidgetCatalogPersonalizationTest.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.transport; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.openecomp.portalapp.portal.transport.WidgetCatalogPersonalization; - -public class WidgetCatalogPersonalizationTest { - - public WidgetCatalogPersonalization mockWidgetCatalogPersonalization(){ - WidgetCatalogPersonalization widgetCatalogPersonalization = new WidgetCatalogPersonalization(); - - widgetCatalogPersonalization.setWidgetId((long)1); - widgetCatalogPersonalization.setSelect(false); - return widgetCatalogPersonalization; - } - - @Test - public void widgetCatalogPersonalizationTest(){ - WidgetCatalogPersonalization widgetCatalogPersonalization = mockWidgetCatalogPersonalization(); - - assertEquals(widgetCatalogPersonalization.getWidgetId(), new Long(1)); - assertEquals(widgetCatalogPersonalization.getSelect(), false); - } -} diff --git a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/utils/EcompPortalUtilsTest.java b/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/utils/EcompPortalUtilsTest.java deleted file mode 100644 index 4a1e58b2..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/openecomp/portalapp/portal/utils/EcompPortalUtilsTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.portal.utils; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -public class EcompPortalUtilsTest { - - @Test - public void legitimateAttuidSuccessTest() { - assertEquals(true, EcompPortalUtils.legitimateUserId("mm016f")); - } - - @Test - public void legitimateAttuidFailureTest() { - assertEquals(false, EcompPortalUtils.legitimateUserId("1#@23456")); - } -} -- cgit 1.2.3-korg