From d87ac158f7506bbf339e2dba6160e00206540087 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20P=C3=A9rez=20Alcolea?= Date: Thu, 23 Oct 2014 14:26:24 -0700 Subject: [PATCH 1/2] Update SessionProxy.java --- src/java/grails/plugin/databasesession/SessionProxy.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/java/grails/plugin/databasesession/SessionProxy.java b/src/java/grails/plugin/databasesession/SessionProxy.java index 814823a..43daa9e 100644 --- a/src/java/grails/plugin/databasesession/SessionProxy.java +++ b/src/java/grails/plugin/databasesession/SessionProxy.java @@ -18,6 +18,7 @@ public class SessionProxy implements HttpSession { private final String _sessionId; private final long _creationTime = System.currentTimeMillis(); private final ServletContext _servletContext; + private final boolean _isNew; private static final HttpSessionContext SESSION_CONTEXT = new HttpSessionContext() { public HttpSession getSession(String sessionId) { @@ -43,10 +44,11 @@ public boolean hasMoreElements() { * @param persister the persister * @param sessionId session id */ - public SessionProxy(final ServletContext servletContext, final Persister persister, String sessionId) { + public SessionProxy(final ServletContext servletContext, final Persister persister, String sessionId, boolean isNew) { _servletContext = servletContext; _persister = persister; _sessionId = sessionId; + _isNew = isNew; } public Object getAttribute(String name) { @@ -172,6 +174,6 @@ public void invalidate() { } public boolean isNew() { - return false; // TODO + return _isNew; } } From 01b45b812fbfa13268e517fcd40077f4fd83074b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20P=C3=A9rez=20Alcolea?= Date: Thu, 23 Oct 2014 14:27:19 -0700 Subject: [PATCH 2/2] Update SessionProxyFilter.java --- .../grails/plugin/databasesession/SessionProxyFilter.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/java/grails/plugin/databasesession/SessionProxyFilter.java b/src/java/grails/plugin/databasesession/SessionProxyFilter.java index cfec678..bd543ad 100644 --- a/src/java/grails/plugin/databasesession/SessionProxyFilter.java +++ b/src/java/grails/plugin/databasesession/SessionProxyFilter.java @@ -83,13 +83,13 @@ protected HttpSession proxySession(final boolean create, final HttpServletReques // no session cookie but do create log.debug("No session cookie but create is true, creating session"); sessionId = createSession(request, response); - return new SessionProxy(getServletContext(), persister, sessionId); + return new SessionProxy(getServletContext(), persister, sessionId, true); } if (persister.isValid(sessionId)) { // session cookie and the session is still active log.debug("Session cookie {} found", sessionId); - return new SessionProxy(getServletContext(), persister, sessionId); + return new SessionProxy(getServletContext(), persister, sessionId, false); } if (!create) { @@ -104,7 +104,7 @@ protected HttpSession proxySession(final boolean create, final HttpServletReques log.debug("Session cookie {} found but invalid or old and create is true, creating session", sessionId); persister.invalidate(sessionId); // cleanup if it's too old sessionId = createSession(request, response); - return new SessionProxy(getServletContext(), persister, sessionId); + return new SessionProxy(getServletContext(), persister, sessionId, true); } protected String createSession(final HttpServletRequest request, final HttpServletResponse response) {