From 687dc5f564435cf5c5906f6ada68b4bbc7602ccd Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Sun, 2 Mar 2003 03:47:06 +0000 Subject: [PATCH] Map client connections by normalized auth username rather than credentials instances. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2294 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../presents/server/ClientManager.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/java/com/threerings/presents/server/ClientManager.java b/src/java/com/threerings/presents/server/ClientManager.java index acf4b7082..63ed4c08f 100644 --- a/src/java/com/threerings/presents/server/ClientManager.java +++ b/src/java/com/threerings/presents/server/ClientManager.java @@ -1,5 +1,5 @@ // -// $Id: ClientManager.java,v 1.28 2002/11/29 23:40:32 mdb Exp $ +// $Id: ClientManager.java,v 1.29 2003/03/02 03:47:06 mdb Exp $ package com.threerings.presents.server; @@ -118,12 +118,12 @@ public class ClientManager /** * Returns the client instance that manages the client session for the - * specified credentials or null if that client is not currently - * connected to the server. + * specified authentication username or null if that client is not + * currently connected to the server. */ - public PresentsClient getClient (Credentials creds) + public PresentsClient getClient (String authUsername) { - return (PresentsClient)_usermap.get(creds); + return (PresentsClient)_usermap.get(authUsername.toLowerCase()); } /** @@ -252,10 +252,10 @@ public class ClientManager Connection conn, AuthRequest req, AuthResponse rsp) { Credentials creds = req.getCredentials(); - String username = creds.getUsername(); + String username = creds.getUsername().toLowerCase(); // see if a client is already registered with these credentials - PresentsClient client = (PresentsClient)_usermap.get(creds); + PresentsClient client = getClient(username); if (client != null) { Log.info("Resuming session [username=" + username + @@ -272,7 +272,7 @@ public class ClientManager client.startSession(this, creds, conn); // map their client instance - _usermap.put(creds, client); + _usermap.put(username, client); } catch (Exception e) { Log.warning("Failed to instantiate client instance to " + @@ -344,7 +344,8 @@ public class ClientManager String username = client.getUsername(); // remove the client from the username map - PresentsClient rc = (PresentsClient)_usermap.remove(creds); + PresentsClient rc = (PresentsClient) + _usermap.remove(creds.getUsername().toLowerCase()); // sanity check just because we can if (rc == null) { @@ -425,7 +426,7 @@ public class ClientManager protected ClientOp _clop; } - /** A mapping from usernames to client instances. */ + /** A mapping from auth username to client instances. */ protected HashMap _usermap = new HashMap(); /** A mapping from connections to client instances. */