summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/PostCredentialsThread.java
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/PostCredentialsThread.java')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/PostCredentialsThread.java128
1 files changed, 8 insertions, 120 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/PostCredentialsThread.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/PostCredentialsThread.java
index 45656404..b57143a5 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/PostCredentialsThread.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/mobilebku/PostCredentialsThread.java
@@ -16,19 +16,9 @@
package at.asit.pdfover.gui.workflow.states.mobilebku;
// Imports
-import java.io.IOException;
-
-import org.apache.commons.httpclient.Header;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.httpclient.protocol.Protocol;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import at.asit.pdfover.gui.workflow.states.LocalBKUState;
import at.asit.pdfover.gui.workflow.states.MobileBKUState;
/**
@@ -43,13 +33,16 @@ public class PostCredentialsThread implements Runnable {
private MobileBKUState state;
+ private MobileBKUHandler handler;
+
/**
* Constructor
*
- * @param state
+ * @param state the MobileBKUState
*/
public PostCredentialsThread(MobileBKUState state) {
this.state = state;
+ this.handler = state.getHandler();
}
/* (non-Javadoc)
@@ -58,117 +51,12 @@ public class PostCredentialsThread implements Runnable {
@Override
public void run() {
try {
- MobileBKUStatus status = this.state.getStatus();
-
-
- Protocol.registerProtocol("https", //$NON-NLS-1$
- new Protocol("https", new TrustedSocketFactory(), 443)); //$NON-NLS-1$
-
- HttpClient client = new HttpClient();
- client.getParams().setParameter("http.useragent", //$NON-NLS-1$
- LocalBKUState.PDF_OVER_USER_AGENT_STRING);
-
-
-
- PostMethod method = new PostMethod(status.getBaseURL() + "/identification.aspx?sid=" + status.getSessionID()); //$NON-NLS-1$
- method.getParams().setContentCharset("utf-8"); //$NON-NLS-1$
- method.addParameter("__VIEWSTATE", status.getViewstate()); //$NON-NLS-1$
- method.addParameter("__EVENTVALIDATION", status.getEventvalidation()); //$NON-NLS-1$
- method.addParameter("handynummer", status.getPhoneNumber()); //$NON-NLS-1$
- method.addParameter("signaturpasswort", status.getMobilePassword()); //$NON-NLS-1$
- method.addParameter("Button_Identification", "Identifizieren"); //$NON-NLS-1$ //$NON-NLS-2$
-
-
-
- int returnCode = client.executeMethod(method);
-
- String redirectLocation = null;
-
- GetMethod gmethod = null;
-
- String responseData = null;
-
- // Follow redirects
- do {
- // check return code
- if (returnCode == HttpStatus.SC_MOVED_TEMPORARILY ||
- returnCode == HttpStatus.SC_MOVED_PERMANENTLY) {
-
- Header locationHeader = method
- .getResponseHeader("location"); //$NON-NLS-1$
- if (locationHeader != null) {
- redirectLocation = locationHeader.getValue();
- } else {
- throw new IOException(
- "Got HTTP 302 but no location to follow!"); //$NON-NLS-1$
- }
- } else if(returnCode == HttpStatus.SC_OK) {
- if(gmethod != null) {
- responseData = gmethod.getResponseBodyAsString();
- } else {
- responseData = method.getResponseBodyAsString();
- }
- redirectLocation = null;
- } else {
- throw new HttpException(HttpStatus.getStatusText(returnCode));
- }
-
- if(redirectLocation != null) {
- gmethod = new GetMethod(redirectLocation);
- gmethod.setFollowRedirects(true);
- returnCode = client.executeMethod(gmethod);
- }
-
- } while(redirectLocation != null);
+ String responseData = this.handler.postCredentials();
// Now we have received some data lets check it:
-
- log.debug("Repsonse from A-Trust: " + responseData); //$NON-NLS-1$
-
- String viewState = status.getViewstate();
- String eventValidation = status.getEventvalidation();
- String sessionID = status.getSessionID();
-
- String refVal = null;
-
- status.setRefVal(null);
- status.setErrorMessage(null);
-
- if(responseData.contains("signature.aspx?sid=")) { //$NON-NLS-1$
- // credentials ok! TAN eingabe
- sessionID = MobileBKUHelper.extractTag(responseData, "signature.aspx?sid=", "\""); //$NON-NLS-1$ //$NON-NLS-2$
- viewState = MobileBKUHelper.extractTag(responseData, "id=\"__VIEWSTATE\" value=\"", "\""); //$NON-NLS-1$ //$NON-NLS-2$
-
- eventValidation = MobileBKUHelper.extractTag(responseData, "id=\"__EVENTVALIDATION\" value=\"", "\""); //$NON-NLS-1$ //$NON-NLS-2$
-
- refVal = MobileBKUHelper.extractTag(responseData, "id='vergleichswert'><b>Vergleichswert:</b>", "</div>"); //$NON-NLS-1$//$NON-NLS-2$
-
- status.setRefVal(refVal);
-
- this.state.setCommunicationState(MobileBKUCommunicationState.POST_TAN);
- } else {
- // error seite
- // extract error text!
-
- String errorMessage = MobileBKUHelper.extractTag(responseData, "<span id=\"Label1\" class=\"ErrorClass\">", "</span>"); //$NON-NLS-1$ //$NON-NLS-2$
-
- this.state.getStatus().setErrorMessage(errorMessage);
-
- // force UI again!
- status.setMobilePassword(null);
- }
-
- log.info("sessionID: " + sessionID); //$NON-NLS-1$
- log.info("Vergleichswert: " + refVal); //$NON-NLS-1$
- log.info("viewState: " + viewState); //$NON-NLS-1$
- log.info("eventValidation: " + eventValidation); //$NON-NLS-1$
-
- status.setSessionID(sessionID);
-
- status.setViewstate(viewState);
-
- status.setEventvalidation(eventValidation);
-
+ log.debug("Response from A-Trust: " + responseData); //$NON-NLS-1$
+
+ this.handler.handleCredentialsResponse(responseData);
} catch (Exception ex) {
log.error("Error in PostCredentialsThread", ex); //$NON-NLS-1$
this.state.setThreadException(ex);