Commit 294487e8 by Tuomas Riihimäki

Fix sessionlist with invalidated sessions

1 parent b10e766e
......@@ -26,14 +26,12 @@ import java.util.Enumeration;
import java.util.List;
import java.util.Set;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionContext;
import fi.codecrew.moya.beans.SessionMgmtBeanLocal;
import fi.codecrew.moya.beans.SessionMgmtBeanLocal.UserContainer;
public class HttpSessionWrapper implements HttpSession
public class HttpSessionWrapper
{
private final HttpSession session;
private final String hostname;
......@@ -46,113 +44,82 @@ public class HttpSessionWrapper implements HttpSession
this.session = session;
}
@Override
public Object getAttribute(String attr) {
try {
return session.getAttribute(attr);
} catch (Exception e) {
// Invalidated session;
}
return null;
}
@Override
public Enumeration<String> getAttributeNames() {
try {
return session.getAttributeNames();
} catch (Exception e) {
// Invalidated session;
}
return null;
}
@Override
public long getCreationTime() {
public Long getCreationTime() {
try {
return session.getCreationTime();
} catch (Exception e) {
// Invalidated session;
}
return null;
}
public Date getCreationDateTime() {
Date ret = null;
try {
ret = new Date(session.getCreationTime());
return new Date(session.getCreationTime());
} catch (Exception t) {
ret = null;
}
return ret;
return null;
}
@Override
public String getId() {
return session.getId();
}
@Override
public long getLastAccessedTime() {
return session.getLastAccessedTime();
public Long getLastAccessedTime() {
Long ret = null;
try {
ret = session.getLastAccessedTime();
} catch (Exception e) {
ret = null;
}
return ret;
}
public Date getLastAccessedDateTime() {
Date ret = null;
try {
ret = new Date(session.getLastAccessedTime());
Long t = session.getLastAccessedTime();
if (t != null) {
ret = new Date(t);
}
} catch (Exception t) {
ret = null;
}
return ret;
}
@Override
public int getMaxInactiveInterval() {
return session.getMaxInactiveInterval();
}
@Override
public ServletContext getServletContext() {
return session.getServletContext();
}
@Override
public HttpSessionContext getSessionContext() {
return session.getSessionContext();
}
@Override
public Object getValue(String arg0) {
return session.getValue(arg0);
}
@Override
public String[] getValueNames() {
return session.getValueNames();
}
@Override
public void invalidate() {
session.invalidate();
}
@Override
public boolean isNew() {
return session.isNew();
}
@Override
public void putValue(String arg0, Object arg1) {
session.putValue(arg0, arg1);
}
@Override
public void removeAttribute(String arg0) {
session.removeAttribute(arg0);
}
@Override
public void removeValue(String arg0) {
session.removeValue(arg0);
}
@Override
public void setAttribute(String arg0, Object arg1) {
session.setAttribute(arg0, arg1);
}
@Override
public void setMaxInactiveInterval(int arg0) {
session.setMaxInactiveInterval(arg0);
}
public static List<HttpSessionWrapper> wrap(Set<HttpSession> sessions, SessionMgmtBeanLocal sessionMgmt) {
List<HttpSessionWrapper> ret = new ArrayList<>();
for (HttpSession s : sessions) {
......@@ -178,12 +145,15 @@ public class HttpSessionWrapper implements HttpSession
return hostname;
}
private static class LastSeenComparator implements Comparator<HttpSessionWrapper>
{
private static class LastSeenComparator implements Comparator<HttpSessionWrapper> {
@Override
public int compare(HttpSessionWrapper o1, HttpSessionWrapper o2) {
return Long.compare(o2.getLastAccessedTime(), o1.getLastAccessedTime());
Long t2 = o2.getLastAccessedTime();
Long t1 = o1.getLastAccessedTime();
if (t2 == t1) {
return 0;
}
return (t2 == null || t1 == null) ? (t2 == null ? -1 : 1) : Long.compare(t2, t1);
}
}
......
......@@ -541,6 +541,7 @@ global.notauthorized = You don't have enough rights to enter this site.
global.save = Save
httpsession.creationTime = Created
httpsession.hostname = Hostname
httpsession.invalidate = Invalidate
imagefile.description = Description
......
......@@ -543,11 +543,12 @@ global.notauthorized = Sinulla ei ole riitt\u00E4vi\u00E4 oikeuksia t\u00E4lle s
global.save = Tallenna
httpsession.creationTime = Luotu
httpsession.hostname = Hostname
httpsession.id = ID
httpsession.invalidate = Mit\u00E4t\u00F6i
httpsession.invalidateSuccessfull = Sessio onnistuneesti mit\uFFFDt\uFFFDity
httpsession.invalidateSuccessfull = Sessio onnistuneesti mit\u00F6t\u00F6ity
httpsession.isSessionNew = Uusi sessio
httpsession.lastAccessedTime = Viimeksi n\uFFFDhty
httpsession.lastAccessedTime = Viimeksi n\u00E4hty
httpsession.maxInactiveInterval = Aikakatkaisu (s)
httpsession.sessionHasExisted = Ollut elossa (s)
httpsession.user = Tunnus
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!