Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Server #1

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added lib/hibernate/antlr-2.7.7.jar
Binary file not shown.
Binary file added lib/hibernate/classmate-1.3.0.jar
Binary file not shown.
Binary file added lib/hibernate/dom4j-1.6.1.jar
Binary file not shown.
Binary file not shown.
Binary file added lib/hibernate/hibernate-core-5.2.17.Final.jar
Binary file not shown.
Binary file not shown.
Binary file added lib/hibernate/jandex-2.0.3.Final.jar
Binary file not shown.
Binary file added lib/hibernate/javassist-3.22.0-GA.jar
Binary file not shown.
Binary file added lib/hibernate/jboss-logging-3.3.1.Final.jar
Binary file not shown.
Binary file not shown.
Binary file added lib/security/EncryptMSEC.jar
Binary file not shown.
Binary file added lib/sql/mysql-connector-java-5.1.46.jar
Binary file not shown.
57 changes: 57 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>groupId</groupId>
<artifactId>Trust_Platform_Server</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
<dependency>
<groupId>com.corundumstudio.socketio</groupId>
<artifactId>netty-socketio</artifactId>
<version>1.7.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.2</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>

</dependencies>

</project>
5 changes: 0 additions & 5 deletions src/Main.java

This file was deleted.

4 changes: 4 additions & 0 deletions src/main/java/database/UserBD.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{"users":[
{"ip":"324","key":"key324"},
{"ip":"324","key":"key324"}
]}
26 changes: 26 additions & 0 deletions src/main/java/database/UserFromJsonDB.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package database;

import model.UserArray;
import model.UserJson;

public class UserFromJsonDB {

private UserArray userArray = new UserArray();

public UserJson getUserByIP(String ip){
userArray.updateFromFile();
for (UserJson userJson : userArray.getUsers()) {
if(userJson.getIp_server().equals(ip)){
return userJson;
}
}
return null;
}

public UserJson getUserByPublic(){
userArray.updateFromFile();
return null;
}


}
16 changes: 16 additions & 0 deletions src/main/java/impl/Sha3Response.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package impl;

import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import encryptmsec.security.Security;

public class Sha3Response {

public String getResponse(){
Security security = new Security();
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("sha3",security.sha.random_to_hash());
return jsonObject.toString();
}

}
51 changes: 51 additions & 0 deletions src/main/java/impl/rdpvalidation/RdpJsonModel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package impl.rdpvalidation;

public class RdpJsonModel {

private String public_key;
private String sign;
private String sha_id;
private String ip_server;
private String user;

public String getSha_id() {
return sha_id;
}

public void setSha_id(String sha_id) {
this.sha_id = sha_id;
}

public String getPublic_key() {
return public_key;
}

public void setPublic_key(String public_key) {
this.public_key = public_key;
}

public String getSign() {
return sign;
}

public void setSign(String sign) {
this.sign = sign;
}

public String getIp_server() {
return ip_server;
}

public void setIp_server(String ip_server) {
this.ip_server = ip_server;
}

public String getUser() {
return user;
}

public void setUser(String user) {
this.user = user;
}

}
64 changes: 64 additions & 0 deletions src/main/java/impl/rdpvalidation/RdpValidation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package impl.rdpvalidation;

import com.corundumstudio.socketio.SocketIOClient;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import database.UserFromJsonDB;
import encryptmsec.security.Security;
import model.UserJson;

import java.math.BigInteger;

public class RdpValidation {

private Gson gson=new Gson();
private Security security = new Security();

public boolean isValid(String json, SocketIOClient socketIOClient){
RdpJsonModel rdpJsonModel = gson.fromJson(json, RdpJsonModel.class);
BigInteger[] pub = getBigPub(rdpJsonModel);
BigInteger[] sign = getBigSign(rdpJsonModel);
if(security.get_verification_hash(rdpJsonModel.getSha_id(),sign,pub)&&
isCredentialValid(rdpJsonModel)){

}else{
return validationFalse(socketIOClient);
}

return false;
}

private boolean isCredentialValid(RdpJsonModel rdpJsonModel) {
UserFromJsonDB userFromJsonDB = new UserFromJsonDB();
String pub_key=rdpJsonModel.getPublic_key().split("&")[0]+rdpJsonModel.getPublic_key().split("&")[1];
UserJson userByIP = userFromJsonDB.getUserByIP(rdpJsonModel.getIp_server());
if(userByIP.getIp_server().equals(rdpJsonModel.getIp_server())&&
userByIP.getIp_server().equals(pub_key)&&
userByIP.getUser_name().equals(rdpJsonModel.getUser())){
return true;
}
return false;
}

private boolean validationFalse(SocketIOClient socketIOClient) {
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("rdp","false");
socketIOClient.sendEvent("go_rdp",jsonObject.toString());
return false;
}

private BigInteger[] getBigSign(RdpJsonModel rdpJsonModel) {
BigInteger[] tmp = new BigInteger[2];
tmp[0]= new BigInteger(rdpJsonModel.getSign().split("&")[0]);
tmp[1]= new BigInteger(rdpJsonModel.getSign().split("&")[1]);
return tmp;
}

private BigInteger[] getBigPub(RdpJsonModel rdpJsonModel) {
BigInteger[] tmp = new BigInteger[2];
tmp[0]= new BigInteger(rdpJsonModel.getPublic_key().split("&")[0]);
tmp[1]= new BigInteger(rdpJsonModel.getPublic_key().split("&")[1]);
return tmp;
}

}
39 changes: 39 additions & 0 deletions src/main/java/launcher/Launcher.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package launcher;

