
Die folgenden Beispiele zeigen verschiedene Möglichkeiten, wie Sie die Secure Connection Factory zum Einrichten von HTTP-Verbindungen verwenden können. Das erste Beispiel zeigt, wie Sie eine Verbindung nur mithilfe einer SSL-Server-Authentifizierung herstellen können. Das zweite Beispiel zeigt dieselbe Verbindung unter Verwendung gegenseitiger Authentifizierung. Das dritte Beispiel zeigt dieselbe Verbindung unter Verwendung von Benutzer-ID und Kennwort für die Client-Authentifizierung.
SSL-Server-Authentifizierung verwenden
Das folgende Beispiel zeigt, wie Sie nur mithilfe von SSL mit Server-Authentifizierung eine Verbindung zur Seite www.mycompany.com einrichten können. Für die Verifizierung des Zertifikats des Servers wird die Keystore namens keystoreCAs verwendet. Diese befindet sich in einem beliebigen Verzeichnis, beispielsweise einer Datei im Dateisystem.
Code-Beispiel für das Herstellen einer HTTPS-Verbindung mithilfe SSL-Server-Authentifizierung
// keystoreCAs Keystore-Instanz mit vertrauenswürdigen Zertifikaten // ... ist ein beliebiges Verzeichnis für Ihren Keystore KeyStore keystoreCAs = ... // Factory anlegen SecureConnectionFactory factory = new SecureConnectionFactory (keystoreCAs, null); // HTTPS-Verbindung anlegen HttpURLConnection con = factory.createURLConnection ("https://www.mycompany.com"); // Siehe JAVADOC für java.net.HttpURLConnection
Gegenseitige SSL-Authentifizierung verwenden
Das folgende Beispiel zeigt, wie die Verbindung zu www.mycompany.com mithilfe von SSL mit gegenseitiger Authentifizierung hergestellt wird. Für die Verifizierung des Zertifikats des Servers wird die Keystore namens keystoreCAs verwendet. Das Schlüsselpaar des Clients und das Zertifikat wurden im der Keystore keystoreMyKeys abgelegt. Beide Keystores befinden sich in einem beliebigen Verzeichnis, beispielsweise in einer Datei in einem Dateisystem.
Code-Beispiel für das Herstellen einer HTTPS-Verbindung mithilfe gegenseitiger SSL-Authentifizierung
// keystoreCAs Keystore-Instanz mit vertrauenswürdigen Zertifikaten // ... ist ein beliebiges Verzeichnis für Ihren Keystore KeyStore keystoreCAs = ... // keystoreMyKeys Keystore-Instanz mit key+certs für die // Anwendung (zur Client-Authentifizierung) KeyStore keystoreMyKeys = ... // Factory anlegen SecureConnectionFactory factory = new SecureConnectionFactory (keystoreCAs, keystoreMyKeys); // HTTPS-Verbindung anlegen HttpURLConnection con = factory.createURLConnection ("https://www.mycompany.com"); // Siehe JAVADOC für java.net.HttpURLConnectionBenutzer-ID und Kennwort zur Client-Authentifizierung verwenden
Das folgende Beispiel zeigt, wie die Verbindung zu www.mycompany.com mithilfe von SSL mit Server-Authentifizierung hergestellt wird. Sie verwendet Benutzer-ID und Kennwort zur Authentifizierung des Client.
Code-Beipiel für die Verwendung von Benutzer-ID und Kennwort zur Client-Authentifizierung
// keystoreCAs Keystore-Instanz mit vertrauenswürdigen Zertifikaten // ... ist ein beliebiges Verzeichnis für Ihren Keystore KeyStore keystoreCAs = ... // Factory anlegen SecureConnectionFactory factory = new SecureConnectionFactory (keystoreCAs, null); // HTTPS-Verbindung anlegen HttpURLConnection con = factory.createURLConnection ("https://www.mycompany.com"); // Siehe JAVADOC für java.net.HttpURLConnection // Standardauthentifizierung Header mit Benutzername und Kennwort zur // Client-Authentifizierung festlegen com.sap.security.core.server.https.Utils.setBasicAuthenticationHeader(con, username, password);
Das folgende Beispiel zeigt, wie eine SSL-Socket-Instanz mithilfe der Methode createSocket angelegt wird. Es liefert eine Socket-Instanz für Port 443.
Code-Beispiel für das Anlegen einer SSL-Socket-Instanz
// (SSL)Socket anlegen Socket socket = factory.createSocket("www.mycompany.com", 443); // Siehe JAVADOC für java.net.Socket
Das folgende Beispiel zeigt im Folgenden einige Funktionen für die Verwaltung von Verbindungen.
Code-Beispiel für das Herstellen einer HTTPS-Verbindung mithilfe einer URL
// set request method if necessary (default: GET) con.setRequestMethod("POST"); // connect con.connect (); // read response code rc = con.getResponseCode (); // read html byte [] bhtml = Utils.loadAsBytes(con);