SSL mit Grizzly und Jersey

Ich versuche grizzly für die Verwendung von SSL-Verschlüsselung und arbeiten noch immer gut mit Jersey. Ich habe gesucht alle über das Internet, und ich finde alle Arten von verschiedenen versuchen bei SSL mit Grizzly und Jersey. Scheint, wie es gibt verschiedene Möglichkeiten, es zu tun, je nachdem, welche version Sie verwenden, und wie Sie beschlossen, es zu implementieren. Ich habe nicht in der Lage zu erhalten, alle Beispiele funktionieren mit meinem code noch.

Hier ist, wie ich starte meine server:

static HttpServer startSecureServer() throws IOException{
        ResourceConfig rc=new PackagesResourceConfig("server.grizzlyresources");
        SSLContextConfigurator sslCon=new SSLContextConfigurator();

        sslCon.setKeyStoreFile(ConfigLoader.getKeystoreLocation()); //contains server keypair
        sslCon.setKeyStorePass(ConfigLoader.getKeystorePassword());

        System.out.println("Starting server on port "+ConfigLoader.getHttpsServerPort());
        HttpServer secure=GrizzlyServerFactory.createHttpServer(BASE_URI_SECURED, rc);
        secure.stop();

        HashSet<NetworkListener> lists=new HashSet<NetworkListener>(secure.getListeners());
        for (NetworkListener listener : lists){
            listener.setSecure(true);
            SSLEngineConfigurator ssle=new SSLEngineConfigurator(sslCon);
            listener.setSSLEngineConfig(ssle);
            secure.addListener(listener);
            System.out.println(listener);
        }

        secure.start();
        return secure;
}

private static URI getBaseURISecured(){
    return UriBuilder.fromUri("https://0.0.0.0/").port(ConfigLoader.getHttpsServerPort()).build();
}

private static final URI BASE_URI_SECURED = getBaseURISecured();

ConfigLoader lädt Informationen aus einer config-Datei. Wenn ich diesen code ausführen, startet es den server, findet er die Ressourcen auf dem server.grizzlyresources-Paket, und es funktioniert Super! Außer für eine Sache. Der server ist nicht gesichert. Ich kann telnet in Sie ein und senden Sie einen HTTP-request im Klartext für eine meiner Ressourcen, und er wird es zurückgeben. Also der code funktioniert für das Hochfahren der server, sondern das ganze SSL-Teil ist es einfach umgangen wird. Irgendwelche Ideen wie man dieses Problem beheben oder warum könnte es sein, dies zu tun?

Hier ist die Ausgabe in der Konsole wenn ich es laufen:

Starting server on port 9999
Jan 13, 2014 9:51:08 AM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
  server.grizzlyresources
Jan 13, 2014 9:51:08 AM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
  class server.grizzlyresources.SessionResource
  class server.grizzlyresources.LoginResource
Jan 13, 2014 9:51:08 AM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
Jan 13, 2014 9:51:08 AM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.12 02/15/2012 04:51 PM'
Jan 13, 2014 9:51:09 AM org.glassfish.grizzly.http.server.NetworkListener start
INFO: Started listener bound to [0.0.0.0:9999]
Jan 13, 2014 9:51:09 AM org.glassfish.grizzly.http.server.HttpServer start
INFO: [HttpServer] Started.
Jan 13, 2014 9:51:09 AM org.glassfish.grizzly.http.server.NetworkListener stop
INFO: Stopped listener bound to [0.0.0.0:9999]
NetworkListener{name='grizzly', host='0.0.0.0', port=9999, secure=true}
Jan 13, 2014 9:51:09 AM org.glassfish.grizzly.http.server.NetworkListener start
INFO: Started listener bound to [0.0.0.0:9999]
Jan 13, 2014 9:51:09 AM org.glassfish.grizzly.http.server.HttpServer start
INFO: [HttpServer] Started.

Bin ich mit Grizzly 2.2.1 und Jersey 1.12.

Dank einem Haufen!

InformationsquelleAutor user1389906 | 2014-01-13
Schreibe einen Kommentar