Fix for worlds with weird names and URLDecode mumbo-jumbo

This commit is contained in:
zeeZ 2011-04-28 16:34:50 +02:00
parent 91b60be572
commit ca9aa0727f
2 changed files with 3 additions and 1 deletions

View File

@ -7,6 +7,7 @@ import java.io.OutputStream;
import java.io.PrintStream; import java.io.PrintStream;
import java.io.StringWriter; import java.io.StringWriter;
import java.net.Socket; import java.net.Socket;
import java.net.URLDecoder;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -155,6 +156,7 @@ public class HttpServerConnection extends Thread {
boolean directoryHandler = key.endsWith("/"); boolean directoryHandler = key.endsWith("/");
if (directoryHandler && request.path.startsWith(entry.getKey()) || !directoryHandler && request.path.equals(entry.getKey())) { if (directoryHandler && request.path.startsWith(entry.getKey()) || !directoryHandler && request.path.equals(entry.getKey())) {
relativePath = request.path.substring(entry.getKey().length()); relativePath = request.path.substring(entry.getKey().length());
relativePath = URLDecoder.decode(relativePath,"utf-8");
handler = entry.getValue(); handler = entry.getValue();
break; break;
} }

View File

@ -30,7 +30,7 @@ public class ClientUpdateHandler implements HttpHandler {
this.server = server; this.server = server;
} }
Pattern updatePathPattern = Pattern.compile("world/([a-zA-Z0-9_\\-\\.]+)/([0-9]*)"); Pattern updatePathPattern = Pattern.compile("world/([^/]+)/([0-9]*)");
private static final HttpStatus WorldNotFound = new HttpStatus(HttpStatus.NotFound.getCode(), "World Not Found"); private static final HttpStatus WorldNotFound = new HttpStatus(HttpStatus.NotFound.getCode(), "World Not Found");
@Override @Override
public void handle(String path, HttpRequest request, HttpResponse response) throws Exception { public void handle(String path, HttpRequest request, HttpResponse response) throws Exception {