From 2085e7651928e45cad5861f66fe4af91fcacf353 Mon Sep 17 00:00:00 2001 From: Sebastian Rieger <sebastian.rieger@informatik.hs-fulda.de> Date: Mon, 29 Jan 2018 00:26:34 +0100 Subject: [PATCH] initial ssl version of rest server --- .../build/keystore_server | Bin 0 -> 1977 bytes .../verteiltesysteme/rest/RESTSSLServer.java | 47 ++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 VerteilteSysteme-Examples/build/keystore_server create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/rest/RESTSSLServer.java diff --git a/VerteilteSysteme-Examples/build/keystore_server b/VerteilteSysteme-Examples/build/keystore_server new file mode 100644 index 0000000000000000000000000000000000000000..552fbd787ffd638848b9810126f250bd8f8536b8 GIT binary patch literal 1977 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 literal 0 HcmV?d00001 diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/rest/RESTSSLServer.java b/VerteilteSysteme-Examples/src/verteiltesysteme/rest/RESTSSLServer.java new file mode 100644 index 0000000..2489d7c --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/rest/RESTSSLServer.java @@ -0,0 +1,47 @@ +/* Beispiel angelehnt an http://www.torsten-horn.de/techdocs/jee-rest.htm */ +package verteiltesysteme.rest; + +import java.io.IOException; +import java.net.URI; +import org.glassfish.grizzly.http.server.HttpServer; +import org.glassfish.grizzly.ssl.SSLContextConfigurator; +import org.glassfish.grizzly.ssl.SSLEngineConfigurator; +import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory; +import org.glassfish.jersey.server.ResourceConfig; + +public class RESTSSLServer +{ + private static final String KEYSTORE_SERVER_FILE = "./build/keystore_server"; + private static final String KEYSTORE_SERVER_PWD = "notsecure"; + + public static void main( String[] args ) throws IOException, InterruptedException + { + String baseUrl = ( args.length > 0 ) ? args[0] : "http://localhost:36040"; + + // Grizzly ssl configuration + SSLContextConfigurator sslContext = new SSLContextConfigurator(); + + // set up security context + sslContext.setKeyStoreFile(KEYSTORE_SERVER_FILE); // contains server keypair + sslContext.setKeyStorePass(KEYSTORE_SERVER_PWD); + + // keytool -genkey -keystore ./keystore_server -alias serverKey -dname "CN=localhost, OU=VertSys, O=HS-Fulda, L=Fulda, ST=Hessen, C=DE" + + final HttpServer server = GrizzlyHttpServerFactory.createHttpServer( + URI.create( baseUrl ), new ResourceConfig( RESTToUpperCaseService.class, RESTToLowerCaseService.class ), true, new SSLEngineConfigurator(sslContext).setClientMode(false).setNeedClientAuth(false) ); + Runtime.getRuntime().addShutdownHook( new Thread( new Runnable() { + @Override + public void run() { + server.shutdownNow(); + } + } ) ); + server.start(); + + System.out.println("Grizzly-HTTP-Server gestartet"); + System.out.println("Stoppen des Grizzly-HTTP-Servers mit: Strg+C\n"); + System.out.println("RESTful Web Service URL: " + baseUrl + RESTToUpperCaseService.webContextPath); + System.out.println("RESTful Web Service URL: " + baseUrl + RESTToLowerCaseService.webContextPath); + + Thread.currentThread().join(); + } +} \ No newline at end of file -- GitLab