commit a4caa69ccdda9578cf633a32a542d635ce8096ce
parent 93958748329decfd5785fd96ad0a971a1bdb7257
Author: Daniel Gultsch <daniel@gultsch.de>
Date: Mon, 6 Jun 2016 12:51:24 +0200
save account passwords in accounts.xml for later use
Diffstat:
2 files changed, 60 insertions(+), 4 deletions(-)
diff --git a/src/main/java/eu/siacs/AccountStore.java b/src/main/java/eu/siacs/AccountStore.java
@@ -0,0 +1,45 @@
+package eu.siacs;
+
+import rocks.xmpp.addr.Jid;
+
+import java.io.*;
+import java.util.Properties;
+
+public class AccountStore {
+
+ private static final File FILE = new File("accounts.xml");
+
+ public static String getPassword(Jid jid) {
+ Properties properties = new Properties();
+ try {
+ properties.loadFromXML(new FileInputStream(FILE));
+ return properties.getProperty(jid.asBareJid().toString());
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
+ public static boolean storePassword(Jid jid, String password) {
+ Properties properties = new Properties();
+ try {
+ properties.loadFromXML(new FileInputStream(FILE));
+ } catch (FileNotFoundException e) {
+ try {
+ FILE.createNewFile();
+ } catch (IOException e1) {
+ //
+ }
+ } catch (IOException e) {
+ //ignored
+ }
+ properties.put(jid.asBareJid().toString(),password);
+ try {
+ properties.storeToXML(new FileOutputStream(FILE),null);
+ return true;
+ } catch (IOException e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+}
diff --git a/src/main/java/eu/siacs/ComplianceTester.java b/src/main/java/eu/siacs/ComplianceTester.java
@@ -13,12 +13,23 @@ public class ComplianceTester {
public static void main(String[] args) {
- if (args.length != 2) {
- System.err.println("java -jar ComplianceTester.jar username@domain.tld password");
+ Jid jid = Jid.of(args[0]);
+ String password;
+ if (args.length < 1 || args.length > 2) {
+ System.err.println("java -jar ComplianceTester.jar username@domain.tld [password]");
System.exit(1);
+ return;
+ } else if (args.length == 2) {
+ password = args[1];
+ AccountStore.storePassword(jid, password);
+ } else {
+ password = AccountStore.getPassword(jid);
+ if (password == null) {
+ System.err.println("password for "+jid+ " was not stored");
+ System.exit(1);
+ return;
+ }
}
- Jid jid = Jid.of(args[0]);
- String password = args[1];
List<Class <? extends AbstractTestSuite>> testSuites = Arrays.asList(
AdvancedServerCore.class,
AdvancedServerIM.class,