diff --git a/src/GUI/ChatScreen.form b/src/GUI/ChatScreen.form index 140273c130f937107baf67db482203bc8ef15290..d8b1fd3d22ce8e2013330646f5885f3bdbf0d5e9 100644 --- a/src/GUI/ChatScreen.form +++ b/src/GUI/ChatScreen.form @@ -200,7 +200,7 @@ <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> </constraints> <properties> - <text value="Send Message To:"/> + <text value="Other users (Select for private Message)"/> </properties> </component> <component id="cc35d" class="javax.swing.JComboBox" binding="sendMessageToComboBox"> diff --git a/src/GUI/ChatScreen.java b/src/GUI/ChatScreen.java index c8a432fc142955bff2a696a1cd2c55525610bb8e..04fdd2e0bd240a79c44485622e3fac11d06532db 100644 --- a/src/GUI/ChatScreen.java +++ b/src/GUI/ChatScreen.java @@ -142,7 +142,7 @@ public class ChatScreen { IChatController chatController = client.getChatController(); try { - System.out.println("Send button pressed"); +// System.out.println("Send button pressed"); String toUser = sendMessageToComboBox.getSelectedItem().toString(); SealedObject messageSealed = EncryptDecrypt.encryptString(message,client.getEncryptionUpdate().getSharedSecretKey()); @@ -164,7 +164,7 @@ public class ChatScreen { } else if (e.getSource() == exitThisRoomButton) { - System.out.println("Exit room button pressed by: " + client.getUserName()); +// System.out.println("Exit room button pressed by: " + client.getUserName()); client.getApplicationMain().closeWindow(); } else if (e.getSource() == kickOutButton) @@ -173,7 +173,7 @@ public class ChatScreen { String toUser = kickUserComboBox.getSelectedItem().toString(); try { - System.out.println("Kick out button pressed"); +// System.out.println("Kick out button pressed"); clientController.kickUser(client.getUserName(), toUser); } catch (RemoteException ex) { @@ -190,7 +190,7 @@ public class ChatScreen { String toUser = kickUserComboBox.getSelectedItem().toString(); try { - System.out.println("Promote to manager button pressed"); +// System.out.println("Promote to manager button pressed"); clientController.assignAdmin(client.getUserName(), toUser); } catch (RemoteException ex) { diff --git a/src/client/Client.java b/src/client/Client.java index b2033f41c3ae2bda6175146b59423132758cfe9d..39ba1912b692e0844c6093cdcc08e9b62d74e74f 100644 --- a/src/client/Client.java +++ b/src/client/Client.java @@ -128,7 +128,6 @@ public class Client startScreen.setVisible(); } - public void startApplication() { applicationMain.createAndShowGUI(); @@ -158,15 +157,15 @@ public class Client // New connection setUserName(userName); setServerAddress(serverAddress); - System.out.println("Server address:" + serverAddress); + System.out.println(java.time.LocalTime.now() + " " + "Server address:" + serverAddress); registryServer = LocateRegistry.getRegistry(serverAddress); chatController = (IChatController) registryServer.lookup("ChatController"); clientController = (IClientController) registryServer.lookup("ClientController"); drawingController = (IDrawingController) registryServer.lookup("DrawingController"); - System.out.println("User name:" + getUserName()); - System.out.println("Password: " + password); + System.out.println(java.time.LocalTime.now() + " " + "User name:" + getUserName()); + System.out.println(java.time.LocalTime.now() + " " + "Password: " + password); if (clientController.setSharedKey(this.encryptionUpdate)) { SealedObject sealedPassword = EncryptDecrypt.encryptString(password, this.encryptionUpdate.getSharedSecretKey()); diff --git a/src/client/ClientUpdate.java b/src/client/ClientUpdate.java index a45130052bdc3db3fcc0662f42ca4a854fdb92f8..e7eeb978baad622cf5013ed3ac2038377ea099d2 100644 --- a/src/client/ClientUpdate.java +++ b/src/client/ClientUpdate.java @@ -28,12 +28,12 @@ public class ClientUpdate extends UnicastRemoteObject implements IClientUpdate, // for debuggins purposes private void printUserList(String[] users) { - System.out.print("Currently connected users: "); +// System.out.print("Currently connected users: "); for( String s : users ) { - System.out.print(s + " "); +// System.out.print(s + " "); } - System.out.println(); +// System.out.println(); } @Override diff --git a/src/client/DrawingUpdate.java b/src/client/DrawingUpdate.java index e7f4efccc1662ab0401a1a128f2b32618a0c8e9c..3bdb18a596db37ab67e35d08d7180f46896e61f7 100644 --- a/src/client/DrawingUpdate.java +++ b/src/client/DrawingUpdate.java @@ -24,10 +24,10 @@ public class DrawingUpdate extends UnicastRemoteObject implements IDrawingUpdate } public boolean notifyUserIsDrawing(String fromClient) throws RemoteException { - System.out.println("Adding name of user to the list of drawing users"); +// System.out.println("Adding name of user to the list of drawing users"); DefaultListModel temp = client.getApplicationMain().getChatScreen().getAllUserModel(); if(temp.contains(fromClient)){ - System.out.println("Already in the list"); +// System.out.println("Already in the list"); } else { temp.addElement(fromClient); @@ -93,7 +93,7 @@ public class DrawingUpdate extends UnicastRemoteObject implements IDrawingUpdate g2.draw(drawing); break; default: - System.out.println("Erased"); +// System.out.println("Erased"); } g2 = (Graphics2D) client.getApplicationMain().getPaintGUI().getDrawingArea().getImage().getGraphics(); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); @@ -131,7 +131,7 @@ public class DrawingUpdate extends UnicastRemoteObject implements IDrawingUpdate DefaultListModel temp = client.getApplicationMain().getChatScreen().getAllUserModel(); if(temp.contains(fromClient)){ - System.out.println("Already in the list"); +// System.out.println("Already in the list"); } else { temp.addElement(fromClient); diff --git a/src/client/EncryptionUpdate.java b/src/client/EncryptionUpdate.java index 33500cb452a6c77a573df847004eacdb0b646b32..9a10fc58a14eec24e4df0af8dc59014150dc7e50 100644 --- a/src/client/EncryptionUpdate.java +++ b/src/client/EncryptionUpdate.java @@ -32,7 +32,7 @@ public class EncryptionUpdate extends UnicastRemoteObject implements IEncryption Cipher cipher = Cipher.getInstance("RSA", "SunJCE"); cipher.init(Cipher.DECRYPT_MODE, priv); sharedSecretKey = new SecretKeySpec(cipher.doFinal(encryptedSharedSecretKey), "AES"); - System.out.println("Client holds this shared key: "+sharedSecretKey); +// System.out.println("Client holds this shared key: "+sharedSecretKey); } catch (NoSuchAlgorithmException e) { diff --git a/src/remote/EncryptDecrypt.java b/src/remote/EncryptDecrypt.java index cd6af8aca40259ca62e57aab95e91ff4f6779c24..49611f6b29bcaeb0db52654ed58edf7ab6f4fd55 100644 --- a/src/remote/EncryptDecrypt.java +++ b/src/remote/EncryptDecrypt.java @@ -1,5 +1,7 @@ package remote; +import GUI.StartScreen; + import javax.crypto.*; import java.io.IOException; import java.security.InvalidKeyException; @@ -16,19 +18,26 @@ public class EncryptDecrypt { nonSealedString = (String)sealedObject.getObject(cipher); } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } catch (NoSuchPaddingException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } catch (InvalidKeyException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } catch (IOException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } catch (IllegalBlockSizeException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } catch (BadPaddingException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } catch (ClassNotFoundException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } return nonSealedString; @@ -42,15 +51,20 @@ public class EncryptDecrypt { cipher.init(Cipher.ENCRYPT_MODE,key); sealedObject = new SealedObject(string,cipher); } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } catch (NoSuchPaddingException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } catch (IllegalBlockSizeException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } catch (IOException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } catch (InvalidKeyException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Shared key error"); +// e.printStackTrace(); } return sealedObject; diff --git a/src/server/ChatController.java b/src/server/ChatController.java index 206bc18cdbc23971de7ee7462fdb9eb500d0e1bd..4be28411ea71754e44685e381bdabcd74a788db4 100644 --- a/src/server/ChatController.java +++ b/src/server/ChatController.java @@ -21,7 +21,7 @@ public class ChatController extends UnicastRemoteObject implements IChatControll @Override public boolean broadcastMessage(String fromClient, SealedObject messageSealed) throws RemoteException { - System.out.print("Broadcasting message to everyone..."); +// System.out.print("Broadcasting message to everyone..."); int fromClientIndex = server.clientController.getUserIndex(fromClient); String message = EncryptDecrypt.decryptString(messageSealed,server.users.get(fromClientIndex).getSharedSecretKey()); @@ -31,14 +31,14 @@ public class ChatController extends UnicastRemoteObject implements IChatControll u.getIChatUpdate().notifyChat(fromClient, messageSealedTo, false); } - System.out.print("...DONE\n"); +// System.out.print("...DONE\n"); return true; } @Override public boolean broadcastMessageUserLogin(String fromClient) throws RemoteException { - System.out.print("Broadcasting message to everyone..."); +// System.out.print("Broadcasting message to everyone..."); IChatUpdate client; @@ -48,15 +48,15 @@ public class ChatController extends UnicastRemoteObject implements IChatControll client.notifyUserLogin(fromClient); } - System.out.print("...DONE\n"); - System.out.println(fromClient + " has joined the room."); +// System.out.print("...DONE\n"); + System.out.println(java.time.LocalTime.now() + " " + fromClient + " has joined the room."); return true; } @Override public boolean broadcastMessageUserLogout(String fromClient) throws RemoteException { - System.out.print("Broadcasting message to everyone..."); +// System.out.print("Broadcasting message to everyone..."); IChatUpdate client; @@ -66,8 +66,8 @@ public class ChatController extends UnicastRemoteObject implements IChatControll client.notifyUserLogout(fromClient); } - System.out.print("...DONE\n"); - System.out.println(fromClient + " has left the room."); +// System.out.print("...DONE\n"); + System.out.println(java.time.LocalTime.now() + " " + fromClient + " has left the room."); return true; } diff --git a/src/server/ClientController.java b/src/server/ClientController.java index 60b181f54725290ba80c93e9e09b78f96a48e3cf..f0ad74f0f360f1769065795ed69d58e0cb083cf2 100644 --- a/src/server/ClientController.java +++ b/src/server/ClientController.java @@ -75,10 +75,10 @@ public class ClientController extends UnicastRemoteObject implements IClientCont // for debuggins purposes private void printUserList() { - System.out.print("Currently connected users: "); +// System.out.print("Currently connected users: "); for( User u : server.users ) { - System.out.print(u.getUserName() + " "); +// System.out.print(u.getUserName() + " "); } System.out.println(); } @@ -149,9 +149,9 @@ public class ClientController extends UnicastRemoteObject implements IClientCont for( User u : server.users ) { - System.out.print(u.getUserName() + " being notified"); +// System.out.print(u.getUserName() + " being notified"); u.getIClientUpdate().updateUserList(connectedUsers); - System.out.println("...DONE"); +// System.out.println("...DONE"); } } @@ -170,7 +170,7 @@ public class ClientController extends UnicastRemoteObject implements IClientCont @Override public boolean broadcastManagerMessage(String toClient, Action action) throws RemoteException { - System.out.print("Broadcasting message to everyone..."); +// System.out.print("Broadcasting message to everyone..."); IClientUpdate client; switch (action){ @@ -181,8 +181,8 @@ public class ClientController extends UnicastRemoteObject implements IClientCont client.notifyManagerActions(toClient, remote.IClientUpdate.Action.KICKOUT); } - System.out.print("...DONE\n"); - System.out.println(toClient + " has been kicked out the room."); +// System.out.print("...DONE\n"); + System.out.println(java.time.LocalTime.now() + " " + toClient + " has been kicked out the room."); break; case ASSIGNADMIN: @@ -193,8 +193,8 @@ public class ClientController extends UnicastRemoteObject implements IClientCont client.setVisibility(); } - System.out.print("...DONE\n"); - System.out.println(toClient + " is the new manager."); +// System.out.print("...DONE\n"); + System.out.println(java.time.LocalTime.now() + " " + toClient + " is the new manager."); break; } @@ -207,16 +207,18 @@ public class ClientController extends UnicastRemoteObject implements IClientCont int adminIndex = getUserIndex(manager); IClientUpdate client; String toClient; + String[] connectedUsers = {}; if (server.users.get(adminIndex).isAdmin()) { for (User u : server.users) { client = u.getIClientUpdate(); toClient = u.getUserName(); + client.updateUserList(connectedUsers); client.notifyManagerActions(toClient, remote.IClientUpdate.Action.KICKALL); } server.users.clear(); } else { - System.out.println("You are not the manager"); +// System.out.println("You are not the manager"); } } diff --git a/src/server/DrawingController.java b/src/server/DrawingController.java index 38a850dfd4cb60d66164a30eae13543b837f88ad..e74c9810d8e3ce0f1302cb35c6d0c1c26bd9f2e4 100644 --- a/src/server/DrawingController.java +++ b/src/server/DrawingController.java @@ -166,7 +166,7 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo public void broadcastDrawingUser (String fromClient) throws RemoteException { - System.out.println("Current client is drawing: " + fromClient); +// System.out.println("Current client is drawing: " + fromClient); IDrawingUpdate client; for (User u: server.users){ client = u.getIDrawingUpdate(); @@ -176,7 +176,7 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo } public void broadcastDrawingUserStopped (String fromClient) throws RemoteException{ - System.out.println("Current user stopped drawing" + fromClient); +// System.out.println("Current user stopped drawing" + fromClient); IDrawingUpdate client; for (User u: server.users){ client = u.getIDrawingUpdate(); @@ -206,14 +206,16 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo client.receiveImage(baos.toByteArray()); } catch (IOException err) { - err.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Error in broadcasting the latest canvas."); +// err.printStackTrace(); } baos.close(); } } } catch (IOException err) { - err.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Error in broadcasting the latest canvas."); +// err.printStackTrace(); } // System.out.print("...DONE\n"); @@ -229,7 +231,8 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo g2.drawImage(bufferedImage, null, 0, 0); } catch (IOException err) { - err.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Error in updating canvas."); +// err.printStackTrace(); } return true; } @@ -246,7 +249,8 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo baos.close(); } catch (IOException err) { - err.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Error in getting canvas."); +// err.printStackTrace(); } for( User u : server.users ) diff --git a/src/server/MySharedKey.java b/src/server/MySharedKey.java index bd4c8abc513f1cd69605dc3da48583e643254988..44a1cf4b0b161d274b0c92376bf3e667c75915c0 100644 --- a/src/server/MySharedKey.java +++ b/src/server/MySharedKey.java @@ -26,7 +26,7 @@ public class MySharedKey { this.sharedSecretKey = new SecretKeySpec(new byte[16], "AES"); System.out.println(sharedSecretKey); this.encryptedSharedSecretKey = wrapKey(encryptionUpdate.getPub()); - System.out.println("Shared key on server:" + sharedSecretKey); +// System.out.println("Shared key on server:" + sharedSecretKey); encryptionUpdate.setSharedKey(encryptedSharedSecretKey); } @@ -38,9 +38,9 @@ public class MySharedKey { byte[] result2 = c.wrap(sharedSecretKey); return result2; } catch (Exception e) { - e.printStackTrace(); - throw new IllegalStateException( - e); + System.out.println(java.time.LocalTime.now() + " " + "Error in wrapping the key."); +// e.printStackTrace(); + throw new IllegalStateException(e); } } } diff --git a/src/server/Server.java b/src/server/Server.java index da4be37fa3a1dab5dd7921f709e011e1c414fe49..551ae30ed2cb96c89f058eb99e702c7de3062d00 100644 --- a/src/server/Server.java +++ b/src/server/Server.java @@ -56,7 +56,8 @@ public class Server } catch( Exception e ) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Server launch failed."); +// e.printStackTrace(); } } @@ -91,7 +92,7 @@ public class Server registry.rebind(chatControllerName, chatController); registry.rebind(drawingControllerName, drawingController); - System.out.println("Server is ready"); + System.out.println(java.time.LocalTime.now() + " " + "Server is ready"); printIP(serverIP); } @@ -108,10 +109,11 @@ public class Server } catch (UnknownHostException e) { - e.printStackTrace(); + System.out.println(java.time.LocalTime.now() + " " + "Get IP failed."); +// e.printStackTrace(); } - System.out.println("IP Address:- " + inetAddress.getHostAddress()); + System.out.println(java.time.LocalTime.now() + " " + "IP Address:- " + inetAddress.getHostAddress()); //System.out.println("Host Name:- " + inetAddress.getHostName()); } }