From f8db5af9c94285c4946bdf38407fe15ed1b7f818 Mon Sep 17 00:00:00 2001 From: tkellner Date: Mon, 2 Apr 2012 16:38:59 +0000 Subject: * Save certificates to local file system * Show cardreader and smartcard information for Webstart and Applet version git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@1042 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../bku/online/applet/GETCertificateApplet.java | 61 +++++++++++++ .../bku/online/applet/GETCertificateBKUWorker.java | 100 +++++++++++++++++++++ .../egiz/bku/online/applet/HardwareInfoApplet.java | 59 ++++++++++++ .../bku/online/applet/HardwareInfoBKUWorker.java | 100 +++++++++++++++++++++ 4 files changed, 320 insertions(+) create mode 100644 BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/GETCertificateApplet.java create mode 100644 BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/GETCertificateBKUWorker.java create mode 100644 BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/HardwareInfoApplet.java create mode 100644 BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/HardwareInfoBKUWorker.java (limited to 'BKUAppletExt/src') diff --git a/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/GETCertificateApplet.java b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/GETCertificateApplet.java new file mode 100644 index 00000000..4a46f397 --- /dev/null +++ b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/GETCertificateApplet.java @@ -0,0 +1,61 @@ +/* + * Copyright 2011 by Graz University of Technology, Austria + * MOCCA has been developed by the E-Government Innovation Center EGIZ, a joint + * initiative of the Federal Chancellery Austria and Graz University of Technology. + * + * 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://www.osor.eu/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. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ + +package at.gv.egiz.bku.online.applet; + +import java.awt.Container; +import java.net.URL; +import java.util.Locale; + +import at.gv.egiz.bku.gui.BKUGUIFacade; +import at.gv.egiz.bku.gui.GetCertificateGUI; +import at.gv.egiz.bku.gui.GetCertificateGUIFacade; +import at.gv.egiz.bku.gui.HelpListener; +import at.gv.egiz.bku.gui.SwitchFocusListener; +import at.gv.egiz.bku.gui.viewer.FontProvider; + +/** +* +* @author Thomas Lenz +*/ + +public class GETCertificateApplet extends BKUApplet { + + private static final long serialVersionUID = 1L; + + @Override + protected BKUGUIFacade createGUI(Container contentPane, Locale locale, + BKUGUIFacade.Style guiStyle, URL backgroundImgURL, + FontProvider fontProvider, HelpListener helpListener, + SwitchFocusListener switchFocusListener) { + return new GetCertificateGUI(contentPane, locale, + backgroundImgURL, fontProvider, helpListener, + switchFocusListener); + } + + @Override + protected AppletBKUWorker createBKUWorker(BKUApplet applet, BKUGUIFacade gui) { + return new GETCertificateBKUWorker(applet, (GetCertificateGUIFacade) gui); + } + +} diff --git a/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/GETCertificateBKUWorker.java b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/GETCertificateBKUWorker.java new file mode 100644 index 00000000..5b04e28b --- /dev/null +++ b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/GETCertificateBKUWorker.java @@ -0,0 +1,100 @@ +/* + * Copyright 2011 by Graz University of Technology, Austria + * MOCCA has been developed by the E-Government Innovation Center EGIZ, a joint + * initiative of the Federal Chancellery Austria and Graz University of Technology. + * + * 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://www.osor.eu/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. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ + +package at.gv.egiz.bku.online.applet; + +import java.util.Collections; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.gv.egiz.bku.gui.BKUGUIFacade; +import at.gv.egiz.bku.gui.GetCertificateGUIFacade; +import at.gv.egiz.bku.smccstal.GETCertificateRequestHandler; +import at.gv.egiz.stal.ErrorResponse; +import at.gv.egiz.stal.InfoboxReadRequest; +import at.gv.egiz.stal.QuitRequest; +import at.gv.egiz.stal.STALResponse; +import at.gv.egiz.stal.SignRequest; +import at.gv.egiz.stal.ext.GETCertificateRequest; +import at.gv.egiz.stal.ext.GETCertificateResponse; + +/** +* +* @author Thomas Lenz +*/ + +public class GETCertificateBKUWorker extends AppletBKUWorker { + + private final Logger log = LoggerFactory.getLogger(GETCertificateBKUWorker.class); + + public GETCertificateBKUWorker(BKUApplet applet, GetCertificateGUIFacade gui) { + super(applet, gui); + removeRequestHandler(InfoboxReadRequest.class); + removeRequestHandler(SignRequest.class); + addRequestHandler(GETCertificateRequest.class, new GETCertificateRequestHandler()); + } + + @Override + public void run() { + gui.showMessageDialog(BKUGUIFacade.TITLE_WELCOME, + BKUGUIFacade.MESSAGE_WELCOME); + + try { + + List responses = handleRequest(Collections.singletonList(new GETCertificateRequest())); + handleRequest(Collections.singletonList(new QuitRequest())); + + if (responses.size() == 1) { + STALResponse response = responses.get(0); + if (response instanceof GETCertificateResponse) { + log.debug("GET certificate dialog terminated."); + } else if (response instanceof ErrorResponse) { + log.debug("GET certificate dialog terminated with error."); + } else { + throw new RuntimeException("Invalid STAL response: " + response.getClass().getName()); + } + } else { + throw new RuntimeException("invalid number of STAL responses: " + responses.size()); + } + + } catch (RuntimeException ex) { + log.error(ex.getMessage()); + Throwable cause = ex.getCause(); + if (cause != null) { // && cause instanceof InterruptedException) { + log.info(cause.getMessage()); + } + showErrorDialog(BKUGUIFacade.ERR_UNKNOWN, null); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + showErrorDialog(BKUGUIFacade.ERR_UNKNOWN_WITH_PARAM, ex); + } finally { + if (signatureCard != null) { + signatureCard.disconnect(false); + } + } + + applet.sendRedirect(); + } +} diff --git a/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/HardwareInfoApplet.java b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/HardwareInfoApplet.java new file mode 100644 index 00000000..18397613 --- /dev/null +++ b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/HardwareInfoApplet.java @@ -0,0 +1,59 @@ +/* + * Copyright 2012 by Graz University of Technology, Austria + * MOCCA has been developed by the E-Government Innovation Center EGIZ, a joint + * initiative of the Federal Chancellery Austria and Graz University of Technology. + * + * 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://www.osor.eu/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. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ + +package at.gv.egiz.bku.online.applet; + +import java.awt.Container; +import java.net.URL; +import java.util.Locale; + +import at.gv.egiz.bku.gui.BKUGUIFacade; +import at.gv.egiz.bku.gui.GetHardwareInfoGUI; +import at.gv.egiz.bku.gui.GetHardwareInfoGUIFacade; +import at.gv.egiz.bku.gui.HelpListener; +import at.gv.egiz.bku.gui.SwitchFocusListener; +import at.gv.egiz.bku.gui.viewer.FontProvider; + +/** +* +* @author Thomas Lenz +*/ + +public class HardwareInfoApplet extends BKUApplet { + private static final long serialVersionUID = 1L; + + @Override + protected BKUGUIFacade createGUI(Container contentPane, Locale locale, + BKUGUIFacade.Style guiStyle, URL backgroundImgURL, + FontProvider fontProvider, HelpListener helpListener, + SwitchFocusListener switchFocusListener) { + return new GetHardwareInfoGUI(contentPane, locale, + backgroundImgURL, fontProvider, helpListener, + switchFocusListener); + } + + @Override + protected AppletBKUWorker createBKUWorker(BKUApplet applet, BKUGUIFacade gui) { + return new HardwareInfoBKUWorker(applet, (GetHardwareInfoGUIFacade) gui); + } +} diff --git a/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/HardwareInfoBKUWorker.java b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/HardwareInfoBKUWorker.java new file mode 100644 index 00000000..bfa4d71e --- /dev/null +++ b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/HardwareInfoBKUWorker.java @@ -0,0 +1,100 @@ +/* + * Copyright 2012 by Graz University of Technology, Austria + * MOCCA has been developed by the E-Government Innovation Center EGIZ, a joint + * initiative of the Federal Chancellery Austria and Graz University of Technology. + * + * 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://www.osor.eu/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. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ + +package at.gv.egiz.bku.online.applet; + +import java.util.Collections; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.gv.egiz.bku.gui.BKUGUIFacade; +import at.gv.egiz.bku.gui.GetHardwareInfoGUIFacade; +import at.gv.egiz.bku.smccstal.GETHardwareInfoRequestHandler; +import at.gv.egiz.stal.ErrorResponse; +import at.gv.egiz.stal.InfoboxReadRequest; +import at.gv.egiz.stal.QuitRequest; +import at.gv.egiz.stal.STALResponse; +import at.gv.egiz.stal.SignRequest; +import at.gv.egiz.stal.ext.GETHardwareInfoRequest; +import at.gv.egiz.stal.ext.GETHardwareInfoResponse; + +/** +* +* @author Thomas Lenz +*/ + +public class HardwareInfoBKUWorker extends AppletBKUWorker { + private final Logger log = LoggerFactory.getLogger(HardwareInfoBKUWorker.class); + + public HardwareInfoBKUWorker(BKUApplet applet, GetHardwareInfoGUIFacade gui) { + super(applet, gui); + removeRequestHandler(InfoboxReadRequest.class); + removeRequestHandler(SignRequest.class); + addRequestHandler(GETHardwareInfoRequest.class, new GETHardwareInfoRequestHandler()); + } + + @Override + public void run() { + gui.showMessageDialog(BKUGUIFacade.TITLE_WELCOME, + BKUGUIFacade.MESSAGE_WELCOME); + + try { + + List responses = handleRequest(Collections.singletonList(new GETHardwareInfoRequest())); + handleRequest(Collections.singletonList(new QuitRequest())); + + if (responses.size() == 1) { + STALResponse response = responses.get(0); + if (response instanceof GETHardwareInfoResponse) { + log.debug("hardware-info dialog terminated."); + } else if (response instanceof ErrorResponse) { + log.debug("hardware-info dialog terminated with error."); + } else { + throw new RuntimeException("Invalid STAL response: " + response.getClass().getName()); + } + } else { + throw new RuntimeException("invalid number of STAL responses: " + responses.size()); + } + + } catch (RuntimeException ex) { + log.error(ex.getMessage()); + Throwable cause = ex.getCause(); + if (cause != null) { // && cause instanceof InterruptedException) { + log.info(cause.getMessage()); + } + showErrorDialog(BKUGUIFacade.ERR_UNKNOWN, null); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + showErrorDialog(BKUGUIFacade.ERR_UNKNOWN_WITH_PARAM, ex); + } finally { + if (signatureCard != null) { + signatureCard.disconnect(false); + } + } + + applet.sendRedirect(); + } + +} -- cgit v1.2.3