From 2085e7651928e45cad5861f66fe4af91fcacf353 Mon Sep 17 00:00:00 2001 From: Sebastian Rieger 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 zcmchX={wYq8pdazK?Y5v3`S_Oe`l-{Gi6_s4B16YacKFGty0KV7=9gzjD05+VeE}1 zg+!KwOeQqQq=O`)Gj*=(yf}Zrd2zqEKhK-zdanC^c6qxz5C{a}3;ag{!L*=IT2KHj zf=|2+mZjwR(|jNX!T`_+K@|iT23CfMfx&PPEC!O;&pNz6vFKgbW2;qKYuQ#GmL5lH zsUs4!FWXYokW_!==TT{XDa|vgx4#fYi;i$Ay%x!#=&kDksx$$WH^s3xdkIP_6wFHJ zxvWbD`>0@z(~xnq6*&87s~buO(T-{hR2EevXhL1m-^u*-dT`Fg#}!mJWNBjI?EmJQ zA%1x8M9HJ+RGbtBmtN4g5P_A!y>;wJAZ+bxu+yJ?fv{8-$>N=kXBVqvQfj(%;eDa2BWr&$vf?^9NJzJVTL zhA-&{*0&X>5h98`+aIcNlcdjcS{>SZ)gNQL>d%pfS=1lzANu=IrqC~CcDSW4dejW> zLYtp7jYs-i`}Fe0%8=G|?Hjf06EmM|IvC}TvGw+`RhOhDb<=6;yPdC&+*@{C2Hn2+ zFS*paHP50I`^ZcF0}8F^2rvtY{VvQcXrCh}sOcro3jXSKk73653v~L^n!`_F8F#KwKG6kJa9OF7Y2_J%wNM=_gAI-i;1CFiv%>V=QluN;ASC#zTN~eK;*X<#GovwYX3o^{6_GR5C(ag z7IcLg5lq+%i2f!}j6mQeAMZfFOTkwFnf<~9J%B*eBWMyxM1t!dtMy;||63#mYQ(Rx zHUg;}Z}D0W2IiY1kQgu+lp3Ku(NwwktcsU-bZzok_$`S8M2fe9R%0- zR7JO>CaFG6^L zL`kDVEIDs0Cpwy|nZmrw1jd_YEnPJH1TurfN#aZ7fFv_&kEUsAls>Vzb7nOtP4S}b zu{-)Gy@GDLIZpCHrJ~3Wo(0Bi>vO+gX_T=+33-n5XhIKa@unR1ophgk|3y6{ZS&Bq zQM-i=Jd{N8!oEEZkp?wyWR%8*fB(SdZk_K9dl9!ntkrCuk7Bis`Frqh1d=Fqcg9)R zUA7H@6y0}%32RLr)e7%$7@aF&sVS(>oXq$nV?C5+)%Gw|_e;%89wBDfAkDbnS0fQ* z=*9cdC-4*(TE-xj;#bWne>52KLcHJ&DYZJYxyY%Kj-fG=~51e;)#W=6wcD zn3HZMr{uh~=q#bB5GQHtiEC8xCy9AnErK^3)Di0{9wjnidqBf&M&C@D4IYZKsxG`b zr8m1i+`v(})oK!BUS3GZWA&KI$vf41F7H1BI}iq!&HmbfoQP$zHmkqn;9YmpUJN@q zmWb=W6l0csMk}mD-|2!x2S#F*ik9<+=wV2Q1(czoj>>k?iC31K@%-BGfjb&F^Ii?Z zg}=jn@E3Niy(E5}b~ICWzjpkB%jWuZ%XwKki%$0hrJ~>&XDuaHW>Mjsm9n0WZz-8V zeeBuJA3wjA+G&q3nP=b4OLrTbTBlLZ)nsX{=^wQD5^Tj*FurQS>b_be2gm}_{E|zf zVG^)?<*F^3<|TE!`rS`K8*6z_ib+R#%&>I6ch80 z_{`^LT01(8i(`H#(BbLn2l*MdM8uE#+o#p}=|wKA>OUBM^?r_L{Flc`uO0hV&(~9> Over?-^3r-Y*Z&Q@hDw?M 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