1.1 --- a/webidor/src/main/java/cz/xelfi/quoridor/webidor/resources/Quoridor.java Sun Aug 30 16:04:27 2009 +0200
1.2 +++ b/webidor/src/main/java/cz/xelfi/quoridor/webidor/resources/Quoridor.java Sun Sep 13 16:48:54 2009 +0200
1.3 @@ -32,9 +32,19 @@
1.4 import com.sun.jersey.spi.resource.Singleton;
1.5 import com.sun.net.httpserver.HttpServer;
1.6 import java.io.File;
1.7 +import java.io.FileInputStream;
1.8 import java.io.IOException;
1.9 import java.net.ServerSocket;
1.10 +import java.util.HashMap;
1.11 +import java.util.Map;
1.12 +import java.util.Properties;
1.13 +import java.util.UUID;
1.14 +import javax.ws.rs.GET;
1.15 +import javax.ws.rs.PUT;
1.16 import javax.ws.rs.Path;
1.17 +import javax.ws.rs.Produces;
1.18 +import javax.ws.rs.QueryParam;
1.19 +import javax.ws.rs.core.MediaType;
1.20
1.21 /**
1.22 *
1.23 @@ -45,6 +55,7 @@
1.24 public final class Quoridor {
1.25 private final File path;
1.26 private Games games;
1.27 + private final Map<UUID,String> loggedIn;
1.28
1.29 public Quoridor() {
1.30 final String prop = System.getProperty("quoridor.dir"); // NOI18N
1.31 @@ -53,16 +64,50 @@
1.32 }
1.33 path = new File(prop);
1.34 path.mkdirs();
1.35 + loggedIn = new HashMap<UUID, String>();
1.36 }
1.37
1.38 @Path("games")
1.39 public Games getGames() {
1.40 if (games == null) {
1.41 - games = new Games(new File(path, "games"));
1.42 + games = new Games(new File(path, "games"), this); // NOI18N
1.43 }
1.44 return games;
1.45 }
1.46
1.47 + @Path("login")
1.48 + @PUT
1.49 + @Produces({ MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON, MediaType.TEXT_XML })
1.50 + public String login(
1.51 + @QueryParam("name") String name,
1.52 + @QueryParam("password") String password
1.53 + ) {
1.54 + File f = new File(path, "passwd"); // NOI18Nt
1.55 + Properties p = new Properties();
1.56 + try {
1.57 + p.load(new FileInputStream(f));
1.58 + } catch (IOException ex) {
1.59 + ex.printStackTrace();
1.60 + }
1.61 + if (name != null && password.equals(p.getProperty(name))) {
1.62 + UUID uuid = UUID.randomUUID();
1.63 + loggedIn.put(uuid, name);
1.64 + return uuid.toString();
1.65 + } else {
1.66 + return null;
1.67 + }
1.68 +
1.69 + }
1.70 +
1.71 + @Path("login")
1.72 + @GET
1.73 + @Produces({ MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON, MediaType.TEXT_XML })
1.74 + public String isLoggedIn(
1.75 + @QueryParam("id") String id
1.76 + ) {
1.77 + return id == null ? null : loggedIn.get(UUID.fromString(id));
1.78 + }
1.79 +
1.80 //
1.81 // start the server
1.82 //