diff --git a/src/main/java/com/tarento/upsmf/userManagement/controller/UserController.java b/src/main/java/com/tarento/upsmf/userManagement/controller/UserController.java index a757fdd152620ce1daa23db31d01f3eb8ad34e7b..a088fb404ed4d73a6f4b4db80476ea7df23bd9c3 100644 --- a/src/main/java/com/tarento/upsmf/userManagement/controller/UserController.java +++ b/src/main/java/com/tarento/upsmf/userManagement/controller/UserController.java @@ -26,6 +26,11 @@ public class UserController { return userHandler.updateUser(body); } + @PostMapping(value = "/details", consumes = "application/json", produces = "application/json") + public String userDetails(@RequestBody final JsonNode body) throws URISyntaxException, IOException { + return userHandler.userDetails(body); + } + @PostMapping(value = "/list", consumes = "application/json", produces = "application/json") public String listUser(@RequestBody final JsonNode body) throws URISyntaxException, IOException { return userHandler.listUser(body); diff --git a/src/main/java/com/tarento/upsmf/userManagement/handler/UserHandler.java b/src/main/java/com/tarento/upsmf/userManagement/handler/UserHandler.java index 03d1dc70e39367d8ae24cbe90ba2bb1a7007068e..c9bc599f6e6b6a54c06985d2c66a69e908a5d147 100644 --- a/src/main/java/com/tarento/upsmf/userManagement/handler/UserHandler.java +++ b/src/main/java/com/tarento/upsmf/userManagement/handler/UserHandler.java @@ -85,6 +85,13 @@ public class UserHandler { return null; } + public String userDetails(final JsonNode body) throws IOException { + JsonNode request = body.get("request"); + String userName = keycloakUserGetter.findUser(request.get("userName").asText()); + return userName; + } + + public String listUser(final JsonNode body) throws URISyntaxException, IOException { logger.info("creating user with payload {} ", body.toPrettyString()); String users = keycloakUserGetter.findUser(null); diff --git a/src/main/java/com/tarento/upsmf/userManagement/utility/KeycloakUserCreator.java b/src/main/java/com/tarento/upsmf/userManagement/utility/KeycloakUserCreator.java index 5f85ab81cb74967bc6b67904bf65129fe5a3466f..67a88357af3bc2b406f288f47fa1d81c10a9b2e7 100644 --- a/src/main/java/com/tarento/upsmf/userManagement/utility/KeycloakUserCreator.java +++ b/src/main/java/com/tarento/upsmf/userManagement/utility/KeycloakUserCreator.java @@ -1,12 +1,15 @@ package com.tarento.upsmf.userManagement.utility; import com.fasterxml.jackson.databind.JsonNode; +import org.apache.http.Header; import org.apache.http.HttpHeaders; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.HttpClients; +import org.apache.http.message.BufferedHeader; +import org.apache.http.util.CharArrayBuffer; import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,6 +20,7 @@ import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import java.io.IOException; +import java.util.UUID; @Component @PropertySource({ "classpath:application.properties" }) @@ -64,7 +68,7 @@ public class KeycloakUserCreator { String password = request.get("password").asText(); String requestBody = "{" + "\"enabled\": true," + - "\"username\": " + "\"" +userName + "\"" + "," + + "\"username\": " + "\"" + UUID.randomUUID().toString() + "\"" + "," + "\"email\": " + "\"" + email + "\"" + "," + "\"firstName\": " + "\"" + firstName + "\"" + "," + "\"lastName\": " + "\"" + lastName + "\"" + "," + @@ -79,7 +83,9 @@ public class KeycloakUserCreator { httpPost.setEntity(entity); HttpResponse response = httpClient.execute(httpPost); - String responseBody = EntityUtils.toString(response.getEntity()); + CharArrayBuffer buffer = ((BufferedHeader) response.getHeaders("Location")[0]).getBuffer(); + String resp = new String(buffer.buffer()); + String responseBody = resp.substring(resp.lastIndexOf("/")+1).trim(); logger.info("ResponseBody {}", responseBody); return responseBody; }