Skip to content
Snippets Groups Projects
Commit 18da9ce0 authored by felmer's avatar felmer
Browse files

SSDM-9734: use user id *and* password to cache session token

parent 95c461bf
No related branches found
No related tags found
No related merge requests found
...@@ -45,7 +45,7 @@ public class FtpUserManager implements UserManager ...@@ -45,7 +45,7 @@ public class FtpUserManager implements UserManager
FtpUserManager.class); FtpUserManager.class);
private final IServiceForDataStoreServer service; private final IServiceForDataStoreServer service;
private final Map<String, String> sessionTokensByUser = Collections.synchronizedMap(new HashMap<>()); private final Map<String, String> sessionTokensByUser = Collections.synchronizedMap(new HashMap<>());
public FtpUserManager(IServiceForDataStoreServer service) public FtpUserManager(IServiceForDataStoreServer service)
...@@ -60,7 +60,8 @@ public class FtpUserManager implements UserManager ...@@ -60,7 +60,8 @@ public class FtpUserManager implements UserManager
{ {
UsernamePasswordAuthentication upa = (UsernamePasswordAuthentication) authentication; UsernamePasswordAuthentication upa = (UsernamePasswordAuthentication) authentication;
String user = upa.getUsername(); String user = upa.getUsername();
String sessionToken = sessionTokensByUser.get(user); String key = String.format("%s:%s", upa.getUsername(), upa.getPassword());
String sessionToken = sessionTokensByUser.get(key);
if (sessionToken != null) if (sessionToken != null)
{ {
SessionContextDTO session = service.tryGetSession(sessionToken); SessionContextDTO session = service.tryGetSession(sessionToken);
...@@ -71,7 +72,7 @@ public class FtpUserManager implements UserManager ...@@ -71,7 +72,7 @@ public class FtpUserManager implements UserManager
String password = upa.getPassword(); String password = upa.getPassword();
SessionContextDTO session = service.tryAuthenticate(user, password); SessionContextDTO session = service.tryAuthenticate(user, password);
sessionToken = session == null ? null : session.getSessionToken(); sessionToken = session == null ? null : session.getSessionToken();
sessionTokensByUser.put(user, sessionToken); sessionTokensByUser.put(key, sessionToken);
} }
if (sessionToken != null) if (sessionToken != null)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment