X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ecomp-portal-BE-common%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fportalapp%2Fportal%2Fcontroller%2FBasicAuthAccountController.java;h=ab040bb092565be2584619876c680ca52550b30d;hb=9197ec4902db72c025afb142270a090491c7f281;hp=f02d8fce2b552ac34db790e83fe10bbdbb79b569;hpb=21a8761f684745bb300e075c7e98ad897ace9eed;p=portal.git 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 index f02d8fce..ab040bb0 100644 --- 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 @@ -33,7 +33,7 @@ * * ============LICENSE_END============================================ * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * */ package org.onap.portalapp.portal.controller; @@ -53,11 +53,17 @@ 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.onap.portalapp.validation.DataValidator; +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.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @@ -67,6 +73,14 @@ import org.springframework.web.bind.annotation.RestController; @EPAuditLog public class BasicAuthAccountController extends EPRestrictedBaseController { + private static final String FAILURE = "FAILURE"; + private static final String SUCCESS = "SUCCESS"; + private static final String AUTHORIZATION_REQUIRED = "Authorization Required"; + private static final String ADMIN_ONLY_OPERATIONS = "Admin Only Operation! "; + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(BasicAuthAccountController.class); + private final DataValidator dataValidator = new DataValidator(); + @Autowired private BasicAuthAccountService basicAuthAccountService; @@ -75,7 +89,7 @@ public class BasicAuthAccountController extends EPRestrictedBaseController { /** * Saves Basic Authentication account for external systems - * + * * @param request * HttpServletRequest * @param response @@ -86,21 +100,34 @@ public class BasicAuthAccountController extends EPRestrictedBaseController { * @throws Exception * on failure */ - @RequestMapping(value = { "/portalApi/basicAuthAccount" }, method = RequestMethod.POST) + @PostMapping(value = { "/portalApi/basicAuthAccount" }) 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! "); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, AUTHORIZATION_REQUIRED, + ADMIN_ONLY_OPERATIONS); } if (newBasicAuthAccount == null) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, FAILURE, "newBasicAuthAccount cannot be null or empty"); } - long accountId = basicAuthAccountService.saveBasicAuthAccount(newBasicAuthAccount); + + if(!dataValidator.isValid(newBasicAuthAccount)){ + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "createBasicAuthAccount() failed, new credential are not safe", + ""); + } + + long accountId; + try { + accountId = basicAuthAccountService.saveBasicAuthAccount(newBasicAuthAccount); + } catch (Exception e){ + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, FAILURE, e.getMessage()); + } List endpointIdList = new ArrayList<>(); try { @@ -111,15 +138,16 @@ public class BasicAuthAccountController extends EPRestrictedBaseController { basicAuthAccountService.saveEndpointAccount(accountId, endpointId); } } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); + logger.error(EELFLoggerDelegate.errorLogger, "createBasicAuthAccount failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, FAILURE, e.getMessage()); } - return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, SUCCESS, ""); } /** * Returns list of all BasicAuthCredentials in the system - * + * * @param request * HttpServletRequest * @param response @@ -129,23 +157,23 @@ public class BasicAuthAccountController extends EPRestrictedBaseController { * on failure */ - @RequestMapping(value = { "/portalApi/basicAuthAccount" }, method = RequestMethod.GET) + @GetMapping(value = { "/portalApi/basicAuthAccount" }) public PortalRestResponse> getBasicAuthAccount(HttpServletRequest request, HttpServletResponse response) throws Exception { EPUser user = EPUserUtils.getUserSession(request); if (!adminRolesService.isSuperAdmin(user)) { - return new PortalRestResponse>(PortalRestStatusEnum.ERROR, + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "UnAuthorized! Admin Only Operation", new ArrayList<>()); } - return new PortalRestResponse>(PortalRestStatusEnum.OK, "Success", + return new PortalRestResponse<>(PortalRestStatusEnum.OK, "Success", basicAuthAccountService.getAccountData()); } /** * Updates an existing BasicAuthCredentials account - * + * * @param request * HttpServletRequest * @param response @@ -158,32 +186,33 @@ public class BasicAuthAccountController extends EPRestrictedBaseController { * @throws Exception * on failure */ - @RequestMapping(value = { "/portalApi/basicAuthAccount/{accountId}" }, method = RequestMethod.PUT) + @PutMapping(value = { "/portalApi/basicAuthAccount/{accountId}" }) 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! "); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, AUTHORIZATION_REQUIRED, + ADMIN_ONLY_OPERATIONS); } if (newBasicAuthAccount == null) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", + 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()); + logger.error(EELFLoggerDelegate.errorLogger, "updateAccount failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, FAILURE, e.getMessage()); } - return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, SUCCESS, ""); } /** * deletes an existing BasicAuthCredentials account - * + * * @param request * HttpServletRequest * @param response @@ -194,22 +223,23 @@ public class BasicAuthAccountController extends EPRestrictedBaseController { * @throws Exception * on failure */ - @RequestMapping(value = { "/portalApi/basicAuthAccount/{accountId}" }, method = RequestMethod.DELETE) + @DeleteMapping(value = { "/portalApi/basicAuthAccount/{accountId}" }) 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! "); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, AUTHORIZATION_REQUIRED, + ADMIN_ONLY_OPERATIONS); } try { basicAuthAccountService.deleteEndpointAccout(accountId); } catch (Exception e) { - return new PortalRestResponse(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage()); + logger.error(EELFLoggerDelegate.errorLogger, "deleteAccount failed", e); + return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, FAILURE, e.getMessage()); } - return new PortalRestResponse(PortalRestStatusEnum.OK, "SUCCESS", ""); + return new PortalRestResponse<>(PortalRestStatusEnum.OK, SUCCESS, ""); } }