blob: f4b948ff3acc3254a83d09700ff007cfee7eb221 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014, 2016 Orange.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.eclipse.om2m.sdt.home.monitoring.servlet;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class SessionManager {
public class Session {
private final String name;
private final String password;
private final String id;
public Session(final String pName, final String pPassword) {
this.name = pName;
this.id = UUID.randomUUID().toString();
this.password = pPassword;
}
public String getName() {
return name;
}
public String getPassword() {
return password;
}
public String getId() {
return id;
}
}
public static final String SESSION_ID_PARAMETER = "sessionId";
private static final SessionManager INSTANCE = new SessionManager();
private final Map<String/* session id */, Session> openedSessions;
public static SessionManager getInstance() {
return INSTANCE;
}
/**
* Make private default constructor
*/
private SessionManager() {
openedSessions = new HashMap<String, Session>();
}
public Session createNewSession(String name, String password) {
Session session = new Session(name, password);
synchronized (openedSessions) {
openedSessions.put(session.getId(), session);
}
return session;
}
public Session removeSession(String token) {
synchronized (openedSessions) {
return openedSessions.remove(token);
}
}
public boolean checkTokenExists(String token) {
if (token == null)
return false;
synchronized (openedSessions) {
return openedSessions.containsKey(token);
}
}
public Session getSession(String sessionId) {
if (sessionId == null)
return null;
synchronized (openedSessions) {
return openedSessions.get(sessionId);
}
}
}