Skip to content
Snippets Groups Projects
Commit 3509017b authored by A C's avatar A C
Browse files

dbFunza

parent 99501b4b
Branches
No related tags found
No related merge requests found
Showing
with 296 additions and 44 deletions
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
<attributes>
<attribute name="module" value="true"/>
......
No preview for this file type
/db/
/code/
No preview for this file type
No preview for this file type
No preview for this file type
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd%22%3E
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="dialect">org.hibernate.dialect.SQLiteDialect</property>
<property name="connection.driver_class">org.sqlite.JDBC</property>
<property name="connection.url">jdbc:sqlite:/home/ale/Scrivania/DBPissirDomain.db</property>
<property name="connection.username"></property>
<property name="connection.password"></property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping class="com.srccodes.example.hibernate.Contact"/>
</session-factory>
</hibernate-configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd%22%3E
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="dialect">org.hibernate.dialect.SQLiteDialect</property>
<property name="connection.driver_class">org.sqlite.JDBC</property>
<property name="connection.url">jdbc:sqlite:/home/ale/Scrivania/DBPissirDomain.db</property>
<property name="connection.username"></property>
<property name="connection.password"></property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping class="com.srccodes.example.hibernate.Contact"/>
</session-factory>
</hibernate-configuration>
\ No newline at end of file
......@@ -25,7 +25,7 @@ public class Domain {
ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor)Executors.newCachedThreadPool();////newFixedThreadPool(5)
HttpServer server=HttpServer.create(new InetSocketAddress(port),0);
Connect.connect();
//Connect.connect();
......
......@@ -10,14 +10,20 @@ import java.io.Reader;
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.Iterator;
import java.util.List;
import java.util.Map;
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import db.DbStart;
import db.Dominio;
public class StartHandler implements HttpHandler {
@Override
......@@ -44,8 +50,58 @@ 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);
//se dominio del body ha admin chi fa chiamata allora continua
if(requestMethod.compareToIgnoreCase("POST")==0) {
String dominio=body.substring(7);
System.out.println(requestMethod+"\n"+query+"\n"+body+"\n"+response+"\n"+user+"\n"+dominio+"\n");
try {
System.out.println("PreDB");
//ArrayList<Dominio> doms=DbStart.domainsGet();
System.out.println("PostDB");
Dominio d= DbStart.getDom(dominio);
String s=user+"-A";
/*
for(Dominio d : doms){
if( (d.getDomain() == dominio) && d.getUsers().contains(s))
//something here
System.out.println("OPERAZIONE NON IMPLEMENTATA");
he.sendResponseHeaders(401,response.length());
OutputStream os = he.getResponseBody();
os.write("NON AUTORIZZATO".getBytes());
os.close();
return;
}
*/
if(!d.getUsers().contains(s)) {
//he.sendResponseHeaders(401,0 );
System.out.println("NON AUTORIZZATO");
response="NON AUTORIZZATO";
he.sendResponseHeaders(401,response.length());
OutputStream os = he.getResponseBody();
os.write(response.getBytes());
os.close();
//System.out.println("OPERAZIONE NON IMPLEMENTATA");
//he.sendResponseHeaders(501,0);
//OutputStream os = he.getResponseBody();
//os.write("OPERAZIONE NON IMPLEMENTATA".getBytes());
//os.close();
return;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
URL url = new URL("http://localhost:3000/start");//maybe, se CloudApp è in localhost porta 8080
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
......@@ -55,18 +111,19 @@ public class StartHandler implements HttpHandler {
Map<String, String> parameters = new HashMap<>();
System.out.println("pino1");
//{“domain”:”nome_dominio”} check utente chiamante ha permessi su dominio chiamato, chi fa install è admin
parameters.put("param1", "val");//fix parametri da mandare
//leggo da DB domini e riempio (magari famo .DAO??)
con.setDoOutput(true);
System.out.println("pino2");
//System.out.println("pino2");
DataOutputStream out = new DataOutputStream(con.getOutputStream());//inserimento param in call
out.writeBytes(ParameterStringBuilder.getParamsString(parameters));
out.flush();
out.close();
System.out.println("pino3");
//System.out.println("pino3");
//con.setRequestProperty("Content-Type", "application/json");
//String contentType = con.getHeaderField("Content-Type");
......@@ -120,6 +177,10 @@ public class StartHandler implements HttpHandler {
os.close();
}
}
private String readBody(InputStream requestBody) {
int req;
......
......@@ -15,6 +15,7 @@ public class Connect {
/**
* Connect to a sample database
*/
//public static Connection conn = null;
public static void connect() {
Connection conn = null;
try {
......@@ -24,7 +25,7 @@ public class Connect {
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);
......@@ -33,7 +34,7 @@ public class Connect {
String desc=result.getString("Desc");
System.out.println(name+desc);
}
}*/
} catch (SQLException e) {
System.out.println(e.getMessage());
......@@ -47,6 +48,8 @@ public class Connect {
}
}
}
/**
* @param args the command line arguments
*/
......
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import db.Connect;
/**
*
* @author sqlitetutorial.net
*/
public class DbStart {
/**
* Connect to a sample database
*/
//static Connection conn = null;
/*
public static void connect() {
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.");
System.out.println("OIOI");
} 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 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();
//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.");
/*
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);
}*/
PreparedStatement prepared = conn.prepareStatement("SELECT * FROM Domini WHERE Domain = ?");
prepared.setString(1, dm);
ResultSet result = prepared.executeQuery();
//String sql= "SELECT * FROM Domini WHERE Domain = ?";
//ResultSet result =statement.executeQuery(sql);
//Dominio res=new Dominio();
while (result.next()) {
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);
return d;
}
return null;
} 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
*/
//public static void main(String[] args) {
// connect();
//}
}
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);
}
public String getDomain() {
return domain;
}
public ArrayList<String> getUsers(){
return users;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment