summaryrefslogtreecommitdiff
path: root/BKUAppletExt
diff options
context:
space:
mode:
Diffstat (limited to 'BKUAppletExt')
-rw-r--r--BKUAppletExt/keystore.ksbin0 -> 5635 bytes
-rw-r--r--BKUAppletExt/nbactions.xml13
-rw-r--r--BKUAppletExt/pom.xml147
-rw-r--r--BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/ActivationApplet.java94
-rw-r--r--BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/PINManagementApplet.java55
-rw-r--r--BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/PINManagementBKUWorker.java91
-rw-r--r--BKUAppletExt/src/test/resources/appletTest.html34
7 files changed, 434 insertions, 0 deletions
diff --git a/BKUAppletExt/keystore.ks b/BKUAppletExt/keystore.ks
new file mode 100644
index 00000000..824c3a40
--- /dev/null
+++ b/BKUAppletExt/keystore.ks
Binary files differ
diff --git a/BKUAppletExt/nbactions.xml b/BKUAppletExt/nbactions.xml
new file mode 100644
index 00000000..286e3ba6
--- /dev/null
+++ b/BKUAppletExt/nbactions.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<actions>
+ <action>
+ <actionName>CUSTOM-PackageNoTests</actionName>
+ <displayName>PackageNoTests</displayName>
+ <goals>
+ <goal>package</goal>
+ </goals>
+ <properties>
+ <maven.test.skip>true</maven.test.skip>
+ </properties>
+ </action>
+ </actions>
diff --git a/BKUAppletExt/pom.xml b/BKUAppletExt/pom.xml
new file mode 100644
index 00000000..64236425
--- /dev/null
+++ b/BKUAppletExt/pom.xml
@@ -0,0 +1,147 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>bku</artifactId>
+ <groupId>at.gv.egiz</groupId>
+ <version>1.2.11</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>at.gv.egiz</groupId>
+ <artifactId>BKUAppletExt</artifactId>
+ <name>BKU Applet Extension</name>
+ <version>1.2.11</version>
+ <description />
+ <dependencies>
+ <dependency>
+ <groupId>at.gv.egiz</groupId>
+ <artifactId>STALExt</artifactId>
+ <version>1.2.11</version>
+ </dependency>
+ <dependency>
+ <groupId>at.gv.egiz</groupId>
+ <artifactId>STALXService</artifactId>
+ <version>1.2.11</version>
+ </dependency>
+ <dependency>
+ <groupId>at.gv.egiz</groupId>
+ <artifactId>smccSTAL</artifactId>
+ <version>1.2.11</version>
+ </dependency>
+ <dependency>
+ <groupId>at.gv.egiz</groupId>
+ <artifactId>BKUApplet</artifactId>
+ <version>1.2.11</version>
+ </dependency>
+ <dependency>
+ <groupId>at.gv.egiz</groupId>
+ <artifactId>BKUGuiExt</artifactId>
+ <version>1.2.11</version>
+ </dependency>
+ <dependency>
+ <groupId>at.gv.egiz</groupId>
+ <artifactId>smccSTALExt</artifactId>
+ <version>1.2.11</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>maven-buildnumber-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>validate</phase>
+ <goals>
+ <goal>create</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <doCheck>false</doCheck>
+ <doUpdate>false</doUpdate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <groupId>org.apache.maven.plugins</groupId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>sign</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <archive>
+ <addMavenDescriptor>false</addMavenDescriptor>
+ <index>false</index>
+ <manifest>
+ <addClasspath>false</addClasspath>
+ <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+ </manifest>
+ <manifestEntries>
+ <Implementation-Build>${project.version}-r${buildNumber}</Implementation-Build>
+ </manifestEntries>
+ </archive>
+ <alias>test-applet signer</alias>
+ <keystore>./keystore.ks</keystore>
+ <storepass>storepass</storepass>
+ <keypass>keypass</keypass>
+ <verify>true</verify>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack</id>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <configuration>
+ <includeGroupIds>at.gv.egiz</includeGroupIds>
+ <excludeTransitive>true</excludeTransitive>
+ <outputDirectory>${project.build.outputDirectory}</outputDirectory>
+ <excludes>META-INF\/</excludes>
+ </configuration>
+ </execution>
+ <execution>
+ <!-- appletviewer target/test-classes/appletTest.html
+ | commons-logging and iaik_jce_me4se are transitive dependencies
+ |-->
+ <id>copy_testapplet</id>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/test-classes</outputDirectory>
+ <includeGroupIds>commons-logging,iaik</includeGroupIds>
+ <includeArtifactIds>commons-logging,iaik_jce_me4se</includeArtifactIds>
+ <stripVersion>true</stripVersion>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <profile>
+ <id>pkcs11-sign</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <groupId>org.apache.maven.plugins</groupId>
+ <version>2.2-mocca</version>
+ <configuration>
+ <keystore>NONE</keystore>
+ <type>PKCS11</type>
+ <providerClass>iaik.pkcs.pkcs11.provider.IAIKPkcs11</providerClass>
+ <alias>a-sit</alias>
+ <storepass>${pkcs11-pass}</storepass>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project> \ No newline at end of file
diff --git a/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/ActivationApplet.java b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/ActivationApplet.java
new file mode 100644
index 00000000..4f2f1331
--- /dev/null
+++ b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/ActivationApplet.java
@@ -0,0 +1,94 @@
+/*
+ * 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 at.gv.egiz.bku.gui.AbstractHelpListener;
+import at.gv.egiz.bku.gui.ActivationGUI;
+import at.gv.egiz.bku.gui.BKUGUIFacade;
+import at.gv.egiz.bku.gui.SwitchFocusListener;
+import at.gv.egiz.bku.gui.BKUGUIFacade.Style;
+import at.gv.egiz.bku.gui.viewer.FontProvider;
+import at.gv.egiz.bku.online.applet.BKUApplet;
+import at.gv.egiz.bku.smccstal.AbstractSMCCSTAL;
+import at.gv.egiz.bku.smccstal.CardMgmtRequestHandler;
+import at.gv.egiz.stal.ext.APDUScriptRequest;
+import at.gv.egiz.stal.service.STALPortType;
+import at.gv.egiz.stal.service.translator.STALTranslator;
+import at.gv.egiz.stalx.service.STALService;
+import at.gv.egiz.stalx.service.translator.STALXTranslationHandler;
+import java.awt.Container;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Locale;
+import javax.xml.namespace.QName;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ *
+ * @author Clemens Orthacker <clemens.orthacker@iaik.tugraz.at>
+ */
+public class ActivationApplet extends BKUApplet {
+
+ private static final long serialVersionUID = 1L;
+ private static Log log = LogFactory.getLog(ActivationApplet.class);
+
+ @Override
+ public void init() {
+ super.init();
+ if (worker instanceof AbstractSMCCSTAL) {
+ CardMgmtRequestHandler handler = new CardMgmtRequestHandler();
+ ((AbstractSMCCSTAL) worker).addRequestHandler(APDUScriptRequest.class, handler);
+ log.debug("Registered CardMgmtRequestHandler");
+ } else {
+ log.warn("Cannot register CardMgmtRequestHandler.");
+ }
+ }
+
+ /**
+ * creates a STAL-X enabled webservice port
+ * @return
+ * @throws java.net.MalformedURLException
+ */
+ @Override
+ 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);
+ log.info("creating STAL-X enabled webservice port");
+ STALService stal = new STALService(wsdlURL, endpointName);
+ return stal.getSTALPort();
+ }
+
+ @Override
+ public STALTranslator getSTALTranslator() {
+ STALTranslator translator = super.getSTALTranslator();
+ translator.registerTranslationHandler(new STALXTranslationHandler());
+ return translator;
+ }
+
+ @Override
+ protected BKUGUIFacade createGUI(Container contentPane,
+ Locale locale,
+ Style guiStyle,
+ URL backgroundImgURL,
+ FontProvider fontProvider,
+ AbstractHelpListener helpListener,
+ SwitchFocusListener switchFocusListener) {
+ return new ActivationGUI(contentPane, locale, guiStyle, backgroundImgURL, fontProvider, helpListener, switchFocusListener);
+ }
+}
diff --git a/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/PINManagementApplet.java b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/PINManagementApplet.java
new file mode 100644
index 00000000..bf323969
--- /dev/null
+++ b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/PINManagementApplet.java
@@ -0,0 +1,55 @@
+/*
+ * 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 at.gv.egiz.bku.gui.AbstractHelpListener;
+import at.gv.egiz.bku.gui.BKUGUIFacade;
+import at.gv.egiz.bku.gui.PINManagementGUI;
+import at.gv.egiz.bku.gui.PINManagementGUIFacade;
+import at.gv.egiz.bku.gui.SwitchFocusListener;
+import at.gv.egiz.bku.gui.viewer.FontProvider;
+import java.awt.Container;
+import java.net.URL;
+import java.util.Locale;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ *
+ * @author Clemens Orthacker <clemens.orthacker@iaik.tugraz.at>
+ */
+public class PINManagementApplet extends BKUApplet {
+
+ private static final long serialVersionUID = 1L;
+ private static Log log = LogFactory.getLog(PINManagementApplet.class);
+
+ @Override
+ protected BKUGUIFacade createGUI(Container contentPane,
+ Locale locale,
+ BKUGUIFacade.Style guiStyle,
+ URL backgroundImgURL,
+ FontProvider fontProvider,
+ AbstractHelpListener helpListener,
+ SwitchFocusListener switchFocusListener) {
+ return new PINManagementGUI(contentPane, locale, guiStyle, backgroundImgURL, fontProvider, helpListener, switchFocusListener);
+ }
+
+ @Override
+ protected AppletBKUWorker createBKUWorker(BKUApplet applet, BKUGUIFacade gui) {
+ return new PINManagementBKUWorker(applet, (PINManagementGUIFacade) gui);
+ }
+}
diff --git a/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/PINManagementBKUWorker.java b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/PINManagementBKUWorker.java
new file mode 100644
index 00000000..5dedcedb
--- /dev/null
+++ b/BKUAppletExt/src/main/java/at/gv/egiz/bku/online/applet/PINManagementBKUWorker.java
@@ -0,0 +1,91 @@
+/*
+ * 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 at.gv.egiz.bku.gui.BKUGUIFacade;
+import at.gv.egiz.bku.gui.PINManagementGUIFacade;
+import at.gv.egiz.bku.smccstal.PINManagementRequestHandler;
+import at.gv.egiz.stal.ErrorResponse;
+import at.gv.egiz.stal.InfoboxReadRequest;
+import at.gv.egiz.stal.QuitRequest;
+import at.gv.egiz.stal.STALRequest;
+import at.gv.egiz.stal.STALResponse;
+import at.gv.egiz.stal.SignRequest;
+import at.gv.egiz.stal.ext.PINManagementRequest;
+import at.gv.egiz.stal.ext.PINManagementResponse;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * This BKU Worker does not connect to STAL webservice
+ * (no Internet connection permitted while activating PINs).
+ *
+ * @author Clemens Orthacker <clemens.orthacker@iaik.tugraz.at>
+ */
+public class PINManagementBKUWorker extends AppletBKUWorker {
+
+ public PINManagementBKUWorker(BKUApplet applet, PINManagementGUIFacade gui) {
+ super(applet, gui);
+ removeRequestHandler(InfoboxReadRequest.class);
+ removeRequestHandler(SignRequest.class);
+ addRequestHandler(PINManagementRequest.class, new PINManagementRequestHandler());
+ }
+
+ @Override
+ public void run() {
+ gui.showMessageDialog(BKUGUIFacade.TITLE_WELCOME,
+ BKUGUIFacade.MESSAGE_WELCOME);
+
+ try {
+
+ List<STALResponse> responses = handleRequest(Collections.singletonList(new PINManagementRequest()));
+ handleRequest(Collections.singletonList(new QuitRequest()));
+
+ if (responses.size() == 1) {
+ STALResponse response = responses.get(0);
+ if (response instanceof PINManagementResponse) {
+ log.debug("PIN management dialog terminated");
+ } else if (response instanceof ErrorResponse) {
+ log.debug("PIN management 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(sessionId);
+ }
+
+ }
diff --git a/BKUAppletExt/src/test/resources/appletTest.html b/BKUAppletExt/src/test/resources/appletTest.html
new file mode 100644
index 00000000..813ee1f0
--- /dev/null
+++ b/BKUAppletExt/src/test/resources/appletTest.html
@@ -0,0 +1,34 @@
+<!--
+ 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.
+-->
+<html>
+ <body>
+ <center>
+ <applet code="at.gv.egiz.bku.online.applet.PINManagementApplet.class"
+ archive="../BKUAppletExt-1.0.2-SNAPSHOT.jar, commons-logging.jar , iaik_jce_me4se.jar"
+ width=270 height=180>
+ <param name="GuiStyle" value="simple"/>
+ <param name="Locale" value="ja_JA"/>
+ <!--param name="Background" value="jar:file:/home/clemens/workspace/mocca/BKUApplet/target/BKUApplet-1.0-SNAPSHOT.jar!/images/help.png"/-->
+ <!--param name="Background" value="http://localhost:3495/img/BackgroundChipperling.png"/-->
+ <param name="WSDL_URL" value="https://danu.gv.at:3496/stal?wsdl"/>
+ <param name="HelpURL" value="http://apps.egiz.gv.at/bkuonline/help/"/>
+ <param name="SessionId" value="TestSession"/>
+ <param name="RedirectURL" value="http://localhost:3495/bkuResult"/>
+ </applet>
+ </center>
+ </body>
+</html> \ No newline at end of file