From c3a23a329f04efbdddb1c4b8961b541becc5aec9 Mon Sep 17 00:00:00 2001 From: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> Date: Tue, 11 Apr 2023 18:51:16 +0530 Subject: [PATCH 1/8] MOSIP-25622 : Updated OIDC Client Details For Audit Purpose Signed-off-by: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> --- .../io/mosip/pms/device/util/AuditUtil.java | 40 +++++++ .../contant/ClientServiceAuditEnum.java | 100 ++++++++++++++++++ .../ClientManagementController.java | 58 +++++++--- .../impl/ClientManagementServiceImpl.java | 30 +++++- 4 files changed, 212 insertions(+), 16 deletions(-) create mode 100644 partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/contant/ClientServiceAuditEnum.java diff --git a/partner/partner-management-service/src/main/java/io/mosip/pms/device/util/AuditUtil.java b/partner/partner-management-service/src/main/java/io/mosip/pms/device/util/AuditUtil.java index 0ffd0c8b42..e77fe5c535 100644 --- a/partner/partner-management-service/src/main/java/io/mosip/pms/device/util/AuditUtil.java +++ b/partner/partner-management-service/src/main/java/io/mosip/pms/device/util/AuditUtil.java @@ -10,6 +10,7 @@ import javax.annotation.PostConstruct; +import io.mosip.pms.oidc.client.contant.ClientServiceAuditEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; @@ -341,4 +342,43 @@ private void handlException(HttpStatusCodeException ex) { } + public void setAuditRequestDto(ClientServiceAuditEnum clientServiceAuditEnum, String refId, String refIdType) { + AuditRequestDto auditRequestDto = new AuditRequestDto(); + auditRequestDto.setHostIp(hostIpAddress); + auditRequestDto.setHostName(hostName);; + auditRequestDto.setApplicationId(clientServiceAuditEnum.getApplicationId()); + auditRequestDto.setApplicationName(clientServiceAuditEnum.getApplicationName()); + auditRequestDto.setSessionUserId(SecurityContextHolder.getContext().getAuthentication().getName()); + auditRequestDto.setSessionUserName(SecurityContextHolder.getContext().getAuthentication().getName()); + auditRequestDto.setCreatedBy(SecurityContextHolder.getContext().getAuthentication().getName()); + auditRequestDto.setActionTimeStamp(DateUtils.getUTCCurrentDateTime()); + auditRequestDto.setDescription(clientServiceAuditEnum.getDescription()); + auditRequestDto.setEventType(clientServiceAuditEnum.getType()); + auditRequestDto.setEventName(clientServiceAuditEnum.getName()); + auditRequestDto.setModuleId(clientServiceAuditEnum.getModuleId()); + auditRequestDto.setModuleName(clientServiceAuditEnum.getModuleName()); + auditRequestDto.setEventId(clientServiceAuditEnum.getEventId()); + auditRequestDto.setId(refId); + auditRequestDto.setIdType(refIdType); + callAuditManager(auditRequestDto); + } + + public void setAuditRequestDto(ClientServiceAuditEnum clientServiceAuditEnum) { + AuditRequestDto auditRequestDto = new AuditRequestDto(); + auditRequestDto.setHostIp(hostIpAddress); + auditRequestDto.setHostName(hostName);; + auditRequestDto.setApplicationId(clientServiceAuditEnum.getApplicationId()); + auditRequestDto.setApplicationName(clientServiceAuditEnum.getApplicationName()); + auditRequestDto.setSessionUserId(SecurityContextHolder.getContext().getAuthentication().getName()); + auditRequestDto.setSessionUserName(SecurityContextHolder.getContext().getAuthentication().getName()); + auditRequestDto.setCreatedBy(SecurityContextHolder.getContext().getAuthentication().getName()); + auditRequestDto.setActionTimeStamp(DateUtils.getUTCCurrentDateTime()); + auditRequestDto.setDescription(clientServiceAuditEnum.getDescription()); + auditRequestDto.setEventType(clientServiceAuditEnum.getType()); + auditRequestDto.setEventName(clientServiceAuditEnum.getName()); + auditRequestDto.setModuleId(clientServiceAuditEnum.getModuleId()); + auditRequestDto.setModuleName(clientServiceAuditEnum.getModuleName()); + auditRequestDto.setEventId(clientServiceAuditEnum.getEventId()); + callAuditManager(auditRequestDto); + } } diff --git a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/contant/ClientServiceAuditEnum.java b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/contant/ClientServiceAuditEnum.java new file mode 100644 index 0000000000..68e5177602 --- /dev/null +++ b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/contant/ClientServiceAuditEnum.java @@ -0,0 +1,100 @@ +package io.mosip.pms.oidc.client.contant; + +import io.mosip.pms.partner.manager.constant.AuditConstant; + +public enum ClientServiceAuditEnum { + + CREATE_CLIENT("PMS_PRT_100", AuditConstant.AUDIT_SYSTEM, "POST CREATE OIDC CLIENT", + "Creating the OIDC Client", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", + "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID), + CREATE_CLIENT_SUCCESS("PMS_PRT_200", AuditConstant.AUDIT_SYSTEM, "POST CREATE OIDC CLIENT", + "Creating the OIDC Client Success", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", + "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID), + CREATE_CLIENT_FAILURE("PMS_PRT_300", AuditConstant.AUDIT_SYSTEM, "POST CREATE OIDC CLIENT", + "Creating the OIDC Client Failed", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", + "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID), + UPDATE_CLIENT("PMS_PRT_600", AuditConstant.AUDIT_SYSTEM, "PUT UPDATE OIDC CLIENT", + "Updating OIDC Client", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", + "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID), + UPDATE_CLIENT_SUCCESS("PMS_PRT_700", AuditConstant.AUDIT_SYSTEM, "PUT UPDATE OIDC CLIENT", + "Updating OIDC Client Success", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", + "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID), + UPDATE_CLIENT_FAILURE("PMS_PRT_800", AuditConstant.AUDIT_SYSTEM, "PUT UPDATE OIDC CLIENT", + "Updating OIDC Client Failed", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", + "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID); + + private final String eventId; + + private final String type; + + private String name; + + private String description; + + private String moduleId; + + private String moduleName; + + private String id; + + private String idType; + + private String applicationId; + + private String applicationName; + + public String getEventId() { + return eventId; + } + + public String getType() { + return type; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public String getModuleId() { + return moduleId; + } + + public String getModuleName() { + return moduleName; + } + + public String getId() { + return id; + } + + public String getIdType() { + return idType; + } + + public String getApplicationId() { + return applicationId; + } + + public String getApplicationName() { + return applicationName; + } + + ClientServiceAuditEnum(String eventId, String type, String name, String description, String moduleId, + String moduleName, String id, String idType, String applicationId, String applicationName) { + this.eventId = eventId; + this.type = type; + this.name = name; + this.description = description; + this.moduleId = moduleId; + this.moduleName = moduleName; + this.id = id; + this.idType = idType; + this.applicationId = applicationId; + this.applicationName = applicationName; + } + +} diff --git a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java index 9793d0e2a7..b954a04f52 100644 --- a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java +++ b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java @@ -1,5 +1,9 @@ package io.mosip.pms.oidc.client.controller; +import io.mosip.pms.device.util.AuditUtil; +import io.mosip.pms.oidc.client.contant.ClientServiceAuditEnum; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; import io.mosip.pms.common.request.dto.RequestWrapper; @@ -22,29 +26,55 @@ public class ClientManagementController { @Autowired ClientManagementService clientManagementService; + @Autowired + AuditUtil auditUtil; + + String msg = "mosip.clientmanagement.clients.retrieve"; + + String version = "1.0"; + @RequestMapping(value = "/oidc/client", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseWrapper createClient( + public ResponseEntity> createClient( @Valid @RequestBody RequestWrapper requestWrapper) throws Exception { - var clientRespDto = clientManagementService.createOIDCClient(requestWrapper.getRequest()); - var response = new ResponseWrapper(); - response.setResponse(clientRespDto); - return response; + //var clientRespDto = clientManagementService.createOIDCClient(requestWrapper.getRequest()); + ResponseWrapper response = new ResponseWrapper<>(); + //var response = new ResponseWrapper(); + ClientDetailResponse clientDetailResponse = null; + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT,requestWrapper.getRequest().getName(),"clientID"); + clientDetailResponse = clientManagementService.createOIDCClient(requestWrapper.getRequest()); + //response.setResponse(clientRespDto); + response.setId(requestWrapper.getId()); + response.setVersion(requestWrapper.getVersion()); + response.setResponse(clientDetailResponse); + return new ResponseEntity<>(response, HttpStatus.OK); } @RequestMapping(value = "/oidc/client/{client_id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseWrapper updateClient(@PathVariable("client_id") String clientId, + public ResponseEntity> updateClient(@PathVariable("client_id") String clientId, @Valid @RequestBody RequestWrapper requestWrapper) throws Exception { - var clientRespDto = clientManagementService.updateOIDCClient(clientId, requestWrapper.getRequest()); - var response = new ResponseWrapper(); - response.setResponse(clientRespDto); - return response; + //var clientRespDto = clientManagementService.updateOIDCClient(clientId, requestWrapper.getRequest()); + ResponseWrapper response = new ResponseWrapper<>(); + //var response = new ResponseWrapper(); + ClientDetailResponse clientDetailResponse = null; + ClientDetailUpdateRequest updateRequest = requestWrapper.getRequest(); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.UPDATE_CLIENT, clientId, "clientID"); + clientDetailResponse = clientManagementService.updateOIDCClient(clientId, updateRequest); + response.setId(requestWrapper.getId()); + response.setVersion(requestWrapper.getVersion()); + response.setResponse(clientDetailResponse); + return new ResponseEntity<>(response, HttpStatus.OK); } @RequestMapping(value = "/oidc/client/{client_id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseWrapper getClient(@PathVariable("client_id") String clientId) + public ResponseEntity> getClient(@PathVariable("client_id") String clientId) throws Exception { - var response = new ResponseWrapper(); - response.setResponse(clientManagementService.getClientDetails(clientId)); - return response; + ResponseWrapper response = new ResponseWrapper<>(); + ClientDetail clientDetail = null; + clientDetail = clientManagementService.getClientDetails(clientId); + //var response = new ResponseWrapper(); + response.setId(msg); + response.setVersion(version); + response.setResponse(clientDetail); + return new ResponseEntity<>(response, HttpStatus.OK); } } diff --git a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/service/impl/ClientManagementServiceImpl.java b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/service/impl/ClientManagementServiceImpl.java index 4d2443db27..3c7fb560bd 100644 --- a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/service/impl/ClientManagementServiceImpl.java +++ b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/service/impl/ClientManagementServiceImpl.java @@ -8,6 +8,9 @@ import java.util.Map; import java.util.Optional; import java.util.Set; + +import io.mosip.pms.device.util.AuditUtil; +import io.mosip.pms.oidc.client.contant.ClientServiceAuditEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.http.MediaType; @@ -95,6 +98,9 @@ public class ClientManagementServiceImpl implements ClientManagementService { @Autowired RestUtil restUtil; + @Autowired + AuditUtil auditUtil; + @Autowired private Environment environment; @@ -111,29 +117,39 @@ public ClientDetailResponse createOIDCClient(ClientDetailCreateRequest createReq Optional result = clientDetailRepository.findById(clientId); if (result.isPresent()) { LOGGER.error("createOIDCClient::Client with name {} already exists", createRequest.getName()); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT_FAILURE, createRequest.getName(), + "clientID"); throw new PartnerServiceException(ErrorCode.DUPLICATE_CLIENT.getErrorCode(), ErrorCode.DUPLICATE_CLIENT.getErrorMessage()); } Optional partner = partnerRepository.findById(createRequest.getAuthPartnerId()); if(partner.isEmpty()) { LOGGER.error("createOIDCClient::AuthPartner with Id {} doesn't exists", createRequest.getAuthPartnerId()); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT_FAILURE, createRequest.getName(), + "clientID"); throw new PartnerServiceException(ErrorCode.INVALID_PARTNERID.getErrorCode(), String .format(ErrorCode.INVALID_PARTNERID.getErrorMessage(), createRequest.getAuthPartnerId())); } if(!partner.get().getPartnerTypeCode().equalsIgnoreCase(AUTH_PARTNER_TYPE)) { LOGGER.error("createOIDCClient::{} cannot create OIDC Client", partner.get().getPartnerTypeCode()); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT_FAILURE, createRequest.getName(), + "clientID"); throw new PartnerServiceException(ErrorCode.INVALID_PARTNER_TYPE.getErrorCode(), String .format(ErrorCode.INVALID_PARTNER_TYPE.getErrorMessage(), partner.get().getPartnerTypeCode())); } Optional policyFromDb = authPolicyRepository.findById(createRequest.getPolicyId()); if (!policyFromDb.isPresent()) { LOGGER.error("createOIDCClient::Policy with Id {} not exists", createRequest.getPolicyId()); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT_FAILURE, createRequest.getName(), + "clientID"); throw new PartnerServiceException(ErrorCode.POLICY_NOT_EXIST.getErrorCode(), ErrorCode.POLICY_NOT_EXIST.getErrorMessage()); } AuthPolicy policy = policyFromDb.get(); if(!policy.getPolicy_type().equals(AUTH_POLICY_TYPE)) { LOGGER.error("createOIDCClient::Policy Type Mismatch. {} policy cannot be used to create OIDC Client",policy.getPolicy_type()); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT_FAILURE, createRequest.getName(), + "clientID"); throw new PartnerServiceException(ErrorCode.PARTNER_POLICY_TYPE_MISMATCH.getErrorCode(), String .format(ErrorCode.PARTNER_POLICY_TYPE_MISMATCH.getErrorMessage())); } @@ -142,6 +158,8 @@ public ClientDetailResponse createOIDCClient(ClientDetailCreateRequest createReq if (policyMappingReqFromDb.isEmpty()) { LOGGER.error("createOIDCClient::Policy and partner mapping not exists for policy {} and partner {}", createRequest.getPolicyId(), createRequest.getAuthPartnerId()); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT_FAILURE, createRequest.getName(), + "clientID"); throw new PartnerServiceException(ErrorCode.PARTNER_POLICY_MAPPING_NOT_EXISTS.getErrorCode(), ErrorCode.PARTNER_POLICY_MAPPING_NOT_EXISTS.getErrorMessage()); } @@ -151,6 +169,8 @@ public ClientDetailResponse createOIDCClient(ClientDetailCreateRequest createReq "createOIDCClient::Policy and partner mapping is not approved for policy {} and partner {} and status {}", createRequest.getPolicyId(), createRequest.getAuthPartnerId(), policyMappingReqFromDb.get(0).getStatusCode().equalsIgnoreCase("approved")); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT_FAILURE, createRequest.getName(), + "clientID"); throw new PartnerServiceException(ErrorCode.PARTNER_POLICY_NOT_APPROVED.getErrorCode(), ErrorCode.PARTNER_POLICY_NOT_APPROVED.getErrorMessage()); } @@ -168,6 +188,7 @@ public ClientDetailResponse createOIDCClient(ClientDetailCreateRequest createReq if (claims.isEmpty()) { LOGGER.error( "createOIDCClient::Partner has no User Claims"); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT_FAILURE); throw new PartnerServiceException(ErrorCode.PARTNER_HAVING_NO_CLAIMS.getErrorCode(), ErrorCode.PARTNER_HAVING_NO_CLAIMS.getErrorMessage()); } @@ -177,6 +198,7 @@ public ClientDetailResponse createOIDCClient(ClientDetailCreateRequest createReq if (acrValues.isEmpty()) { LOGGER.error( "createOIDCClient::Partner has no User Claims"); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT_FAILURE); throw new PartnerServiceException(ErrorCode.PARTNER_HAVING_NO_ACRVALUES.getErrorCode(), ErrorCode.PARTNER_HAVING_NO_ACRVALUES.getErrorMessage()); } @@ -191,7 +213,9 @@ public ClientDetailResponse createOIDCClient(ClientDetailCreateRequest createReq clientDetailRepository.save(clientDetail); var response = new ClientDetailResponse(); response.setClientId(clientDetail.getId()); - response.setStatus(clientDetail.getStatus()); + response.setStatus(clientDetail.getStatus()); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT_SUCCESS,createRequest.getName(), + "clientID"); return response; } @@ -366,6 +390,7 @@ public ClientDetailResponse updateOIDCClient(String clientId, ClientDetailUpdate Optional result = clientDetailRepository.findById(clientId); if (!result.isPresent()) { LOGGER.error("updateOIDCClient::Client not exists with id {}", clientId); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.UPDATE_CLIENT_FAILURE); throw new PartnerServiceException(ErrorCode.CLIENT_NOT_EXISTS.getErrorCode(), ErrorCode.CLIENT_NOT_EXISTS.getErrorMessage()); } @@ -384,8 +409,9 @@ public ClientDetailResponse updateOIDCClient(String clientId, ClientDetailUpdate response.setClientId(clientDetail.getId()); response.setStatus(clientDetail.getStatus()); notify(MapperUtils.mapClientDataToPublishDto(clientDetail), EventType.OIDC_CLIENT_UPDATED); + auditUtil.setAuditRequestDto(ClientServiceAuditEnum.UPDATE_CLIENT_SUCCESS); return response; - } + } /** * From 0dc7abfe999b23847f6f513562b3fec0d25ea866 Mon Sep 17 00:00:00 2001 From: Gokulraj C <110164849+GOKULRAJ136@users.noreply.github.com> Date: Tue, 11 Apr 2023 18:58:26 +0530 Subject: [PATCH 2/8] Remove Commented Codes Signed-off-by: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> --- .../oidc/client/controller/ClientManagementController.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java index b954a04f52..0e912754dd 100644 --- a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java +++ b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java @@ -36,13 +36,10 @@ public class ClientManagementController { @RequestMapping(value = "/oidc/client", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity> createClient( @Valid @RequestBody RequestWrapper requestWrapper) throws Exception { - //var clientRespDto = clientManagementService.createOIDCClient(requestWrapper.getRequest()); ResponseWrapper response = new ResponseWrapper<>(); - //var response = new ResponseWrapper(); ClientDetailResponse clientDetailResponse = null; auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT,requestWrapper.getRequest().getName(),"clientID"); clientDetailResponse = clientManagementService.createOIDCClient(requestWrapper.getRequest()); - //response.setResponse(clientRespDto); response.setId(requestWrapper.getId()); response.setVersion(requestWrapper.getVersion()); response.setResponse(clientDetailResponse); @@ -52,9 +49,7 @@ public ResponseEntity> createClient( @RequestMapping(value = "/oidc/client/{client_id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity> updateClient(@PathVariable("client_id") String clientId, @Valid @RequestBody RequestWrapper requestWrapper) throws Exception { - //var clientRespDto = clientManagementService.updateOIDCClient(clientId, requestWrapper.getRequest()); ResponseWrapper response = new ResponseWrapper<>(); - //var response = new ResponseWrapper(); ClientDetailResponse clientDetailResponse = null; ClientDetailUpdateRequest updateRequest = requestWrapper.getRequest(); auditUtil.setAuditRequestDto(ClientServiceAuditEnum.UPDATE_CLIENT, clientId, "clientID"); @@ -71,7 +66,6 @@ public ResponseEntity> getClient(@PathVariable("cl ResponseWrapper response = new ResponseWrapper<>(); ClientDetail clientDetail = null; clientDetail = clientManagementService.getClientDetails(clientId); - //var response = new ResponseWrapper(); response.setId(msg); response.setVersion(version); response.setResponse(clientDetail); From a12153ba1676ab92cbe5b73914c416a10fe90ad3 Mon Sep 17 00:00:00 2001 From: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> Date: Thu, 13 Apr 2023 09:31:30 +0530 Subject: [PATCH 3/8] Updated EvenID's Signed-off-by: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> --- .../oidc/client/contant/ClientServiceAuditEnum.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/contant/ClientServiceAuditEnum.java b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/contant/ClientServiceAuditEnum.java index 68e5177602..3787e12d40 100644 --- a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/contant/ClientServiceAuditEnum.java +++ b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/contant/ClientServiceAuditEnum.java @@ -4,22 +4,22 @@ public enum ClientServiceAuditEnum { - CREATE_CLIENT("PMS_PRT_100", AuditConstant.AUDIT_SYSTEM, "POST CREATE OIDC CLIENT", + CREATE_CLIENT("PMS_PRT_300", AuditConstant.AUDIT_SYSTEM, "POST CREATE OIDC CLIENT", "Creating the OIDC Client", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID), - CREATE_CLIENT_SUCCESS("PMS_PRT_200", AuditConstant.AUDIT_SYSTEM, "POST CREATE OIDC CLIENT", + CREATE_CLIENT_SUCCESS("PMS_PRT_301", AuditConstant.AUDIT_SYSTEM, "POST CREATE OIDC CLIENT", "Creating the OIDC Client Success", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID), - CREATE_CLIENT_FAILURE("PMS_PRT_300", AuditConstant.AUDIT_SYSTEM, "POST CREATE OIDC CLIENT", + CREATE_CLIENT_FAILURE("PMS_PRT_302", AuditConstant.AUDIT_SYSTEM, "POST CREATE OIDC CLIENT", "Creating the OIDC Client Failed", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID), - UPDATE_CLIENT("PMS_PRT_600", AuditConstant.AUDIT_SYSTEM, "PUT UPDATE OIDC CLIENT", + UPDATE_CLIENT("PMS_PRT_303", AuditConstant.AUDIT_SYSTEM, "PUT UPDATE OIDC CLIENT", "Updating OIDC Client", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID), - UPDATE_CLIENT_SUCCESS("PMS_PRT_700", AuditConstant.AUDIT_SYSTEM, "PUT UPDATE OIDC CLIENT", + UPDATE_CLIENT_SUCCESS("PMS_PRT_304", AuditConstant.AUDIT_SYSTEM, "PUT UPDATE OIDC CLIENT", "Updating OIDC Client Success", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID), - UPDATE_CLIENT_FAILURE("PMS_PRT_800", AuditConstant.AUDIT_SYSTEM, "PUT UPDATE OIDC CLIENT", + UPDATE_CLIENT_FAILURE("PMS_PRT_305", AuditConstant.AUDIT_SYSTEM, "PUT UPDATE OIDC CLIENT", "Updating OIDC Client Failed", AuditConstant.PARTNER_MODULE_ID, AuditConstant.PARTNER_MODULE_NAME, "NO_ID", "NO_ID_TYPE", AuditConstant.APPLICATION_NAME, AuditConstant.APPLICATION_ID); From 254530da055bfee9521a296401ec479dd0e34658 Mon Sep 17 00:00:00 2001 From: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> Date: Thu, 13 Apr 2023 09:56:09 +0530 Subject: [PATCH 4/8] Updated the return type in the controller Signed-off-by: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> --- .../ClientManagementController.java | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java index 0e912754dd..29d37eeaf1 100644 --- a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java +++ b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java @@ -34,41 +34,36 @@ public class ClientManagementController { String version = "1.0"; @RequestMapping(value = "/oidc/client", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity> createClient( + public ResponseWrapper createClient( @Valid @RequestBody RequestWrapper requestWrapper) throws Exception { - ResponseWrapper response = new ResponseWrapper<>(); - ClientDetailResponse clientDetailResponse = null; + var clientRespDto = clientManagementService.createOIDCClient(requestWrapper.getRequest()); + var response = new ResponseWrapper(); auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT,requestWrapper.getRequest().getName(),"clientID"); - clientDetailResponse = clientManagementService.createOIDCClient(requestWrapper.getRequest()); response.setId(requestWrapper.getId()); response.setVersion(requestWrapper.getVersion()); - response.setResponse(clientDetailResponse); - return new ResponseEntity<>(response, HttpStatus.OK); + response.setResponse(clientRespDto); + return response; } @RequestMapping(value = "/oidc/client/{client_id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity> updateClient(@PathVariable("client_id") String clientId, + public ResponseWrapper updateClient(@PathVariable("client_id") String clientId, @Valid @RequestBody RequestWrapper requestWrapper) throws Exception { - ResponseWrapper response = new ResponseWrapper<>(); - ClientDetailResponse clientDetailResponse = null; - ClientDetailUpdateRequest updateRequest = requestWrapper.getRequest(); + var clientRespDto = clientManagementService.updateOIDCClient(clientId, requestWrapper.getRequest()); + var response = new ResponseWrapper(); auditUtil.setAuditRequestDto(ClientServiceAuditEnum.UPDATE_CLIENT, clientId, "clientID"); - clientDetailResponse = clientManagementService.updateOIDCClient(clientId, updateRequest); response.setId(requestWrapper.getId()); response.setVersion(requestWrapper.getVersion()); - response.setResponse(clientDetailResponse); - return new ResponseEntity<>(response, HttpStatus.OK); + response.setResponse(clientRespDto); + return response; } @RequestMapping(value = "/oidc/client/{client_id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity> getClient(@PathVariable("client_id") String clientId) + public ResponseWrapper getClient(@PathVariable("client_id") String clientId) throws Exception { - ResponseWrapper response = new ResponseWrapper<>(); - ClientDetail clientDetail = null; - clientDetail = clientManagementService.getClientDetails(clientId); + var response = new ResponseWrapper(); + response.setResponse(clientManagementService.getClientDetails(clientId)); response.setId(msg); response.setVersion(version); - response.setResponse(clientDetail); - return new ResponseEntity<>(response, HttpStatus.OK); + return response; } } From 7e1d6b38e53a558d803b92262a54627da223f12e Mon Sep 17 00:00:00 2001 From: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> Date: Thu, 13 Apr 2023 13:30:34 +0530 Subject: [PATCH 5/8] Removed Set Items Signed-off-by: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> --- .../client/controller/ClientManagementController.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java index 29d37eeaf1..f2ab2c1d01 100644 --- a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java +++ b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/controller/ClientManagementController.java @@ -29,9 +29,6 @@ public class ClientManagementController { @Autowired AuditUtil auditUtil; - String msg = "mosip.clientmanagement.clients.retrieve"; - - String version = "1.0"; @RequestMapping(value = "/oidc/client", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseWrapper createClient( @@ -39,8 +36,6 @@ public ResponseWrapper createClient( var clientRespDto = clientManagementService.createOIDCClient(requestWrapper.getRequest()); var response = new ResponseWrapper(); auditUtil.setAuditRequestDto(ClientServiceAuditEnum.CREATE_CLIENT,requestWrapper.getRequest().getName(),"clientID"); - response.setId(requestWrapper.getId()); - response.setVersion(requestWrapper.getVersion()); response.setResponse(clientRespDto); return response; } @@ -51,8 +46,6 @@ public ResponseWrapper updateClient(@PathVariable("client_ var clientRespDto = clientManagementService.updateOIDCClient(clientId, requestWrapper.getRequest()); var response = new ResponseWrapper(); auditUtil.setAuditRequestDto(ClientServiceAuditEnum.UPDATE_CLIENT, clientId, "clientID"); - response.setId(requestWrapper.getId()); - response.setVersion(requestWrapper.getVersion()); response.setResponse(clientRespDto); return response; } @@ -62,8 +55,6 @@ public ResponseWrapper getClient(@PathVariable("client_id") String throws Exception { var response = new ResponseWrapper(); response.setResponse(clientManagementService.getClientDetails(clientId)); - response.setId(msg); - response.setVersion(version); return response; } } From d62e99ac9dff4855ebeba9d60a58c74d2ec6d245 Mon Sep 17 00:00:00 2001 From: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> Date: Thu, 27 Apr 2023 17:14:26 +0530 Subject: [PATCH 6/8] MOSIP-27049 : Sonar Bug Fixes Signed-off-by: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> --- .../pms/oidc/client/dto/ClientDetailUpdateRequest.java | 2 +- .../mosip/pms/oidc/client/dto/UpdateClientRequestDto.java | 2 +- .../client/service/impl/ClientManagementServiceImpl.java | 6 ++++-- .../java/io/mosip/pms/common/constant/SearchErrorCode.java | 3 ++- .../mosip/pms/common/util/AuthenticationContextRefUtil.java | 3 ++- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/dto/ClientDetailUpdateRequest.java b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/dto/ClientDetailUpdateRequest.java index 9f22f1a19e..8783ce133d 100644 --- a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/dto/ClientDetailUpdateRequest.java +++ b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/dto/ClientDetailUpdateRequest.java @@ -26,7 +26,7 @@ public class ClientDetailUpdateRequest { @NotNull @NotBlank - @Pattern(regexp = "^(ACTIVE)|(INACTIVE)$", flags = Pattern.Flag.CASE_INSENSITIVE) + @Pattern(regexp = "(ACTIVE)|(INACTIVE)", flags = Pattern.Flag.CASE_INSENSITIVE) private String status; @NotNull diff --git a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/dto/UpdateClientRequestDto.java b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/dto/UpdateClientRequestDto.java index c8e5bfe831..511f7e763f 100644 --- a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/dto/UpdateClientRequestDto.java +++ b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/dto/UpdateClientRequestDto.java @@ -18,7 +18,7 @@ public class UpdateClientRequestDto { private List<@NotBlank String> redirectUris; @NotBlank - @Pattern(regexp = "^(ACTIVE)|(INACTIVE)$") + @Pattern(regexp = "(ACTIVE)|(INACTIVE)") private String status; @NotNull diff --git a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/service/impl/ClientManagementServiceImpl.java b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/service/impl/ClientManagementServiceImpl.java index 3c7fb560bd..fe9814c75b 100644 --- a/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/service/impl/ClientManagementServiceImpl.java +++ b/partner/partner-management-service/src/main/java/io/mosip/pms/oidc/client/service/impl/ClientManagementServiceImpl.java @@ -66,6 +66,8 @@ import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; +import javax.validation.constraints.NotNull; + @Service public class ClientManagementServiceImpl implements ClientManagementService { @@ -228,8 +230,8 @@ public ClientDetailResponse createOIDCClient(ClientDetailCreateRequest createReq * @return * @throws Exception */ - private static Set getReqAttributeFromPolicyJson(JSONObject policyObject, String parentAttribute, - String childAttribute, String filterAttribute) { + private static Set getReqAttributeFromPolicyJson(@NotNull JSONObject policyObject, String parentAttribute, + String childAttribute, String filterAttribute) { Set attributes = new HashSet<>(); JSONArray parentAttributeObject = (JSONArray) policyObject.get(parentAttribute); for (int i = 0; i < parentAttributeObject.size(); i++) { diff --git a/partner/pms-common/src/main/java/io/mosip/pms/common/constant/SearchErrorCode.java b/partner/pms-common/src/main/java/io/mosip/pms/common/constant/SearchErrorCode.java index 8c75e9d680..2cbf7e2e25 100644 --- a/partner/pms-common/src/main/java/io/mosip/pms/common/constant/SearchErrorCode.java +++ b/partner/pms-common/src/main/java/io/mosip/pms/common/constant/SearchErrorCode.java @@ -22,7 +22,8 @@ public enum SearchErrorCode { INVALID_VALUES("PMS-MSD-391", "Invalid filter values"), FAILED_TO_FETCH_CLAIMS("PMS-MSD-393","Failed to fetch claims from mapping file"), FAILED_TO_FETCH_ACRVALUES("PMS-MSD-394","failed to fetch acr values from mapping file"), - INVALID_VALUE_VALUES("PMS-MSD-392", "Both value and values cannot be present"); + INVALID_VALUE_VALUES("PMS-MSD-392", "Both value and values cannot be present"), + FAILED_TO_FETCH_AMR("PMS-MSD-395","Failed to fetch AMR's from mapping file"); /** * The error code. diff --git a/partner/pms-common/src/main/java/io/mosip/pms/common/util/AuthenticationContextRefUtil.java b/partner/pms-common/src/main/java/io/mosip/pms/common/util/AuthenticationContextRefUtil.java index 7b7ffadef9..0210ddd54a 100644 --- a/partner/pms-common/src/main/java/io/mosip/pms/common/util/AuthenticationContextRefUtil.java +++ b/partner/pms-common/src/main/java/io/mosip/pms/common/util/AuthenticationContextRefUtil.java @@ -64,7 +64,8 @@ private Map> getAllAMRs() { }); } catch (IOException e) { logger.error("Failed to load / parse amr mappings", e); - return null; + throw new RequestException(SearchErrorCode.FAILED_TO_FETCH_AMR.getErrorCode(), + SearchErrorCode.FAILED_TO_FETCH_AMR.getErrorMessage()); } } From 963c129261ca8cb712a4c563448491d8cfe8b413 Mon Sep 17 00:00:00 2001 From: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> Date: Tue, 23 Jan 2024 22:47:46 +0530 Subject: [PATCH 7/8] fixed the test cases Signed-off-by: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> --- .../impl/ClientManagementServiceImplTest.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/partner/partner-management-service/src/test/java/io/mosip/pms/test/oidc/service/impl/ClientManagementServiceImplTest.java b/partner/partner-management-service/src/test/java/io/mosip/pms/test/oidc/service/impl/ClientManagementServiceImplTest.java index 3ab6833843..802950f593 100644 --- a/partner/partner-management-service/src/test/java/io/mosip/pms/test/oidc/service/impl/ClientManagementServiceImplTest.java +++ b/partner/partner-management-service/src/test/java/io/mosip/pms/test/oidc/service/impl/ClientManagementServiceImplTest.java @@ -5,10 +5,13 @@ import java.util.List; import java.util.Map; +import io.mosip.pms.device.util.AuditUtil; +import io.mosip.pms.oidc.client.contant.ClientServiceAuditEnum; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -49,13 +52,16 @@ public class ClientManagementServiceImplTest { private RestUtil restUtil; @Mock - private ObjectMapper objectMapper; + private ObjectMapper objectMapper; @Mock private WebSubPublisher webSubPublisher; - + Map public_key; + @MockBean + AuditUtil auditUtil; + @Before public void setUp() { MockitoAnnotations.initMocks(this); @@ -64,7 +70,7 @@ public void setUp() { ReflectionTestUtils.setField(serviceImpl, "partnerPolicyRequestRepository", partnerPolicyRequestRepository); ReflectionTestUtils.setField(serviceImpl, "webSubPublisher", webSubPublisher); ReflectionTestUtils.setField(serviceImpl, "restUtil", restUtil); - + public_key = new HashMap<>(); public_key.put("kty","RSA"); public_key.put("e","AQAB"); @@ -82,11 +88,12 @@ public void createClientTest() throws Exception { request.setAuthPartnerId("authPartnerId"); List clientAuthMethods = new ArrayList(); clientAuthMethods.add("ClientAuthMethod"); - request.setClientAuthMethods(clientAuthMethods);; + request.setClientAuthMethods(clientAuthMethods); request.setGrantTypes(clientAuthMethods); request.setLogoUri("https://testcase.pms.net/browse/OIDCClient.png"); request.setRedirectUris(clientAuthMethods); request.setName("ClientName"); + Mockito.doNothing().when(auditUtil).setAuditRequestDto(Mockito.any(ClientServiceAuditEnum.class)); try { serviceImpl.createOIDCClient(request); }catch (PartnerServiceException e) { From 99020dbed54c14d90c276aa64254a0ae2aa5d456 Mon Sep 17 00:00:00 2001 From: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> Date: Wed, 24 Jan 2024 17:56:04 +0530 Subject: [PATCH 8/8] Update ClientManagementServiceImplTest.java Signed-off-by: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> --- .../oidc/service/impl/ClientManagementServiceImplTest.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/partner/partner-management-service/src/test/java/io/mosip/pms/test/oidc/service/impl/ClientManagementServiceImplTest.java b/partner/partner-management-service/src/test/java/io/mosip/pms/test/oidc/service/impl/ClientManagementServiceImplTest.java index 5064fdfb5e..7b9e42a831 100644 --- a/partner/partner-management-service/src/test/java/io/mosip/pms/test/oidc/service/impl/ClientManagementServiceImplTest.java +++ b/partner/partner-management-service/src/test/java/io/mosip/pms/test/oidc/service/impl/ClientManagementServiceImplTest.java @@ -95,10 +95,7 @@ public class ClientManagementServiceImplTest { private WebSubPublisher webSubPublisher; Map public_key; - - @MockBean - AuditUtil auditUtil; - + @Before public void setUp() { MockitoAnnotations.initMocks(this);