Move Wallix specific methods to Wallix class.

This commit is contained in:
2025-11-04 18:24:22 +01:00
parent e6bd866afb
commit ee94be0887
2 changed files with 41 additions and 35 deletions

View File

@@ -8,6 +8,8 @@ import java.net.http.HttpResponse;
import java.security.SecureRandom; import java.security.SecureRandom;
import java.security.cert.CertificateException; import java.security.cert.CertificateException;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import java.util.HashSet;
import java.util.Set;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine; 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.Environment;
import org.apache.guacamole.environment.LocalEnvironment; 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 { public class Wallix {
private final static String HEADER_AUTH_USER = "X-Auth-User"; 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<UserGroup> getGroups() throws Exception {
String output = get("/usergroups");
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(output);
Set<UserGroup> 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 final class API {
public static final String ATTRIBUTE_GROUP_NAME = "group_name"; public static final String ATTRIBUTE_GROUP_NAME = "group_name";

View File

@@ -1,18 +1,12 @@
package cm.soungui.guacamole.ext.wallix.sync; package cm.soungui.guacamole.ext.wallix.sync;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.HashSet;
import java.util.Set; import java.util.Set;
import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.environment.LocalEnvironment; 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.DB;
import cm.soungui.guacamole.ext.wallix.sync.db.User;
import cm.soungui.guacamole.ext.wallix.sync.db.UserGroup; import cm.soungui.guacamole.ext.wallix.sync.db.UserGroup;
public class WallixConfigSynchronizer implements Runnable { public class WallixConfigSynchronizer implements Runnable {
@@ -43,7 +37,7 @@ public class WallixConfigSynchronizer implements Runnable {
private void synchronizeGroups() throws Exception { private void synchronizeGroups() throws Exception {
System.out.println("Synchronizing groups"); System.out.println("Synchronizing groups");
System.out.println("Getting Wallix groups"); System.out.println("Getting Wallix groups");
Set<UserGroup> wallixGroups = getWallixGroups(); Set<UserGroup> wallixGroups = Wallix.getInstance().getGroups();
DB db = DB.getInstance(); DB db = DB.getInstance();
Set<UserGroup> dbGroups = db.getUserGroups(); Set<UserGroup> dbGroups = db.getUserGroups();
@@ -74,34 +68,7 @@ public class WallixConfigSynchronizer implements Runnable {
private void printWallixVersion() throws Exception { private void printWallixVersion() throws Exception {
Wallix wallix = Wallix.getInstance(); Wallix wallix = Wallix.getInstance();
String output = wallix.get("/version"); System.out.println(wallix.getVersion());
System.out.println(output);
}
private Set<UserGroup> getWallixGroups() throws Exception {
Wallix wallix = Wallix.getInstance();
String output = wallix.get("/usergroups");
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(output);
Set<UserGroup> 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;
} }
} }