summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4>2009-02-11 19:59:02 +0000
committerclemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4>2009-02-11 19:59:02 +0000
commit754cb731b2d5f4888815c16c530fc3674264a4f2 (patch)
tree86ec8b83c0b2ee7b27894217c298a1e2a19a2018
parent29d2eb28fe72deae4347116a6e4bfe32c4af3497 (diff)
downloadmocca-754cb731b2d5f4888815c16c530fc3674264a4f2.tar.gz
mocca-754cb731b2d5f4888815c16c530fc3674264a4f2.tar.bz2
mocca-754cb731b2d5f4888815c16c530fc3674264a4f2.zip
make applet better extensible (override BKUWorker,...)
git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@294 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
-rw-r--r--BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletBKUWorker.java4
-rw-r--r--BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletHashDataDisplay.java3
-rw-r--r--BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUApplet.java122
-rw-r--r--BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BrowserHashDataDisplay.java52
4 files changed, 79 insertions, 102 deletions
diff --git a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletBKUWorker.java b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletBKUWorker.java
index 388f045f..5a57ef18 100644
--- a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletBKUWorker.java
+++ b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletBKUWorker.java
@@ -165,7 +165,7 @@ public class AppletBKUWorker extends AbstractBKUWorker implements Runnable {
showErrorDialog(BKUGUIFacade.ERR_CONFIG, ex);
} catch (Exception ex) {
log.error(ex.getMessage(), ex);
- showErrorDialog(BKUGUIFacade.ERR_UNKNOWN, ex);
+ showErrorDialog(BKUGUIFacade.ERR_UNKNOWN_WITH_PARAM, ex);
} finally {
if (signatureCard != null) {
signatureCard.disconnect(false);
@@ -195,7 +195,7 @@ public class AppletBKUWorker extends AbstractBKUWorker implements Runnable {
}
}
- private void showErrorDialog(String err_code, Exception ex) {
+ protected void showErrorDialog(String err_code, Exception ex) {
actionCommandList.clear();
actionCommandList.add("ok");
gui.showErrorDialog(err_code,
diff --git a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletHashDataDisplay.java b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletHashDataDisplay.java
index 7be40d65..2ed9aa5b 100644
--- a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletHashDataDisplay.java
+++ b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletHashDataDisplay.java
@@ -16,12 +16,10 @@
*/
package at.gv.egiz.bku.online.applet;
-import at.gv.egiz.bku.gui.BKUGUIFacade;
import java.security.DigestException;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
import java.util.List;
import org.apache.commons.logging.Log;
@@ -34,7 +32,6 @@ import at.gv.egiz.stal.service.GetHashDataInputFault;
import at.gv.egiz.stal.service.STALPortType;
import at.gv.egiz.stal.service.types.GetHashDataInputResponseType;
import at.gv.egiz.stal.service.types.GetHashDataInputType;
-import at.gv.egiz.stal.signedinfo.DigestMethodType;
import at.gv.egiz.stal.signedinfo.ReferenceType;
import java.security.NoSuchAlgorithmException;
diff --git a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUApplet.java b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUApplet.java
index d4b2018d..a4337bbd 100644
--- a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUApplet.java
+++ b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUApplet.java
@@ -31,7 +31,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import at.gv.egiz.bku.gui.BKUGUIFacade;
-import at.gv.egiz.bku.gui.BKUGUIFactory;
+import at.gv.egiz.bku.gui.BKUGUIImpl;
import at.gv.egiz.stal.service.STALPortType;
import at.gv.egiz.stal.service.STALService;
import java.awt.Container;
@@ -57,8 +57,6 @@ public class BKUApplet extends JApplet {
public static final String BACKGROUND_IMG = "Background";
public static final String REDIRECT_URL = "RedirectURL";
public static final String REDIRECT_TARGET = "RedirectTarget";
-// public static final String HASHDATA_DISPLAY_INTERNAL = "internal";
-// public static final String HASHDATA_DISPLAY_BROWSER = "browser";
public static final String HASHDATA_DISPLAY_FRAME = "frame";
/**
* STAL WSDL namespace and service name
@@ -69,6 +67,14 @@ public class BKUApplet extends JApplet {
* Dummy session id, used if no sessionId parameter is provided
*/
protected static final String TEST_SESSION_ID = "TestSession";
+
+ static {
+ if (log.isTraceEnabled()) {
+ log.trace("enabling webservice communication dump");
+ System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true");
+ }
+ }
+
/**
* STAL
*/
@@ -82,7 +88,7 @@ public class BKUApplet extends JApplet {
@Override
public void init() {
log.info("Welcome to MOCCA");
- log.debug("Called init()");
+ log.trace("Called init()");
HttpsURLConnection.setDefaultSSLSocketFactory(InternalSSLSocketFactory.getInstance());
@@ -127,19 +133,19 @@ public class BKUApplet extends JApplet {
backgroundImgURL,
helpListener);
- worker = new AppletBKUWorker(this, gui);
+ worker = createBKUWorker(this, gui);
}
@Override
public void start() {
- log.debug("Called start()");
+ log.trace("Called start()");
workerThread = new Thread(worker);
workerThread.start();
}
@Override
public void stop() {
- log.debug("Called stop()");
+ log.trace("Called stop()");
if ((workerThread != null) && (workerThread.isAlive())) {
workerThread.interrupt();
}
@@ -147,52 +153,36 @@ public class BKUApplet extends JApplet {
@Override
public void destroy() {
- log.debug("Called destroy()");
+ log.trace("Called destroy()");
}
- protected URL getURLParameter(String paramKey, String sessionId) throws MalformedURLException {
- String urlParam = getParameter(paramKey);
- if (urlParam != null) {
- URL codebase = getCodeBase();
- try {
- URL url;
- if (codebase.getProtocol().equalsIgnoreCase("file")) {
- // for debugging in appletrunner
- url = new URL(urlParam);
- } else {
- if (sessionId != null) {
- urlParam = urlParam + ";jsessionid=" + sessionId;
- }
- url = new URL(codebase, urlParam);
- }
- log.info("applet parameter " + url);
- return url;
- } catch (MalformedURLException ex) {
- log.error("applet paremeter " + urlParam + " is not a valid URL: " + ex.getMessage());
- throw ex;
- }
- } else {
- log.error("applet paremeter " + urlParam + " not set");
- throw new MalformedURLException(urlParam + " not set");
- }
- }
-
- /**
- * provides a means to for subclasses to inject a different GUI
- */
+ /////////////////////////////////////////////////////////////////////////////
+ // factory methods for subclasses to inject different components
+ /////////////////////////////////////////////////////////////////////////////
+
protected BKUGUIFacade createGUI(Container contentPane,
Locale locale,
Style guiStyle,
URL backgroundImgURL,
AbstractHelpListener helpListener) {
- return BKUGUIFactory.createGUI(contentPane,
- locale,
- guiStyle,
- backgroundImgURL,
- helpListener);
+ return new BKUGUIImpl(contentPane, locale, guiStyle, backgroundImgURL, helpListener);
+ }
+
+ protected AppletBKUWorker createBKUWorker(BKUApplet applet, BKUGUIFacade gui) {
+ return new AppletBKUWorker(applet, gui);
}
- protected STALPortType getSTALPort() throws MalformedURLException {
+
+ /////////////////////////////////////////////////////////////////////////////
+ // callback for BKUWorker to allow extension
+ /////////////////////////////////////////////////////////////////////////////
+
+ /**
+ * Callback for BKUWorker to allow extension
+ * @return
+ * @throws java.net.MalformedURLException
+ */
+ public STALPortType getSTALPort() throws MalformedURLException {
URL wsdlURL = getURLParameter(WSDL_URL, null);
log.debug("setting STAL WSDL: " + wsdlURL);
QName endpointName = new QName(STAL_WSDL_NS, STAL_SERVICE);
@@ -200,10 +190,21 @@ public class BKUApplet extends JApplet {
return stal.getSTALPort();
}
- protected STALTranslator getSTALTranslator() {
+ /**
+ * Callback for BKUWorker to allow extension
+ * (TODO STALPort could know its STALTranslator)
+ * @return
+ * @throws java.net.MalformedURLException
+ */
+ public STALTranslator getSTALTranslator() {
return new STALTranslator();
}
+ /**
+ * Callback for BKUWorker to keep applet context out of BKUWorker
+ * @return
+ * @throws java.net.MalformedURLException
+ */
protected void sendRedirect(String sessionId) {
try {
URL redirectURL = getURLParameter(REDIRECT_URL, sessionId);
@@ -220,4 +221,35 @@ public class BKUApplet extends JApplet {
// gui.showErrorDialog(errorMsg, okListener, actionCommand)
}
}
+
+
+ /////////////////////////////////////////////////////////////////////////////
+ // utility methods
+ /////////////////////////////////////////////////////////////////////////////
+
+ protected URL getURLParameter(String paramKey, String sessionId) throws MalformedURLException {
+ String urlParam = getParameter(paramKey);
+ if (urlParam != null) {
+ URL codebase = getCodeBase();
+ try {
+ URL url;
+ if (codebase.getProtocol().equalsIgnoreCase("file")) {
+ // for debugging in appletrunner
+ url = new URL(urlParam);
+ } else {
+ if (sessionId != null) {
+ urlParam = urlParam + ";jsessionid=" + sessionId;
+ }
+ url = new URL(codebase, urlParam);
+ }
+ return url;
+ } catch (MalformedURLException ex) {
+ log.error("applet paremeter " + urlParam + " is not a valid URL: " + ex.getMessage());
+ throw ex;
+ }
+ } else {
+ log.error("applet paremeter " + urlParam + " not set");
+ throw new MalformedURLException(urlParam + " not set");
+ }
+ }
}
diff --git a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BrowserHashDataDisplay.java b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BrowserHashDataDisplay.java
deleted file mode 100644
index c30921da..00000000
--- a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BrowserHashDataDisplay.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2008 Federal Chancellery Austria and
- * Graz University of Technology
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package at.gv.egiz.bku.online.applet;
-
-import java.net.URL;
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import at.gv.egiz.bku.smccstal.SignRequestHandler;
-import at.gv.egiz.stal.signedinfo.ReferenceType;
-import java.applet.AppletContext;
-
-/**
- *
- * @author Clemens Orthacker <clemens.orthacker@iaik.tugraz.at>
- */
-public class BrowserHashDataDisplay extends SignRequestHandler {
-
- private static final Log log = LogFactory.getLog(BrowserHashDataDisplay.class);
-
- protected AppletContext ctx;
- protected URL hashDataURL;
-
- public BrowserHashDataDisplay(AppletContext ctx, URL hashDataURL) {
- this.ctx = ctx;
- this.hashDataURL = hashDataURL;
- }
-
- @Override
- public void displayHashDataInputs(List<ReferenceType> signedReferences) throws Exception {
- //TODO pass reference Id's to servlet (TODO servlet)
- log.debug("displaying hashdata inputs at " + hashDataURL);
- ctx.showDocument(hashDataURL, "_blank");
- }
-}