Skip to content

Commit

Permalink
Merge pull request #609 from jayesh12234/develop
Browse files Browse the repository at this point in the history
MOSIP-30631
  • Loading branch information
aranaravi authored Dec 13, 2023
2 parents cb962d6 + 2b2de3c commit b05ebba
Show file tree
Hide file tree
Showing 18 changed files with 729 additions and 328 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,13 @@ public static String getMasterDataSchema(String role){
String url = ApplnURI + props.getProperty("masterSchemaURL");
kernelAuthLib = new KernelAuthentication();
String token = kernelAuthLib.getTokenByRole("admin");

Response response = RestClient.getRequestWithCookie(url, MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON,
Response response=null;
try {
response = RestClient.getRequestWithCookie(url, MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON,
"Authorization", token);

}catch(Exception e) {
logger.error(e.getMessage());
}
return response.asString();
}

Expand Down Expand Up @@ -201,7 +204,7 @@ public static int getOtpExpTimeFromActuator() {
public static String generateUIN() {
String uin = "";

initialize();
// initialize();

DateFormat dateFormatter = new SimpleDateFormat("YYYYMMddHHmmss");
Calendar cal = Calendar.getInstance();
Expand Down Expand Up @@ -268,7 +271,7 @@ public static void initialize() {
//Langauge Independent

// Generate Keycloak Users
KeycloakUserManager.createUsers();
KeycloakUserManager.createuser();
initialized = true;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ public class ConfigManager {
private static String iam_realm_id;
private static String iam_users_to_create;
private static String iam_adminportal_path;
private static String iam_keyclockurl;
private static String iam_apienvuser;
private static String iam_apiinternalendpoint;
private static String iam_users_password;
Expand Down Expand Up @@ -559,6 +560,10 @@ public static String getShowSql() {
public static String getiam_adminportal_path() {
return iam_adminportal_path;
}
public static String getiam_keyclockurl() {
iam_keyclockurl=propsKernel.getProperty("keycloakurl");
return iam_keyclockurl;
}
public static String getiam_apienvuser() {
return iam_apienvuser;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,10 @@ public String getAuthForAdmin() {

JSONObject request = new JSONObject();
request.put("appId", ConfigManager.getAdminAppId());
request.put("password", admin_password);
request.put("password", ConfigManager.getIAMUsersPassword());

//if(BaseTestCase.currentModule==null) admin_userName=
request.put("userName", BaseTestCase.currentModule +"-"+ admin_userName);
request.put("userName", BaseTestCase.currentModule +"-"+ ConfigManager.getIAMUsersToCreate());

request.put("clientId", ConfigManager.getAdminClientId());
request.put("clientSecret", ConfigManager.getAdminClientSecret());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import javax.ws.rs.core.Response;
Expand Down Expand Up @@ -58,78 +59,141 @@ public static Properties getproperty(String path) {
}
return prop;
}


public static void createuser(){
createUsers(BaseTestCase.currentModule +"-"+ConfigManager.getIAMUsersToCreate(), ConfigManager.getIAMUsersPassword(),"roles", new HashMap<String, List<String>>());
}



public static void createUsers(String userid, String pwd, String rolenum, Map<String, List<String>> map) {
Keycloak keycloakInstance = getKeycloakInstance();
UserRepresentation user = new UserRepresentation();
user.setEnabled(true);
user.setUsername(userid);
user.setFirstName(userid);
user.setLastName(userid);
user.setEmail(userid+"mosip.io");
if (map != null)
user.setAttributes(map);
RealmResource realmResource = null;

realmResource = keycloakInstance.realm(ConfigManager.getIAMRealmId());

UsersResource usersRessource = realmResource.users();

try (Response response = usersRessource.create(user)) {

if (response.getStatus() == 409) {

} else {


public static void createUsers() {

List<String> needsToBeCreatedUsers = List.of(ConfigManager.getIAMUsersToCreate().split(","));
Keycloak keycloakInstance = getKeycloakInstance();
for (String needsToBeCreatedUser : needsToBeCreatedUsers) {
UserRepresentation user = new UserRepresentation();
String moduleSpecificUser = null;
if (needsToBeCreatedUser.equals("globaladmin")) {
moduleSpecificUser = needsToBeCreatedUser;
}
else if(needsToBeCreatedUser.equals("masterdata-220005")){
moduleSpecificUser = needsToBeCreatedUser;

}

else {
moduleSpecificUser = BaseTestCase.currentModule +"-"+ needsToBeCreatedUser;
}

System.out.println(moduleSpecificUser);
user.setEnabled(true);
user.setUsername(moduleSpecificUser);
user.setFirstName(moduleSpecificUser);
user.setLastName(moduleSpecificUser);
user.setEmail("automation" + moduleSpecificUser + "@automationlabs.com");
// Get realm
RealmResource realmResource = keycloakInstance.realm(ConfigManager.getIAMRealmId());
UsersResource usersRessource = realmResource.users();
// Create user (requires manage-users role)
Response response = null;
response = usersRessource.create(user);
System.out.println(response);
System.out.printf("Repsonse: %s %s%n", response.getStatus(), response.getStatusInfo());
if (response.getStatus()==409) {
break;
}
System.out.println(response.getLocation());
String userId = CreatedResponseUtil.getCreatedId(response);
System.out.printf("User created with userId: %s%n", userId);


// Define password credential
CredentialRepresentation passwordCred = new CredentialRepresentation();

passwordCred.setTemporary(false);
passwordCred.setType(CredentialRepresentation.PASSWORD);

//passwordCred.setValue(userPassword.get(passwordIndex));
passwordCred.setValue("mosip123");

UserResource userResource = usersRessource.get(userId);
passwordCred.setValue(pwd);

// Set password credential
UserResource userResource = usersRessource.get(userId);
userResource.resetPassword(passwordCred);

// Getting all the roles
List<RoleRepresentation> allRoles = realmResource.roles().list();
List<RoleRepresentation> availableRoles = new ArrayList<>();
List<String> toBeAssignedRoles = List.of(ConfigManager.getRolesForUser(needsToBeCreatedUser).split(","));
for(String role : toBeAssignedRoles) {
if(allRoles.stream().anyMatch((r->r.getName().equalsIgnoreCase(role)))){
availableRoles.add(allRoles.stream().filter(r->r.getName().equals(role)).findFirst().get());
}else {
System.out.printf("Role not found in keycloak: %s%n", role);
}
List<String> toBeAssignedRoles = List.of(propsKernel.getProperty(rolenum).split(","));
for (String role : toBeAssignedRoles) {
if (allRoles.stream().anyMatch((r -> r.getName().equalsIgnoreCase(role)))) {
if (allRoles.stream().filter(r->r.getName().equals(role)).findFirst().isPresent())
availableRoles.add(allRoles.stream().filter(r->r.getName().equals(role)).findFirst().get());

}
// Assign realm role tester to user
userResource.roles().realmLevel() //
.add((availableRoles.isEmpty() ? allRoles : availableRoles));
//passwordIndex ++;

}
}

} catch (Exception e) {
logger.error(e.getMessage());
}

}
// public static void createUsers() {
//
// List<String> needsToBeCreatedUsers = List.of(ConfigManager.getIAMUsersToCreate().split(","));
// Keycloak keycloakInstance = getKeycloakInstance();
// for (String needsToBeCreatedUser : needsToBeCreatedUsers) {
// UserRepresentation user = new UserRepresentation();
// String moduleSpecificUser = null;
// if (needsToBeCreatedUser.equals("globaladmin")) {
// moduleSpecificUser = needsToBeCreatedUser;
// }
// else if(needsToBeCreatedUser.equals("masterdata-220005")){
// moduleSpecificUser = needsToBeCreatedUser;
//
// }
//
// else {
// moduleSpecificUser = BaseTestCase.currentModule +"-"+ needsToBeCreatedUser;
// }
//
// System.out.println(moduleSpecificUser);
// user.setEnabled(true);
// user.setUsername(moduleSpecificUser);
// user.setFirstName(moduleSpecificUser);
// user.setLastName(moduleSpecificUser);
// user.setEmail("automation" + moduleSpecificUser + "@automationlabs.com");
// // Get realm
// RealmResource realmResource = keycloakInstance.realm(ConfigManager.getIAMRealmId());
// UsersResource usersRessource = realmResource.users();
// // Create user (requires manage-users role)
// Response response = null;
// response = usersRessource.create(user);
// System.out.println(response);
// System.out.printf("Repsonse: %s %s%n", response.getStatus(), response.getStatusInfo());
// if (response.getStatus()==409) {
// continue;
// }
// System.out.println(response.getLocation());
// String userId = CreatedResponseUtil.getCreatedId(response);
// System.out.printf("User created with userId: %s%n", userId);
//
// // Define password credential
// CredentialRepresentation passwordCred = new CredentialRepresentation();
//
// passwordCred.setTemporary(false);
// passwordCred.setType(CredentialRepresentation.PASSWORD);
//
// //passwordCred.setValue(userPassword.get(passwordIndex));
// passwordCred.setValue("mosip123");
//
// UserResource userResource = usersRessource.get(userId);
//
// // Set password credential
// userResource.resetPassword(passwordCred);
//
// // Getting all the roles
// List<RoleRepresentation> allRoles = realmResource.roles().list();
// List<RoleRepresentation> availableRoles = new ArrayList<>();
// List<String> toBeAssignedRoles = List.of(ConfigManager.getRolesForUser(needsToBeCreatedUser));
// for(String role : toBeAssignedRoles) {
// if(allRoles.stream().anyMatch((r->r.getName().equalsIgnoreCase(role)))){
// availableRoles.add(allRoles.stream().filter(r->r.getName().equals(role)).findFirst().get());
// }else {
// System.out.printf("Role not found in keycloak: %s%n", role);
// }
// }
// // Assign realm role tester to user
// userResource.roles().realmLevel() //
// .add((availableRoles.isEmpty() ? allRoles : availableRoles));
// //passwordIndex ++;
// }
// }

public static void removeUser() {
List<String> needsToBeRemovedUsers = List.of(ConfigManager.getIAMUsersToCreate().split(","));
Expand Down
Loading

0 comments on commit b05ebba

Please sign in to comment.