diff options
author | gregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2003-07-07 10:58:37 +0000 |
---|---|---|
committer | gregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2003-07-07 10:58:37 +0000 |
commit | ece7d18cf35374bf4e26d041799cda8f791c89f8 (patch) | |
tree | 33707cb77627b65a2a4e7327a2e93fb7751c1b76 /spss.server/doc/moa_spss/APIClientExample.txt | |
parent | 273aed93c03b18a6c6bb1af745ae46a13ad3c7f2 (diff) | |
download | moa-id-spss-ece7d18cf35374bf4e26d041799cda8f791c89f8.tar.gz moa-id-spss-ece7d18cf35374bf4e26d041799cda8f791c89f8.tar.bz2 moa-id-spss-ece7d18cf35374bf4e26d041799cda8f791c89f8.zip |
Initial commit
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@2 d688527b-c9ab-4aba-bd8d-4036d912da1d
Diffstat (limited to 'spss.server/doc/moa_spss/APIClientExample.txt')
-rw-r--r-- | spss.server/doc/moa_spss/APIClientExample.txt | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/spss.server/doc/moa_spss/APIClientExample.txt b/spss.server/doc/moa_spss/APIClientExample.txt new file mode 100644 index 000000000..10324f221 --- /dev/null +++ b/spss.server/doc/moa_spss/APIClientExample.txt @@ -0,0 +1,100 @@ +import java.io.ByteArrayInputStream; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import at.gv.egovernment.moa.spss.api.SPSSFactory; +import at.gv.egovernment.moa.spss.api.SignatureCreationService; +import at.gv.egovernment.moa.spss.api.xmlsign.*; +import at.gv.egovernment.moa.spss.api.common.*; + +/** + * @author Sven Aigner + * + * Dies ist ein einfaches Beispielprogramm für die Erstellung + * einer digitalen Signatur mittel der API-Funktionen des + * MOA-SPSS Servers + */ +public class APIClientExample { + + /** + * Hauptfunktion des Beispielprogramms + * @param args wird nicht ausgewertet + * @throws Exception sollten Fehler auftreten werden die Fehler an die Java-VM weitergeleitet + */ + public static void main(String[] args) throws Exception{ + + // Serverfunktionshandler instanzieren + SPSSFactory spf = SPSSFactory.getInstance(); + + // Signaturedaten in ein Contentobjekt einbinden + byte []data = "Dies sind Testdaten".getBytes("UTF-8"); + ByteArrayInputStream bis = new ByteArrayInputStream(data); + Content cont = spf.createContent(bis,"http://uri.data.org"); + + // Beschreibungselement zu den Daten erstellen + MetaInfo mi = spf.createMetaInfo("text/plain","Testdaten",null); + + // Transformationen erstellen + CreateTransformsInfo cti = spf.createCreateTransformsInfo(null,mi); + CreateTransformsInfoProfile ct = spf.createCreateTransformsInfoProfile(cti,null); + + // Datenobjekt aufbauen + DataObjectInfo doi = spf.createDataObjectInfo(DataObjectInfo.STRUCTURE_DETACHED,false,cont,ct); + + List dataobjectinfolist = new ArrayList(); + dataobjectinfolist.add(doi); + // alles zusammenpacken zu einer SingleSignature + SingleSignatureInfo ssi = spf.createSingleSignatureInfo(dataobjectinfolist,null,false); + + List singlesignatureinfolist = new ArrayList(); + singlesignatureinfolist.add(ssi); + // die Signatur in einen Request einbetten + CreateXMLSignatureRequest cxsreq = spf.createCreateXMLSignatureRequest("PKCS12RSAKey1",singlesignatureinfolist); + + // Signatureerstellungsservice aufrufen + SignatureCreationService scs = SignatureCreationService.getInstance(); + + // Response auswerten + CreateXMLSignatureResponse cxsres = scs.createXMLSignature(cxsreq); + + List elements = cxsres.getResponseElements(); + + SignatureEnvironmentResponse ser = (SignatureEnvironmentResponse)elements.get(0); + + // Responsetyp lesen + 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 + Element se = ser.getSignatureEnvironment(); + System.out.println("Signaturerstellung erfolgreich"); + + displayTree(se); + } + } + + /** + * Einfache Ausgabefunktion für einen DOM-Baum + * @param input auszugebender Knoten + */ + public static void displayTree(Node input) + { + // Ausgabe eines Knotens + System.out.println(input); + // Alle Kindknoten ausgeben + NodeList children = input.getChildNodes(); + for(int counter=0;counter<children.getLength();counter++) + displayTree(children.item(counter)); + } +} |