summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/session/SessionManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/session/SessionManager.java')
-rw-r--r--src/main/java/org/openslx/imagemaster/session/SessionManager.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/main/java/org/openslx/imagemaster/session/SessionManager.java b/src/main/java/org/openslx/imagemaster/session/SessionManager.java
index 295b53e..e468278 100644
--- a/src/main/java/org/openslx/imagemaster/session/SessionManager.java
+++ b/src/main/java/org/openslx/imagemaster/session/SessionManager.java
@@ -28,12 +28,15 @@ public class SessionManager
synchronized ( sessions ) {
sessions.put( authToken, session );
+ sessions.put( sessionId, session );
}
return new SessionData( sessionId, authToken, session.getSatelliteAddress() );
}
- public static Session getSession( String token )
+ public static Session getSessionFromToken( String token )
{
+ if ( token == null || token.length() != 64 )
+ return null;
final Session session;
synchronized ( sessions ) {
session = sessions.get( token );
@@ -60,7 +63,6 @@ public class SessionManager
while ( it.hasNext() ) {
final Session s = it.next();
if ( s.timedOut() ) {
- log.debug( "Removing old session of " + s.getLogin() );
it.remove();
}
}
@@ -71,4 +73,18 @@ public class SessionManager
gcThread.start();
}
+ public static Object getSessionFromSessionId( String sessionId )
+ {
+ if ( sessionId == null || sessionId.length() != 32 )
+ return null;
+ final Session session;
+ synchronized ( sessions ) {
+ session = sessions.get( sessionId );
+ }
+ if ( session == null || session.timedOut() ) {
+ return null;
+ }
+ return session;
+ }
+
}