Loading README.md +0 −11 Original line number Original line Diff line number Diff line Loading @@ -28,17 +28,6 @@ The first super admin user must be added manually, then he/she will be able to a The value `user_id` is the RAP user id. The value `user_id` is the RAP user id. ## Command line clients To add a command line client first generate the sha256 of its password: echo -n password | sha256sum Then insert the client line into the database: INSERT INTO gms_client (client_id, client_secret, allowed_actions, ip_filter) VALUES ('test', '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', '{"*"}', NULL); ## Developer notes ## Developer notes Backend and frontend are 2 separate applications: Backend and frontend are 2 separate applications: Loading gms-client/gms-cli/src/main/java/it/inaf/ia2/gms/cli/CLI.java +8 −0 Original line number Original line Diff line number Diff line Loading @@ -178,6 +178,13 @@ public class CLI { client.removeMember(args[argIndex + 1], args[argIndex + 2]); client.removeMember(args[argIndex + 1], args[argIndex + 2]); System.out.println("Member removed"); System.out.println("Member removed"); break; break; case "set-permission": if (argIndex + 3 >= args.length) { displayUsage(); } client.setPermission(args[argIndex + 1], args[argIndex + 2], Permission.valueOf(args[argIndex + 3])); System.out.println("Permission changed"); break; case "add-permission": case "add-permission": if (argIndex + 3 >= args.length) { if (argIndex + 3 >= args.length) { displayUsage(); displayUsage(); Loading Loading @@ -220,6 +227,7 @@ public class CLI { + " delete-group <name1.name2.name3>\n" + " delete-group <name1.name2.name3>\n" + " add-member <name1.name2.name3> <user_id>\n" + " add-member <name1.name2.name3> <user_id>\n" + " remove-member <name1.name2.name3> <user_id>\n" + " remove-member <name1.name2.name3> <user_id>\n" + " set-permission <name1.name2.name3> <user_id> <permission>\n" + " add-permission <name1.name2.name3> <user_id> <permission>\n" + " add-permission <name1.name2.name3> <user_id> <permission>\n" + " delete-permission <name1.name2.name3> <user_id>\n" + " delete-permission <name1.name2.name3> <user_id>\n" + " get-member-email-addresses <name1.name2.name3> [<permission>]"); + " get-member-email-addresses <name1.name2.name3> [<permission>]"); Loading gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/GmsClient.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -13,6 +13,7 @@ import it.inaf.ia2.gms.client.call.GetUserPermissionsCall; import it.inaf.ia2.gms.client.call.ListGroupsCall; import it.inaf.ia2.gms.client.call.ListGroupsCall; import it.inaf.ia2.gms.client.call.RemoveMemberCall; import it.inaf.ia2.gms.client.call.RemoveMemberCall; import it.inaf.ia2.gms.client.call.RemovePermissionCall; import it.inaf.ia2.gms.client.call.RemovePermissionCall; import it.inaf.ia2.gms.client.call.SetPermissionCall; import it.inaf.ia2.gms.client.model.GroupPermission; import it.inaf.ia2.gms.client.model.GroupPermission; import it.inaf.ia2.gms.client.model.Permission; import it.inaf.ia2.gms.client.model.Permission; import it.inaf.ia2.gms.client.model.UserPermission; import it.inaf.ia2.gms.client.model.UserPermission; Loading Loading @@ -64,6 +65,10 @@ public class GmsClient { new AddPermissionCall(httpClientWrapper).addPermission(completeGroupName, userId, permission); new AddPermissionCall(httpClientWrapper).addPermission(completeGroupName, userId, permission); } } public void setPermission(String completeGroupName, String userId, Permission permission) { new SetPermissionCall(httpClientWrapper).setPermission(completeGroupName, userId, permission); } public void removePermission(String completeGroupName, String userId) { public void removePermission(String completeGroupName, String userId) { new RemovePermissionCall(httpClientWrapper).removePermission(completeGroupName, userId); new RemovePermissionCall(httpClientWrapper).removePermission(completeGroupName, userId); } } Loading gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/SetPermissionCall.java 0 → 100644 +39 −0 Original line number Original line Diff line number Diff line package it.inaf.ia2.gms.client.call; import static it.inaf.ia2.gms.client.call.BaseGmsCall.logServerErrorInputStream; import it.inaf.ia2.gms.client.model.Permission; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class SetPermissionCall extends BaseGmsCall { public SetPermissionCall(HttpClientWrapper clientWrapper) { super(clientWrapper); } public boolean setPermission(String completeGroupName, String userId, Permission permission) { String endpoint = "permission"; if (completeGroupName != null && !completeGroupName.isBlank()) { endpoint += "/" + completeGroupName; } HttpRequest.BodyPublisher requestBody = HttpRequest.BodyPublishers.ofString( "user_id=" + userId + "&permission=" + permission); HttpRequest groupsRequest = newHttpRequest(endpoint) .header("Accept", "text/plain") .header("Content-Type", "application/x-www-form-urlencoded") .PUT(requestBody) .build(); return getClient().sendAsync(groupsRequest, HttpResponse.BodyHandlers.ofInputStream()) .thenApply(response -> { if (response.statusCode() == 200) { return true; } logServerErrorInputStream(groupsRequest, response); throw new IllegalStateException("Unable to set permission"); }).join(); } } gms/src/main/java/it/inaf/ia2/gms/authn/SessionData.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -59,6 +59,6 @@ public class SessionData { } } public long getExpiresIn() { public long getExpiresIn() { return (System.currentTimeMillis() - expiration) / 1000; return (expiration - System.currentTimeMillis()) / 1000; } } } } Loading
README.md +0 −11 Original line number Original line Diff line number Diff line Loading @@ -28,17 +28,6 @@ The first super admin user must be added manually, then he/she will be able to a The value `user_id` is the RAP user id. The value `user_id` is the RAP user id. ## Command line clients To add a command line client first generate the sha256 of its password: echo -n password | sha256sum Then insert the client line into the database: INSERT INTO gms_client (client_id, client_secret, allowed_actions, ip_filter) VALUES ('test', '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', '{"*"}', NULL); ## Developer notes ## Developer notes Backend and frontend are 2 separate applications: Backend and frontend are 2 separate applications: Loading
gms-client/gms-cli/src/main/java/it/inaf/ia2/gms/cli/CLI.java +8 −0 Original line number Original line Diff line number Diff line Loading @@ -178,6 +178,13 @@ public class CLI { client.removeMember(args[argIndex + 1], args[argIndex + 2]); client.removeMember(args[argIndex + 1], args[argIndex + 2]); System.out.println("Member removed"); System.out.println("Member removed"); break; break; case "set-permission": if (argIndex + 3 >= args.length) { displayUsage(); } client.setPermission(args[argIndex + 1], args[argIndex + 2], Permission.valueOf(args[argIndex + 3])); System.out.println("Permission changed"); break; case "add-permission": case "add-permission": if (argIndex + 3 >= args.length) { if (argIndex + 3 >= args.length) { displayUsage(); displayUsage(); Loading Loading @@ -220,6 +227,7 @@ public class CLI { + " delete-group <name1.name2.name3>\n" + " delete-group <name1.name2.name3>\n" + " add-member <name1.name2.name3> <user_id>\n" + " add-member <name1.name2.name3> <user_id>\n" + " remove-member <name1.name2.name3> <user_id>\n" + " remove-member <name1.name2.name3> <user_id>\n" + " set-permission <name1.name2.name3> <user_id> <permission>\n" + " add-permission <name1.name2.name3> <user_id> <permission>\n" + " add-permission <name1.name2.name3> <user_id> <permission>\n" + " delete-permission <name1.name2.name3> <user_id>\n" + " delete-permission <name1.name2.name3> <user_id>\n" + " get-member-email-addresses <name1.name2.name3> [<permission>]"); + " get-member-email-addresses <name1.name2.name3> [<permission>]"); Loading
gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/GmsClient.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -13,6 +13,7 @@ import it.inaf.ia2.gms.client.call.GetUserPermissionsCall; import it.inaf.ia2.gms.client.call.ListGroupsCall; import it.inaf.ia2.gms.client.call.ListGroupsCall; import it.inaf.ia2.gms.client.call.RemoveMemberCall; import it.inaf.ia2.gms.client.call.RemoveMemberCall; import it.inaf.ia2.gms.client.call.RemovePermissionCall; import it.inaf.ia2.gms.client.call.RemovePermissionCall; import it.inaf.ia2.gms.client.call.SetPermissionCall; import it.inaf.ia2.gms.client.model.GroupPermission; import it.inaf.ia2.gms.client.model.GroupPermission; import it.inaf.ia2.gms.client.model.Permission; import it.inaf.ia2.gms.client.model.Permission; import it.inaf.ia2.gms.client.model.UserPermission; import it.inaf.ia2.gms.client.model.UserPermission; Loading Loading @@ -64,6 +65,10 @@ public class GmsClient { new AddPermissionCall(httpClientWrapper).addPermission(completeGroupName, userId, permission); new AddPermissionCall(httpClientWrapper).addPermission(completeGroupName, userId, permission); } } public void setPermission(String completeGroupName, String userId, Permission permission) { new SetPermissionCall(httpClientWrapper).setPermission(completeGroupName, userId, permission); } public void removePermission(String completeGroupName, String userId) { public void removePermission(String completeGroupName, String userId) { new RemovePermissionCall(httpClientWrapper).removePermission(completeGroupName, userId); new RemovePermissionCall(httpClientWrapper).removePermission(completeGroupName, userId); } } Loading
gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/SetPermissionCall.java 0 → 100644 +39 −0 Original line number Original line Diff line number Diff line package it.inaf.ia2.gms.client.call; import static it.inaf.ia2.gms.client.call.BaseGmsCall.logServerErrorInputStream; import it.inaf.ia2.gms.client.model.Permission; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class SetPermissionCall extends BaseGmsCall { public SetPermissionCall(HttpClientWrapper clientWrapper) { super(clientWrapper); } public boolean setPermission(String completeGroupName, String userId, Permission permission) { String endpoint = "permission"; if (completeGroupName != null && !completeGroupName.isBlank()) { endpoint += "/" + completeGroupName; } HttpRequest.BodyPublisher requestBody = HttpRequest.BodyPublishers.ofString( "user_id=" + userId + "&permission=" + permission); HttpRequest groupsRequest = newHttpRequest(endpoint) .header("Accept", "text/plain") .header("Content-Type", "application/x-www-form-urlencoded") .PUT(requestBody) .build(); return getClient().sendAsync(groupsRequest, HttpResponse.BodyHandlers.ofInputStream()) .thenApply(response -> { if (response.statusCode() == 200) { return true; } logServerErrorInputStream(groupsRequest, response); throw new IllegalStateException("Unable to set permission"); }).join(); } }
gms/src/main/java/it/inaf/ia2/gms/authn/SessionData.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -59,6 +59,6 @@ public class SessionData { } } public long getExpiresIn() { public long getExpiresIn() { return (System.currentTimeMillis() - expiration) / 1000; return (expiration - System.currentTimeMillis()) / 1000; } } } }