diff options
Diffstat (limited to 'spss/handbook/clients/webservice/src/main')
3 files changed, 0 insertions, 524 deletions
diff --git a/spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTP.java b/spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTP.java deleted file mode 100644 index 0ed47e4a9..000000000 --- a/spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTP.java +++ /dev/null @@ -1,229 +0,0 @@ -/* - * Copyright 2003 Federal Chancellery Austria - - * MOA-SPSS has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, 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.egovernment.moa.spss.handbook.clients.webservice; - -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.util.Properties; -import java.util.Vector; - -import javax.xml.namespace.QName; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.rpc.Call; -import javax.xml.rpc.Service; -import javax.xml.rpc.ServiceFactory; - -import org.apache.axis.message.SOAPBodyElement; -import org.apache.xml.serialize.OutputFormat; -import org.apache.xml.serialize.XMLSerializer; -import org.w3c.dom.Document; - -/** - * Diese Klasse implementiert einen einfachen Client f�r das MOA SP/SS Webservice mittels Apache Axis. Die - * Verbindung erfolgt ungesichert über HTTP. - */ -public class HTTP -{ - protected Properties props_; - - /** - * 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 ungesichert über HTTP. - * - * @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 Property-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> - * </ul> - * </li> - * </ul> - */ - public static void main(String[] args) - { - try - { - // Pr�fen, ob Beispiel korrekt verwendet wird - checkArgs(args, "HTTP"); - - // Initialisieren des Clients - HTTP httpClient = new HTTP(args); - - // Ausf�hren der Serviceabfrage - httpClient.execute(args[0]); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - /** - * Pr�ft, ob das Beispiel korrekt verwendet wird. - * - * @param args Die Aufrufparameter für das Beispiel. Siehe {@link HTTP#main(String[])}. - * - * @param exampleName Der Name dieses Beispiels, der im Hilfetext gedruckt wird. - */ - protected static void checkArgs(String[] args, String exampleName) - { - if (args == null || args.length != 2 || (!"sign".equals(args[0]) && !"verify".equals(args[0]))) - { - System.out.println("Verwendung: " + exampleName + " \"sign\"|\"verify\" Properties-Datei"); - } - } - - /** - * Erzeugt den MOA Client. Es erfolgt die Auswertung der �bergebenen Aufrufparameter. - * - * @param args Die Aufrufparameter für das Beispiel. Siehe {@link HTTP#main(String[])}. - * - * @throws Exception wenn der MOA Client mit den �bergebenen Aufrufparametern nicht korrekt erzeugt - * werden konnte. - */ - protected HTTP(String[] args) throws Exception - { - props_ = new Properties(); - props_.load(new FileInputStream(args[1])); - } - - /** - * F�hrt die Abfrage beim MOA-Service aus. - * - * @param mode Steuert, ob eine Signatur erstellt ("sign") oder gepr�ft ("verify") werden soll. - * - * @throws Exception wenn dabei etwas schiegeht. - */ - protected void execute(String mode) throws Exception - { - // Datei mit Request einlesen - FileInputStream inputStream = new FileInputStream(getProperty(mode + "Request")); - - // Parser/DOMBuilder instanzieren - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - - // XML Datei in einen DOM-Baum umwandeln - Document xmlRequest = builder.parse(inputStream); - - // AXIS-Server instanzieren - Service service = ServiceFactory.newInstance().createService(new QName(getProperty(mode + "ServiceQName"))); - - // Call �ffnen - Call call = service.createCall(); - - // Neues BodyElement anlegen und mit dem DOM-Baum f�llen - SOAPBodyElement body = new SOAPBodyElement(xmlRequest.getDocumentElement()); - SOAPBodyElement[] params = new SOAPBodyElement[] - { - body - }; - - // Call mit Endpoint verkn�pfen - call.setTargetEndpointAddress(getProperty(mode + "ServiceEndPoint")); - - // Call ausl�sen und die Antworten speichern - System.out.println("Calling ..."); - Vector responses = (Vector) call.invoke(params); - - // Erstes Body Element auslesen - SOAPBodyElement response = (SOAPBodyElement) responses.get(0); - - // Aus der Response den DOM-Baum lesen - Document root_response = response.getAsDocument(); - System.out.println("Return ..."); - - // XML-Formatierung konfiguieren - OutputFormat format = new OutputFormat((Document) root_response); - format.setLineSeparator("\n"); - format.setIndenting(false); - format.setPreserveSpace(true); - format.setOmitXMLDeclaration(false); - format.setEncoding("UTF-8"); - - // Ausgabe der Webservice-Antwort auf die Konsole - XMLSerializer conSerializer = new XMLSerializer(System.out, format); - conSerializer.serialize(root_response); - - // Ausgabe der Webservice-Antwort in Datei - String responseFile = getProperty(mode + "Request").substring(0, getProperty(mode + "Request").lastIndexOf('.')) - + ".response.xml"; - XMLSerializer fileSerializer = new XMLSerializer(new FileOutputStream(responseFile), format); - fileSerializer.serialize(root_response); - } - - /** - * Pr�ft ob die Property mit dem angegebenen Namen in den Konfigurations-Properties enthalten ist. - * - * @param propName Name der zu untersuchenden Property. - * - * @return den Wert der gesuchten Property. - * - * @throws Exception wenn die gesuchte Property nicht vorhanden ist. - */ - protected String getProperty(String propName) throws Exception - { - String propValue = props_.getProperty(propName); - if ((propValue == null) || "".equals(propValue.trim())) - { - throw new Exception("Property named \"" + propName + "\" does not exist."); - } - return propValue; - } -}
\ No newline at end of file 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 deleted file mode 100644 index 33a94ff55..000000000 --- a/spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright 2003 Federal Chancellery Austria - * MOA-SPSS has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, 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.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. - * - * Enthaelt den Beispielcode der noetig ist um von Java aus auf MOA-SPSS zugreifen zu koennen. Der Zugriff - * passiert ueber das AXIS-Framework. Die Verbindung erfolgt gesichert ueber SSL, und zwar sowohl mit - * Server- und Clientauthentisierung. - * - * @param args <ul> - * <li> - * args[0] enthaelt entweder die Bezeichnung "sign" oder "verify" zur Kennzeichnung, - * ob ein Signaturerstellungsrequest, oder ein Signaturprüefrequest gesendet werden soll. - * </li> - * <li> - * args[1] enthaelt einen Verweis auf eine Property-Datei, die die n�here Konfiguration - * fuer dieses Beispiel enthaelt. Der Verweis enthaelt entweder eine absolute oder eine - * relative Pfadangabe, wobei eine relative Angabe als relativ zum Arbeitsverzeichnis der - * Java VM interpretiert wird. Folgende Properties muessen 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 Signaturpruefrequests (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" fuer einen - * Java Key Store oder "PKCS12" fuer 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" fuer einen - * Java Key Store oder "PKCS12" fuer 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 uebergebenen Aufrufparameter. - * - * @param args Die Aufrufparameter fuer 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 fuer 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 diff --git a/spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java b/spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java deleted file mode 100644 index d72564812..000000000 --- a/spss/handbook/clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright 2003 Federal Chancellery Austria - * MOA-SPSS has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, 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.egovernment.moa.spss.handbook.clients.webservice; - -import java.security.Security; - -import com.sun.net.ssl.internal.ssl.Provider; - -/** - * Diese Klasse implementiert einen einfachen Client f�r das MOA SP/SS Webservice mittels Apache Axis. Die - * Verbindung erfolgt gesichert ueber SSL, und zwar nur mit Serverauthentisierung. - */ -public class HTTPSServerAuth extends HTTP -{ - // JSSE Konstanten - public static final String HANDLER = "java.protocol.handler.pkgs"; - public static final String TRUSTSTORE = "javax.net.ssl.trustStore"; - public static final String TRUSTSTOREPASSWORD = "javax.net.ssl.trustStorePassword"; - public static final String TRUSTSTORETYPE = "javax.net.ssl.trustStoreType"; - - /** - * Methode main. - * - * Enthaelt den Beispielcode der noetig ist um von Java aus auf MOA-SPSS zugreifen zu koennen. Der Zugriff - * passiert ueber das AXIS-Framework. Die Verbindung erfolgt gesichert ueber SSL, und zwar nur mit - * Serverauthentisierung. - * - * @param args <ul> - * <li> - * args[0] enthaelt entweder die Bezeichnung "sign" oder "verify" zur Kennzeichnung, - * ob ein Signaturerstellungsrequest, oder ein Signaturpruefrequest gesendet werden soll. - * </li> - * <li> - * args[1] enthaelt einen Verweis auf eine Property-Datei, die die naehere Konfiguration - * fuer dieses Beispiel enthaelt. Der Verweis enthaelt entweder eine absolute oder eine - * relative Pfadangabe, wobei eine relative Angabe als relativ zum Arbeitsverzeichnis der - * Java VM interpretiert wird. Folgende Properties muessen 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 Signaturpruefrequests (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" fuer einen - * Java Key Store oder "PKCS12" fuer 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 fuer den JSSE-Truststore. - * </li> - * </ul> - * </li> - * </ul> - */ - public static void main(String[] args) - { - try - { - // Pr�fen, ob Beispiel korrekt verwendet wird - checkArgs(args, "HTTP"); - - // Initialisieren des Clients - HTTPSServerAuth httpClient = new HTTPSServerAuth(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 fuer das Beispiel. Siehe {@link HTTPSServerAuth#main(String[])}. - * - * @throws Exception wenn der MOA Client mit den uebergebenen Aufrufparametern nicht korrekt erzeugt - * werden konnte. - */ - protected HTTPSServerAuth(String[] args) throws Exception - { - super(args); - configureSSL(); - } - - /** - * Konfiguriert JSSE fuer eine SSL-Verbindung mit Serverauthentisierung. - * - * @throws Exception wenn die Konfiguration von JSSE fehlschlaegt. - */ - protected void configureSSL() throws Exception - { - // Aktivieren Sie die n�chste Zeile f�r detailliertes Logging des SSL-Verbindungsaufbaus - // System.setProperty("javax.net.debug", "all"); - - // Setzen des korrekten Protokoll-Handlers f�r https - Security.addProvider(new Provider()); - System.setProperty(HANDLER, "com.sun.net.ssl.internal.www.protocol"); - - // Konfiguriere Trust-Store (enth�lt SSL-Zertifikat des MOA Services, dem vertraut wird) - System.setProperty(TRUSTSTORETYPE, getProperty("ssl.truststore.type")); - System.setProperty(TRUSTSTORE, getProperty("ssl.truststore.loc")); - System.setProperty(TRUSTSTOREPASSWORD, getProperty("ssl.truststore.pwd")); - } -}
\ No newline at end of file |