diff --git a/gemp-lotr/gemp-lotr-server/pom.xml b/gemp-lotr/gemp-lotr-server/pom.xml
index 52702bd7e..2f0b34ff9 100644
--- a/gemp-lotr/gemp-lotr-server/pom.xml
+++ b/gemp-lotr/gemp-lotr-server/pom.xml
@@ -35,6 +35,11 @@
commons-dbcp
1.4
+
+ com.sun.jersey
+ jersey-server
+ 1.8
+
javax.servlet
servlet-api
diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java
index 390e01d5f..f1d2c3652 100644
--- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java
+++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java
@@ -2,6 +2,8 @@ package com.gempukku.lotro.chat;
import com.gempukku.lotro.game.GatheringChatRoomListener;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Response;
import java.util.*;
public class ChatRoomMediator {
@@ -23,7 +25,7 @@ public class ChatRoomMediator {
public synchronized List joinUser(String playerId) {
if (_allowedPlayers != null && !_allowedPlayers.contains(playerId))
- return null;
+ throw new WebApplicationException(Response.Status.FORBIDDEN);
GatheringChatRoomListener value = new GatheringChatRoomListener();
_listeners.put(playerId, value);
@@ -33,11 +35,11 @@ public class ChatRoomMediator {
public synchronized List getPendingMessages(String playerId) {
if (_allowedPlayers != null && !_allowedPlayers.contains(playerId))
- return null;
+ throw new WebApplicationException(Response.Status.FORBIDDEN);
GatheringChatRoomListener gatheringChatRoomListener = _listeners.get(playerId);
if (gatheringChatRoomListener == null)
- return null;
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
return gatheringChatRoomListener.consumeMessages();
}
@@ -46,12 +48,11 @@ public class ChatRoomMediator {
_listeners.remove(playerId);
}
- public synchronized boolean sendMessage(String playerId, String message) {
+ public synchronized void sendMessage(String playerId, String message) {
if (_allowedPlayers != null && !_allowedPlayers.contains(playerId))
- return false;
+ throw new WebApplicationException(Response.Status.FORBIDDEN);
_chatRoom.postMessage(playerId, message);
- return true;
}
public synchronized void cleanup() {
diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java
index 6050bc685..072ca5fcf 100644
--- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java
+++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java
@@ -12,6 +12,8 @@ import com.gempukku.lotro.logic.timing.DefaultLotroGame;
import com.gempukku.lotro.logic.timing.GameResultListener;
import com.gempukku.lotro.logic.vo.LotroDeck;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Response;
import java.util.*;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -293,10 +295,10 @@ public class LotroGameMediator {
}
}
- public boolean processCommunicationChannel(Player player, int channelNumber, ParticipantCommunicationVisitor visitor) {
+ public void processCommunicationChannel(Player player, int channelNumber, ParticipantCommunicationVisitor visitor) {
String playerName = player.getName();
if (_noSpectators && !_playersPlaying.contains(playerName))
- return false;
+ throw new WebApplicationException(Response.Status.FORBIDDEN);
_readLock.lock();
try {
@@ -326,13 +328,12 @@ public class LotroGameMediator {
} finally {
_readLock.unlock();
}
- return true;
}
- public boolean singupUserForGame(Player player, ParticipantCommunicationVisitor visitor) {
+ public void singupUserForGame(Player player, ParticipantCommunicationVisitor visitor) {
String playerName = player.getName();
if (_noSpectators && !_playersPlaying.contains(playerName))
- return false;
+ throw new WebApplicationException(Response.Status.FORBIDDEN);
_readLock.lock();
try {
@@ -358,7 +359,6 @@ public class LotroGameMediator {
} finally {
_readLock.unlock();
}
- return true;
}
private void startClocksForUsersPendingDecision() {
diff --git a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ChatResource.java b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ChatResource.java
index 2aa7fd5d2..1f43a2ee2 100644
--- a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ChatResource.java
+++ b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ChatResource.java
@@ -40,8 +40,6 @@ public class ChatResource extends AbstractResource {
sendError(Response.Status.NOT_FOUND);
List chatMessages = chatRoom.joinUser(resourceOwner.getName());
- if (chatMessages == null)
- sendError(Response.Status.FORBIDDEN);
Collection usersInRoom = chatRoom.getUsersInRoom();
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
@@ -71,14 +69,11 @@ public class ChatResource extends AbstractResource {
if (messages != null) {
for (String message : messages) {
if (message != null && message.trim().length() > 0)
- if (!chatRoom.sendMessage(resourceOwner.getName(), StringEscapeUtils.escapeHtml(message)))
- sendError(Response.Status.FORBIDDEN);
+ chatRoom.sendMessage(resourceOwner.getName(), StringEscapeUtils.escapeHtml(message));
}
}
List chatMessages = chatRoom.getPendingMessages(resourceOwner.getName());
- if (chatMessages == null)
- sendError(Response.Status.FORBIDDEN);
Collection usersInRoom = chatRoom.getUsersInRoom();
diff --git a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java
index 82f4faa04..8a1d7c5f8 100644
--- a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java
+++ b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java
@@ -67,8 +67,7 @@ public class GameResource extends AbstractResource {
Document doc = documentBuilder.newDocument();
Element gameState = doc.createElement("gameState");
- if (!gameMediator.singupUserForGame(resourceOwner, new SerializationVisitor(doc, gameState)))
- sendError(Response.Status.FORBIDDEN);
+ gameMediator.singupUserForGame(resourceOwner, new SerializationVisitor(doc, gameState));
doc.appendChild(gameState);
return doc;
@@ -159,8 +158,7 @@ public class GameResource extends AbstractResource {
Document doc = documentBuilder.newDocument();
Element update = doc.createElement("update");
- if (!gameMediator.processCommunicationChannel(resourceOwner, channelNumber, new SerializationVisitor(doc, update)))
- sendError(Response.Status.FORBIDDEN);
+ gameMediator.processCommunicationChannel(resourceOwner, channelNumber, new SerializationVisitor(doc, update));
doc.appendChild(update);