[java-identity-provider COMMIT] in /trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl: StorageBack...
noreply at shibboleth.net
noreply at shibboleth.net
Thu Sep 26 17:31:45 EDT 2013
Author: scantor
Date: Thu Sep 26 17:31:44 2013
New Revision: 4803
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=4803&view=rev
Log:
Implement session timeout update.
Modified:
trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSession.java
trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java
Modified: trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSession.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSession.java?rev=4803&r1=4802&r2=4803&view=diff
==============================================================================
--- trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSession.java (original)
+++ trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSession.java Thu Sep 26 17:31:44 2013
@@ -25,6 +25,7 @@
import javax.annotation.Nullable;
import org.apache.commons.codec.digest.DigestUtils;
+import org.joda.time.DateTime;
import org.opensaml.storage.StorageRecord;
import org.opensaml.storage.StorageSerializer;
import org.slf4j.Logger;
@@ -81,8 +82,20 @@
/** {@inheritDoc} */
public void setLastActivityInstant(@Duration @Positive final long instant) throws SessionException {
- // TODO Auto-generated method stub
- super.setLastActivityInstant(instant);
+
+ long exp = instant + sessionManager.getSessionTimeout() + sessionManager.getSessionSlop();
+ log.debug("Updating expiration of master record for session {} to {}", getId(), new DateTime(exp));
+
+ try {
+ sessionManager.getStorageService().updateExpiration(
+ getId(), StorageBackedSessionManager.SESSION_MASTER_KEY, exp);
+ super.setLastActivityInstant(instant);
+ } catch (IOException e) {
+ log.error("Exception updating expiration of master record for session " + getId(), e);
+ if (!sessionManager.isMaskStorageFailure()) {
+ throw new SessionException("Exception updating expiration of session record", e);
+ }
+ }
}
/** {@inheritDoc} */
Modified: trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java?rev=4803&r1=4802&r2=4803&view=diff
==============================================================================
--- trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java (original)
+++ trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java Thu Sep 26 17:31:44 2013
@@ -95,7 +95,7 @@
SessionManager, SessionResolver {
/** Storage key of master session records. */
- @Nonnull private static final String SESSION_MASTER_KEY = "_session";
+ @Nonnull public static final String SESSION_MASTER_KEY = "_session";
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(StorageBackedSessionManager.class);
More information about the commits
mailing list