import model.User;
import services.Server;
import services.Service;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;

public class Launcher {

private ArrayList<Service> services = new ArrayList<Service>();


public static void main(String[] args) {
new Launcher().launchServices();
// new Launcher().testBase();
}

private void testBase() {
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("Trust");
EntityManager entityManager =entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
List select_c_from_user_c = entityManager.createQuery("select y from User y").getResultList();
for (Object o : select_c_from_user_c) {
System.out.println(((User)o).getAge());
}
}

private void launchServices() {

services.add(new Server());
for (Service service : services) {
service.launch();
}
}

}
18 changes: 18 additions & 0 deletions src/main/java/listener/ConnectListener.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package listener;

import com.corundumstudio.socketio.SocketIOClient;
import com.corundumstudio.socketio.SocketIOServer;

public class ConnectListener implements Listener {

private SocketIOServer instanceServer;

public void initListener(SocketIOServer socketIOServer) {
instanceServer=socketIOServer;
instanceServer.addConnectListener(new com.corundumstudio.socketio.listener.ConnectListener() {
public void onConnect(SocketIOClient socketIOClient) {
System.out.println("Connect >>> "+socketIOClient.getSessionId());
}
});
}
}
37 changes: 37 additions & 0 deletions src/main/java/listener/DefExceptionListener.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package listener;

import com.corundumstudio.socketio.SocketIOClient;
import com.corundumstudio.socketio.listener.DefaultExceptionListener;
import io.netty.channel.ChannelHandlerContext;

import java.util.List;

public class DefExceptionListener extends DefaultExceptionListener {

@Override
public void onDisconnectException(Exception e, SocketIOClient client) {
System.out.println("onDisconnectException");
}

@Override
public void onEventException(Exception e, List<Object> args, SocketIOClient client) {
System.out.println("onEventException");
}

@Override
public void onConnectException(Exception e, SocketIOClient client) {
System.out.println("onConnectException");
}

@Override
public void onPingException(Exception e, SocketIOClient client) {
System.out.println("onPingException");
}

@Override
public boolean exceptionCaught(ChannelHandlerContext ctx, Throwable e) throws Exception {
System.out.println("exceptionCaught");
return true;
}

}
18 changes: 18 additions & 0 deletions src/main/java/listener/DisconnectListener.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package listener;

import com.corundumstudio.socketio.SocketIOClient;
import com.corundumstudio.socketio.SocketIOServer;

public class DisconnectListener implements Listener {

private SocketIOServer server;

public void initListener(final SocketIOServer server) {
this.server=server;
server.addDisconnectListener(new com.corundumstudio.socketio.listener.DisconnectListener() {
public void onDisconnect(SocketIOClient socketIOClient) {
System.out.println("Disconect >>> "+socketIOClient.getSessionId());
}
});
}
}
51 changes: 51 additions & 0 deletions src/main/java/listener/EventListener.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package listener;

import com.corundumstudio.socketio.AckRequest;
import com.corundumstudio.socketio.SocketIOClient;
import com.corundumstudio.socketio.SocketIOServer;
import com.corundumstudio.socketio.listener.DataListener;
import impl.Sha3Response;
import impl.rdpvalidation.RdpValidation;
import model.Data;

import java.util.Random;

public class EventListener implements Listener {

private SocketIOServer server;

public void initListener(SocketIOServer server) {
this.server=server;
initEventListener();
}

private void initEventListener() {
server.addEventListener("registration", Data.class, new DataListener<Data>() {
public void onData(SocketIOClient socketIOClient, Data data, AckRequest ackRequest) throws Exception {
System.out.println(data.getData());
}
});

server.addEventListener("micro", Data.class, new DataListener<Data>() {
public void onData(SocketIOClient socketIOClient, Data data, AckRequest ackRequest) throws Exception {

}
});

server.addEventListener("get_sha3", Data.class, new DataListener<Data>() {
public void onData(SocketIOClient socketIOClient, Data data, AckRequest ackRequest) throws Exception {
socketIOClient.sendEvent("get_sha3",new Sha3Response().getResponse());
System.out.println("send to "+socketIOClient.getSessionId());
}
});

server.addEventListener("go_rdp", Data.class, new DataListener<Data>() {
public void onData(SocketIOClient socketIOClient, Data data, AckRequest ackRequest) throws Exception {
new RdpValidation().isValid(data.getData(),socketIOClient);
}
});



}
}
Loading