Commit 68a7d8a3 by Tuomas Riihimäki

Only add User session container if container was not found

1 parent 71dd6834
...@@ -28,6 +28,8 @@ import javax.annotation.security.RolesAllowed; ...@@ -28,6 +28,8 @@ import javax.annotation.security.RolesAllowed;
import javax.ejb.ConcurrencyManagement; import javax.ejb.ConcurrencyManagement;
import javax.ejb.ConcurrencyManagementType; import javax.ejb.ConcurrencyManagementType;
import javax.ejb.LocalBean; import javax.ejb.LocalBean;
import javax.ejb.Lock;
import javax.ejb.LockType;
import javax.ejb.Singleton; import javax.ejb.Singleton;
import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType; import javax.ejb.TransactionAttributeType;
...@@ -47,26 +49,26 @@ import fi.codecrew.moya.enums.apps.UserPermission; ...@@ -47,26 +49,26 @@ import fi.codecrew.moya.enums.apps.UserPermission;
@ConcurrencyManagement(ConcurrencyManagementType.BEAN) @ConcurrencyManagement(ConcurrencyManagementType.BEAN)
@TransactionAttribute(TransactionAttributeType.SUPPORTS) @TransactionAttribute(TransactionAttributeType.SUPPORTS)
@DeclareRoles({ UserPermission.S_MANAGE_HTTP_SESSION }) @DeclareRoles({ UserPermission.S_MANAGE_HTTP_SESSION })
@Lock(LockType.READ)
public class SessionMgmtBean implements SessionMgmtBeanLocal { public class SessionMgmtBean implements SessionMgmtBeanLocal {
/**
* Default constructor.
*/
public SessionMgmtBean() {
// TODO Auto-generated constructor stub
}
private final ConcurrentHashMap<String, UserContainer> sessionUsers = new ConcurrentHashMap<>(); private final ConcurrentHashMap<String, UserContainer> sessionUsers = new ConcurrentHashMap<>();
private final Set<HttpSession> sessions = Collections.newSetFromMap(new ConcurrentHashMap<HttpSession, Boolean>()); private final Set<HttpSession> sessions = Collections.newSetFromMap(new ConcurrentHashMap<HttpSession, Boolean>());
@SuppressWarnings("unused") @SuppressWarnings("unused")
private static final Logger logger = LoggerFactory.getLogger(SessionMgmtBean.class); private static final Logger logger = LoggerFactory.getLogger(SessionMgmtBean.class);
/**
* Default constructor.
*/
public SessionMgmtBean() {
}
@Override @Override
public void updateSessionUser(String sessionId, String user) { public void updateSessionUser(String sessionId, String user) {
if (!sessionUsers.containsKey(sessionId)) { if (!sessionUsers.containsKey(sessionId)) {
sessionUsers.put(sessionId, new UserContainer(BortalLocalContextHolder.getHostname(), user)); sessionUsers.putIfAbsent(sessionId, new UserContainer(BortalLocalContextHolder.getHostname(), user));
} }
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!