diff --git a/domainManager/Domain/.classpath b/domainManager/Domain/.classpath
index e8e6ce422054821049a8359bfb81c1052d406a0d..386982aa99021cecb8a77606941eca46b5533f62 100644
--- a/domainManager/Domain/.classpath
+++ b/domainManager/Domain/.classpath
@@ -12,5 +12,10 @@
 			<attribute name="javadoc_location" value="jar:file:/home/ale/Scrivania/ProgettoPissir/pissirsmarthome/domainManager/Domain/org.json-chargebee-1.0-javadoc.jar!/"/>
 		</attributes>
 	</classpathentry>
+	<classpathentry kind="lib" path="fusionauth-jwt-4.2.0.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:platform:/resource/Domain/fusionauth-jwt-4.2.0-javadoc.jar!/"/>
+		</attributes>
+	</classpathentry>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/domainManager/Domain/.settings/org.eclipse.jdt.core.prefs b/domainManager/Domain/.settings/org.eclipse.jdt.core.prefs
index f2525a8b92227620edba3ac50006e8c33c8ff2c6..a58ebdcad300d0a088dcbd63941d2c89e78a4f98 100644
--- a/domainManager/Domain/.settings/org.eclipse.jdt.core.prefs
+++ b/domainManager/Domain/.settings/org.eclipse.jdt.core.prefs
@@ -1,5 +1,6 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=11
diff --git a/domainManager/Domain/DBPissirDomain.db b/domainManager/Domain/DBPissirDomain.db
index 135b5921790a218a4bf40dabda4f8e01063cf318..369ec3bcc73db5386bf2d475840aab8109e1f528 100644
Binary files a/domainManager/Domain/DBPissirDomain.db and b/domainManager/Domain/DBPissirDomain.db differ
diff --git a/domainManager/Domain/bin/.gitignore b/domainManager/Domain/bin/.gitignore
deleted file mode 100644
index d4d38c0b1dae9673434faa16a34b33fcaa070682..0000000000000000000000000000000000000000
--- a/domainManager/Domain/bin/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/code/
-/db/
diff --git a/domainManager/Domain/bin/code/DeleteHandler.class b/domainManager/Domain/bin/code/DeleteHandler.class
index 99bb56d94c1951fdb5a5693015bafab4dad1453b..12f2f29fb32bcca9452e02220bcd62429cfb0234 100644
Binary files a/domainManager/Domain/bin/code/DeleteHandler.class and b/domainManager/Domain/bin/code/DeleteHandler.class differ
diff --git a/domainManager/Domain/bin/code/InstallHandler.class b/domainManager/Domain/bin/code/InstallHandler.class
index d14727bb3c464139c9cc7bbda616f3c47962e478..d95098195748d4c9333e993fe833d90ce54be383 100644
Binary files a/domainManager/Domain/bin/code/InstallHandler.class and b/domainManager/Domain/bin/code/InstallHandler.class differ
diff --git a/domainManager/Domain/bin/code/StartHandler.class b/domainManager/Domain/bin/code/StartHandler.class
index a18fda9c95907507aec0bc67daffea562b1f8f07..48d0496e4b75648e2ed1ea2939ce931b9c6a0854 100644
Binary files a/domainManager/Domain/bin/code/StartHandler.class and b/domainManager/Domain/bin/code/StartHandler.class differ
diff --git a/domainManager/Domain/bin/code/StopHandler.class b/domainManager/Domain/bin/code/StopHandler.class
index 5ceb70a050b1e442bca98250db20f871689402ac..e6d051fe271ef629dee4e3b7fc2aedcc3296326d 100644
Binary files a/domainManager/Domain/bin/code/StopHandler.class and b/domainManager/Domain/bin/code/StopHandler.class differ
diff --git a/domainManager/Domain/fusionauth-jwt-4.2.0-javadoc.jar b/domainManager/Domain/fusionauth-jwt-4.2.0-javadoc.jar
new file mode 100644
index 0000000000000000000000000000000000000000..b267e75e6a75d661fa7723086acdd37431e91f9c
Binary files /dev/null and b/domainManager/Domain/fusionauth-jwt-4.2.0-javadoc.jar differ
diff --git a/domainManager/Domain/fusionauth-jwt-4.2.0.jar b/domainManager/Domain/fusionauth-jwt-4.2.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..6a8726acf3567e418ab4c83557c44b4b2a6057d2
Binary files /dev/null and b/domainManager/Domain/fusionauth-jwt-4.2.0.jar differ
diff --git a/domainManager/Domain/src/code/DeleteHandler.java b/domainManager/Domain/src/code/DeleteHandler.java
index 3a5a78467327a62af117a71ab85f879a8f6a78f9..679f789f4ad1d0cf63a99b0889bf4329c20efbcb 100644
--- a/domainManager/Domain/src/code/DeleteHandler.java
+++ b/domainManager/Domain/src/code/DeleteHandler.java
@@ -133,6 +133,7 @@ public class DeleteHandler implements HttpHandler{
 			
 			
 			URL url = new URL("http://127.0.0.1:3000");//maybe, se CloudAppe è in localhost porta 8080
+			//aggiungere 3000/delete
 			HttpURLConnection con = (HttpURLConnection) url.openConnection();
 			con.setRequestMethod("POST");
 			con.setRequestProperty("Content-Type", "application/json");
diff --git a/domainManager/Domain/src/code/Domain.java b/domainManager/Domain/src/code/Domain.java
index 5ba15cae669b6ae0297e2343136aa4a6ce5872ab..5be7f00b4db2866a6bc72656e0ecd2481a23484d 100644
--- a/domainManager/Domain/src/code/Domain.java
+++ b/domainManager/Domain/src/code/Domain.java
@@ -1,15 +1,25 @@
 package code;
 
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
 import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
 import java.net.InetSocketAddress;
+import java.net.URL;
+import java.sql.SQLException;
 
 import com.sun.net.httpserver.HttpServer;
 
 import db.Connect;
+import db.DBC;
 
+import java.util.ArrayList;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ThreadPoolExecutor;
 
+import org.json.JSONException;
+
 public class Domain {
 	
 	static public int port=3001;
@@ -26,6 +36,96 @@ public class Domain {
 		HttpServer server=HttpServer.create(new InetSocketAddress(port),0);
 		
 		//Connect.connect();
+		
+		
+		//chiamata per popolare moduli a
+		
+		
+		URL url = new URL("https://gitlab.di.unipmn.it/alfredo/iotlabgw.edu-al.unipmn.it/-/raw/main/index.json");
+		HttpURLConnection con = (HttpURLConnection) url.openConnection();
+		// 3000/install da inserire
+		con.setRequestMethod("GET");
+		con.setRequestProperty("Content-Type", "application/json");
+		con.setRequestProperty("Accept", "application/json");
+		con.setDoOutput(true);
+		con.setConnectTimeout(5000);
+		con.setReadTimeout(5000);
+		
+//		DataOutputStream out = new DataOutputStream(con.getOutputStream());// inserimento param in call
+//		out.writeBytes(j.toString());// ParameterStringBuilder.getParamsString(parameters));
+//		out.flush();
+//		out.close();
+
+		// con.setRequestProperty("Content-Type", "application/json");
+		// String contentType = con.getHeaderField("Content-Type");
+
+		// leggo risposta
+		int status = con.getResponseCode();
+
+		BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
+		String inputLine;
+		StringBuffer content = new StringBuffer();
+		while ((inputLine = in.readLine()) != null) {
+			content.append(inputLine);
+		}
+		in.close();
+		con.disconnect();
+		System.out.println(in);
+		
+		String s=in.toString();
+		//ArrayList<String>arr=s.
+		
+		String []s1=s.split(",");
+		//ArrayList<String> arr= new ArrayList<String>();
+		for(int i=0;i<s1.length;i++) {
+			String remZip=s1[i].substring(0, s1[i].length()-4);
+			//arr.add(s1[i]);
+			//String[] curr=s1[i].split("-");
+			String[] curr=remZip.split("-");
+			for(int j=0;j<curr.length;j++) {
+				if(curr[j].length()>1) {
+					String a=curr[0];
+					String b=curr[1];	
+					try {
+						DBC.fillModules(a, b, s1[i]);
+					} catch (SQLException | JSONException e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}
+				}
+				else {
+					String a=curr[0];
+					try {
+						DBC.fillModules(a,"Arduino1", s1[i]);
+					} catch (SQLException | JSONException e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}
+					
+					}
+			}
+		}
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
 		
 		
 		
@@ -39,6 +139,8 @@ public class Domain {
 		server.createContext("/start/", new StartHandler());
 		server.createContext("/stop/", new StopHandler());
 		server.createContext("/delete/", new DeleteHandler());
+		server.createContext("/secured/domains/", new TokenHandler());
+		server.createContext("/secured/services/", new ServicesHandler());
 		
 		server.start();
 	}
diff --git a/domainManager/Domain/src/code/InstallHandler.java b/domainManager/Domain/src/code/InstallHandler.java
index 507c5b4e4a36cd73b0cae027db16b9a2f428f374..5c2913999e112b57258c093c5165e6a9d20ef447 100644
--- a/domainManager/Domain/src/code/InstallHandler.java
+++ b/domainManager/Domain/src/code/InstallHandler.java
@@ -1,18 +1,16 @@
 package code;
 
-
 import java.net.HttpURLConnection;
 
 import java.net.InetSocketAddress;
 
 import com.sun.net.httpserver.HttpServer;
-//import StuffHandler.CustomObject;
-
 import db.DBC;
 import db.Dominio;
 
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
 
 import com.sun.net.httpserver.HttpExchange;
@@ -33,39 +31,64 @@ import java.net.URI;
 import java.net.URL;
 import java.net.URLDecoder;
 
+public class InstallHandler implements HttpHandler {
 
-
-public class InstallHandler implements HttpHandler{
-	
 	@Override
 	public void handle(HttpExchange he) throws IOException {
-		
+
 		URI requestedUri = he.getRequestURI();
 		String requestMethod = he.getRequestMethod();
-		
+
 		String response = "ayyyyNstall\n";
-		
-		
+
 		String query = requestedUri.getRawQuery();
 		String body = readBody(he.getRequestBody());
+
+		 //he.getRequestHeaders().get("user").get(0);
 		
-		String user = he.getRequestHeaders().get("user").get(0);
-		System.out.println(body);
+		String token=he.getRequestHeaders().get("Authorization").get(0).substring(7);
+		String user ="";
 		
-		if (requestMethod.compareTo("POST") == 0 || requestMethod.compareTo("post") == 0) {
-			
-			
+		
+		
+		try {
+			//JSONObject tok=new JSONObject(token);
+			//String accessToken=tok.getString("access_token");
+			String[] tokSplit=token.split(".");
+			if(tokSplit.length!=3)return;//controllo che il token abbia header,body e signature(abbia 2 punti :s)
+			//int scnddot=accessToken.lastIndexOf(".");//dopo questo indice è tutta signature
+			String signature=tokSplit[2];
+			user=TokenHandler.verificaToken(token,signature);
+		
+			if(user.equals(""))return;
+		
+		
+		} catch (NoSuchAlgorithmException | IOException | JSONException e2) {
+			// TODO Auto-generated catch block
+			e2.printStackTrace();
+		}
+		
+		
+		
+		
+		//verifica user
+		
+		System.out.println(body);
+
+		if (requestMethod.compareToIgnoreCase("POST") == 0) {// || requestMethod.compareTo("post") == 0) {
+
+			JSONObject j = null;
 			try {
-				JSONObject j=new JSONObject(body);
+				j = new JSONObject(body);
 				System.out.println(j.toString());
-				String dm= j.getString("domain");
+				String dm = j.getString("domain");
 				System.out.println(
 						requestMethod + "\n" + query + "\n" + body + "\n" + response + "\n" + user + "\n" + dm + "\n");
-				
-				try {
+
+				//try {
 
 					Dominio d = DBC.getDom(dm);
-					if (d!=null) {
+					if (d != null) {
 						System.out.println("DOMINIO GIA' IN USO");
 						response = "DOMINIO GIA' IN USO";
 						he.sendResponseHeaders(401, response.length());
@@ -74,112 +97,111 @@ public class InstallHandler implements HttpHandler{
 						os.write(response.getBytes());
 						os.close();
 						return;
-					}else {
-						String s = user + "-A";
-						
-						JSONArray arr=j.toJSONArray(j.names());
-						String usrs= arr.get(3).toString();
-						usrs=usrs.concat(","+s);
-						j.put("users", usrs);
-						//JSONObject person =  jsonArray.getJSONObject(0).getJSONObject("person");
-						//person.put("name", "Sammie");
-						
-						System.out.println("kek"+j);
-						DBC.insertDom(j);
-						
-						
-						
 					}
 
-				} catch (SQLException e) {
-					// TODO Auto-generated catch block
-					e.printStackTrace();
-				}
-				
-				
 
-			} catch (JSONException e1) {
+			} catch (JSONException | SQLException e) {
 				// TODO Auto-generated catch block
-				e1.printStackTrace();
+				e.printStackTrace();
 			}
-			
-			
-			
-			
-			
-			
 
-			
-			
-			
-			
-			//effettuo chiamata a CloudAppManager
-			//preso da https://www.baeldung.com/java-http-request
-			
-			//è una chiamata annidata nella risposta alla webapp
+			// effettuo chiamata a CloudAppManager
+			// preso da https://www.baeldung.com/java-http-request
+
+			// è una chiamata annidata nella risposta alla webapp
 			// -richiesta REST da webApp a /install
-			//   -prendo da DB e poi chiamo CloudAppMng su /install
-			//	 -attendo risposta da CloudAppMng e chiudo
+			// -prendo da DB e poi chiamo CloudAppMng su /install
+			// -attendo risposta da CloudAppMng e chiudo
 			// -rispondo a webApp e chiudo
 			// EZ
-			
+
 			//
-			//standard per chiamata in slide
-			//https://www.dir.uniupo.it/pluginfile.php/948883/mod_resource/content/1/FrameworkProgetto5.pdf
+			// standard per chiamata in slide
+			// https://www.dir.uniupo.it/pluginfile.php/948883/mod_resource/content/1/FrameworkProgetto5.pdf
 			//
-			//http://127.0.0.1:8080/install
-			URL url = new URL("http://127.0.0.1:3000");//maybe, se CloudAppe è in localhost porta 8080
+			// http://127.0.0.1:8080/install
+			URL url = new URL("http://127.0.0.1:3000");// maybe, se CloudAppe è in localhost porta 8080
 			HttpURLConnection con = (HttpURLConnection) url.openConnection();
+			// 3000/install da inserire
 			con.setRequestMethod("POST");
 			con.setRequestProperty("Content-Type", "application/json");
 			con.setRequestProperty("Accept", "application/json");
-			
-			
-			
-			Map<String, String> parameters = new HashMap<>();
-			
-			parameters.put("param1", "val");//fix parametri da mandare
-			//leggo da DB domini e riempio (magari famo .DAO??)
-			
 			con.setDoOutput(true);
-			DataOutputStream out = new DataOutputStream(con.getOutputStream());//inserimento param in call
-			out.writeBytes(ParameterStringBuilder.getParamsString(parameters));
-			out.flush();
-			out.close();
-			
-			//con.setRequestProperty("Content-Type", "application/json");
-			//String contentType = con.getHeaderField("Content-Type");
-			
 			con.setConnectTimeout(5000);
 			con.setReadTimeout(5000);
 			
-			//leggo risposta
+			DataOutputStream out = new DataOutputStream(con.getOutputStream());// inserimento param in call
+			out.writeBytes(j.toString());// ParameterStringBuilder.getParamsString(parameters));
+			out.flush();
+			out.close();
+
+			// con.setRequestProperty("Content-Type", "application/json");
+			// String contentType = con.getHeaderField("Content-Type");
+
+			// leggo risposta
 			int status = con.getResponseCode();
 			
-			BufferedReader in = new BufferedReader(
-					  new InputStreamReader(con.getInputStream()));
+			BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
 			String inputLine;
 			StringBuffer content = new StringBuffer();
 			while ((inputLine = in.readLine()) != null) {
-					content.append(inputLine);
-					}
+				content.append(inputLine);
+			}
 			in.close();
-
 			con.disconnect();
 
-			
-			//finita chiamata a CloudApp
-			
-			//f.close();
+			// finita chiamata a CloudApp
+
+			// f.close();
 			OutputStream os = he.getResponseBody();
-			
-			he.sendResponseHeaders(status, response.length());//status
-			os.write(response.getBytes());
+			he.sendResponseHeaders(status, content.length());
+			os.write(content.toString().getBytes());
+			// he.sendResponseHeaders(status, response.length());//status
+			// os.write(response.getBytes());
 			os.close();
+
+			if (status==200) {
+
+				//String s = user + "-A";
+				try {
+					
+					
+					//qui leggo e parsifico i json nel body, inserisco tutti i campi nel db
+					
+					
+					String domain=j.getString("domain");
+					DBC.insertDom(domain);
+					DBC.insertAmministra(user, domain);
+					
+					JSONArray arrUsers = j.getJSONArray("users");
+					for(int i=0;i<arrUsers.length();i++) {
+						if(((JSONObject) arrUsers.get(i)).getString("role").equals("A")) {
+							String usr=((JSONObject) arrUsers.get(i)).getString("user");
+							DBC.insertAmministra(usr, domain);
+						}
+						else if(((JSONObject) arrUsers.get(i)).getString("role").equals("U")) {
+							String usr=((JSONObject) arrUsers.get(i)).getString("user");
+							DBC.insertUsa(usr, domain);
+						}
+					}
+					JSONArray arrServ = j.getJSONArray("services");
+					for(int i=0;i<arrServ.length();i++) {
+						String modul=((JSONObject) arrUsers.get(i)).getString("service");
+						String host=((JSONObject) arrUsers.get(i)).getString("host");
+						DBC.insertService(domain,host,modul);
+					}
+					
+					//non ci sono controlli!!!!
+					
+
+				} catch (SQLException | JSONException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
 		}
-		
 	}
-	
+
 	private String readBody(InputStream requestBody) {
 		int req;
 		StringBuffer sb = new StringBuffer();
@@ -191,26 +213,5 @@ public class InstallHandler implements HttpHandler{
 		}
 		return sb.toString();
 	}
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
 
 }
diff --git a/domainManager/Domain/src/code/ServicesHandler.java b/domainManager/Domain/src/code/ServicesHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..2faba2dbf0084600ece9ff4154238ad91d17e068
--- /dev/null
+++ b/domainManager/Domain/src/code/ServicesHandler.java
@@ -0,0 +1,169 @@
+package code;
+
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Paths;
+import java.security.KeyFactory;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.PublicKey;
+import java.security.spec.X509EncodedKeySpec;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Base64;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+
+import db.DBC;
+import db.Dominio;
+import io.fusionauth.jwt.Verifier;
+import io.fusionauth.jwt.domain.JWT;
+import io.fusionauth.jwt.ec.ECVerifier;
+
+
+public class ServicesHandler implements HttpHandler{
+	
+	
+	public void handle(HttpExchange he) throws IOException {
+
+		URI requestedUri = he.getRequestURI();
+		String requestMethod = he.getRequestMethod();
+
+		String response = "";
+
+		String query = requestedUri.getRawQuery();
+		String body = readBody(he.getRequestBody());
+		String user="";
+
+		// String user = he.getRequestHeaders().get("user").get(0);
+		String token = he.getRequestHeaders().get("Authorization").get(0).substring(7);// taglio bearer
+		try {
+			//JSONObject tok=new JSONObject(token);
+			//String accessToken=tok.getString("access_token");
+			String[] tokSplit=token.split(".");
+			if(tokSplit.length!=3)return;//controllo che il token abbia header,body e signature(abbia 2 punti :s)
+			//int scnddot=accessToken.lastIndexOf(".");//dopo questo indice è tutta signature
+			String signature=tokSplit[2];
+			user=TokenHandler.verificaToken(token,signature);
+		
+			if(user.equals(""))return;
+		
+		
+		} catch (NoSuchAlgorithmException | IOException | JSONException e2) {
+			// TODO Auto-generated catch block
+			e2.printStackTrace();
+		}
+		
+	
+
+		if (requestMethod.compareToIgnoreCase("GET") == 0) {
+
+			JSONObject res = new JSONObject();
+			JSONArray rs = new JSONArray();
+
+			ArrayList<String> modulesList;
+			try {
+				modulesList = DBC.getModules();
+
+				for (String k : modulesList) {
+					rs.put(k);
+				}
+
+			} catch (SQLException | JSONException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+
+			try {
+				res.put("response", rs);
+			} catch (JSONException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			int status = 200;
+
+			OutputStream os = he.getResponseBody();
+			he.sendResponseHeaders(status, res.length());
+			os.write(res.toString().getBytes());
+			// he.sendResponseHeaders(status, response.length());//status
+			// os.write(response.getBytes());
+			os.close();
+
+			// JSONObject j=new JSONObject();
+			// j.append("User", DBC.getDomainsUser(user));
+
+			// j=(""+":"+);
+
+		}
+
+	}
+	
+	private String readBody(InputStream requestBody) {
+		int req;
+		StringBuffer sb = new StringBuffer();
+		try {
+			while ((req = requestBody.read()) != -1)
+				sb.append(Character.toString((char) req));
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return sb.toString();
+	}
+
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+
+}
diff --git a/domainManager/Domain/src/code/StartHandler.java b/domainManager/Domain/src/code/StartHandler.java
index df172450433ac18729f5ed99a0491f53c9c3ce33..40436e6dd568d49c480a2cfba88c1c1387a0a1f4 100644
--- a/domainManager/Domain/src/code/StartHandler.java
+++ b/domainManager/Domain/src/code/StartHandler.java
@@ -17,6 +17,8 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
+import org.json.JSONException;
+
 import com.sun.net.httpserver.Headers;
 import com.sun.net.httpserver.HttpExchange;
 import com.sun.net.httpserver.HttpHandler;
@@ -47,7 +49,9 @@ public class StartHandler implements HttpHandler {
 		String query = requestedUri.getRawQuery();
 		String body = readBody(he.getRequestBody());
 		String response = "AYYYYY";
-		String user = he.getRequestHeaders().get("user").get(0);
+		//String user = he.getRequestHeaders().get("user").get(0);
+		String token=he.getRequestHeaders().get("Authorization").get(0).substring(7);
+		String user = "";
 
 		// se dominio del body ha admin chi fa chiamata allora continua
 
@@ -58,8 +62,9 @@ public class StartHandler implements HttpHandler {
 
 			try {
 
-				Dominio d = DBC.getDom(dominio);
-				String s = user + "-A";
+//				Dominio d = DBC.getDom(dominio);
+//				String s = user + "-A";
+				ArrayList<String> ad= DBC.getDomainsAdmin(dominio);
 				/*
 				 * for(Dominio d : doms){ if( (d.getDomain() == dominio) &&
 				 * d.getUsers().contains(s)) //something here
@@ -68,7 +73,7 @@ public class StartHandler implements HttpHandler {
 				 * he.getResponseBody(); os.write("NON AUTORIZZATO".getBytes()); os.close();
 				 * return; }
 				 */
-				if (!d.getUsers().contains(s)) {
+				if (!ad.contains(user)) {//if (!d.getUsers().contains(s)) {
 					// he.sendResponseHeaders(401,0 );
 					System.out.println("NON AUTORIZZATO");
 					response = "NON AUTORIZZATO";
@@ -87,7 +92,7 @@ public class StartHandler implements HttpHandler {
 					return;
 				}
 
-			} catch (SQLException e) {
+			} catch (SQLException|JSONException e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();
 			}
@@ -109,7 +114,7 @@ public class StartHandler implements HttpHandler {
 			con.setDoOutput(true);
 			// System.out.println("pino2");
 			DataOutputStream out = new DataOutputStream(con.getOutputStream());// inserimento param in call
-			out.writeBytes(ParameterStringBuilder.getParamsString(parameters));
+			out.writeBytes(body.toString());//(ParameterStringBuilder.getParamsString(parameters));//j.toString();
 
 			out.flush();
 			out.close();
diff --git a/domainManager/Domain/src/code/StopHandler.java b/domainManager/Domain/src/code/StopHandler.java
index e0040212857526b2ada5436d86ac909f14c35ccd..57d7f11e47a1d9c757af8265772560b47f1b5d0e 100644
--- a/domainManager/Domain/src/code/StopHandler.java
+++ b/domainManager/Domain/src/code/StopHandler.java
@@ -11,9 +11,12 @@ import java.net.HttpURLConnection;
 import java.net.URI;
 import java.net.URL;
 import java.sql.SQLException;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.json.JSONException;
+
 import com.sun.net.httpserver.HttpExchange;
 import com.sun.net.httpserver.HttpHandler;
 
@@ -34,8 +37,11 @@ public class StopHandler implements HttpHandler {
 		String query = requestedUri.getRawQuery();
 		String body = readBody(he.getRequestBody());
 		// String response = "AYYYYY";
-		String user = he.getRequestHeaders().get("user").get(0);
-
+		String token=he.getRequestHeaders().get("Authorization").get(0).substring(7);
+		String user = "";//he.getRequestHeaders().get("user").get(0);
+		//verifica user keycloak
+		
+		
 		if (requestMethod.compareTo("POST") == 0 || requestMethod.compareTo("post") == 0) {
 
 			String dominio = body.substring(7);
@@ -44,8 +50,14 @@ public class StopHandler implements HttpHandler {
 
 			try {
 
-				Dominio d = DBC.getDom(dominio);
-				String s = user + "-A";
+//				Dominio d = DBC.getDom(dominio);
+//				String s = user + "-A";
+				
+				
+				ArrayList<String> ad= DBC.getDomainsAdmin(dominio);
+				
+				
+				
 				/*
 				 * for(Dominio d : doms){ if( (d.getDomain() == dominio) &&
 				 * d.getUsers().contains(s)) //something here
@@ -54,7 +66,7 @@ public class StopHandler implements HttpHandler {
 				 * he.getResponseBody(); os.write("NON AUTORIZZATO".getBytes()); os.close();
 				 * return; }
 				 */
-				if (!d.getUsers().contains(s)) {
+				if (!ad.contains(user)) {
 					// he.sendResponseHeaders(401,0 );
 					System.out.println("NON AUTORIZZATO");
 					response = "NON AUTORIZZATO";
@@ -73,11 +85,10 @@ public class StopHandler implements HttpHandler {
 					return;
 				}
 
-			} catch (SQLException e) {
+			} catch (SQLException|JSONException  e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();
-			}
-
+			} 
 			// effettuo chiamata a CloudAppManager
 			// preso da https://www.baeldung.com/java-http-request
 
diff --git a/domainManager/Domain/src/code/TokenHandler.java b/domainManager/Domain/src/code/TokenHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..217160d4cd414fb88c2779f6bd731d31fb96da0d
--- /dev/null
+++ b/domainManager/Domain/src/code/TokenHandler.java
@@ -0,0 +1,300 @@
+package code;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Paths;
+import java.security.KeyFactory;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.PublicKey;
+import java.security.spec.X509EncodedKeySpec;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Base64;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+
+import db.DBC;
+import db.Dominio;
+import io.fusionauth.jwt.Verifier;
+import io.fusionauth.jwt.domain.JWT;
+import io.fusionauth.jwt.ec.ECVerifier;
+
+
+public class TokenHandler implements HttpHandler {
+
+	public void handle(HttpExchange he) throws IOException {
+
+		URI requestedUri = he.getRequestURI();
+		String requestMethod = he.getRequestMethod();
+
+		String response = "";
+
+		String query = requestedUri.getRawQuery();
+		String body = readBody(he.getRequestBody());
+		String user="";
+
+		// String user = he.getRequestHeaders().get("user").get(0);
+		String token = he.getRequestHeaders().get("Authorization").get(0).substring(7);// taglio bearer
+		try {
+			//JSONObject tok=new JSONObject(token);
+			//String accessToken=tok.getString("access_token");
+			String[] tokSplit=token.split(".");
+			if(tokSplit.length!=3)return;//controllo che il token abbia header,body e signature(abbia 2 punti :s)
+			//int scnddot=accessToken.lastIndexOf(".");//dopo questo indice è tutta signature
+			String signature=tokSplit[2];
+			user=verificaToken(token,signature);
+		
+			if(user.equals(""))return;
+		
+		
+		} catch (NoSuchAlgorithmException | IOException | JSONException e2) {
+			// TODO Auto-generated catch block
+			e2.printStackTrace();
+		}
+		
+		//System.out.println(body);
+
+		//JSONObject chiave = new JSONObject();
+		// chiamo http://localhost:8080/auth/realms/test00/protocol/openid-connect/certs
+		// //probabilmente https
+		
+		
+		
+		//TOKEN____________________________________________________________________
+		
+		
+		
+//		{
+//		    "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJXZ2FCRjhidS05dVhhR0pNRzIxQWQtQTV3aW0xZ29oRnhNNXVvNTJrLWhJIn0.eyJleHAiOjE2NjIwMjQwMjgsImlhdCI6MTY2MjAyMzcyOCwiYXV0aF90aW1lIjoxNjYyMDIzNjYyLCJqdGkiOiIzMmUwODFmMi00MmZhLTQ2ZDEtOTliNy05OWY0MTRlNmM4MTciLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvcmVhbG1zL3Rlc3QwMCIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiI2MGE4MjdjMS0zZDM3LTQ4ODEtYjU3Ny0zODNlZDUxNjE3MjgiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJteWNsaWVudCIsIm5vbmNlIjoiYTgxZTFhODQtODg4NS00NzAyLWI4ZDEtZjZjNWEwZDFmYzRkIiwic2Vzc2lvbl9zdGF0ZSI6IjUyOTQwYWYzLTM0MjctNDVkZC04YWNhLWE0ZDYxMjdhNDQxZCIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiaHR0cDovL2xvY2FsaG9zdDozMDAwIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtdGVzdDAwIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIiwic2lkIjoiNTI5NDBhZjMtMzQyNy00NWRkLThhY2EtYTRkNjEyN2E0NDFkIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJuYW1lIjoiTWFyaW8gUm9zc2kiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJqb2huIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlvIiwiZmFtaWx5X25hbWUiOiJSb3NzaSIsImVtYWlsIjoibWFyaW9AZ21haWwuY29tIn0.JQEmBY9zqVBelNorT3ZNyjXk6Bh0QbR1UO_1MTquS39njq8Fvd1h5ygan_v-YtlcTD9gz38O1OLhZEnK6QoUlUNfBybPrgM8GxcqTnmwYe2I5bJQ_7U6lqdWjgPJTBpLmy7faTj6_i2t0jVNKfTxJgzzbsTiYhJZZp-jvu05ZyMaQ3Q_wUYazb6VvbAkz9F2-8Uk04SxHVUsHjcinoyYd6jQP5TML3cVvwNk_eX2LavQk9o3XCQeBxsq9tUw7HsnSjtvPnuqHMe7S_Yg7_xp6QLVXdQAkOebFcvAMv8hMUMhXk0RV-RryhvQ85gF5NHgdvFhB6FPoXCO-T-SZpi6Qw",
+//		    "expires_in": 300,
+//		    "refresh_expires_in": 1800,
+//		    "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJkZDIyM2U5NC1mMjUxLTQ4MDAtYTI3Zi1jYzQzZjZhZTQzODEifQ.eyJleHAiOjE2NjIwMjU1MjgsImlhdCI6MTY2MjAyMzcyOCwianRpIjoiOTEwNWViMGUtMGJmMS00ODRlLTk1M2UtOGRmMTRkMzkwMGI4IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy90ZXN0MDAiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvcmVhbG1zL3Rlc3QwMCIsInN1YiI6IjYwYTgyN2MxLTNkMzctNDg4MS1iNTc3LTM4M2VkNTE2MTcyOCIsInR5cCI6IlJlZnJlc2giLCJhenAiOiJteWNsaWVudCIsIm5vbmNlIjoiYTgxZTFhODQtODg4NS00NzAyLWI4ZDEtZjZjNWEwZDFmYzRkIiwic2Vzc2lvbl9zdGF0ZSI6IjUyOTQwYWYzLTM0MjctNDVkZC04YWNhLWE0ZDYxMjdhNDQxZCIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwiLCJzaWQiOiI1Mjk0MGFmMy0zNDI3LTQ1ZGQtOGFjYS1hNGQ2MTI3YTQ0MWQifQ.ZqcOLMUwHPxQY2I0V9bPIy6TBTeUIcHEbxgnxhJrac0",
+//		    "token_type": "Bearer",
+//		    "id_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJXZ2FCRjhidS05dVhhR0pNRzIxQWQtQTV3aW0xZ29oRnhNNXVvNTJrLWhJIn0.eyJleHAiOjE2NjIwMjQwMjgsImlhdCI6MTY2MjAyMzcyOCwiYXV0aF90aW1lIjoxNjYyMDIzNjYyLCJqdGkiOiI5ZDEyYzUyZi1kZTdlLTQ4ZDctOTEzOC01Yjc5NGRjZjJmZDQiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvcmVhbG1zL3Rlc3QwMCIsImF1ZCI6Im15Y2xpZW50Iiwic3ViIjoiNjBhODI3YzEtM2QzNy00ODgxLWI1NzctMzgzZWQ1MTYxNzI4IiwidHlwIjoiSUQiLCJhenAiOiJteWNsaWVudCIsIm5vbmNlIjoiYTgxZTFhODQtODg4NS00NzAyLWI4ZDEtZjZjNWEwZDFmYzRkIiwic2Vzc2lvbl9zdGF0ZSI6IjUyOTQwYWYzLTM0MjctNDVkZC04YWNhLWE0ZDYxMjdhNDQxZCIsImF0X2hhc2giOiJ5MGVaZGowZmZsbFBMN3U3SkxiSzFnIiwiYWNyIjoiMSIsInNpZCI6IjUyOTQwYWYzLTM0MjctNDVkZC04YWNhLWE0ZDYxMjdhNDQxZCIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwibmFtZSI6Ik1hcmlvIFJvc3NpIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiam9obiIsImdpdmVuX25hbWUiOiJNYXJpbyIsImZhbWlseV9uYW1lIjoiUm9zc2kiLCJlbWFpbCI6Im1hcmlvQGdtYWlsLmNvbSJ9.SjyYBuj4bz7ugyqJibNubaUmwUvuyiocPXrr745PQ8f-AzhI_ITxjG3m7_i9lRw_UpcPQrlSwZTPxhDFUS2eK8YGG4Qg_MEELO6Pvez25x1aLrfDRw2qiT8Eu5t-6fa_N7ztQtWuyw9ThMxmpBdGx3PBDimjIY7m9CHrgSEymJf2LJsC2CF68WvczDEoVVzoUikwmvFbVS1LWCCAOd7b3s07fqP61kyj_XFtcyZv29EIOlUsodPKdQhNiplBNU1st-l0pLRocGEvIjRngSQDzTW4aHAL-jQENW2od0N23IXKtTrPCx33gElfeuA9hvyb6c4d8CNFrw6AHKH0YsoGqQ",
+//		    "not-before-policy": 0,
+//		    "session_state": "52940af3-3427-45dd-8aca-a4d6127a441d",
+//		    "scope": "openid profile email"
+//		}
+		
+		
+		
+		
+		//CHIAVE PUBBLICA________________________________________________________________
+//		{
+//			  "keys": [
+//			    {
+//			      "kid": "WgaBF8bu-9uXaGJMG21Ad-A5wim1gohFxM5uo52k-hI",
+//			      "kty": "RSA",
+//			      "alg": "RS256",
+//			      "use": "sig",
+//			      "n": "qoJMLXqIHoBKq5vE7EYVdvxpwqOjPkeTUSb1rdhJs8ZpfCOQk7PYlNu-ykl4PAjYS5sVs5gQSzEwtTZ3vz1y8Ry0V1Xa3c3wk77NzahMO9QnAXa0cqFWhaIr4l0oKhRy-57hNIthkiRuDDlWBREb5sqk8OWxarznEVRykaC4178ccQrv6T3T5VGzxV1lCcBDzQchx_c9_v-tcQVGeyBhdm9uFARbxGG-91kDxSv3MKQbjdwp9csr2QDwuFgcBSB4Ul-9oMCZiVDpgWuoCy_ZxsI22WYAPT8KyaYts-0v7B89hPPweR7TzbmQHEGMfl0U_qEBdQw0N9P2KRapol7RyQ",
+//			      "e": "AQAB",
+//			      "x5c": [
+//			        "MIICmzCCAYMCBgGCkqLMcTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZ0ZXN0MDAwHhcNMjIwODEyMTUxNjU4WhcNMzIwODEyMTUxODM4WjARMQ8wDQYDVQQDDAZ0ZXN0MDAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqgkwteogegEqrm8TsRhV2/GnCo6M+R5NRJvWt2Emzxml8I5CTs9iU277KSXg8CNhLmxWzmBBLMTC1Nne/PXLxHLRXVdrdzfCTvs3NqEw71CcBdrRyoVaFoiviXSgqFHL7nuE0i2GSJG4MOVYFERvmyqTw5bFqvOcRVHKRoLjXvxxxCu/pPdPlUbPFXWUJwEPNByHH9z3+/61xBUZ7IGF2b24UBFvEYb73WQPFK/cwpBuN3Cn1yyvZAPC4WBwFIHhSX72gwJmJUOmBa6gLL9nGwjbZZgA9PwrJpi2z7S/sHz2E8/B5HtPNuZAcQYx+XRT+oQF1DDQ30/YpFqmiXtHJAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAHF8qo6bVlpt/44OxqnSFDY0wIxcunFIbA05ggox/5oAQvdoTD1LB8sfuLa3dtA/ysnnZDytk+vr8V4feYdSvAbtCWVq3yJgt7Dhe7ueP45v4WPJPcPqv8kMYtbkh0mivF2mYVLsEbZK46kBXN4Gkpv1oRDl2b04rfO7abv0dqb3eFs5QiJtKd1az1ckrTYFHdcB5TiiMaPq8/ikmInYKMvRW5H+NmjRvQf6dhKaSj1+cgcZ5xwVlOuubUyJHABKcK6dfnznwA/Ri3fzYXnG5p7mDazdeOQlNRHMK5SM2D6QRunmufg8ulmM+vhxg5ri8o1WqIkA03z+w44vQFy28Xo="
+//			      ],
+//			      "x5t": "ip8I56vsh3-VgNBfzigD3oiIwsg",
+//			      "x5t#S256": "1aZ1N3a_PeHLpZeLIbyfyqUjUKJ9NYWMP7-9H2arYWM"
+//			    },
+//			    {
+//			      "kid": "-0j9GoUrm6Fjs8sxcwaNe9R9mqr7bmgSRQ_nRp72iIs",
+//			      "kty": "RSA",
+//			      "alg": "RSA-OAEP",
+//			      "use": "enc",
+//			      "n": "kpxC6pFuQnQVq8KoO3uMaFrfKC00jBbHfkx8HYuCIblQGap3xjcLGfMbd2EP2Hz2c38dmWcCMS6GgxUU10rlnWc4HKZ5jYCVTEdjU4nkmArzVipG03HzVb-3Eftz1hb4z8Qyjw616tjwQtaQRCvtx9o_UhmxG6YIeJhauN_Zh9z6ZHJ8bY6N242vk_ryJmaTsQ-GyOmU5h16mMrGCjMJ_uMiy38dITySNFGKwnJHaKU8H6V25UuGVgNl-Wjpk5L2bAdSkDEblJ7SsvzoYLGYzCUeCHhztWbNOy_sc31awULdTWEgH8SKvOWf3qZY1siItHBqHLHlHo5lNIMzhowGrw",
+//			      "e": "AQAB",
+//			      "x5c": [
+//			        "MIICmzCCAYMCBgGCkqLNYTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZ0ZXN0MDAwHhcNMjIwODEyMTUxNjU5WhcNMzIwODEyMTUxODM5WjARMQ8wDQYDVQQDDAZ0ZXN0MDAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCSnELqkW5CdBWrwqg7e4xoWt8oLTSMFsd+THwdi4IhuVAZqnfGNwsZ8xt3YQ/YfPZzfx2ZZwIxLoaDFRTXSuWdZzgcpnmNgJVMR2NTieSYCvNWKkbTcfNVv7cR+3PWFvjPxDKPDrXq2PBC1pBEK+3H2j9SGbEbpgh4mFq439mH3Ppkcnxtjo3bja+T+vImZpOxD4bI6ZTmHXqYysYKMwn+4yLLfx0hPJI0UYrCckdopTwfpXblS4ZWA2X5aOmTkvZsB1KQMRuUntKy/OhgsZjMJR4IeHO1Zs07L+xzfVrBQt1NYSAfxIq85Z/epljWyIi0cGocseUejmU0gzOGjAavAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAE9kzDnbCjywK6QXECR8citVNaqarf3QQYDzSNakWgrGTTjdStASwEsPJvYJJ5Q6tl6ndqv4gflKq8STrmlHd4Ly+QHnXDwzrzjuSydZDAjYVcacMpZ4PAOAci0R6AmXTynIzyxU92LOlOWiF3ChG7uMRq7yLCNWo1jZxUepGo5z9LyIRGO4Pb878nhWL5PvXC95/vnbx2hSN7T6Uft3j3/94+fgIP4rmO2IWsDuc6fza/J07fK42Mtysy6FqBwhrimDMq+3OnTmdhSRL4pVVrRPSpYO/Czw9ra8hgGoAhu4G4FhTKAr8K75QaMdTtShpBMVNrImOq9kHtOoZJCJW0g="
+//			      ],
+//			      "x5t": "AU5GWMxLtE_hFDiJevWYEql-n4A",
+//			      "x5t#S256": "43Rx3Dsp6j_NLNwVx__Pb6mz07KrCa8xzH0pKOoV06g"
+//			    }
+//			  ]
+//			}
+
+//		The x5c filed value is copied between —–BEGIN CERTIFICATE—–
+//
+//		—–END CERTIFICATE—– directives .
+
+		// Build an EC verifier using an EC Public Key. A verifier may also be built
+		// using the PublicKey object.
+//		Verifier verifier = ECVerifier.newVerifier(Paths.get("public_key.pem"));
+//
+//		// Verify and decode the encoded string JWT to a rich object
+//		JWT jwt = JWT.getDecoder().decode(encodedJWT, verifier);
+//
+//		// Assert the subject of the JWT is as expected
+//		assertEquals(jwt.subject, "f1e33ab3-027f-47c5-bb07-8dd8ab37a2d3");
+		// verifica token
+		// if token !ok return
+		
+//		try {
+//			verificaToken(token,signature);
+//		} catch (NoSuchAlgorithmException | IOException | JSONException e1) {
+//			// TODO Auto-generated catch block
+//			e1.printStackTrace();
+//		}
+
+		 // ricavo da token
+
+		if (requestMethod.compareToIgnoreCase("GET") == 0) {
+
+			JSONObject res = new JSONObject();
+			JSONArray rs = new JSONArray();
+
+			ArrayList<String> domList;
+			try {
+				domList = DBC.getDomainsUser(user);
+
+				for (String k : domList) {
+					JSONObject ogg = new JSONObject();
+					ogg.put("nome", k);
+
+					Dominio d = DBC.getDomain(k);
+					ogg.put("stato", d.getStatus());
+					ogg.put("admin", false);
+
+					rs.put(ogg);
+				}
+				domList.clear();
+				domList = DBC.getDomainsAdmin(user);
+				for (String k : domList) {
+					JSONObject ogg = new JSONObject();
+					ogg.put("nome", k);// domain
+
+					Dominio d = DBC.getDomain(k);
+					ogg.put("stato", d.getStatus());
+					ogg.put("admin", true);
+
+					rs.put(ogg);
+
+				}
+
+			} catch (SQLException | JSONException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+
+			try {
+				res.put("response", rs);
+			} catch (JSONException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			int status = 200;
+
+			OutputStream os = he.getResponseBody();
+			he.sendResponseHeaders(status, res.length());
+			os.write(res.toString().getBytes());
+			// he.sendResponseHeaders(status, response.length());//status
+			// os.write(response.getBytes());
+			os.close();
+
+			// JSONObject j=new JSONObject();
+			// j.append("User", DBC.getDomainsUser(user));
+
+			// j=(""+":"+);
+
+		}
+
+	}
+
+	private String readBody(InputStream requestBody) {
+		int req;
+		StringBuffer sb = new StringBuffer();
+		try {
+			while ((req = requestBody.read()) != -1)
+				sb.append(Character.toString((char) req));
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return sb.toString();
+	}
+
+	
+	
+	
+	
+	
+	public static String verificaToken(String encodedJWT,String signature) throws IOException, JSONException, NoSuchAlgorithmException {
+
+		URL url = new URL("http://localhost:8080/auth/realms/test00/protocol/openid-connect/certs");// maybe, se
+																									// CloudAppe è i																				// localhost porta
+																									// 8080
+		HttpURLConnection con = (HttpURLConnection) url.openConnection();
+		// 3000/install da inserire
+		con.setRequestMethod("GET");
+		con.setRequestProperty("Content-Type", "application/json");
+		con.setRequestProperty("Accept", "application/json");
+		con.setDoOutput(true);
+		con.setConnectTimeout(5000);
+		con.setReadTimeout(5000);
+
+//	DataOutputStream out = new DataOutputStream(con.getOutputStream());// inserimento param in call
+//	out.writeBytes(j.toString());// ParameterStringBuilder.getParamsString(parameters));
+//	out.flush();
+//	out.close();
+
+		// con.setRequestProperty("Content-Type", "application/json");
+		// String contentType = con.getHeaderField("Content-Type");
+
+		// leggo risposta
+		int status = con.getResponseCode();
+
+		BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
+		String inputLine;
+		StringBuffer content = new StringBuffer();
+		while ((inputLine = in.readLine()) != null) {
+			content.append(inputLine);
+		}
+		in.close();
+		con.disconnect();
+
+		JSONObject j = new JSONObject(content);
+		JSONArray arr = j.getJSONArray("Keys");
+		JSONObject ogg = arr.getJSONObject(0);
+		String chiave = ogg.getString("x5c");
+		String cert = "—–BEGIN CERTIFICATE—–\n" + chiave + "\n" + "—–END CERTIFICATE—–";
+
+	
+		
+		Verifier verifier = ECVerifier.newVerifier(cert);
+		
+		//Verifier verifier = ECVerifier.newVerifier(Paths.get("public_key.pem"));
+		
+
+		// Verify and decode the encoded string JWT to a rich object
+		JWT jwt = JWT.getDecoder().decode(encodedJWT, verifier);
+		String nome=jwt.getString("name");
+		System.out.println("_________________"+nome);
+		//jwt.subject.equals(j)
+		// Assert the subject of the JWT is as expected
+		if(!jwt.subject.equals( signature)) {
+			System.out.println("ERRORE TOKEN");
+			return "";
+		}
+		return nome;//"f1e33ab3-027f-47c5-bb07-8dd8ab37a2d3"
+		// verifica token
+		
+		
+				
+		
+		
+
+	}
+
+}
\ No newline at end of file
diff --git a/domainManager/Domain/src/db/DBC.java b/domainManager/Domain/src/db/DBC.java
index 3bc1509960b579f515c4b13e5ddd809e9da3cddf..ed711067d111ba9184b0d4dc7b57f90f7191eb91 100644
--- a/domainManager/Domain/src/db/DBC.java
+++ b/domainManager/Domain/src/db/DBC.java
@@ -9,9 +9,11 @@ import java.sql.Statement;
 import java.util.ArrayList;
 import java.util.Arrays;
 
+import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 
+import code.Domain;
 import db.Connect;
 
 /**
@@ -36,69 +38,69 @@ public class DBC {
 	 * conn.close(); } } catch (SQLException ex) {
 	 * System.out.println(ex.getMessage()); } } }
 	 */
-	public static ArrayList<Dominio> domainsGet() throws SQLException {
-		// connect();
-
-		/**
-		 * Connect to a sample database
-		 */
-		// public static Connection conn = null;
-
-		Connection conn = null;
-		try {
-			// db parameters
-			String url = "jdbc:sqlite:DBPissirDomain.db";
-			// create a connection to the database
-			conn = DriverManager.getConnection(url);
-
-			System.out.println("Connection to SQLite has been established.");
-			/*
-			 * String sql= "SELECT * FROM Utenti"; Statement statement
-			 * =conn.createStatement(); ResultSet result =statement.executeQuery(sql); while
-			 * (result.next()) { String name=result.getString("User");
-			 * 
-			 * String desc=result.getString("Desc"); System.out.println(name+desc); }
-			 */
-
-			String sql = "SELECT * FROM Domini";
-			Statement statement = conn.createStatement();
-			ResultSet result = statement.executeQuery(sql);
-			System.out.println("57");
-			ArrayList<Dominio> res = new ArrayList<Dominio>();
-			while (result.next()) {
-				System.out.println("60");
-				String dom = result.getString("Domain");
-				String desc = result.getString("Desc");
-
-				// String users=result.getString("Users");
-				ArrayList<String> users = new ArrayList<String>(Arrays.asList(result.getString("Users").split(",")));
-				ArrayList<String> reso = new ArrayList<String>(Arrays.asList(result.getString("Resources").split(",")));
-				// String reso=result.getString("Resources");
-
-				String state = result.getString("State");
-				ArrayList<String> serv = new ArrayList<String>(Arrays.asList(result.getString("Services").split(",")));
-				// String serv=result.getString("Services");
-				Dominio d = new Dominio(dom, desc, users, reso, state, serv);
-				res.add(d);
-				System.out.println("74");
-
-			}
-			return res;
-
-		} catch (SQLException e) {
-			System.out.println(e.getMessage());
-		} finally {
-			try {
-				if (conn != null) {
-					conn.close();
-				}
-			} catch (SQLException ex) {
-				System.out.println(ex.getMessage());
-			}
-		}
-		return null;
-
-	}
+//	public static ArrayList<Dominio> domainsGet() throws SQLException {
+//		// connect();
+//
+//		/**
+//		 * Connect to a sample database
+//		 */
+//		// public static Connection conn = null;
+//
+//		Connection conn = null;
+//		try {
+//			// db parameters
+//			String url = "jdbc:sqlite:DBPissirDomain.db";
+//			// create a connection to the database
+//			conn = DriverManager.getConnection(url);
+//
+//			System.out.println("Connection to SQLite has been established.");
+//			/*
+//			 * String sql= "SELECT * FROM Utenti"; Statement statement
+//			 * =conn.createStatement(); ResultSet result =statement.executeQuery(sql); while
+//			 * (result.next()) { String name=result.getString("User");
+//			 * 
+//			 * String desc=result.getString("Desc"); System.out.println(name+desc); }
+//			 */
+//
+//			String sql = "SELECT * FROM Domini";
+//			Statement statement = conn.createStatement();
+//			ResultSet result = statement.executeQuery(sql);
+//			System.out.println("57");
+//			ArrayList<Dominio> res = new ArrayList<Dominio>();
+//			while (result.next()) {
+//				System.out.println("60");
+//				String dom = result.getString("Domain");
+//				String desc = result.getString("Desc");
+//
+//				// String users=result.getString("Users");
+//				ArrayList<String> users = new ArrayList<String>(Arrays.asList(result.getString("Users").split(",")));
+//				ArrayList<String> reso = new ArrayList<String>(Arrays.asList(result.getString("Resources").split(",")));
+//				// String reso=result.getString("Resources");
+//
+//				String state = result.getString("State");
+//				ArrayList<String> serv = new ArrayList<String>(Arrays.asList(result.getString("Services").split(",")));
+//				// String serv=result.getString("Services");
+//				Dominio d = new Dominio(dom, desc, users, reso, state, serv);
+//				res.add(d);
+//				System.out.println("74");
+//
+//			}
+//			return res;
+//
+//		} catch (SQLException e) {
+//			System.out.println(e.getMessage());
+//		} finally {
+//			try {
+//				if (conn != null) {
+//					conn.close();
+//				}
+//			} catch (SQLException ex) {
+//				System.out.println(ex.getMessage());
+//			}
+//		}
+//		return null;
+//
+//	}
 
 	public static Dominio getDom(String dm) throws SQLException {
 		// connect();
@@ -137,14 +139,14 @@ public class DBC {
 				String desc = result.getString("Desc");
 
 				// String users=result.getString("Users");
-				ArrayList<String> users = new ArrayList<String>(Arrays.asList(result.getString("Users").split(",")));
-				ArrayList<String> reso = new ArrayList<String>(Arrays.asList(result.getString("Resources").split(",")));
+				//ArrayList<String> users = new ArrayList<String>(Arrays.asList(result.getString("Users").split(",")));
+				//ArrayList<String> reso = new ArrayList<String>(Arrays.asList(result.getString("Resources").split(",")));
 				// String reso=result.getString("Resources");
 
-				String state = result.getString("State");
-				ArrayList<String> serv = new ArrayList<String>(Arrays.asList(result.getString("Services").split(",")));
+				Integer state = result.getInt("State");
+				//ArrayList<String> serv = new ArrayList<String>(Arrays.asList(result.getString("Services").split(",")));
 				// String serv=result.getString("Services");
-				Dominio d = new Dominio(dom, desc, users, reso, state, serv);
+				Dominio d = new Dominio(dom, desc, state);//users, reso,, serv
 				// res.add(d);
 				System.out.println(d.toString());
 				return d;
@@ -197,7 +199,7 @@ public class DBC {
 	}
 	
 	
-	public static void insertDom(JSONObject j) throws SQLException, JSONException {
+	public static void insertDom(String j) throws SQLException, JSONException {
 		// connect();
 		// Statement statement =conn.createStatement();
 
@@ -229,21 +231,21 @@ public class DBC {
 			
 	*/		
 			
-			PreparedStatement prepared = conn.prepareStatement("INSERT INTO Domini (Domain, Desc, Users, Resources, State, Services) VALUES (?1,?2,?3,?4,?5,?6)");
+			PreparedStatement prepared = conn.prepareStatement("INSERT INTO Domini (Domain, State) VALUES (?1,?2)");
+			// Users, Resources, , Services ,?4,?5,?6
+//			System.out.println(j.getString("domain"));
+//			System.out.println(j.getString("desc"));
+			//System.out.println(j.getString("users"));
+			//System.out.println(j.getString("services"));
+			//System.out.println(j.getString("resources"));
 			
-			System.out.println(j.getString("domain"));
-			System.out.println(j.getString("desc"));
-			System.out.println(j.getString("users"));
-			System.out.println(j.getString("services"));
-			System.out.println(j.getString("resources"));
 			
-			
-			prepared.setString(1, j.getString("domain").toString().trim());
-			prepared.setString(2, j.getString("desc").toString().trim());
-			prepared.setString(3, j.getString("users").toString().trim());
-			prepared.setString(4, j.getString("resources").toString().trim());
-			prepared.setString(5, "N/A".toString());
-			prepared.setString(6, j.getString("services").toString().trim());
+			prepared.setString(1, j);
+			prepared.setInt(2, 0);
+			//prepared.setString(3, j.getString("users").toString().trim());
+			//prepared.setString(4, j.getString("resources").toString().trim());
+			//prepared.setInt(3, 0);
+			//prepared.setString(6, j.getString("services").toString().trim());
 			int result = prepared.executeUpdate();
 			
 			//System.out.println(result.toString());
@@ -288,7 +290,372 @@ public class DBC {
 		
 
 	}
+	
+	
+	public static ArrayList<String> getDomainsAdmin(String user) throws SQLException, JSONException {
+		// connect();
+		// Statement statement =conn.createStatement();
+
+		Connection conn = null;
+		try {
+			// db parameters
+			String url = "jdbc:sqlite:DBPissirDomain.db";
+			// create a connection to the database
+			conn = DriverManager.getConnection(url);
+
+			System.out.println("Connection to SQLite has been established: getDomains");
+			
+			PreparedStatement prepared = conn.prepareStatement("SELECT * FROM Amministra WHERE User = ?");
+			prepared.setString(1, user);
+			ResultSet result = prepared.executeQuery();
+			System.out.println("DOMSADMIN1");
+			
+			ArrayList<String> res=new ArrayList<String>();
+			JSONArray jsnarr=new JSONArray();
+			while (result.next()) {
+				System.out.println("DOMSADMIN12");
+				String dom = result.getString("Domain");
+//				String desc= result.getString("Desc");
+//				Integer state = result.getInt("State");
+//				
+//				JSONObject j=new JSONObject("{"+dom+":"+state+"}"); 
+//				jsnarr.put(j);
+//				
+//				Dominio d=new Dominio(dom,desc,state);
+				res.add(dom);
+				
+			}
+			//return jsnarr;
+			return res;
+
+		} catch (SQLException e) {
+			System.out.println(e.getMessage());
+		} finally {
+			try {
+				if (conn != null) {
+					conn.close();
+				}
+			} catch (SQLException ex) {
+				System.out.println(ex.getMessage());
+			}
+		}
+		return null;
+
+	}
+	
+	
+	
+	
+	public static ArrayList<String> getDomainsUser(String user) throws SQLException, JSONException {
+		// connect();
+		// Statement statement =conn.createStatement();
+
+		Connection conn = null;
+		try {
+			// db parameters
+			String url = "jdbc:sqlite:DBPissirDomain.db";
+			// create a connection to the database
+			conn = DriverManager.getConnection(url);
+
+			System.out.println("Connection to SQLite has been established: getDomains");
+			
+			PreparedStatement prepared = conn.prepareStatement("SELECT * FROM Usa WHERE User = ?");
+			prepared.setString(1, user);
+			ResultSet result = prepared.executeQuery();
+			System.out.println("DOMSADMIN1");
+			
+			ArrayList<String> res=new ArrayList<String>();
+			JSONArray jsnarr=new JSONArray();
+			while (result.next()) {
+				System.out.println("DOMSADMIN12");
+				String dom = result.getString("Domain");
+//				String desc= result.getString("Desc");
+//				Integer state = result.getInt("State");
+//				
+//				JSONObject j=new JSONObject("{"+dom+":"+state+"}"); 
+//				jsnarr.put(j);
+//				
+//				Dominio d=new Dominio(dom,desc,state);
+				res.add(dom);
+				
+			}
+			//return jsnarr;
+			return res;
+
+		} catch (SQLException e) {
+			System.out.println(e.getMessage());
+		} finally {
+			try {
+				if (conn != null) {
+					conn.close();
+				}
+			} catch (SQLException ex) {
+				System.out.println(ex.getMessage());
+			}
+		}
+		return null;
+
+	}
+	
+	public static Dominio getDomain(String domain) throws SQLException, JSONException {
+		// connect();
+		// Statement statement =conn.createStatement();
 
+		Connection conn = null;
+		try {
+			// db parameters
+			String url = "jdbc:sqlite:DBPissirDomain.db";
+			// create a connection to the database
+			conn = DriverManager.getConnection(url);
+
+			System.out.println("Connection to SQLite has been established: getDomains");
+			
+			PreparedStatement prepared = conn.prepareStatement("SELECT * FROM Domini WHERE Domain = ?");
+			prepared.setString(1, domain);
+			ResultSet result = prepared.executeQuery();
+			System.out.println("DOMSADMIN1");
+			
+			//ArrayList<String> res=new ArrayList<String>();
+			//JSONArray jsnarr=new JSONArray();
+			while (result.next()) {
+				System.out.println("DOMSADMIN12");
+				String dom = result.getString("Domain");
+				String desc= result.getString("Desc");
+				Integer state = result.getInt("State");
+//				
+//				JSONObject j=new JSONObject("{"+dom+":"+state+"}"); 
+//				jsnarr.put(j);
+//				
+				Dominio d=new Dominio(dom,desc,state);
+				//res.add(dom);
+				return d;
+			}
+			//return jsnarr;
+			
+
+		} catch (SQLException e) {
+			System.out.println(e.getMessage());
+		} finally {
+			try {
+				if (conn != null) {
+					conn.close();
+				}
+			} catch (SQLException ex) {
+				System.out.println(ex.getMessage());
+			}
+		}
+		return null;
+
+	}
+	
+	
+	
+	
+	
+
+	public static void fillModules(String a, String b, String c) throws SQLException, JSONException {
+		// connect();
+		// Statement statement =conn.createStatement();
+
+		Connection conn = null;
+		try {
+			// db parameters
+			String url = "jdbc:sqlite:DBPissirDomain.db";
+			// create a connection to the database
+			conn = DriverManager.getConnection(url);
+
+			System.out.println("Connection to SQLite has been established: ---fillModules---");
+			
+			PreparedStatement prepared = conn.prepareStatement("INSERT INTO Moduli (Module, Requirements, Path) VALUES (?1,?2,?3)");
+			// Users, Resources, , Services ,?4,?5,?6
+			//System.out.println(j.getString("domain"));
+			//System.out.println(j.getString("desc"));
+			//System.out.println(j.getString("users"));
+			//System.out.println(j.getString("services"));
+			//System.out.println(j.getString("resources"));
+			
+			
+			prepared.setString(1, a);
+			prepared.setString(2, b);
+			//prepared.setString(3, j.getString("users").toString().trim());
+			//prepared.setString(4, j.getString("resources").toString().trim());
+			prepared.setString(3, c);
+			//prepared.setString(6, j.getString("services").toString().trim());
+			int result = prepared.executeUpdate();
+			
+
+		} catch (SQLException e) {
+			System.out.println(e.getMessage());
+		} finally {
+			try {
+				if (conn != null) {
+					conn.close();
+				}
+			} catch (SQLException ex) {
+				System.out.println(ex.getMessage());
+			}
+		}
+		//return null;
+
+	}
+	
+	public static ArrayList<String> getModules() throws SQLException, JSONException {
+		// connect();
+		// Statement statement =conn.createStatement();
+
+		Connection conn = null;
+		try {
+			// db parameters
+			String url = "jdbc:sqlite:DBPissirDomain.db";
+			// create a connection to the database
+			conn = DriverManager.getConnection(url);
+
+			System.out.println("Connection to SQLite has been established: getDomains");
+			
+			PreparedStatement prepared = conn.prepareStatement("SELECT * FROM Moduli");
+			//prepared.setString(1, user);
+			ResultSet result = prepared.executeQuery();
+			System.out.println("DOMSADMIN1");
+			
+			ArrayList<String> res=new ArrayList<String>();
+			JSONArray jsnarr=new JSONArray();
+			while (result.next()) {
+				System.out.println("GETMODULI2");
+				String mod = result.getString("Module");
+				//String req= result.getString("Requirements");
+				
+//				Integer state = result.getInt("State");
+//				
+//				JSONObject j=new JSONObject("{"+dom+":"+state+"}"); 
+//				jsnarr.put(j);
+//				
+//				Dominio d=new Dominio(dom,desc,state);
+				res.add(mod);
+				
+			}
+			//return jsnarr;
+			return res;
+
+		} catch (SQLException e) {
+			System.out.println(e.getMessage());
+		} finally {
+			try {
+				if (conn != null) {
+					conn.close();
+				}
+			} catch (SQLException ex) {
+				System.out.println(ex.getMessage());
+			}
+		}
+		return null;
+
+	}
+	
+	public static void insertAmministra(String user, String dom) throws SQLException, JSONException {
+		// connect();
+		// Statement statement =conn.createStatement();
+
+		Connection conn = null;
+		try {
+			// db parameters
+			String url = "jdbc:sqlite:DBPissirDomain.db";
+			// create a connection to the database
+			conn = DriverManager.getConnection(url);
+			System.out.println("Connection to SQLite has been established.");
+			PreparedStatement prepared = conn.prepareStatement("INSERT INTO Amministra (User, Domain) VALUES (?1,?2)");
+			prepared.setString(1, user);
+			prepared.setString(2, dom);
+			//prepared.setString(6, j.getString("services").toString().trim());
+			int result = prepared.executeUpdate();	
+		} catch (SQLException e) {
+			System.out.println(e.getMessage());
+		} finally {
+			try {
+				if (conn != null) {
+					conn.close();
+				}
+			} catch (SQLException ex) {
+				System.out.println(ex.getMessage());
+			}
+		}
+	}
+	
+	public static void insertUsa(String user, String dom) throws SQLException, JSONException {
+		// connect();
+		// Statement statement =conn.createStatement();
+
+		Connection conn = null;
+		try {
+			// db parameters
+			String url = "jdbc:sqlite:DBPissirDomain.db";
+			// create a connection to the database
+			conn = DriverManager.getConnection(url);
+			System.out.println("Connection to SQLite has been established.");
+			PreparedStatement prepared = conn.prepareStatement("INSERT INTO Usa (User, Domain) VALUES (?1,?2)");
+			prepared.setString(1, user);
+			prepared.setString(2, dom);
+			//prepared.setString(6, j.getString("services").toString().trim());
+			int result = prepared.executeUpdate();	
+		} catch (SQLException e) {
+			System.out.println(e.getMessage());
+		} finally {
+			try {
+				if (conn != null) {
+					conn.close();
+				}
+			} catch (SQLException ex) {
+				System.out.println(ex.getMessage());
+			}
+		}
+	}
+
+	
+	
+	public static void insertService(String a, String b, String c) throws SQLException, JSONException {
+		// connect();
+		// Statement statement =conn.createStatement();
+
+		Connection conn = null;
+		try {
+			// db parameters
+			String url = "jdbc:sqlite:DBPissirDomain.db";
+			// create a connection to the database
+			conn = DriverManager.getConnection(url);
+
+			System.out.println("Connection to SQLite has been established: ---fillModules---");
+			
+			PreparedStatement prepared = conn.prepareStatement("INSERT INTO Servizi (Domain, Resource, Module) VALUES (?1,?2,?3)");
+			// Users, Resources, , Services ,?4,?5,?6
+			//System.out.println(j.getString("domain"));
+			//System.out.println(j.getString("desc"));
+			//System.out.println(j.getString("users"));
+			//System.out.println(j.getString("services"));
+			//System.out.println(j.getString("resources"));
+			
+			
+			prepared.setString(1, a);
+			prepared.setString(2, b);
+			//prepared.setString(3, j.getString("users").toString().trim());
+			//prepared.setString(4, j.getString("resources").toString().trim());
+			prepared.setString(3, c);
+			//prepared.setString(6, j.getString("services").toString().trim());
+			int result = prepared.executeUpdate();
+			
+
+		} catch (SQLException e) {
+			System.out.println(e.getMessage());
+		} finally {
+			try {
+				if (conn != null) {
+					conn.close();
+				}
+			} catch (SQLException ex) {
+				System.out.println(ex.getMessage());
+			}
+		}
+		//return null;
+
+	}
 
 	/**
 	 * @param args the command line arguments
diff --git a/domainManager/Domain/src/db/Dominio.java b/domainManager/Domain/src/db/Dominio.java
index 4ff619e2789aaec58f42e49bc6db6573619d99af..f19070be29aab0b510729b019b87aa975868dbf8 100644
--- a/domainManager/Domain/src/db/Dominio.java
+++ b/domainManager/Domain/src/db/Dominio.java
@@ -3,29 +3,38 @@ package db;
 import java.util.ArrayList;
 
 public class Dominio {
-	
-	String domain;
-	public String desc;
-    ArrayList<String> users;
-	public ArrayList<String> resources;
-	public String state;
-	public ArrayList<String> services;
-	
-	public Dominio(String dom, String de, ArrayList<String> u, ArrayList<String> res, String st, ArrayList<String> ser) {
-		domain=dom;
-		desc=de;
-		users=new ArrayList<String>(u);
-		resources=new ArrayList<String>(res);
-		state=st;
-		services=new ArrayList<String>(ser);
+
+	private String domain;
+	private String desc;
+//	ArrayList<String> users;
+//	public ArrayList<String> resources;
+	private Integer state;
+//	public ArrayList<String> services;
+
+	public Dominio(String dom, String de,  Integer st) {//ArrayList<String> u, ArrayList<String> res, ,
+		//ArrayList<String> ser
+		domain = dom;
+		desc = de;
+//		users = new ArrayList<String>(u);
+//		resources = new ArrayList<String>(res);
+		state = st;
+//		services = new ArrayList<String>(ser);
 	}
-	
+
 	public String getDomain() {
 		return domain;
 	}
 	
-	public ArrayList<String> getUsers(){
-		return users;
+	public Integer getStatus() {
+		return state;
+	}
+	
+	public String getDesc() {
+		return desc;
 	}
 
+//	public ArrayList<String> getUsers() {
+//		return users;
+//	}
+
 }