From 9c3faadc1c80dae208e60d727dd63e91f874622e Mon Sep 17 00:00:00 2001 From: gregor Date: Tue, 5 Apr 2005 15:19:23 +0000 Subject: =?UTF-8?q?Erstellt=20(=C3=BCbernommen=20aus=20altem=20Handbuch;?= =?UTF-8?q?=20Quellcodedokumentation=20verbessert,=20System-Properties=20w?= =?UTF-8?q?erden=20=C3=BCber=20die=20Kommandozeile=20=C3=BCbergeben)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@285 d688527b-c9ab-4aba-bd8d-4036d912da1d --- .../handbook/clients/api/APIClientExample.java | 130 +++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 spss.handbook/clients/api/src/at/gv/egovernment/moa/spss/handbook/clients/api/APIClientExample.java (limited to 'spss.handbook/clients') diff --git a/spss.handbook/clients/api/src/at/gv/egovernment/moa/spss/handbook/clients/api/APIClientExample.java b/spss.handbook/clients/api/src/at/gv/egovernment/moa/spss/handbook/clients/api/APIClientExample.java new file mode 100644 index 000000000..a1e37fdd0 --- /dev/null +++ b/spss.handbook/clients/api/src/at/gv/egovernment/moa/spss/handbook/clients/api/APIClientExample.java @@ -0,0 +1,130 @@ +package at.gv.egovernment.moa.spss.handbook.clients.api; + +import java.io.ByteArrayInputStream; +import java.util.ArrayList; +import java.util.List; + +import org.w3c.dom.Element; + +import at.gv.egovernment.moa.spss.api.SPSSFactory; +import at.gv.egovernment.moa.spss.api.SignatureCreationService; +import at.gv.egovernment.moa.spss.api.common.Content; +import at.gv.egovernment.moa.spss.api.common.MetaInfo; +import at.gv.egovernment.moa.spss.api.xmlsign.CreateTransformsInfo; +import at.gv.egovernment.moa.spss.api.xmlsign.CreateTransformsInfoProfile; +import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureRequest; +import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureResponse; +import at.gv.egovernment.moa.spss.api.xmlsign.DataObjectInfo; +import at.gv.egovernment.moa.spss.api.xmlsign.SignatureEnvironmentResponse; +import at.gv.egovernment.moa.spss.api.xmlsign.SingleSignatureInfo; +import at.gv.egovernment.moa.util.DOMUtils; + +/** + * Dieses einfache Beispiel demonstriert grundlegend den Gebrauch der API von MOA SPSS. Es wird damit eine + * einfach aufgebaute XML-Signatur erzeugt. + */ +public class APIClientExample +{ + /** + * Methode main. + * + * Enthält beispielhaften Code zum grundlegenden Gebrauch der API von MOA SPSS. Es wird damit eine + * einfach aufgebaute XML-Signatur erzeugt. + * + * ACHTUNG: Stellen Sie bei Verwendung eines JDK 1.4.x sicher, dass Sie die System-Property + * java.endorsed.dirs auf jenes Verzeichnis gesetzt haben, in dem sich die XPath- + * und XSLT-Bibliothek Xalan-J befindet. + * + * @param args + * + * @throws Exception Sollten Fehler auftreten werden die Fehler an die Java-VM weitergeleitet. + */ + public static void main(String[] args) throws Exception + { + // Setzen der System-Properties + init(args); + + // Serverfunktionshandler instanzieren + SPSSFactory spf = SPSSFactory.getInstance(); + + // Zu signierende Daten in ein Contentobjekt einbinden (die Daten werden hier explizit angegeben, + // sollen aber in der Signatur mittels URL "http://uri.data.org" referenziert werden + byte[] data = "Dies sind Testdaten".getBytes("UTF-8"); + ByteArrayInputStream bis = new ByteArrayInputStream(data); + Content cont = spf.createContent(bis, "http://uri.data.org"); + + // Metainformationen zu den zu signierenden Daten erstellen + MetaInfo mi = spf.createMetaInfo("text/plain", "Testdaten", null, null); + + // Transformationen erstellen (hier werden keine Transformationen angewandt) + CreateTransformsInfo cti = spf.createCreateTransformsInfo(null, mi); + CreateTransformsInfoProfile ct = spf.createCreateTransformsInfoProfile(cti, null); + + // Datenobjekt aufbauen + DataObjectInfo doi = spf.createDataObjectInfo(DataObjectInfo.STRUCTURE_DETACHED, false, cont, ct); + + // Erstellen eines SingleSignatureInfo-Containers (enthält alle Angaben zur Erstellung *einer* + // Signatur + List dataobjectinfolist = new ArrayList(); + dataobjectinfolist.add(doi); + SingleSignatureInfo ssi = spf.createSingleSignatureInfo(dataobjectinfolist, null, false); + + // Erstellen des Request-Objekts (Schlüsselbezeichner, Liste von SingleSignatureInfo-Containern) + List singlesignatureinfolist = new ArrayList(); + singlesignatureinfolist.add(ssi); + CreateXMLSignatureRequest cxsreq = spf.createCreateXMLSignatureRequest("KG_allgemein", + singlesignatureinfolist); + + // Signatureerstellungsservice instanzieren und aufrufen + SignatureCreationService scs = SignatureCreationService.getInstance(); + CreateXMLSignatureResponse cxsres = scs.createXMLSignature(cxsreq); + + // Response auswerten + List elements = cxsres.getResponseElements(); + SignatureEnvironmentResponse ser = (SignatureEnvironmentResponse) elements.get(0); + + // Auswertung des ersten (und einzigen) SignatureEnvironmentResponse-Containers + int response_type = ser.getResponseType(); + + if (response_type == SignatureEnvironmentResponse.ERROR_RESPONSE) + { + // Fehlerfall + System.out.println("Bei der Erstellung der Signatur ist ein Fehler aufgetreten."); + } + else + { + // Signaturerstellung erfolgreich + System.out.println("Signaturerstellung erfolgreich:"); + + Element se = ser.getSignatureEnvironment(); + System.out.println(DOMUtils.serializeNode(se)); + } + } + + /** + * Setzt die notwendigen System-Properties für die Konfiguration der MOA SP/SS API. + * + * @param args Siehe @link APIClientExample#main(String[]). + */ + private static void init(String[] args) + { + if (args == null || args.length != 2) + { + System.out.println("Verwendung: APIClientExample "); + } + System.setProperty("moa.spss.server.configuration", args[0]); + System.setProperty("log4j.configuration", "file:" + args[1]); + } +} \ No newline at end of file -- cgit v1.2.3