Repository: geode Updated Branches: refs/heads/develop e3eb92712 -> 6619a3de9
GEODE-2354: set global session timeout to MAX_VALUE Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/6619a3de Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/6619a3de Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/6619a3de Branch: refs/heads/develop Commit: 6619a3de9b956d69e3c991f53572595e54ce0549 Parents: e3eb927 Author: Kirk Lund <[email protected]> Authored: Tue Jan 24 12:34:15 2017 -0800 Committer: Kirk Lund <[email protected]> Committed: Wed Jan 25 16:39:51 2017 -0800 ---------------------------------------------------------------------- .../security/IntegratedSecurityService.java | 22 +++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/6619a3de/geode-core/src/main/java/org/apache/geode/internal/security/IntegratedSecurityService.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/security/IntegratedSecurityService.java b/geode-core/src/main/java/org/apache/geode/internal/security/IntegratedSecurityService.java index 73d051f..6507295 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/security/IntegratedSecurityService.java +++ b/geode-core/src/main/java/org/apache/geode/internal/security/IntegratedSecurityService.java @@ -25,6 +25,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.geode.GemFireIOException; import org.apache.geode.internal.cache.EntryEventImpl; import org.apache.geode.internal.logging.LogService; +import org.apache.geode.internal.logging.log4j.LogMarker; import org.apache.geode.internal.security.shiro.CustomAuthRealm; import org.apache.geode.internal.security.shiro.GeodeAuthenticationToken; import org.apache.geode.internal.security.shiro.ShiroPrincipal; @@ -47,6 +48,8 @@ import org.apache.shiro.config.Ini.Section; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.mgt.DefaultSecurityManager; import org.apache.shiro.realm.Realm; +import org.apache.shiro.session.mgt.DefaultSessionManager; +import org.apache.shiro.session.mgt.SessionManager; import org.apache.shiro.subject.Subject; import org.apache.shiro.subject.support.SubjectThreadState; import org.apache.shiro.util.ThreadContext; @@ -420,13 +423,30 @@ public class IntegratedSecurityService implements SecurityService { this.securityManager = securityManager; Realm realm = new CustomAuthRealm(securityManager); - org.apache.shiro.mgt.SecurityManager shiroManager = new DefaultSecurityManager(realm); + DefaultSecurityManager shiroManager = new DefaultSecurityManager(realm); SecurityUtils.setSecurityManager(shiroManager); + increaseShiroGlobalSessionTimeout(shiroManager); + isIntegratedSecurity = true; isClientAuthenticator = false; isPeerAuthenticator = false; } + private void increaseShiroGlobalSessionTimeout(final DefaultSecurityManager shiroManager) { + SessionManager sessionManager = shiroManager.getSessionManager(); + if (DefaultSessionManager.class.isInstance(sessionManager)) { + DefaultSessionManager defaultSessionManager = (DefaultSessionManager) sessionManager; + defaultSessionManager.setGlobalSessionTimeout(Long.MAX_VALUE); + long value = defaultSessionManager.getGlobalSessionTimeout(); + if (value != Long.MAX_VALUE) { + logger.error("Unable to set Shiro Global Session Timeout. Current value is '{}'.", value); + } + } else { + logger.error("Unable to set Shiro Global Session Timeout. Current SessionManager is '{}'.", + sessionManager == null ? "null" : sessionManager.getClass()); + } + } + public PostProcessor getPostProcessor() { return postProcessor; }
