diff options
Diffstat (limited to 'spss.handbook/clients/webservice')
22 files changed, 410 insertions, 0 deletions
| diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/axis-ant.jar b/spss.handbook/clients/webservice/lib/axis-1_1/axis-ant.jarBinary files differ new file mode 100644 index 000000000..9cb30a98a --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/axis-ant.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/axis.jar b/spss.handbook/clients/webservice/lib/axis-1_1/axis.jarBinary files differ new file mode 100644 index 000000000..869ee16f5 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/axis.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/commons-discovery.jar b/spss.handbook/clients/webservice/lib/axis-1_1/commons-discovery.jarBinary files differ new file mode 100644 index 000000000..b88554847 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/commons-discovery.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/commons-logging.jar b/spss.handbook/clients/webservice/lib/axis-1_1/commons-logging.jarBinary files differ new file mode 100644 index 000000000..b99c9375a --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/commons-logging.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/jaxrpc.jar b/spss.handbook/clients/webservice/lib/axis-1_1/jaxrpc.jarBinary files differ new file mode 100644 index 000000000..5f6a56f02 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/jaxrpc.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/log4j-1.2.8.jar b/spss.handbook/clients/webservice/lib/axis-1_1/log4j-1.2.8.jarBinary files differ new file mode 100644 index 000000000..493a3ccc1 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/log4j-1.2.8.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/saaj.jar b/spss.handbook/clients/webservice/lib/axis-1_1/saaj.jarBinary files differ new file mode 100644 index 000000000..f2242abe5 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/saaj.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/wsdl4j.jar b/spss.handbook/clients/webservice/lib/axis-1_1/wsdl4j.jarBinary files differ new file mode 100644 index 000000000..820abd082 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/wsdl4j.jar diff --git a/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jcert.jar b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jcert.jarBinary files differ new file mode 100644 index 000000000..d33134214 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jcert.jar diff --git a/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jnet.jar b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jnet.jarBinary files differ new file mode 100644 index 000000000..e1d340093 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jnet.jar diff --git a/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jsse.jar b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jsse.jarBinary files differ new file mode 100644 index 000000000..123188c5e --- /dev/null +++ b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jsse.jar diff --git a/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xercesImpl.jar b/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xercesImpl.jarBinary files differ new file mode 100644 index 000000000..f25d73cd7 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xercesImpl.jar diff --git a/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xmlParserAPIs.jar b/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xmlParserAPIs.jarBinary files differ new file mode 100644 index 000000000..c1fa1d645 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xmlParserAPIs.jar diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1(pwd=kunde1).p12 b/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1(pwd=kunde1).p12Binary files differ new file mode 100644 index 000000000..18d0bb6eb --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1(pwd=kunde1).p12 diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1.der b/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1.derBinary files differ new file mode 100644 index 000000000..2844e3aab --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1.der diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer1/trustedServers(pwd=servers).keystore b/spss.handbook/clients/webservice/resources/sslKeys/customer1/trustedServers(pwd=servers).keystoreBinary files differ new file mode 100644 index 000000000..d32a22f0f --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer1/trustedServers(pwd=servers).keystore diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2(pwd=kunde2).p12 b/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2(pwd=kunde2).p12Binary files differ new file mode 100644 index 000000000..ca7c31276 --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2(pwd=kunde2).p12 diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2.der b/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2.derBinary files differ new file mode 100644 index 000000000..27b20cd71 --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2.der diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer2/trustedServers(pwd=servers).keystore b/spss.handbook/clients/webservice/resources/sslKeys/customer2/trustedServers(pwd=servers).keystoreBinary files differ new file mode 100644 index 000000000..d32a22f0f --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer2/trustedServers(pwd=servers).keystore diff --git a/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTP.java b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTP.java new file mode 100644 index 000000000..646c53947 --- /dev/null +++ b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTP.java @@ -0,0 +1,114 @@ +package at.gv.egovernment.moa.spss.handbook.clients.webservice; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +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 +{ +  // Zugangspunkt für Signaturerstellung (SS) +  private static final QName SERVICE_QNAME_ = new QName("SignatureCreation"); +  private static final String ENDPOINT_ = "http://localhost:8080/moa-spss/services/SignatureCreation"; + +  // Zugangspunkt für Signaturprüfung (SP) +//  private static final QName SERVICE_QNAME_ = new QName("SignatureVerification"); +//  private static final String ENDPOINT_ ="http://localhost:8080/moa-spss/services/SignatureVerification"; + +  // Datei mit dem zu sendenden XML-Request +  private static final String XML_REQUEST_FILENAME_ =  +    "clients/common/resources/requests/CreateXMLSignatureRequest1.xml"; +//    "clients/common/resources/requests/CreateXMLSignatureRequest2.xml"; +//    "clients/common/resources/requests/VerifyCMSSignatureRequest.xml"; +//    "clients/common/resources/requests/VerifyXMLSignatureRequest1.xml"; +//    "clients/common/resources/requests/VerifyXMLSignatureRequest2.xml"; + +  /** +   * 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 Wird nicht verwendet. +   */ +  public static void main(String[] args) +  { +    try +    { +      // Datei mit Request einlesen +      FileInputStream inputStream = new FileInputStream(XML_REQUEST_FILENAME_); + +      // 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(SERVICE_QNAME_); + +      // 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(ENDPOINT_); + +      // 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 = XML_REQUEST_FILENAME_.substring(0, XML_REQUEST_FILENAME_.lastIndexOf('.')) +        + ".response.xml"; +      XMLSerializer fileSerializer = new XMLSerializer(new FileOutputStream(responseFile), format); +      fileSerializer.serialize(root_response); +    } +    catch (Exception e) +    { +      e.printStackTrace(); +    } +  } +}
\ No newline at end of file diff --git a/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java new file mode 100644 index 000000000..4d3b6641d --- /dev/null +++ b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java @@ -0,0 +1,154 @@ +package at.gv.egovernment.moa.spss.handbook.clients.webservice; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.security.Security; +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; + +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 über SSL, und zwar sowohl mit Server- und Clientauthentisierung. + */ +public class HTTPSClientAuth +{ +  // Zugangspunkt für Signaturerstellung (SS) +  private static final QName SERVICE_QNAME_ = new QName("SignatureCreation"); +  private static final String SECURE_ENDPOINT_ = "https://localhost:8443/moa-spss/services/SignatureCreation"; + +  // Zugangspunkt für Signaturprüfung (SP) +//  private static final QName SERVICE_QNAME_ = new QName("SignatureVerification"); +//  private static final String SECURE_ENDPOINT_ = "https://localhost:8443/moa-spss/services/SignatureVerification"; + +  // Datei mit dem zu sendenden XML-Request +  private static final String XML_REQUEST_FILENAME_ =  +    "clients/common/resources/requests/CreateXMLSignatureRequest1.xml"; +//    "clients/common/resources/requests/CreateXMLSignatureRequest2.xml"; +//    "clients/common/resources/requests/VerifyCMSSignatureRequest.xml"; +//    "clients/common/resources/requests/VerifyXMLSignatureRequest1.xml"; +//    "clients/common/resources/requests/VerifyXMLSignatureRequest2.xml"; + +  // SSL Konstanten +  public static final String HANDLER = "java.protocol.handler.pkgs"; + +  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"; + +  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. +   *  +   * 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 ist eine SSL Verbindung mit Clientauthentisierung. +   *  +   * @param args Wird nicht verwendet. +   */ +  public static void main(String[] args) +  { +    try +    { +      configureSSL(); + +      // Datei mit Request einlesen +      FileInputStream inputStream = new FileInputStream(XML_REQUEST_FILENAME_); + +      // Parser/DOMBuilder instanzieren +      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); +      factory.setNamespaceAware(true); +      DocumentBuilder builder = factory.newDocumentBuilder(); + +      // XML Datei in einen DOM-Baum umwandeln +      Document root_request = builder.parse(inputStream); + +      // AXIS-Server instanzieren +      Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME_); + +      // Call öffnen +      Call call = service.createCall(); + +      // Neues BodyElement anlegen und mit dem DOM-Baum füllen +      SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement()); +      SOAPBodyElement[] params = new SOAPBodyElement[] +        { +          body +        }; + +      // Call mit Endpoint verknüpfen +      call.setTargetEndpointAddress(SECURE_ENDPOINT_); + +      // Call auslösen und die Antworten speichern +      System.out.println("Calling ..."); +      Vector responses = (Vector) call.invoke(params); + +      // Erstes BodyElement 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 = XML_REQUEST_FILENAME_.substring(0, XML_REQUEST_FILENAME_.lastIndexOf('.')) +        + ".response.xml"; +      XMLSerializer fileSerializer = new XMLSerializer(new FileOutputStream(responseFile), format); +      fileSerializer.serialize(root_response); +    } +    catch (Exception e) +    { +      e.printStackTrace(); +    } +  } + +  /** +   * Konfiguriert JSSE für eine SSL-Verbindung mit Client- und Serverauthentisierung. +   */ +  private static void configureSSL() +  { +    Security.addProvider(new Provider()); +    System.setProperty(HANDLER, "com.sun.net.ssl.internal.www.protocol"); + +    // Konfiguriere Key-Store (enthält privaten Schluessel und Zertifikat des Clients +    System.setProperty(KEYSTORETYPE, "PKCS12"); +    System.setProperty(KEYSTORE, +        "clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1(pwd=kunde1).p12"); +//        "clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2(pwd=kunde2).p12"); +    System.setProperty(KEYSTOREPASSWORD, "kunde1"); +//    System.setProperty(KEYSTOREPASSWORD, "kunde2"); + +    // Konfiguriere Trust-Store (enthält SSL-Zertifikat des MOA Services, dem vertraut wird) +    System.setProperty(TRUSTSTORETYPE, "JKS"); +    System.setProperty(TRUSTSTORE, +        "clients/webservice/resources/sslKeys/customer1/trustedServers(pwd=servers).keystore"); +//        "clients/webservice/resources/sslKeys/customer2/trustedServers(pwd=servers).keystore"); +    System.setProperty(TRUSTSTOREPASSWORD, "servers"); +  } +}
\ No newline at end of file diff --git a/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java new file mode 100644 index 000000000..cd5036b7d --- /dev/null +++ b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java @@ -0,0 +1,142 @@ +package at.gv.egovernment.moa.spss.handbook.clients.webservice; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.security.Security; +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; + +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 über SSL, und zwar nur mit Serverauthentisierung. + */ +public class HTTPSServerAuth +{ +  // Zugangspunkt für Signaturerstellung (SS) +  private static final QName SERVICE_QNAME_ = new QName("SignatureCreation"); +  private static final String SECURE_ENDPOINT_ = "https://localhost:8443/moa-spss/services/SignatureCreation"; + +  // Zugangspunkt für Signaturprüfung (SP) +//  private static final QName SERVICE_QNAME_ = new QName("SignatureVerification"); +//  private static final String SECURE_ENDPOINT_ = "https://localhost:8443/moa-spss/services/SignatureVerification"; + +  // Datei mit dem zu sendenden XML-Request +  private static final String XML_REQUEST_FILENAME_ =  +    "clients/common/resources/requests/CreateXMLSignatureRequest1.xml"; +//    "clients/common/resources/requests/CreateXMLSignatureRequest2.xml"; +//    "clients/common/resources/requests/VerifyCMSSignatureRequest.xml"; +//    "clients/common/resources/requests/VerifyXMLSignatureRequest1.xml"; +//    "clients/common/resources/requests/VerifyXMLSignatureRequest2.xml"; + +  // SSL 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. +   *  +   * 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 ist eine SSL Verbindung mit Serverauthentisierung. +   *  +   * @param args Wird nicht verwendet. +   */ +  public static void main(String[] args) +  { +    try +    { +      configureSSL(); + +      // Datei mit Request einlesen +      FileInputStream inputStream = new FileInputStream(XML_REQUEST_FILENAME_); + +      // Parser/DOMBuilder instanzieren +      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); +      factory.setNamespaceAware(true); +      DocumentBuilder builder = factory.newDocumentBuilder(); + +      // XML Datei in einen DOM-Baum umwandeln +      Document root_request = builder.parse(inputStream); + +      // AXIS-Server instanzieren +      Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME_); + +      // Call öffnen +      Call call = service.createCall(); + +      // Neues BodyElement anlegen und mit dem DOM-Baum füllen +      SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement()); +      SOAPBodyElement[] params = new SOAPBodyElement[] +      { +        body +      }; + +      // Call mit Endpoint verknüpfen +      call.setTargetEndpointAddress(SECURE_ENDPOINT_); + +      // Call auslösen und die Antworten speichern +      System.out.println("Calling ..."); +      Vector responses = (Vector) call.invoke(params); + +      // Erstes BodyElement 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 = XML_REQUEST_FILENAME_.substring(0, XML_REQUEST_FILENAME_.lastIndexOf('.')) +        + ".response.xml"; +      XMLSerializer fileSerializer = new XMLSerializer(new FileOutputStream(responseFile), format); +      fileSerializer.serialize(root_response); +    } +    catch (Exception e) +    { +      e.printStackTrace(); +    } +  } + +  /** +   * Konfiguriert JSSE für eine SSL-Verbindung mit Serverauthentisierung. +   */ +  private static void configureSSL() +  { +    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, "JKS"); +    System.setProperty(TRUSTSTORE, +        "clients/webservice/resources/sslKeys/customer1/trustedServers(pwd=servers).keystore"); +//        "clients/webservice/resources/sslKeys/customer2/trustedServers(pwd=servers).keystore"); +    System.setProperty(TRUSTSTOREPASSWORD, "servers"); +  } +}
\ No newline at end of file | 
