diff --git a/.idea/workspace.xml b/.idea/workspace.xml index daf24ed..70def8e 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,20 +5,12 @@ + - - - - - - - - - - + + - - + @@ -41,21 +33,11 @@ - + - - - - - - - - - - - - + + @@ -64,83 +46,90 @@ - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -157,36 +146,36 @@ - GAME_ST - GAME_STA - GAME_STAR - wait fo - w - wa - wai - wait for - wait for - wait fo - wait f - wait ot - wait o - wait - wait - le - lette - letters - NE - NEw invi - NEw invit - TI - TIMEOUT - TIMEOUT FI - TIMEOUT FINI - hi - hig - L - Lis - List + HUGHSCR + HUGHSCO + HUGHSC + HUGHS + HUGH + HUG + HU + H + HIGH + HIGHSCOR + HIGHSCORE + s + sesso + sess + sessionMane + sessionMana + sessionMan + sessionMa + sessionM + sValid + session + WOR + WO + TO + TOKEN NON + TOKEN NON + WORDS + channel + bufferMEssa + bufferMess @@ -200,7 +189,6 @@ @@ -304,7 +293,6 @@ - @@ -746,6 +734,7 @@ + @@ -1350,47 +1339,48 @@ - + + - - - - - - - - - - - - + + + - - + + + + + + + + + + @@ -1410,128 +1400,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1556,14 +1424,6 @@ - - - - - - - - @@ -1590,14 +1450,6 @@ - - - - - - - - @@ -1610,7 +1462,6 @@ - @@ -1618,7 +1469,6 @@ - @@ -1626,15 +1476,6 @@ - - - - - - - - - @@ -1654,33 +1495,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1689,14 +1503,6 @@ - - - - - - - - @@ -1705,27 +1511,10 @@ - - - - - - - - - - - - - - - - - @@ -1747,89 +1536,281 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Client/src/com/texttwist/client/tasks/SendWords.java b/Client/src/com/texttwist/client/tasks/SendWords.java index 63e048a..64e953e 100644 --- a/Client/src/com/texttwist/client/tasks/SendWords.java +++ b/Client/src/com/texttwist/client/tasks/SendWords.java @@ -36,7 +36,7 @@ public class SendWords extends SwingWorker { ByteBuffer buffer = ByteBuffer.allocate(1024); buffer.clear(); System.out.println("SENDER=" + App.session.account.userName); - Message msg = new Message("WORDS", App.session.account.userName, "", words); + Message msg = new Message("WORDS", App.session.account.userName, App.session.token, words); String sentence = msg.toString(); buffer.put(sentence.getBytes()); buffer.flip(); diff --git a/Server/src/com/texttwist/server/components/GameServer.java b/Server/src/com/texttwist/server/components/GameServer.java index 8ce4647..a492c67 100644 --- a/Server/src/com/texttwist/server/components/GameServer.java +++ b/Server/src/com/texttwist/server/components/GameServer.java @@ -32,7 +32,10 @@ public class GameServer implements Runnable{ private ExecutorService threadPool = Executors.newCachedThreadPool(); private String dictionaryPath = "./Server/resources/dictionary"; public static Dictionary dict; + SocketChannel client; ByteBuffer bufferWords = ByteBuffer.allocate(1024); + ByteBuffer bufferMessages = ByteBuffer.allocate(1024); + public static List activeMatches = Collections.synchronizedList(new ArrayList<>()); @@ -58,7 +61,7 @@ public class GameServer implements Runnable{ datagramChannel.connect(address); Logger.write("GamePage Service is running at "+this.serverPort+" port..."); - wordsReceiver = new ReceiveWords(datagramChannel, bufferWords); + wordsReceiver = new ReceiveWords(datagramChannel, bufferWords, bufferMessages, client); threadPool.submit(wordsReceiver); } catch (IOException e) { @@ -75,9 +78,9 @@ public class GameServer implements Runnable{ Iterator iter = selector.selectedKeys().iterator(); while (iter.hasNext()) { - ByteBuffer bufferMessages = ByteBuffer.allocate(1024); + bufferMessages = ByteBuffer.allocate(1024); bufferMessages.clear(); - SocketChannel client = null; + client = null; SelectionKey key = iter.next(); iter.remove(); diff --git a/Server/src/com/texttwist/server/components/ThreadProxy.java b/Server/src/com/texttwist/server/components/ThreadProxy.java index 099a6d1..4d94634 100644 --- a/Server/src/com/texttwist/server/components/ThreadProxy.java +++ b/Server/src/com/texttwist/server/components/ThreadProxy.java @@ -1,6 +1,7 @@ package com.texttwist.server.components; import com.sun.org.apache.xpath.internal.operations.Bool; +import com.texttwist.client.App; import com.texttwist.server.models.Match; import com.texttwist.server.tasks.*; import constants.Config; @@ -38,16 +39,11 @@ public class ThreadProxy implements Callable { } - - private Boolean isValidToken(String token){ - return SessionsManager.getInstance().isValidToken(token); - } - @Override public Boolean call() { bufferMessage = ByteBuffer.allocate(1024); byte[] byteMessage = null; - if(isValidToken(request.token)){ + if(SessionsManager.getInstance().isValidToken(request.token)){ switch(request.message){ case "START_GAME": Future onlineUsers = threadPool.submit(new CheckOnlineUsers(request.data)); @@ -177,7 +173,7 @@ public class ThreadProxy implements Callable { System.out.println("INVIO GAME_STARTED "+ s); socketClient.write(bufferMessage); } catch (IOException e) { - + e.printStackTrace(); } } @@ -199,10 +195,8 @@ public class ThreadProxy implements Callable { socketChannel.write(bufferMessage); matchNotAvailable = true; } - //Match non disponibile } - //NON FARE NULLA, ASPETA GLI ALTRI } } catch (InterruptedException e) { e.printStackTrace(); @@ -218,7 +212,7 @@ public class ThreadProxy implements Callable { } } else { - System.out.print("TOKEN NON VALIDO"); + threadPool.submit(new TokenInvalid(request.sender, socketChannel, bufferMessage)); return false; } diff --git a/Server/src/com/texttwist/server/tasks/ReceiveWords.java b/Server/src/com/texttwist/server/tasks/ReceiveWords.java index 19c69e4..cb5bbc1 100644 --- a/Server/src/com/texttwist/server/tasks/ReceiveWords.java +++ b/Server/src/com/texttwist/server/tasks/ReceiveWords.java @@ -1,26 +1,17 @@ package com.texttwist.server.tasks; -import com.texttwist.server.Server; -import com.texttwist.server.components.GameServer; +import com.texttwist.server.components.SessionsManager; import com.texttwist.server.models.Match; import constants.Config; import models.Message; -import javax.swing.*; -import javax.xml.crypto.Data; import java.net.*; import java.nio.ByteBuffer; import java.nio.channels.DatagramChannel; -import java.nio.channels.SelectionKey; -import java.nio.channels.Selector; import java.nio.channels.SocketChannel; -import java.util.Arrays; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.concurrent.Future; - -import static com.texttwist.server.components.GameServer.activeMatches; /** * Created by loke on 27/06/2017. @@ -30,12 +21,16 @@ public class ReceiveWords implements Callable{ protected ExecutorService threadPool = Executors.newCachedThreadPool(); public DatagramChannel channel; - ByteBuffer buffer; + ByteBuffer bufferWords; + ByteBuffer bufferMessages; + public SocketChannel socketChannel; - public ReceiveWords(DatagramChannel channel, ByteBuffer buffer) { - this.buffer = buffer; + public ReceiveWords(DatagramChannel channel, ByteBuffer buffer, ByteBuffer bufferMessages, SocketChannel socketChannel) { + this.bufferWords = buffer; this.channel = channel; + this.bufferMessages = bufferMessages; + this.socketChannel = socketChannel; } @Override @@ -58,9 +53,14 @@ public class ReceiveWords implements Callable{ System.out.println(rcv); if (rcv.startsWith("MESSAGE")) { msg = Message.toMessage(rcv); - System.out.println(msg.sender); - Match match = Match.findMatchByPlayer(msg.sender); - threadPool.submit(new ComputeScore(msg.sender, msg.data, match)); + if(SessionsManager.getInstance().isValidToken(msg.token)) { + System.out.println(msg.sender); + Match match = Match.findMatchByPlayer(msg.sender); + threadPool.submit(new ComputeScore(msg.sender, msg.data, match)); + } else { + threadPool.submit(new TokenInvalid(msg.sender, socketChannel, bufferMessages)); + return false; + } } } diff --git a/Server/src/com/texttwist/server/tasks/TokenInvalid.java b/Server/src/com/texttwist/server/tasks/TokenInvalid.java new file mode 100644 index 0000000..22245b2 --- /dev/null +++ b/Server/src/com/texttwist/server/tasks/TokenInvalid.java @@ -0,0 +1,38 @@ +package com.texttwist.server.tasks; + +import com.texttwist.server.Server; +import models.Message; + +import javax.swing.*; +import java.nio.ByteBuffer; +import java.nio.channels.Channel; +import java.nio.channels.SocketChannel; +import java.util.concurrent.Callable; + +/** + * Created by loke on 11/07/2017. + */ +public class TokenInvalid implements Callable { + private String sender; + private ByteBuffer buffer; + private SocketChannel channel; + + public TokenInvalid (String sender, SocketChannel channel, ByteBuffer buffer){ + this.sender=sender; + this.buffer=buffer; + this.channel=channel; + } + + @Override + public Boolean call()throws Exception { + System.out.print("TOKEN NON VALIDO"); + buffer = ByteBuffer.allocate(1024); + Message msg = new Message("MATCH_NOT_AVAILABLE", "", null, new DefaultListModel<>()); + buffer.clear(); + byte[] byteMessage = msg.toString().getBytes(); + buffer = ByteBuffer.wrap(byteMessage); + channel.write(buffer); + return false; + } + +} \ No newline at end of file diff --git a/client_1.log b/client_1.log index 05f1ec1..a95539a 100644 --- a/client_1.log +++ b/client_1.log @@ -8630,3 +8630,71 @@ LOGGER (Client1): Tue Jul 11 01:24:02 CEST 2017 - Invoked invitation with userna LOGGER (Client1): Tue Jul 11 01:24:02 CEST 2017 - L'utente è sloggato LOGGER (Client1): Tue Jul 11 01:24:02 CEST 2017 - Invoked invitation with username=c|[a] LOGGER (Client1): Tue Jul 11 01:24:02 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 10:45:24 CEST 2017 - Client starting ... +LOGGER (Client1): Tue Jul 11 10:45:26 CEST 2017 - Client starting ... +LOGGER (Client1): Tue Jul 11 10:45:31 CEST 2017 - Invoked invitation with username=b|[a] +LOGGER (Client1): Tue Jul 11 10:45:31 CEST 2017 - b ti ha sfidato! +LOGGER (Client1): Tue Jul 11 10:45:31 CEST 2017 - Invoked invitation with username=b|[a] +LOGGER (Client1): Tue Jul 11 10:45:31 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:07:03 CEST 2017 - Client starting ... +LOGGER (Client1): Tue Jul 11 11:07:05 CEST 2017 - Client starting ... +LOGGER (Client1): Tue Jul 11 11:07:14 CEST 2017 - Invoked invitation with username=b|[a] +LOGGER (Client1): Tue Jul 11 11:07:14 CEST 2017 - b ti ha sfidato! +LOGGER (Client1): Tue Jul 11 11:07:14 CEST 2017 - Invoked invitation with username=b|[a] +LOGGER (Client1): Tue Jul 11 11:07:14 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:07:18 CEST 2017 - Client starting ... +LOGGER (Client1): Tue Jul 11 11:07:28 CEST 2017 - Invoked invitation with username=c|[a] +LOGGER (Client1): Tue Jul 11 11:07:28 CEST 2017 - c ti ha sfidato! +LOGGER (Client1): Tue Jul 11 11:07:28 CEST 2017 - Invoked invitation with username=c|[a] +LOGGER (Client1): Tue Jul 11 11:07:28 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:07:28 CEST 2017 - Invoked invitation with username=c|[a] +LOGGER (Client1): Tue Jul 11 11:07:28 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:07:36 CEST 2017 - Client starting ... +LOGGER (Client1): Tue Jul 11 11:07:44 CEST 2017 - Invoked invitation with username=b|[d] +LOGGER (Client1): Tue Jul 11 11:07:44 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:07:44 CEST 2017 - Invoked invitation with username=b|[d] +LOGGER (Client1): Tue Jul 11 11:07:44 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:07:44 CEST 2017 - Invoked invitation with username=b|[d] +LOGGER (Client1): Tue Jul 11 11:07:44 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:07:44 CEST 2017 - Invoked invitation with username=b|[d] +LOGGER (Client1): Tue Jul 11 11:07:44 CEST 2017 - b ti ha sfidato! +LOGGER (Client1): Tue Jul 11 11:07:58 CEST 2017 - Invoked invitation with username=aa|[c] +LOGGER (Client1): Tue Jul 11 11:07:58 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:07:58 CEST 2017 - Invoked invitation with username=aa|[c] +LOGGER (Client1): Tue Jul 11 11:07:58 CEST 2017 - aa ti ha sfidato! +LOGGER (Client1): Tue Jul 11 11:07:58 CEST 2017 - Invoked invitation with username=aa|[c] +LOGGER (Client1): Tue Jul 11 11:07:58 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:07:58 CEST 2017 - Invoked invitation with username=aa|[c] +LOGGER (Client1): Tue Jul 11 11:07:58 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:08:16 CEST 2017 - Invoked invitation with username=d|[c] +LOGGER (Client1): Tue Jul 11 11:08:16 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:08:16 CEST 2017 - Invoked invitation with username=d|[c] +LOGGER (Client1): Tue Jul 11 11:08:16 CEST 2017 - d ti ha sfidato! +LOGGER (Client1): Tue Jul 11 11:08:16 CEST 2017 - Invoked invitation with username=d|[c] +LOGGER (Client1): Tue Jul 11 11:08:16 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:08:16 CEST 2017 - Invoked invitation with username=d|[c] +LOGGER (Client1): Tue Jul 11 11:08:16 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:08:22 CEST 2017 - Invoked invitation with username=b|[aa] +LOGGER (Client1): Tue Jul 11 11:08:22 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:08:22 CEST 2017 - Invoked invitation with username=b|[aa] +LOGGER (Client1): Tue Jul 11 11:08:22 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:08:22 CEST 2017 - Invoked invitation with username=b|[aa] +LOGGER (Client1): Tue Jul 11 11:08:22 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:08:22 CEST 2017 - Invoked invitation with username=b|[aa] +LOGGER (Client1): Tue Jul 11 11:08:22 CEST 2017 - b ti ha sfidato! +LOGGER (Client1): Tue Jul 11 11:08:52 CEST 2017 - Invoked invitation with username=d|[b, aa] +LOGGER (Client1): Tue Jul 11 11:08:52 CEST 2017 - d ti ha sfidato! +LOGGER (Client1): Tue Jul 11 11:08:52 CEST 2017 - Invoked invitation with username=d|[b, aa] +LOGGER (Client1): Tue Jul 11 11:08:52 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:08:52 CEST 2017 - Invoked invitation with username=d|[b, aa] +LOGGER (Client1): Tue Jul 11 11:08:52 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:08:52 CEST 2017 - Invoked invitation with username=d|[b, aa] +LOGGER (Client1): Tue Jul 11 11:08:52 CEST 2017 - d ti ha sfidato! +LOGGER (Client1): Tue Jul 11 11:13:13 CEST 2017 - Invoked invitation with username=d|[b] +LOGGER (Client1): Tue Jul 11 11:13:13 CEST 2017 - d ti ha sfidato! +LOGGER (Client1): Tue Jul 11 11:13:13 CEST 2017 - Invoked invitation with username=d|[b] +LOGGER (Client1): Tue Jul 11 11:13:13 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:13:13 CEST 2017 - Invoked invitation with username=d|[b] +LOGGER (Client1): Tue Jul 11 11:13:13 CEST 2017 - L'utente è sloggato +LOGGER (Client1): Tue Jul 11 11:13:13 CEST 2017 - Invoked invitation with username=d|[b] +LOGGER (Client1): Tue Jul 11 11:13:13 CEST 2017 - L'utente è sloggato diff --git a/server.log b/server.log index 09d4a32..b09d49f 100644 --- a/server.log +++ b/server.log @@ -9739,3 +9739,30 @@ LOGGER (Server): Tue Jul 11 01:22:25 CEST 2017 - Invoked login with username=b A LOGGER (Server): Tue Jul 11 01:22:25 CEST 2017 - Login successfull LOGGER (Server): Tue Jul 11 01:22:30 CEST 2017 - Invoked login with username=c AND password=c LOGGER (Server): Tue Jul 11 01:22:30 CEST 2017 - Login successfull +LOGGER (Server): Tue Jul 11 10:45:22 CEST 2017 - Server starting ... +LOGGER (Server): Tue Jul 11 10:45:22 CEST 2017 - Auth Service running at 9999 port... +LOGGER (Server): Tue Jul 11 10:45:22 CEST 2017 - GamePage Service is running at 10000 port... +LOGGER (Server): Tue Jul 11 10:45:22 CEST 2017 - Server started +LOGGER (Server): Tue Jul 11 10:45:27 CEST 2017 - Invoked login with username=a AND password=a +LOGGER (Server): Tue Jul 11 10:45:27 CEST 2017 - Login successfull +LOGGER (Server): Tue Jul 11 10:45:29 CEST 2017 - Invoked login with username=b AND password=b +LOGGER (Server): Tue Jul 11 10:45:29 CEST 2017 - Login successfull +LOGGER (Server): Tue Jul 11 11:07:02 CEST 2017 - Server starting ... +LOGGER (Server): Tue Jul 11 11:07:02 CEST 2017 - Auth Service running at 9999 port... +LOGGER (Server): Tue Jul 11 11:07:02 CEST 2017 - GamePage Service is running at 10000 port... +LOGGER (Server): Tue Jul 11 11:07:02 CEST 2017 - Server started +LOGGER (Server): Tue Jul 11 11:07:06 CEST 2017 - Invoked login with username=a AND password=a +LOGGER (Server): Tue Jul 11 11:07:06 CEST 2017 - Login successfull +LOGGER (Server): Tue Jul 11 11:07:12 CEST 2017 - Invoked login with username=b AND password=b +LOGGER (Server): Tue Jul 11 11:07:12 CEST 2017 - Login successfull +LOGGER (Server): Tue Jul 11 11:07:19 CEST 2017 - Invoked login with username=c AND password=c +LOGGER (Server): Tue Jul 11 11:07:19 CEST 2017 - Login successfull +LOGGER (Server): Tue Jul 11 11:07:37 CEST 2017 - Invoked login with username=d AND password=d +LOGGER (Server): Tue Jul 11 11:07:37 CEST 2017 - Login successfull +LOGGER (Server): Tue Jul 11 11:07:50 CEST 2017 - Invoked logout with username=a AND token=8l9ott4fctua8ii3ri4a43u8ls +LOGGER (Server): Tue Jul 11 11:07:50 CEST 2017 - Logout successfull +LOGGER (Server): Tue Jul 11 11:07:50 CEST 2017 - Logout successfull (but something gone wrong) +LOGGER (Server): Tue Jul 11 11:07:54 CEST 2017 - Invoked register with username=aa AND password=aa +LOGGER (Server): Tue Jul 11 11:07:54 CEST 2017 - Registration successfull +LOGGER (Server): Tue Jul 11 11:07:56 CEST 2017 - Invoked login with username=aa AND password=aa +LOGGER (Server): Tue Jul 11 11:07:56 CEST 2017 - Login successfull