-
Alfredo Chissotti authoredAlfredo Chissotti authored
Server.java 5.52 KiB
package code;
/*import java.io.FileInputStream;
import java.security.KeyStore;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.TrustManagerFactory;
import com.sun.net.httpserver.HttpsConfigurator;
import com.sun.net.httpserver.HttpsParameters;
import com.sun.net.httpserver.HttpsServer;*/
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.concurrent.Executors;
import com.sun.net.httpserver.HttpServer;
public class Server {
// private static int port = 443;
private static int port = 3000;
public final static String CLIENT_PATH = "./../../webapp/public";
public static void main(String[] args) throws IOException {
if (args.length > 1 && args[0].equals("-port"))
try {
port = Integer.parseInt(args[1]);
} catch (Exception e) {
e.printStackTrace();
}
KeyCloak kcs = new KeyCloak(CLIENT_PATH + "/keycloak.json", CLIENT_PATH + "/params.json");
// HttpsServer server = HttpsServer.create(new InetSocketAddress(port), 0);
HttpServer server = HttpServer.create(new InetSocketAddress(port), 0);
// initialise the HTTPS server
/*try {
SSLContext sslContext = SSLContext.getInstance("TLS");
// initialise the keystore
char[] password = "simulator".toCharArray();
KeyStore ks = KeyStore.getInstance("JKS");
FileInputStream fis = new FileInputStream("testkey.jks");
ks.load(fis, password);
// setup the key manager factory
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, password);
// setup the trust manager factory
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(ks);
// setup the HTTPS context and parameters
sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
server.setHttpsConfigurator(new HttpsConfigurator(sslContext) {
@Override
public void configure(HttpsParameters params) {
try {
// initialise the SSL context
SSLContext context = getSSLContext();
SSLEngine engine = context.createSSLEngine();
params.setNeedClientAuth(false);
params.setCipherSuites(engine.getEnabledCipherSuites());
params.setProtocols(engine.getEnabledProtocols());
// Set the SSL parameters
SSLParameters sslParameters = context.getSupportedSSLParameters();
params.setSSLParameters(sslParameters);
} catch (Exception ex) {
System.out.println("Failed to create HTTPS port");
}
}
});
//API del server
server.createContext("/js/",new Resources());
server.createContext("/css/",new Resources());
server.createContext("/res/",new ImageRes());
server.createContext("/",new Home());
// server.setExecutor(Executors.newFixedThreadPool(11));
server.setExecutor(Executors.newCachedThreadPool());
server.start();
System.out.println("webserver running on localhost:"+port);
} catch (Exception e) {
System.out.println("Failed to create HTTPS server on port " + port + " of localhost");
e.printStackTrace();
}*/
//API del server
// server.createContext("/api/luci/",new Luci());//post, get [put, delete] {luogo e stato di tutte luci}
// server.createContext("/api/luci/stato/",new Luci());//put {aggiorna lo stato di una luce}
// server.createContext("/api/scenari/",new Scenari());//get {nome e data di tutti gli scenari}
// server.createContext("/api/scenari/attiva/",new Scenari());//put {attiva/disattiva}
// server.createContext("/api/scenari/registra/",new Scenari());//put {registra/termina}
// server.createContext("/api/scenari/salva/",new Scenari());//post {conferma salvataggio, altrimenti cancella dopo timer; ritorna i valori dello scenario}
// server.createContext("/api/antifurto/",new Antifurto());//get {stato, allarme, attenzione, soglia, sensori}
// server.createContext("/api/antifurto/stato/",new Antifurto());//get, put {se l'antifurto e' attivo + aggiornamento}
// server.createContext("/api/antifurto/allarme/",new Antifurto());//get, put {se l'allarme sta suonando + aggiornamento}
// server.createContext("/api/antifurto/attenzione/",new Antifurto());//put {valore della progress bar}
// server.createContext("/api/antifurto/soglia/",new Antifurto());//put {valore scelto dall'utente per la soglia}
server.createContext("/js/authentication/",new Resources());
server.createContext("/js/templates/",new Resources());
server.createContext("/css/",new Resources());
server.createContext("/res/",new ImageRes());
server.createContext("/secured/home/js/",new Resources());
server.createContext("/secured/home/css/",new Resources());
server.createContext("/secured/home/res/",new ImageRes());
server.createContext("/secured/home/",new Home());
server.createContext("/secured",new ObtainToken(kcs));
server.createContext("/",new ObtainToken(kcs));
server.setExecutor(Executors.newCachedThreadPool());
server.start();
System.out.println("webserver running on localhost:"+port);
}
}