From 7329cbdceba5ead4ed455b1f0c58d16b5d8b08aa Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: Sun, 28 Apr 2019 12:58:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/templates/system/role/role.html | 1 - .../resources/templates/system/user/user.html | 1 - .../ruoyi/framework/config/ShiroConfig.java | 47 ++----------------- .../SpringSessionValidationScheduler.java | 38 ++++----------- 4 files changed, 13 insertions(+), 74 deletions(-) diff --git a/ruoyi-admin/src/main/resources/templates/system/role/role.html b/ruoyi-admin/src/main/resources/templates/system/role/role.html index d90dda3b..18cbf966 100644 --- a/ruoyi-admin/src/main/resources/templates/system/role/role.html +++ b/ruoyi-admin/src/main/resources/templates/system/role/role.html @@ -61,7 +61,6 @@ <script th:inline="javascript"> var editFlag = [[${@permission.hasPermi('system:role:edit')}]]; var removeFlag = [[${@permission.hasPermi('system:role:remove')}]]; - var datas = [[${@dict.getType('sys_normal_disable')}]]; var prefix = ctx + "system/role"; diff --git a/ruoyi-admin/src/main/resources/templates/system/user/user.html b/ruoyi-admin/src/main/resources/templates/system/user/user.html index a4517ac2..9db0be37 100644 --- a/ruoyi-admin/src/main/resources/templates/system/user/user.html +++ b/ruoyi-admin/src/main/resources/templates/system/user/user.html @@ -93,7 +93,6 @@ var editFlag = [[${@permission.hasPermi('system:user:edit')}]]; var removeFlag = [[${@permission.hasPermi('system:user:remove')}]]; var resetPwdFlag = [[${@permission.hasPermi('system:user:resetPwd')}]]; - var datas = [[${@dict.getType('sys_normal_disable')}]]; var prefix = ctx + "system/user"; $(function() { diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java index 7a171843..7d26b5ff 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java @@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.framework.shiro.realm.UserRealm; import com.ruoyi.framework.shiro.session.OnlineSessionDAO; import com.ruoyi.framework.shiro.session.OnlineSessionFactory; @@ -47,10 +48,6 @@ public class ShiroConfig @Value("${shiro.session.expireTime}") private int expireTime; - // 相隔多久检查一次session的有效性,单位毫秒,默认就是10分钟 - @Value("${shiro.session.validationInterval}") - private int validationInterval; - // 验证码开关 @Value("${shiro.user.captchaEnabled}") private boolean captchaEnabled; @@ -159,44 +156,6 @@ public class ShiroConfig return sessionFactory; } - /** - * 自定义sessionFactory调度器 - */ - @Bean - public SpringSessionValidationScheduler sessionValidationScheduler() - { - SpringSessionValidationScheduler sessionValidationScheduler = new SpringSessionValidationScheduler(); - // 相隔多久检查一次session的有效性,单位毫秒,默认就是10分钟 - sessionValidationScheduler.setSessionValidationInterval(validationInterval * 60 * 1000); - // 设置会话验证调度器进行会话验证时的会话管理器 - sessionValidationScheduler.setSessionManager(sessionValidationManager()); - return sessionValidationScheduler; - } - - /** - * 会话管理器 - */ - @Bean - public OnlineWebSessionManager sessionValidationManager() - { - OnlineWebSessionManager manager = new OnlineWebSessionManager(); - // 加入缓存管理器 - manager.setCacheManager(getEhCacheManager()); - // 删除过期的session - manager.setDeleteInvalidSessions(true); - // 设置全局session超时时间 - manager.setGlobalSessionTimeout(expireTime * 60 * 1000); - // 去掉 JSESSIONID - manager.setSessionIdUrlRewritingEnabled(false); - // 是否定时检查session - manager.setSessionValidationSchedulerEnabled(true); - // 自定义SessionDao - manager.setSessionDAO(sessionDAO()); - // 自定义sessionFactory - manager.setSessionFactory(sessionFactory()); - return manager; - } - /** * 会话管理器 */ @@ -213,7 +172,7 @@ public class ShiroConfig // 去掉 JSESSIONID manager.setSessionIdUrlRewritingEnabled(false); // 定义要使用的无效的Session定时调度器 - manager.setSessionValidationScheduler(sessionValidationScheduler()); + manager.setSessionValidationScheduler(SpringUtils.getBean(SpringSessionValidationScheduler.class)); // 是否定时检查session manager.setSessionValidationSchedulerEnabled(true); // 自定义SessionDao @@ -227,7 +186,7 @@ public class ShiroConfig * 安全管理器 */ @Bean - public SecurityManager securityManager(UserRealm userRealm) + public SecurityManager securityManager(UserRealm userRealm, SpringSessionValidationScheduler springSessionValidationScheduler) { DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); // 设置realm. diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java index 62731ca5..fcb96336 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java @@ -9,6 +9,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; import com.ruoyi.common.utils.Threads; /** @@ -16,6 +18,7 @@ import com.ruoyi.common.utils.Threads; * * @author ruoyi */ +@Component public class SpringSessionValidationScheduler implements SessionValidationScheduler { private static final Logger log = LoggerFactory.getLogger(SpringSessionValidationScheduler.class); @@ -32,36 +35,15 @@ public class SpringSessionValidationScheduler implements SessionValidationSchedu private volatile boolean enabled = false; /** - * The session manager used to validate sessions. + * 会话验证管理器 */ + @Autowired + @Qualifier("sessionManager") private ValidatingSessionManager sessionManager; - /** - * The session validation interval in milliseconds. - */ - private long sessionValidationInterval = DEFAULT_SESSION_VALIDATION_INTERVAL; - - /** - * Default constructor. - */ - public SpringSessionValidationScheduler() - { - } - - /** - * Constructor that specifies the session manager that should be used for validating sessions. - * - * @param sessionManager the <tt>SessionManager</tt> that should be used to validate sessions. - */ - public SpringSessionValidationScheduler(ValidatingSessionManager sessionManager) - { - this.sessionManager = sessionManager; - } - - public void setSessionManager(ValidatingSessionManager sessionManager) - { - this.sessionManager = sessionManager; - } + // 相隔多久检查一次session的有效性,单位毫秒,默认就是10分钟 + @Value("${shiro.session.validationInterval}") + private long sessionValidationInterval; @Override public boolean isEnabled() @@ -111,7 +93,7 @@ public class SpringSessionValidationScheduler implements SessionValidationSchedu sessionManager.validateSessions(); } } - }, 1000, sessionValidationInterval, TimeUnit.MILLISECONDS); + }, 1000, sessionValidationInterval * 60 * 1000, TimeUnit.MILLISECONDS); this.enabled = true;