Commit 21ce7f4b by Juho Salli

Merge branch 'sessionlist' into 'master'

Session list fix for invalidated sessions

Some functions throw an exception when invoked to an invalidated session. Catch exceptions and return emtpy values instead

See merge request !278
2 parents 86e3bed9 294487e8
......@@ -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);
}
}
......
......@@ -548,6 +548,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
......
......@@ -550,11 +550,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!