From ee94be08873e0ebaad8aa0bf7367512e6455fde7 Mon Sep 17 00:00:00 2001 From: Abba Soungui YOUNOUSS Date: Tue, 4 Nov 2025 18:24:22 +0100 Subject: [PATCH] Move Wallix specific methods to Wallix class. --- .../guacamole/ext/wallix/sync/Wallix.java | 39 +++++++++++++++++++ .../wallix/sync/WallixConfigSynchronizer.java | 37 +----------------- 2 files changed, 41 insertions(+), 35 deletions(-) diff --git a/src/main/java/cm/soungui/guacamole/ext/wallix/sync/Wallix.java b/src/main/java/cm/soungui/guacamole/ext/wallix/sync/Wallix.java index 5ffbfdf..a288589 100644 --- a/src/main/java/cm/soungui/guacamole/ext/wallix/sync/Wallix.java +++ b/src/main/java/cm/soungui/guacamole/ext/wallix/sync/Wallix.java @@ -8,6 +8,8 @@ import java.net.http.HttpResponse; import java.security.SecureRandom; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; +import java.util.HashSet; +import java.util.Set; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLEngine; @@ -18,6 +20,13 @@ import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.environment.Environment; import org.apache.guacamole.environment.LocalEnvironment; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; + +import cm.soungui.guacamole.ext.wallix.sync.db.User; +import cm.soungui.guacamole.ext.wallix.sync.db.UserGroup; + public class Wallix { private final static String HEADER_AUTH_USER = "X-Auth-User"; @@ -110,6 +119,36 @@ public class Wallix { } } + public String getVersion() throws Exception { + String output = get("/version"); + return output; + } + + public Set getGroups() throws Exception { + String output = get("/usergroups"); + + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode jsonNode = objectMapper.readTree(output); + Set list = new HashSet<>(); + + jsonNode.elements().forEachRemaining((e) -> { + ObjectNode node = (ObjectNode) e; + + UserGroup group = new UserGroup(); + group.setName(node.findValue(Wallix.API.ATTRIBUTE_GROUP_NAME).asText()); + + node.findValues(Wallix.API.ATTRIBUTE_GROUP_USERS).forEach(userNode -> { + User user = new User(); + user.setName(userNode.textValue()); + group.getMembers().add(user); + }); + + list.add(group); + }); + + return list; + } + public final class API { public static final String ATTRIBUTE_GROUP_NAME = "group_name"; diff --git a/src/main/java/cm/soungui/guacamole/ext/wallix/sync/WallixConfigSynchronizer.java b/src/main/java/cm/soungui/guacamole/ext/wallix/sync/WallixConfigSynchronizer.java index f99c289..b386dde 100644 --- a/src/main/java/cm/soungui/guacamole/ext/wallix/sync/WallixConfigSynchronizer.java +++ b/src/main/java/cm/soungui/guacamole/ext/wallix/sync/WallixConfigSynchronizer.java @@ -1,18 +1,12 @@ package cm.soungui.guacamole.ext.wallix.sync; import java.sql.SQLException; -import java.util.HashSet; import java.util.Set; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.environment.LocalEnvironment; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; - import cm.soungui.guacamole.ext.wallix.sync.db.DB; -import cm.soungui.guacamole.ext.wallix.sync.db.User; import cm.soungui.guacamole.ext.wallix.sync.db.UserGroup; public class WallixConfigSynchronizer implements Runnable { @@ -43,7 +37,7 @@ public class WallixConfigSynchronizer implements Runnable { private void synchronizeGroups() throws Exception { System.out.println("Synchronizing groups"); System.out.println("Getting Wallix groups"); - Set wallixGroups = getWallixGroups(); + Set wallixGroups = Wallix.getInstance().getGroups(); DB db = DB.getInstance(); Set dbGroups = db.getUserGroups(); @@ -74,34 +68,7 @@ public class WallixConfigSynchronizer implements Runnable { private void printWallixVersion() throws Exception { Wallix wallix = Wallix.getInstance(); - String output = wallix.get("/version"); - System.out.println(output); - } - - private Set getWallixGroups() throws Exception { - Wallix wallix = Wallix.getInstance(); - String output = wallix.get("/usergroups"); - - ObjectMapper objectMapper = new ObjectMapper(); - JsonNode jsonNode = objectMapper.readTree(output); - Set list = new HashSet<>(); - - jsonNode.elements().forEachRemaining((e) -> { - ObjectNode node = (ObjectNode) e; - - UserGroup group = new UserGroup(); - group.setName(node.findValue(Wallix.API.ATTRIBUTE_GROUP_NAME).asText()); - - node.findValues(Wallix.API.ATTRIBUTE_GROUP_USERS).forEach(userNode -> { - User user = new User(); - user.setName(userNode.textValue()); - group.getMembers().add(user); - }); - - list.add(group); - }); - - return list; + System.out.println(wallix.getVersion()); } }