From 0a87bda0ba8454e83ec852d86357a3b7290a350d Mon Sep 17 00:00:00 2001
From: Hai HoDac <hhodac@student.unimelb.edu.au>
Date: Wed, 23 Oct 2019 19:58:23 +1100
Subject: [PATCH] Merged encryption function
---
src/client/Client.java | 8 ++++++--
src/remote/IClientController.java | 2 +-
src/server/ClientController.java | 9 ++++-----
src/server/Server.java | 22 +++++++++++++++++++++-
4 files changed, 32 insertions(+), 9 deletions(-)
diff --git a/src/client/Client.java b/src/client/Client.java
index 800fac6..7397f62 100644
--- a/src/client/Client.java
+++ b/src/client/Client.java
@@ -11,11 +11,14 @@ import remote.IDrawingController;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
public class Client
{
private final String DEFAULT_USERNAME = "Anonymous";
private final String DEFAULT_SERVER_ADDRESS = "localhost";
+ private final EncryptionUpdate encryptionUpdate;
private String userName;
private String serverAddress;
@@ -73,7 +76,7 @@ public class Client
public IDrawingController getDrawingController() { return drawingController; }
- public Client(String username) throws RemoteException
+ public Client(String username) throws RemoteException, NoSuchProviderException, NoSuchAlgorithmException
{
this.userName = username;
this.clientUpdate = new ClientUpdate(this);
@@ -81,6 +84,7 @@ public class Client
this.drawingUpdate = new DrawingUpdate(this);
this.startScreen = new StartScreen(this);
this.applicationMain = new ApplicationMain(this);
+ this.encryptionUpdate = new EncryptionUpdate();
}
public static void main(String[] args)
@@ -143,7 +147,7 @@ public class Client
if( clientController.checkPassword(password) )
{
- if( clientController.join(userName, this.chatUpdate, this.clientUpdate, this.drawingUpdate) )
+ if( clientController.join(userName, this.chatUpdate, this.clientUpdate, this.drawingUpdate, this.encryptionUpdate) )
{
System.out.println("Connected to server");
diff --git a/src/remote/IClientController.java b/src/remote/IClientController.java
index 1dcd165..07f8125 100644
--- a/src/remote/IClientController.java
+++ b/src/remote/IClientController.java
@@ -7,7 +7,7 @@ public interface IClientController extends Remote
{
enum Action {KICKOUT, ASSIGNADMIN};
- boolean join(String username, IChatUpdate clientChat, IClientUpdate clientUpdate, IDrawingUpdate clientDrawing) throws RemoteException;
+ boolean join(String username, IChatUpdate clientChat, IClientUpdate clientUpdate, IDrawingUpdate clientDrawing, IEncryptionUpdate encryptionUpdate) throws RemoteException;
void quit(String username) throws RemoteException;
diff --git a/src/server/ClientController.java b/src/server/ClientController.java
index 4c710bb..2d40ff1 100644
--- a/src/server/ClientController.java
+++ b/src/server/ClientController.java
@@ -1,9 +1,6 @@
package server;
-import remote.IChatUpdate;
-import remote.IClientUpdate;
-import remote.IDrawingUpdate;
-import remote.IClientController;
+import remote.*;
import java.io.Serializable;
import java.rmi.Remote;
@@ -20,13 +17,15 @@ public class ClientController extends UnicastRemoteObject implements IClientCont
}
@Override
- public boolean join(String username, IChatUpdate clientChat, IClientUpdate clientUpdate, IDrawingUpdate clientDrawing) throws RemoteException
+ public boolean join(String username, IChatUpdate clientChat, IClientUpdate clientUpdate, IDrawingUpdate clientDrawing, IEncryptionUpdate encryptionUpdate) throws RemoteException
{
if( getUserIndex(username) < 0 )
{
// user with same username is not connected
server.chatController.broadcastMessageUserLogin(username);
+ new MySharedKey(encryptionUpdate);
+
User newUser = new User(username, clientChat, clientUpdate, clientDrawing);
server.users.add(newUser);
diff --git a/src/server/Server.java b/src/server/Server.java
index 0160269..cb1ef67 100644
--- a/src/server/Server.java
+++ b/src/server/Server.java
@@ -4,6 +4,8 @@ import remote.IChatController;
import remote.IClientController;
import remote.IDrawingController;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
@@ -54,7 +56,6 @@ public class Server
public void run() throws RemoteException
{
-
LocateRegistry.createRegistry(1099);
Registry registry = LocateRegistry.getRegistry();
@@ -71,5 +72,24 @@ public class Server
registry.rebind(drawingControllerName, drawingController);
System.out.println("Server is ready");
+
+ printIP();
+ }
+
+ private void printIP()
+ {
+ InetAddress inetAddress = null;
+
+ try
+ {
+ inetAddress = InetAddress.getLocalHost();
+ }
+ catch (UnknownHostException e)
+ {
+ e.printStackTrace();
+ }
+
+ System.out.println("IP Address:- " + inetAddress.getHostAddress());
+ System.out.println("Host Name:- " + inetAddress.getHostName());
}
}
--
GitLab