diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java
index 1962d24b8..ad5da3c39 100644
--- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java
+++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java
@@ -60,7 +60,7 @@ public class CachedPlayerDAO implements PlayerDAO, Cached {
}
@Override
- public boolean registerUser(String login, String password, String remoteAddr) throws SQLException {
+ public boolean registerUser(String login, String password, String remoteAddr) throws SQLException, LoginInvalidException {
boolean registered = _delegate.registerUser(login, password, remoteAddr);
if (registered)
_playerByName.remove(login);
diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/DbPlayerDAO.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/DbPlayerDAO.java
index 10f336c1a..134dc13e8 100644
--- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/DbPlayerDAO.java
+++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/DbPlayerDAO.java
@@ -104,7 +104,7 @@ public class DbPlayerDAO implements PlayerDAO {
}
}
- public synchronized boolean registerUser(String login, String password, String remoteAddr) throws SQLException {
+ public synchronized boolean registerUser(String login, String password, String remoteAddr) throws SQLException, LoginInvalidException {
boolean result = validateLogin(login);
if (!result)
return false;
@@ -127,13 +127,13 @@ public class DbPlayerDAO implements PlayerDAO {
}
}
- private boolean validateLogin(String login) throws SQLException {
+ private boolean validateLogin(String login) throws SQLException, LoginInvalidException {
if (login.length() < 2 || login.length() > 10)
- return false;
+ throw new LoginInvalidException();
for (int i = 0; i < login.length(); i++) {
char c = login.charAt(i);
if (!validLoginChars.contains("" + c))
- return false;
+ throw new LoginInvalidException();
}
String lowerCase = login.toLowerCase();
diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/LoginInvalidException.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/LoginInvalidException.java
new file mode 100644
index 000000000..e79f081b6
--- /dev/null
+++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/LoginInvalidException.java
@@ -0,0 +1,4 @@
+package com.gempukku.lotro.db;
+
+public class LoginInvalidException extends Exception {
+}
diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/PlayerDAO.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/PlayerDAO.java
index f38e2434a..b11f059ca 100644
--- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/PlayerDAO.java
+++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/PlayerDAO.java
@@ -15,7 +15,7 @@ public interface PlayerDAO {
public boolean updateLastReward(Player player, int previousReward, int currentReward) throws SQLException;
- public boolean registerUser(String login, String password, String remoteAddr) throws SQLException;
+ public boolean registerUser(String login, String password, String remoteAddr) throws SQLException, LoginInvalidException;
public void updateLastLoginIp(String login, String remoteAddr) throws SQLException;
}
diff --git a/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/ServerResource.java b/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/ServerResource.java
index 912728690..c606f9276 100644
--- a/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/ServerResource.java
+++ b/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/ServerResource.java
@@ -1,6 +1,7 @@
package com.gempukku.lotro.server;
import com.gempukku.lotro.chat.ChatServer;
+import com.gempukku.lotro.db.LoginInvalidException;
import com.gempukku.lotro.db.PlayerStatistic;
import com.gempukku.lotro.db.vo.GameHistoryEntry;
import com.gempukku.lotro.game.*;
@@ -52,7 +53,7 @@ public class ServerResource extends AbstractResource {
@Path("/login")
@POST
@Produces("text/html")
- public String login(
+ public void login(
@FormParam("login") String login,
@FormParam("password") String password,
@Context HttpServletRequest request) throws Exception {
@@ -60,12 +61,11 @@ public class ServerResource extends AbstractResource {
if (player != null) {
if (player.getType().contains("u")) {
logUser(request, login);
- return "";
} else {
- return "You were banned. If you think it was a mistake, please write an e-mail to marcins78@gmail.com";
+ throw new WebApplicationException(Response.Status.FORBIDDEN);
}
} else {
- return "Invalid login or password. Please try again.
" + getLoginHTML();
+ throw new WebApplicationException(Response.Status.UNAUTHORIZED);
}
}
@@ -79,30 +79,21 @@ public class ServerResource extends AbstractResource {
@Path("/register")
@POST
@Produces("text/html")
- public String register(
+ public void register(
@FormParam("login") String login,
@FormParam("password") String password,
- @Context HttpServletRequest request) throws Exception {
- if (_playerDao.registerUser(login, password, request.getRemoteAddr())) {
- logUser(request, login);
- return "";
- } else {
- StringBuilder sb = new StringBuilder();
- sb.append("User with this name already exists or your login is invalid.
");
- sb.append("Login must be between 2-10 characters long, contain only
english letters, numbers or _ (underscore) and - (dash) characters.
");
- sb.append("Try to again.");
- return sb.toString();
+ @Context HttpServletRequest request) throws SQLException {
+ try {
+ if (_playerDao.registerUser(login, password, request.getRemoteAddr())) {
+ logUser(request, login);
+ } else {
+ throw new WebApplicationException(Response.Status.CONFLICT);
+ }
+ } catch (LoginInvalidException exp) {
+ throw new WebApplicationException(Response.Status.BAD_REQUEST);
}
}
- private String getLoginHTML() {
- StringBuilder sb = new StringBuilder();
- sb.append("Login:
");
- sb.append("Password:
");
- sb.append("");
- return sb.toString();
- }
-
@Path("/replay/{replayId}")
@GET
@Produces(MediaType.APPLICATION_XML)
@@ -195,19 +186,12 @@ public class ServerResource extends AbstractResource {
@QueryParam("participantId") String participantId,
@Context HttpServletRequest request) throws ParserConfigurationException {
StringBuilder sb = new StringBuilder();
- participantId = getUserNameIfLogged(request);
- if (participantId != null) {
- sb.append("");
- } else {
- sb.append("You are not logged in, log in below or .");
- int day = 1000 * 60 * 60 * 24;
- int week = 1000 * 60 * 60 * 24 * 7;
- sb.append("

