aboutsummaryrefslogtreecommitdiff
path: root/spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java
diff options
context:
space:
mode:
Diffstat (limited to 'spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java')
-rw-r--r--spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java137
1 files changed, 137 insertions, 0 deletions
diff --git a/spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java b/spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java
new file mode 100644
index 000000000..b720f816a
--- /dev/null
+++ b/spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java
@@ -0,0 +1,137 @@
+/*
+* Copyright 2003 Federal Chancellery Austria
+*
+* 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.egovernment.moa.spss.handbook.clients.webservice;
+
+
+/**
+ * Diese Klasse implementiert einen einfachen Client für das MOA SP/SS Webservice mittels Apache Axis. Die
+ * Verbindung erfolgt gesichert über SSL, und zwar sowohl mit Server- und Clientauthentisierung.
+ */
+public class HTTPSClientAuth extends HTTPSServerAuth
+{
+ // JSSE Konstanten
+ public static final String KEYSTORE = "javax.net.ssl.keyStore";
+ public static final String KEYSTOREPASSWORD = "javax.net.ssl.keyStorePassword";
+ public static final String KEYSTORETYPE = "javax.net.ssl.keyStoreType";
+
+ /**
+ * Methode main.
+ *
+ * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können. Der Zugriff
+ * passiert über das AXIS-Framework. Die Verbindung erfolgt gesichert über SSL, und zwar sowohl mit
+ * Server- und Clientauthentisierung.
+ *
+ * @param args <ul>
+ * <li>
+ * args[0] enthält entweder die Bezeichnung "sign" oder "verify" zur Kennzeichnung,
+ * ob ein Signaturerstellungsrequest, oder ein Signaturprüfrequest gesendet werden soll.
+ * </li>
+ * <li>
+ * args[1] enthält einen Verweis auf eine Property-Datei, die die nähere Konfiguration
+ * für dieses Beispiel enthält. Der Verweis enthält entweder eine absolute oder eine
+ * relative Pfadangabe, wobei eine relative Angabe als relativ zum Arbeitsverzeichnis der
+ * Java VM interpretiert wird. Folgende Properties müssen in der Properties-Datei vorhanden
+ * sein:
+ * <ul>
+ * <li>
+ * <code>signServiceQName</code>: Name des Webservices, fix "SignatureCreation"
+ * </li>
+ * <li>
+ * <code>signServiceEndPoint</code>: Zugangspunkt des Webservices (URL)
+ * </li>
+ * <li>
+ * <code>signRequest</code>: Name des zu sendenden Signaturerstellungsrequests (entweder
+ * absolute oder relative Pfadangabe; eine relative Pfadangabe wird relativ zum
+ * Arbeitsverzeichnis der Java VM interpretiert)
+ * </li>
+ * <li>
+ * <code>verifyServiceQName</code>: Name des Webservices, fix "SignatureVerification"
+ * </li>
+ * <li>
+ * <code>verifyServiceEndPoint</code>: Zugangspunkt des Webservices (URL)
+ * </li>
+ * <li>
+ * <code>verifyRequest</code>: Name des zu sendenden Signaturprüfrequests (entweder
+ * absolute oder relative Pfadangabe; eine relative Pfadangabe wird relativ zum
+ * Arbeitsverzeichnis der Java VM interpretiert)
+ * </li>
+ * <li>
+ * <code>ssl.truststore.type</code>: Typ des JSSE-Truststores (entweder "JKS" für einen
+ * Java Key Store oder "PKCS12" für eine PKCS#12-Datei).
+ * </li>
+ * <li><code>ssl.truststore.type</code>: Relativer oder absoluter Pfad zum JSSE-Truststore.
+ * Ein relativer Pfad wird relativ zum Arbeitsverzeichnis der Java VM interpretiert).
+ * </li>
+ * <li><code>ssl.truststore.pwd</code>: Passwort für den JSSE-Truststore.
+ * </li>
+ * <li>
+ * <code>ssl.keystore.type</code>: Typ des JSSE-Keystores (entweder "JKS" für einen
+ * Java Key Store oder "PKCS12" für eine PKCS#12-Datei).
+ * </li>
+ * <li><code>ssl.keystore.type</code>: Relativer oder absoluter Pfad zum JSSE-Keystore.
+ * Ein relativer Pfad wird relativ zum Arbeitsverzeichnis der Java VM interpretiert).
+ * </li>
+ * <li><code>ssl.keystore.pwd</code>: Passwort für den JSSE-Keystore.
+ * </li>
+ * </ul>
+ * </li>
+ * </ul>
+ */
+ public static void main(String[] args)
+ {
+ try
+ {
+ // Prüfen, ob Beispiel korrekt verwendet wird
+ checkArgs(args, "HTTP");
+
+ // Initialisieren des Clients
+ HTTPSClientAuth httpClient = new HTTPSClientAuth(args);
+
+ // Ausführen der Serviceabfrage
+ httpClient.execute(args[0]);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Erzeugt den MOA Client. Es erfolgt die Auswertung der übergebenen Aufrufparameter.
+ *
+ * @param args Die Aufrufparameter für das Beispiel. Siehe {@link HTTPSClientAuth#main(String[])}.
+ *
+ * @throws Exception wenn der MOA Client mit den übergebenen Aufrufparametern nicht korrekt erzeugt
+ * werden konnte.
+ */
+ protected HTTPSClientAuth(String[] args) throws Exception
+ {
+ super(args);
+ }
+
+ /**
+ * Konfiguriert JSSE für eine SSL-Verbindung mit Client- und Serverauthentisierung.
+ */
+ protected void configureSSL() throws Exception
+ {
+ super.configureSSL();
+
+ // Konfiguriere Key-Store (enthält privaten Schlüssel und Zertifikat des Clients)
+ System.setProperty(KEYSTORETYPE, getProperty("ssl.keystore.type"));
+ System.setProperty(KEYSTORE, getProperty("ssl.keystore.loc"));
+ System.setProperty(KEYSTOREPASSWORD, getProperty("ssl.keystore.pwd"));
+ }
+} \ No newline at end of file