diff options
author | Jakob Heher <jakob.heher@iaik.tugraz.at> | 2022-11-24 14:14:37 +0100 |
---|---|---|
committer | Jakob Heher <jakob.heher@iaik.tugraz.at> | 2022-11-24 14:14:37 +0100 |
commit | f39ab43fc0120b7fa97028d40acd7851de8d4a99 (patch) | |
tree | 335caaa8b701395bae64fbf67ca9afb1776ae658 /pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java | |
parent | a4dd755534013449be5573102114d8dcfccba159 (diff) | |
download | pdf-over-f39ab43fc0120b7fa97028d40acd7851de8d4a99.tar.gz pdf-over-f39ab43fc0120b7fa97028d40acd7851de8d4a99.tar.bz2 pdf-over-f39ab43fc0120b7fa97028d40acd7851de8d4a99.zip |
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java')
-rw-r--r-- | pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java | 215 |
1 files changed, 0 insertions, 215 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java deleted file mode 100644 index f1bfa5b9..00000000 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/LocalBKUState.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * 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.workflow.states; - -// Imports -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.HttpException; -import org.apache.commons.httpclient.HttpMethod; -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.httpclient.methods.PostMethod; -import org.eclipse.swt.SWT; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import at.asit.pdfover.commons.Constants; -import at.asit.pdfover.gui.MainWindow.Buttons; -import at.asit.pdfover.gui.MainWindowBehavior; -import at.asit.pdfover.gui.bku.BKUHelper; -import at.asit.pdfover.gui.bku.LocalBKUConnector; -import at.asit.pdfover.gui.controls.Dialog.BUTTONS; -import at.asit.pdfover.gui.controls.ErrorDialog; -import at.asit.pdfover.commons.Messages; -import at.asit.pdfover.gui.workflow.StateMachine; -import at.asit.pdfover.gui.workflow.Status; -import at.asit.pdfover.signer.pdfas.PdfAs4SigningState; - -/** - * Logical state for performing the BKU Request to a local BKU - */ -public class LocalBKUState extends State { - - /** - * SLF4J Logger instance - **/ - static final Logger log = LoggerFactory.getLogger(LocalBKUState.class); - - /** - * HTTP Response server HEADER - */ - public final static String BKU_RESPONSE_HEADER_SERVER = "server"; - - /** - * HTTP Response user-agent HEADER - */ - public final static String BKU_RESPONSE_HEADER_USERAGENT = "user-agent"; - - /** - * HTTP Response SignatureLayout HEADER - */ - public final static String BKU_RESPONSE_HEADER_SIGNATURE_LAYOUT = "SignatureLayout"; - - Exception threadException = null; - - /** Whether to use Base64 or FileUpload Request */ - boolean useBase64Request = false; - - /** - * Null-Operation SL-Request - */ - private final static String NULL_OPERATION_REQUEST = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + - "<sl:NullOperationRequest xmlns:sl=\"http://www.buergerkarte.at/namespaces/securitylayer/1.2#\"/>"; - - /** - * Constructor - * @param stateMachine the StateMachine - */ - public LocalBKUState(StateMachine stateMachine) { - super(stateMachine); - } - - /** - * - */ - private final class SignLocalBKUThread implements Runnable { - - private LocalBKUState state; - private PdfAs4SigningState signingState; - - - /** - * @param localBKUState - * @param signingState - */ - public SignLocalBKUThread(LocalBKUState localBKUState, PdfAs4SigningState signingState) { - this.state = localBKUState; - this.signingState = signingState; - } - - @Override - public void run() { - try { - - HttpClient client = (HttpClient) BKUHelper.getHttpClient(); - - PostMethod method = new PostMethod(Constants.LOCAL_BKU_URL); - - String sl_request = NULL_OPERATION_REQUEST; - method.addParameter("XMLRequest", sl_request); - int returnCode = client.executeMethod(method); - - if (returnCode != HttpStatus.SC_OK) { - this.state.threadException = new HttpException( - method.getResponseBodyAsString()); - } else { - String server = getResponseHeader(method, BKU_RESPONSE_HEADER_SERVER); - if ((server != null) && (server.contains("trustDeskbasic") || server.contains("asignSecurityLayer"))) - LocalBKUState.this.useBase64Request = true; - - this.signingState.signatureResponse = method.getResponseBodyAsString(); - this.signingState.useBase64Request = LocalBKUState.this.useBase64Request; - } - } catch (Exception e) { - log.error("SignLocalBKUThread: ", e); - - this.state.threadException = e; - } finally { - this.state.updateStateMachine(); - } - } - - /** - * Returns the value corresponding to the given header name - * @param method the HTTP method - * @param headerName the header name - * @return the header value (or null if not found) - */ - private String getResponseHeader(HttpMethod method, String headerName) { - if (method.getResponseHeader(headerName) == null) - return null; - return method.getResponseHeader(headerName).getValue(); - } - } - - /* - * (non-Javadoc) - * - * @see - * at.asit.pdfover.gui.workflow.WorkflowState#update(at.asit.pdfover.gui - * .workflow.Workflow) - */ - @Override - public void run() { - Status status = getStateMachine().status; - - PdfAs4SigningState signingState = status.signingState; - - if ((signingState.signatureResponse == null) - && this.threadException == null) { - Thread t = new Thread(new SignLocalBKUThread(this, signingState)); - t.start(); - return; - } - signingState.bkuConnector = new LocalBKUConnector(); - - if (this.threadException != null) { - ErrorDialog dialog = new ErrorDialog( - getStateMachine().getMainShell(), - Messages.getString("error.LocalBKU"), - BUTTONS.RETRY_CANCEL); - if (dialog.open() != SWT.RETRY) { - //getStateMachine().exit(); - this.setNextState(new BKUSelectionState(getStateMachine())); - return; - } - this.threadException = null; - this.run(); - return; - } - - // OK - this.setNextState(new at.asit.pdfover.gui.workflow.states.SigningState(getStateMachine())); - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.states.State#cleanUp() - */ - @Override - public void cleanUp() { - // No composite - no cleanup necessary - } - - /* - * (non-Javadoc) - * - * @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior() - */ - @Override - public void updateMainWindowBehavior() { - MainWindowBehavior behavior = getStateMachine().status.behavior; - behavior.reset(); - behavior.setActive(Buttons.OPEN, true); - behavior.setActive(Buttons.POSITION, true); - behavior.setActive(Buttons.SIGN, true); - } - - @Override - public String toString() { - return this.getClass().getName(); - } -} |