summaryrefslogtreecommitdiffstats
path: root/src/main/java/de/spline/kvm/utils/Kvm.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/spline/kvm/utils/Kvm.java')
-rw-r--r--src/main/java/de/spline/kvm/utils/Kvm.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/main/java/de/spline/kvm/utils/Kvm.java b/src/main/java/de/spline/kvm/utils/Kvm.java
new file mode 100644
index 0000000..896150a
--- /dev/null
+++ b/src/main/java/de/spline/kvm/utils/Kvm.java
@@ -0,0 +1,61 @@
+package de.spline.kvm.utils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.gistlabs.mechanize.MechanizeAgent;
+import com.gistlabs.mechanize.Resource;
+import com.gistlabs.mechanize.document.Document;
+import com.gistlabs.mechanize.document.node.Node;
+import com.gistlabs.mechanize.parameters.Parameters;
+
+public class Kvm
+{
+ protected String host;
+ protected MechanizeAgent agent;
+
+ public Kvm(String host)
+ {
+ this.host = host;
+ this.agent = new MechanizeAgent();
+ }
+
+ public void login(String username, String password)
+ {
+ Parameters param = new Parameters();
+ param.add("login", username);
+ param.add("password", password);
+ param.add("action_login", "Login");
+
+ Resource resource = agent.post(host + "/auth.asp", param);
+ if (resource.asString().contains("Authentication failed.")) {
+ System.err.println("Invalid login!");
+ System.exit(1);
+ }
+ }
+
+ public Map<String, String> getAppletParameters()
+ {
+ Document doc = agent.get(host + "/title_app.asp");
+ if (!doc.asString().contains("<param name=\"APPLET_ID\"")) {
+ logout();
+
+ System.err.println("Error getting applet parameters.");
+ System.exit(1);
+ }
+
+ Map<String, String> params = new HashMap<>();
+ for (Node node : doc.getRoot().findAll("html body applet param")) {
+ String name = node.getAttribute("name");
+ String value = node.getAttribute("value");
+ params.put(name.toUpperCase(), value);
+ }
+
+ return params;
+ }
+
+ public void logout()
+ {
+ agent.get(host + "/logout");
+ }
+}