From b8b015d3fa3b58cb5e70b4cd2ad1b8fe2a424af9 Mon Sep 17 00:00:00 2001 From: tkellner Date: Wed, 10 Apr 2013 18:58:07 +0000 Subject: Added missing CLI Parameter Using proxy parameters if set Added localization string file git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@60 174cde9d-5d70-4d2a-aa98-46368bc2aaf7 --- .../java/at/asit/pdfover/gui/DeveloperMain.java | 5 +- .../main/java/at/asit/pdfover/gui/MainWindow.java | 49 +++++++++--- .../main/java/at/asit/pdfover/gui/Messages.java | 46 ++++++++++++ .../asit/pdfover/gui/cliarguments/BKUArgument.java | 4 +- .../gui/cliarguments/ConfigFileArgument.java | 4 +- .../pdfover/gui/cliarguments/EmblemArgument.java | 80 ++++++++++++++++++++ .../gui/cliarguments/OutputFolderArgument.java | 86 ++++++++++++++++++++++ .../pdfover/gui/cliarguments/PasswordArgument.java | 74 +++++++++++++++++++ .../gui/cliarguments/PhoneNumberArgument.java | 4 +- .../gui/cliarguments/ProxyHostArgument.java | 74 +++++++++++++++++++ .../gui/cliarguments/ProxyPortArgument.java | 78 ++++++++++++++++++++ .../java/at/asit/pdfover/gui/messages.properties | 8 ++ .../workflow/states/PrepareConfigurationState.java | 11 ++- .../gui/workflow/states/PrepareSigningState.java | 14 ++++ .../states/mobilebku/TrustedSocketFactory.java | 10 ++- 15 files changed, 521 insertions(+), 26 deletions(-) create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/Messages.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/EmblemArgument.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/OutputFolderArgument.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PasswordArgument.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyHostArgument.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyPortArgument.java create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/messages.properties (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover') diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/DeveloperMain.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/DeveloperMain.java index 1fdb550d..23b14d4c 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/DeveloperMain.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/DeveloperMain.java @@ -19,7 +19,6 @@ package at.asit.pdfover.gui; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import at.asit.pdfover.gui.cliarguments.ArgumentHandler; import at.asit.pdfover.gui.workflow.StateMachineImpl; /** @@ -44,11 +43,11 @@ public class DeveloperMain { //System.setProperty("log4j.configuration", "log4j.properties"); StateMachineImpl stateMachine = new StateMachineImpl(args); - log.debug("Starting stateMachine ..."); + log.debug("Starting stateMachine ..."); //$NON-NLS-1$ stateMachine.start(); - log.debug("Ended stateMachine ..."); + log.debug("Ended stateMachine ..."); //$NON-NLS-1$ } } diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/MainWindow.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/MainWindow.java index dd735bbf..8a9c217d 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/MainWindow.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/MainWindow.java @@ -25,9 +25,6 @@ import org.eclipse.swt.custom.CLabel; import org.eclipse.swt.custom.StackLayout; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.layout.FormAttachment; @@ -75,7 +72,30 @@ public class MainWindow { * Main bar Buttons */ public enum Buttons { - CONFIG, OPEN, POSITION, SIGN, FINAL + /** + * the configuration button + */ + CONFIG, + + /** + * the open button + */ + OPEN, + + /** + * the position button + */ + POSITION, + + /** + * the signature button + */ + SIGN, + + /** + * the final button + */ + FINAL } private Map buttonMap; @@ -179,7 +199,7 @@ public class MainWindow { protected void createContents() { this.shell = new Shell(); getShell().setSize(500, 800); - getShell().setText("PDF-Over"); + getShell().setText(Messages.getString("main.title")); //$NON-NLS-1$ getShell().setLayout(new FormLayout()); @@ -199,7 +219,8 @@ public class MainWindow { fd_btn_config.top = new FormAttachment(0); fd_btn_config.left = new FormAttachment(0, 2); this.btn_config.setLayoutData(fd_btn_config); - this.btn_config.setText("Config"); + this.btn_config.setText(Messages.getString("main.configuration")); //$NON-NLS-1$ + this.btn_config.setToolTipText(Messages.getString("main.configuration")); //$NON-NLS-1$ this.btn_config.addMouseListener(new MouseListener() { @Override @@ -220,7 +241,7 @@ public class MainWindow { }); this.buttonMap.put(Buttons.CONFIG, this.btn_config); - InputStream is = this.getClass().getResourceAsStream("/img/config.png"); + InputStream is = this.getClass().getResourceAsStream("/img/config.png"); //$NON-NLS-1$ this.btn_config.setImage(new Image(Display.getDefault(), new ImageData(is))); @@ -231,7 +252,8 @@ public class MainWindow { fd_btn_open.top = new FormAttachment(0); fd_btn_open.left = new FormAttachment(0, 45); this.btn_open.setLayoutData(fd_btn_open); - this.btn_open.setText("Open"); + this.btn_open.setText(Messages.getString("main.open")); //$NON-NLS-1$ + this.btn_open.setToolTipText(Messages.getString("main.open")); //$NON-NLS-1$ this.btn_open.addMouseListener(new MouseListener() { @Override @@ -259,7 +281,8 @@ public class MainWindow { fd_btn_position.top = new FormAttachment(0); fd_btn_position.left = new FormAttachment(35, -5); this.btn_position.setLayoutData(fd_btn_position); - this.btn_position.setText("Positon ..."); + this.btn_position.setText(Messages.getString("main.position")); //$NON-NLS-1$ + this.btn_position.setToolTipText(Messages.getString("main.position")); //$NON-NLS-1$ this.btn_position.addMouseListener(new MouseListener() { @Override @@ -287,7 +310,8 @@ public class MainWindow { fd_btn_sign.top = new FormAttachment(0); fd_btn_sign.left = new FormAttachment(60, -5); this.btn_sign.setLayoutData(fd_btn_sign); - this.btn_sign.setText("Sign ..."); + this.btn_sign.setText(Messages.getString("main.signature")); //$NON-NLS-1$ + this.btn_sign.setToolTipText(Messages.getString("main.signature")); //$NON-NLS-1$ this.buttonMap.put(Buttons.SIGN, this.btn_sign); MainBarEndButton end = new MainBarEndButton(composite, SWT.NONE); @@ -297,7 +321,8 @@ public class MainWindow { fd_btn_end.top = new FormAttachment(0); fd_btn_end.left = new FormAttachment(85, -5); end.setLayoutData(fd_btn_end); - end.setText("Done"); + end.setText(Messages.getString("main.done")); //$NON-NLS-1$ + end.setToolTipText(Messages.getString("main.done")); //$NON-NLS-1$ this.buttonMap.put(Buttons.FINAL, end); this.container = new Composite(getShell(), SWT.RESIZE); @@ -317,7 +342,7 @@ public class MainWindow { fd_lblNewLabel.top = new FormAttachment(100, -20); fd_lblNewLabel.left = new FormAttachment(0, 5); this.lbl_status.setLayoutData(fd_lblNewLabel); - this.lbl_status.setText("New Label"); + this.lbl_status.setText("DEBUG LABEL!!"); //$NON-NLS-1$ } /** diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/Messages.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/Messages.java new file mode 100644 index 00000000..3f700f14 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/Messages.java @@ -0,0 +1,46 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui; + +// Imports +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +/** + * + */ +public class Messages { + private static final String BUNDLE_NAME = "at.asit.pdfover.gui.messages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle + .getBundle(BUNDLE_NAME); + + private Messages() { + } + + /** + * Gets the localized message + * @param key + * @return the localized message + */ + public static String getString(String key) { + try { + return RESOURCE_BUNDLE.getString(key); + } catch (MissingResourceException e) { + return '!' + key + '!'; + } + } +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/BKUArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/BKUArgument.java index e8d721ca..5c039c83 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/BKUArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/BKUArgument.java @@ -57,11 +57,11 @@ public class BKUArgument extends CLIArgument { } } catch (Exception ex) { throw new InitializationException( - "BKU Argument invalid! Use: " + this.getHelpText(), ex); //$NON-NLS-1$ + "BKU Argument invalid! Use: " + this.getHelpText(), ex); } throw new InitializationException( - "BKU Argument invalid! Use: " + this.getHelpText(), null); //$NON-NLS-1$ + "BKU Argument invalid! Use: " + this.getHelpText(), null); } } diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ConfigFileArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ConfigFileArgument.java index 9ddeaf6c..d08ce7c6 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ConfigFileArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ConfigFileArgument.java @@ -62,11 +62,11 @@ public class ConfigFileArgument extends CLIArgument { } catch (Exception ex) { log.error("Configuration File Argument invalid!", ex); //$NON-NLS-1$ throw new InitializationException( - "Configuration File Argument invalid! Use: " + this.getHelpText(), ex); //$NON-NLS-1$ + "Configuration File Argument invalid! Use: " + this.getHelpText(), ex); } throw new InitializationException( - "Configuration File invalid! Use: " + this.getHelpText(), null); //$NON-NLS-1$ + "Configuration File invalid! Use: " + this.getHelpText(), null); } } diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/EmblemArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/EmblemArgument.java new file mode 100644 index 00000000..1b7260c1 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/EmblemArgument.java @@ -0,0 +1,80 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.cliarguments; + +// Imports +import java.io.File; +import java.io.FileNotFoundException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.asit.pdfover.gui.exceptions.InitializationException; +import at.asit.pdfover.gui.workflow.ConfigManipulator; +import at.asit.pdfover.gui.workflow.StateMachine; + +/** + * + */ +public class EmblemArgument extends CLIArgument { + /** + * Constructor + */ + public EmblemArgument() { + super(new String[] {"-e"}, "Sets the emblem file to use for the signature. Example: -e "); //$NON-NLS-1$ + } + + /** + * SLF4J Logger instance + **/ + private static final Logger log = LoggerFactory + .getLogger(EmblemArgument.class); + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.cliarguments.CLIArgument#handleArgument(java.lang.String[], int, at.asit.pdfover.gui.workflow.StateMachine, at.asit.pdfover.gui.cliarguments.ArgumentHandler) + */ + @Override + public int handleArgument(String[] args, int argOffset, + StateMachine stateMachine, ArgumentHandler handler) + throws InitializationException { + try { + if (args.length > argOffset + 1) { + + String emblem = args[argOffset + 1]; + + File emblemFile = new File(emblem); + + if(!emblemFile.exists()) { + throw new FileNotFoundException(emblem); + } + + ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); + + configManipulator.setDefaultEmblem(emblem); + + return argOffset + 1; + } + } catch (Exception ex) { + log.error("Emblem argument invalid!", ex); //$NON-NLS-1$ + throw new InitializationException( + "Emblem invalid! Use: " + this.getHelpText(), ex); + } + + throw new InitializationException( + "Emblem argument invalid! Use: " + this.getHelpText(), null); + } + +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/OutputFolderArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/OutputFolderArgument.java new file mode 100644 index 00000000..5aea45bf --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/OutputFolderArgument.java @@ -0,0 +1,86 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.cliarguments; + +// Imports +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.asit.pdfover.gui.exceptions.InitializationException; +import at.asit.pdfover.gui.exceptions.InvalidPortException; +import at.asit.pdfover.gui.workflow.ConfigManipulator; +import at.asit.pdfover.gui.workflow.StateMachine; + +/** + * + */ +public class OutputFolderArgument extends CLIArgument { + /** + * Constructor + */ + public OutputFolderArgument() { + super(new String[] {"-o"}, "Sets the output folder to use. Example: -o "); //$NON-NLS-1$ + } + + /** + * SLF4J Logger instance + **/ + private static final Logger log = LoggerFactory + .getLogger(OutputFolderArgument.class); + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.cliarguments.CLIArgument#handleArgument(java.lang.String[], int, at.asit.pdfover.gui.workflow.StateMachine, at.asit.pdfover.gui.cliarguments.ArgumentHandler) + */ + @Override + public int handleArgument(String[] args, int argOffset, + StateMachine stateMachine, ArgumentHandler handler) + throws InitializationException { + try { + if (args.length > argOffset + 1) { + + String outputFolder = args[argOffset + 1]; + + File outputFolderDir = new File(outputFolder); + + if(!outputFolderDir.exists()) { + throw new FileNotFoundException(outputFolder); + } + + if(!outputFolderDir.isDirectory()) { + throw new IOException(outputFolderDir + " is not a directory"); + } + + ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); + + configManipulator.setDefaultOutputFolder(outputFolder); + + return argOffset + 1; + } + } catch (Exception ex) { + log.error("Output folder argument invalid!", ex); //$NON-NLS-1$ + throw new InitializationException( + "Output folder argument invalid! Use: " + this.getHelpText(), ex); + } + + throw new InitializationException( + "Output folder argument invalid! Use: " + this.getHelpText(), null); + } + +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PasswordArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PasswordArgument.java new file mode 100644 index 00000000..ab239c88 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PasswordArgument.java @@ -0,0 +1,74 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.cliarguments; + +// Imports +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.asit.pdfover.gui.exceptions.InitializationException; +import at.asit.pdfover.gui.workflow.ConfigManipulator; +import at.asit.pdfover.gui.workflow.StateMachine; +import at.asit.pdfover.gui.workflow.states.mobilebku.ATrustHelper; + +/** + * + */ +public class PasswordArgument extends CLIArgument { + /** + * Constructor + */ + public PasswordArgument() { + super(new String[] {"-p"}, "Sets the password to use for mobile bku. Example: -p "); //$NON-NLS-1$ + } + + /** + * SLF4J Logger instance + **/ + private static final Logger log = LoggerFactory + .getLogger(PasswordArgument.class); + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.cliarguments.CLIArgument#handleArgument(java.lang.String[], int, at.asit.pdfover.gui.workflow.StateMachine, at.asit.pdfover.gui.cliarguments.ArgumentHandler) + */ + @Override + public int handleArgument(String[] args, int argOffset, + StateMachine stateMachine, ArgumentHandler handler) + throws InitializationException { + try { + if (args.length > argOffset + 1) { + + String password = args[argOffset + 1]; + + ATrustHelper.validatePassword(password); + + ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); + + configManipulator.setDefaultPassword(password); + + return argOffset + 1; + } + } catch (Exception ex) { + log.error("Mobile BKU password argument invalid!", ex); //$NON-NLS-1$ + throw new InitializationException( + "Mobile BKU password invalid! Use: " + this.getHelpText(), ex); + } + + throw new InitializationException( + "Mobile BKU password argument invalid! Use: " + this.getHelpText(), null); + } + +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PhoneNumberArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PhoneNumberArgument.java index 255b4f91..6d344c42 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PhoneNumberArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PhoneNumberArgument.java @@ -67,11 +67,11 @@ public class PhoneNumberArgument extends CLIArgument { } catch (Exception ex) { log.error("Phone Number Argument invalid!", ex); //$NON-NLS-1$ throw new InitializationException( - "Phone Number Argument invalid! Use: " + this.getHelpText(), ex); //$NON-NLS-1$ + "Phone Number Argument invalid! Use: " + this.getHelpText(), ex); } throw new InitializationException( - "Phone Number invalid! Use: " + this.getHelpText(), null); //$NON-NLS-1$ + "Phone Number invalid! Use: " + this.getHelpText(), null); } } diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyHostArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyHostArgument.java new file mode 100644 index 00000000..cb6ce596 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyHostArgument.java @@ -0,0 +1,74 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.cliarguments; + +// Imports +import java.io.File; +import java.io.FileNotFoundException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.asit.pdfover.gui.exceptions.InitializationException; +import at.asit.pdfover.gui.workflow.ConfigManipulator; +import at.asit.pdfover.gui.workflow.StateMachine; + +/** + * + */ +public class ProxyHostArgument extends CLIArgument { + /** + * Constructor + */ + public ProxyHostArgument() { + super(new String[] {"-proxy"}, "Sets the proxy host to use. Example: -proxy "); //$NON-NLS-1$ + } + + /** + * SLF4J Logger instance + **/ + private static final Logger log = LoggerFactory + .getLogger(ProxyHostArgument.class); + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.cliarguments.CLIArgument#handleArgument(java.lang.String[], int, at.asit.pdfover.gui.workflow.StateMachine, at.asit.pdfover.gui.cliarguments.ArgumentHandler) + */ + @Override + public int handleArgument(String[] args, int argOffset, + StateMachine stateMachine, ArgumentHandler handler) + throws InitializationException { + try { + if (args.length > argOffset + 1) { + + String proxyHost = args[argOffset + 1]; + + ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); + + configManipulator.setProxyHost(proxyHost); + + return argOffset + 1; + } + } catch (Exception ex) { + log.error("Proxy host argument invalid!", ex); //$NON-NLS-1$ + throw new InitializationException( + "Proxy host invalid! Use: " + this.getHelpText(), ex); + } + + throw new InitializationException( + "Proxy host argument invalid! Use: " + this.getHelpText(), null); + } + +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyPortArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyPortArgument.java new file mode 100644 index 00000000..aa0d5d81 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyPortArgument.java @@ -0,0 +1,78 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.cliarguments; + +// Imports +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.asit.pdfover.gui.exceptions.InitializationException; +import at.asit.pdfover.gui.exceptions.InvalidPortException; +import at.asit.pdfover.gui.workflow.ConfigManipulator; +import at.asit.pdfover.gui.workflow.StateMachine; + +/** + * + */ +public class ProxyPortArgument extends CLIArgument { + /** + * Constructor + */ + public ProxyPortArgument() { + super(new String[] {"-proxyport"}, "Sets the proxy port to use. Example: -proxyport "); //$NON-NLS-1$ + } + + /** + * SLF4J Logger instance + **/ + private static final Logger log = LoggerFactory + .getLogger(ProxyPortArgument.class); + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.cliarguments.CLIArgument#handleArgument(java.lang.String[], int, at.asit.pdfover.gui.workflow.StateMachine, at.asit.pdfover.gui.cliarguments.ArgumentHandler) + */ + @Override + public int handleArgument(String[] args, int argOffset, + StateMachine stateMachine, ArgumentHandler handler) + throws InitializationException { + try { + if (args.length > argOffset + 1) { + + String proxyPortString = args[argOffset + 1]; + + int port = Integer.parseInt(proxyPortString); + + if(port <= 0 || port > 0xFFFF) { + throw new InvalidPortException(port); + } + + ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); + + configManipulator.setProxyPort(port); + + return argOffset + 1; + } + } catch (Exception ex) { + log.error("Proxy port argument invalid!", ex); //$NON-NLS-1$ + throw new InitializationException( + "Proxy port argument invalid! Use: " + this.getHelpText(), ex); + } + + throw new InitializationException( + "Proxy port argument invalid! Use: " + this.getHelpText(), null); + } + +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/messages.properties b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/messages.properties new file mode 100644 index 00000000..3726b7c9 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/messages.properties @@ -0,0 +1,8 @@ +TrustedSocketFactory.FailedToCreateSecureConnection=Failed to create secure network connection + +main.title=PDF-Over +main.configuration=Configuration +main.open=Open +main.position=Positioning +main.signature=Signing +main.done=Finish \ No newline at end of file diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java index 3cf0861f..f720cb57 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java @@ -28,8 +28,13 @@ import org.slf4j.LoggerFactory; import at.asit.pdfover.gui.cliarguments.ArgumentHandler; import at.asit.pdfover.gui.cliarguments.BKUArgument; import at.asit.pdfover.gui.cliarguments.ConfigFileArgument; +import at.asit.pdfover.gui.cliarguments.EmblemArgument; import at.asit.pdfover.gui.cliarguments.HelpArgument; +import at.asit.pdfover.gui.cliarguments.OutputFolderArgument; +import at.asit.pdfover.gui.cliarguments.PasswordArgument; import at.asit.pdfover.gui.cliarguments.PhoneNumberArgument; +import at.asit.pdfover.gui.cliarguments.ProxyHostArgument; +import at.asit.pdfover.gui.cliarguments.ProxyPortArgument; import at.asit.pdfover.gui.controls.ErrorDialog; import at.asit.pdfover.gui.exceptions.InitializationException; import at.asit.pdfover.gui.workflow.ConfigManipulator; @@ -53,7 +58,11 @@ public class PrepareConfigurationState extends State { this.handler.addCLIArgument(new HelpArgument()); this.handler.addCLIArgument(new BKUArgument()); this.handler.addCLIArgument(new PhoneNumberArgument()); - + this.handler.addCLIArgument(new EmblemArgument()); + this.handler.addCLIArgument(new PasswordArgument()); + this.handler.addCLIArgument(new ProxyHostArgument()); + this.handler.addCLIArgument(new ProxyPortArgument()); + this.handler.addCLIArgument(new OutputFolderArgument()); // adding config file argument to this handler so it appears in help this.handler.addCLIArgument(new ConfigFileArgument()); diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java index 4ed59e5a..38215593 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java @@ -65,6 +65,20 @@ public class PrepareSigningState extends State { ConfigProvider configuration = this.state.stateMachine.getConfigProvider(); + // SET PROXY HOST and PORT settings + String proxyHost = configuration.getProxyHost(); + int proxyPort = configuration.getProxyPort(); + + if(proxyPort > 0 && proxyPort <= 0xFFFF) { + System.setProperty("http.proxyPort", Integer.toString(proxyPort)); //$NON-NLS-1$ + System.setProperty("https.proxyPort", Integer.toString(proxyPort)); //$NON-NLS-1$ + } + + if(proxyHost != null && !proxyHost.equals("")) { //$NON-NLS-1$ + System.setProperty("http.proxyHost", proxyHost); //$NON-NLS-1$ + System.setProperty("https.proxyHost", proxyHost); //$NON-NLS-1$ + } + if(this.state.signer == null) { this.state.signer = this.state.stateMachine.getPDFSigner().getPDFSigner(); } diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/TrustedSocketFactory.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/TrustedSocketFactory.java index 91aa6caa..c7430bab 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/TrustedSocketFactory.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/TrustedSocketFactory.java @@ -36,6 +36,8 @@ import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import at.asit.pdfover.gui.Messages; + /** * */ @@ -78,7 +80,7 @@ public class TrustedSocketFactory implements ProtocolSocketFactory { throw (UnknownHostException) ex; } else { throw new IOException( - "Not really an IOException! See inner exception", ex); + Messages.getString("TrustedSocketFactory.FailedToCreateSecureConnection"), ex); //$NON-NLS-1$ } } } @@ -106,7 +108,7 @@ public class TrustedSocketFactory implements ProtocolSocketFactory { throw (UnknownHostException) ex; } else { throw new IOException( - "Not really an IOException! See inner exception", ex); + Messages.getString("TrustedSocketFactory.FailedToCreateSecureConnection"), ex); //$NON-NLS-1$ } } } @@ -125,7 +127,7 @@ public class TrustedSocketFactory implements ProtocolSocketFactory { UnknownHostException, ConnectTimeoutException { try { if (params == null) { - throw new IllegalArgumentException("Parameters may not be null"); + throw new IllegalArgumentException("Parameters may not be null"); //$NON-NLS-1$ } int timeout = params.getConnectionTimeout(); Socket socket = null; @@ -151,7 +153,7 @@ public class TrustedSocketFactory implements ProtocolSocketFactory { throw (UnknownHostException) ex; } else { throw new IOException( - "Not really an IOException! See inner exception", ex); + Messages.getString("TrustedSocketFactory.FailedToCreateSecureConnection"), ex); //$NON-NLS-1$ } } } -- cgit v1.2.3