Add ExpiringSession.isExpired

Fixes gh-58
This commit is contained in:
Rob Winch
2014-10-13 22:52:08 -05:00
parent 9cb5c75b4e
commit dbc7018a11
3 changed files with 46 additions and 3 deletions

View File

@@ -36,4 +36,11 @@ public interface ExpiringSession extends Session {
*/
int getMaxInactiveInterval();
/**
* Returns true if the session is expired.
*
* @return true if the session is expired, else false.
*/
boolean isExpired();
}

View File

@@ -21,6 +21,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
/**
* <p>
@@ -109,6 +110,17 @@ public final class MapSession implements ExpiringSession {
return maxInactiveInterval;
}
public boolean isExpired() {
return isExpired(System.currentTimeMillis());
}
boolean isExpired(long now) {
if(maxInactiveInterval < 0) {
return false;
}
return now - TimeUnit.SECONDS.toMillis(maxInactiveInterval) >= lastAccessedTime;
}
@Override
public Object getAttribute(String attributeName) {
return sessionAttrs.get(attributeName);