diff --git a/docker-compose.yml b/docker-compose.yml index 5e763f0df..2fc3b39c0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -49,6 +49,9 @@ services: - connectionInfo_username=postgres - connectionInfo_password=postgres - encryption_enabled=${ENCRYPTION_ENABLED-false} + - encryption_health_check_url=http://encryption-service:8013/health + - encryption_uri=http://encryption-service:8013/crypto/v1/_encrypt + - encryption_batch_uri=http://encryption-service:8013/crypto/v1/_encrypt - event_enabled=${EVENT_ENABLED-false} - event_topic=events - event_providerName=dev.sunbirdrc.registry.service.impl.KafkaEventService @@ -63,6 +66,10 @@ services: - oauth2_resource_uri=${oauth2_resource_uri-http://keycloak:8080/auth/realms/sunbird-rc} - oauth2_resource_roles_path=${oauth2_resource_roles_path-realm_access.roles} - identity_provider=${identity_provider-dev.sunbirdrc.auth.keycloak.KeycloakProviderImpl} + - idgen_enabled=${IDGEN_ENABLED-false} + - idgen_health_check_url=http://id-gen-service:8088/egov-idgen/health + - idgen_generate_url=http://id-gen-service:8088/egov-idgen/id/_generate + - idgen_id_format_url=http://id-gen-service:8088/egov-idgen/id/_format/add - sunbird_sso_admin_client_id=${KEYCLOAK_ADMIN_CLIENT_ID-admin-api} - sunbird_sso_client_id=${KEYCLOAK_CLIENT_ID-registry-frontend} - sunbird_sso_admin_client_secret=${KEYCLOAK_SECRET} @@ -381,6 +388,7 @@ services: spring.flyway.url: jdbc:postgresql://db:5432/registry egov.mdms.provider: org.egov.enc.masterdata.provider.DBMasterDataProvider spring.flyway.baseline-on-migrate: "true" + management.endpoints.web.base-path: / depends_on: db: condition: service_healthy diff --git a/java/registry/src/main/java/dev/sunbirdrc/registry/helper/RegistryHelper.java b/java/registry/src/main/java/dev/sunbirdrc/registry/helper/RegistryHelper.java index a180d7e9b..a5ab367ef 100644 --- a/java/registry/src/main/java/dev/sunbirdrc/registry/helper/RegistryHelper.java +++ b/java/registry/src/main/java/dev/sunbirdrc/registry/helper/RegistryHelper.java @@ -814,6 +814,13 @@ private JsonNode getUserInfoFromRegistry(HttpServletRequest request, String enti watch.start("RegistryController.searchEntity"); JsonNode result = searchEntity(payload); watch.stop("RegistryController.searchEntity"); + if(result != null && result.get(entityName) != null && !result.get(entityName).isEmpty()) { + String uuid = result.get(entityName).get(0).get(uuidPropertyName).asText(); + JsonNode user = readEntity(userId, entityName, uuid, true, null, false); + ArrayNode arrayNode = JsonNodeFactory.instance.arrayNode(); + arrayNode.add(user.get(entityName)); + ((ObjectNode) result).set(entityName, arrayNode); + } return result; } throw new Exception("Forbidden"); diff --git a/java/registry/src/main/java/dev/sunbirdrc/registry/service/impl/EncryptionServiceImpl.java b/java/registry/src/main/java/dev/sunbirdrc/registry/service/impl/EncryptionServiceImpl.java index b1968f799..1bfe02b3c 100644 --- a/java/registry/src/main/java/dev/sunbirdrc/registry/service/impl/EncryptionServiceImpl.java +++ b/java/registry/src/main/java/dev/sunbirdrc/registry/service/impl/EncryptionServiceImpl.java @@ -5,6 +5,7 @@ import dev.sunbirdrc.pojos.ComponentHealthInfo; import dev.sunbirdrc.pojos.SunbirdRCInstrumentation; import dev.sunbirdrc.registry.exception.EncryptionException; +import dev.sunbirdrc.registry.middleware.util.JSONUtil; import dev.sunbirdrc.registry.service.EncryptionService; import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; @@ -23,6 +24,7 @@ import org.springframework.web.client.ResourceAccessException; import org.springframework.web.client.RestClientException; +import java.io.IOException; import java.util.*; import static dev.sunbirdrc.registry.middleware.util.Constants.CONNECTION_FAILURE; @@ -165,13 +167,13 @@ public ComponentHealthInfo getHealthInfo() { if (encryptionEnabled) { try { ResponseEntity response = retryRestTemplate.getForEntity(encryptionServiceHealthCheckUri); - if (!StringUtils.isEmpty(response.getBody()) && response.getBody().equalsIgnoreCase("UP")) { + if (!StringUtils.isEmpty(response.getBody()) && JSONUtil.convertStringJsonNode(response.getBody()).get("status").asText().equalsIgnoreCase("UP")) { logger.debug("Encryption service running !"); return new ComponentHealthInfo(getServiceName(), true); } else { return new ComponentHealthInfo(getServiceName(), false, CONNECTION_FAILURE, response.getBody()); } - } catch (RestClientException ex) { + } catch (RestClientException | IOException ex) { logger.error("RestClientException when checking the health of the encryption service: {}", ExceptionUtils.getStackTrace(ex)); return new ComponentHealthInfo(getServiceName(), false, CONNECTION_FAILURE, ex.getMessage()); } diff --git a/java/registry/src/main/java/dev/sunbirdrc/registry/service/impl/IdGenService.java b/java/registry/src/main/java/dev/sunbirdrc/registry/service/impl/IdGenService.java index 3e67e73c7..11667cba5 100644 --- a/java/registry/src/main/java/dev/sunbirdrc/registry/service/impl/IdGenService.java +++ b/java/registry/src/main/java/dev/sunbirdrc/registry/service/impl/IdGenService.java @@ -27,6 +27,7 @@ import org.springframework.web.client.ResourceAccessException; import org.springframework.web.client.RestClientException; +import java.io.IOException; import java.util.*; import java.util.stream.Collectors; @@ -144,13 +145,13 @@ public ComponentHealthInfo getHealthInfo() { if (enabled) { try { ResponseEntity response = retryRestTemplate.getForEntity(healthCheckUrl); - if (!StringUtils.isEmpty(response.getBody()) && response.getBody().equalsIgnoreCase("UP")) { + if (!StringUtils.isEmpty(response.getBody()) && JSONUtil.convertStringJsonNode(response.getBody()).get("status").asText().equalsIgnoreCase("UP")) { logger.debug(" running !"); return new ComponentHealthInfo(getServiceName(), true); } else { return new ComponentHealthInfo(getServiceName(), false, CONNECTION_FAILURE, response.getBody()); } - } catch (RestClientException ex) { + } catch (RestClientException | IOException ex) { logger.error("RestClientException when checking the health of the idgen service: {}", ExceptionUtils.getStackTrace(ex)); return new ComponentHealthInfo(getServiceName(), false, CONNECTION_FAILURE, ex.getMessage()); } diff --git a/java/registry/src/test/java/dev/sunbirdrc/registry/service/impl/EncryptionServiceImplTest.java b/java/registry/src/test/java/dev/sunbirdrc/registry/service/impl/EncryptionServiceImplTest.java index 1e666d790..87b38e4fa 100644 --- a/java/registry/src/test/java/dev/sunbirdrc/registry/service/impl/EncryptionServiceImplTest.java +++ b/java/registry/src/test/java/dev/sunbirdrc/registry/service/impl/EncryptionServiceImplTest.java @@ -143,7 +143,7 @@ public void test_decrypt_api_map_param_throwing_resource_exception() throws Exce @Test public void test_encryption_isup() throws Exception { - when(retryRestTemplate.getForEntity(nullable(String.class))).thenReturn(ResponseEntity.accepted().body("UP")); + when(retryRestTemplate.getForEntity(nullable(String.class))).thenReturn(ResponseEntity.accepted().body("{\"status\": \"UP\"}")); assertTrue(encryptionServiceImpl.isEncryptionServiceUp()); }