/* * 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 */ 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")); } }