From 2d02047e81e2cf423940e0a2e14e40cbc78122fa Mon Sep 17 00:00:00 2001 From: thinkgem Date: Tue, 4 Dec 2018 21:30:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20shiro.isAllowMultiDeviceLo?= =?UTF-8?q?gin=20=E5=8F=82=E6=95=B0=EF=BC=8C=E6=98=AF=E5=90=A6=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E5=A4=9A=E8=B4=A6=E5=8F=B7=E5=A4=9A=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=99=BB=E5=BD=95=EF=BC=8C=E5=A6=82=E6=9E=9C=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=B8=BAfalse=EF=BC=8C=E5=85=B6=E5=AE=83=E5=9C=B0=E7=82=B9?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=9A=84=E7=9B=B8=E5=90=8C=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E7=99=BB=E5=BD=95=E8=AE=BE=E5=A4=87=E5=B0=86?= =?UTF-8?q?=E8=A2=AB=E8=B8=A2=E4=B8=8B=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/sys/web/OnlineController.java | 14 ++++---- .../main/resources/config/jeesite-core.yml | 35 +++++++++--------- web/src/main/resources/config/application.yml | 36 +++++++++---------- 3 files changed, 44 insertions(+), 41 deletions(-) diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java index 3d67f45b..ccd3049c 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java @@ -148,15 +148,17 @@ public class OnlineController extends BaseController{ public String tickOut(String sessionId) { Session session = sessionDAO.readSession(sessionId); if (session != null){ - @SuppressWarnings("unchecked") - Map onlineTickOutMap = (Map)CacheUtils.get("onlineTickOutMap"); + Map onlineTickOutMap = CacheUtils.get("onlineTickOutMap"); if (onlineTickOutMap == null){ onlineTickOutMap = MapUtils.newConcurrentMap(); } - PrincipalCollection pc = (PrincipalCollection)session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY); - LoginInfo principal = (pc != null ? (LoginInfo)pc.getPrimaryPrincipal() : null); - if (principal != null){ - onlineTickOutMap.put(principal.getId()+"_"+principal.getParam("deviceType", "PC"), StringUtils.EMPTY); + Object pc = session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY); + if (pc != null && pc instanceof PrincipalCollection){ + LoginInfo loginInfo = (LoginInfo)((PrincipalCollection)pc).getPrimaryPrincipal(); + if (loginInfo != null){ + String key = loginInfo.getId()+"_"+loginInfo.getParam("deviceType", "PC"); + onlineTickOutMap.put(key, StringUtils.EMPTY); + } } CacheUtils.put("onlineTickOutMap", onlineTickOutMap); sessionDAO.delete(session); diff --git a/modules/core/src/main/resources/config/jeesite-core.yml b/modules/core/src/main/resources/config/jeesite-core.yml index 4daa67fa..3e8866af 100644 --- a/modules/core/src/main/resources/config/jeesite-core.yml +++ b/modules/core/src/main/resources/config/jeesite-core.yml @@ -40,9 +40,9 @@ jdbc: # 一个连接在池中最大空闲的时间,单位毫秒(30分钟)(4.1.2+) maxEvictableIdleTimeMillis: 1800000 - # 是否自动回收泄露的连接和超时时间,单位秒(10分钟)(4.0.6+) + # 是否自动回收泄露的连接和超时时间,单位秒(35分钟)(4.0.6+) removeAbandoned: true - removeAbandonedTimeout: 600 + removeAbandonedTimeout: 2100 # JTA 分布式事务(v4.0.4+) jta: @@ -312,6 +312,9 @@ shiro: # 是否允许账号多地登录,如果设置为false,同一个设备类型的其它地点登录的相同账号被踢下线 isAllowMultiAddrLogin: true + # 是否允许多账号多设备登录,如果设置为false,其它地点登录的相同账号全部登录设备将被踢下线 + isAllowMultiDeviceLogin: true + # 是否允许刷新主框架页,如果设置为false,刷新主页将导致重新登录。如安全性比较高的,如银行个人首页不允许刷新。 isAllowRefreshIndex: true @@ -490,6 +493,19 @@ file: # 是否用文件流方式下载(支持断点续传) isFileStreamDown: true +# 视频转码 +video: + + # 视频格式转换 ffmpeg.exe 所放的路径 + ffmpegFile: d:/tools/video/ffmpeg-4.9/bin/ffmpeg.exe +# ffmpegFile: d:/tools/video/libav-10.6-win64/bin/avconv.exe + + # 视频格式转换 mencoder.exe 所放的路径 + mencoderFile: d:/tools/video/mencoder-4.9/mencoder.exe + + # 将mp4视频的元数据信息转到视频第一帧 + qtFaststartFile: d:/tools/video/qt-faststart/qt-faststart.exe + #======================================# #========== Message settings ==========# #======================================# @@ -544,18 +560,3 @@ msg: oauth: redirectUri: http://demo.jeesite.com/js -#======================================# -#========== Video settings ============# -#======================================# - -video: - - # 视频格式转换 ffmpeg.exe 所放的路径 - ffmpegFile: d:/tools/video/ffmpeg-4.9/bin/ffmpeg.exe -# ffmpegFile: d:/tools/video/libav-10.6-win64/bin/avconv.exe - - # 视频格式转换 mencoder.exe 所放的路径 - mencoderFile: d:/tools/video/mencoder-4.9/mencoder.exe - - # 将mp4视频的元数据信息转到视频第一帧 - qtFaststartFile: d:/tools/video/qt-faststart/qt-faststart.exe diff --git a/web/src/main/resources/config/application.yml b/web/src/main/resources/config/application.yml index e52867fa..9e7ffd42 100644 --- a/web/src/main/resources/config/application.yml +++ b/web/src/main/resources/config/application.yml @@ -98,9 +98,9 @@ jdbc: # # 一个连接在池中最大空闲的时间,单位毫秒(30分钟)(4.1.2+) # maxEvictableIdleTimeMillis: 1800000 # -# # 是否自动回收泄露的连接和超时时间,单位秒(10分钟)(4.0.6+) +# # 是否自动回收泄露的连接和超时时间,单位秒(35分钟)(4.0.6+) # removeAbandoned: true -# removeAbandonedTimeout: 600 +# removeAbandonedTimeout: 2100 # # 多数据源名称列表,启用方式:@MyBatisDao(dataSourceName="ds2") # dataSourceNames: ds2 @@ -359,6 +359,9 @@ logging: # # 是否允许账号多地登录,如果设置为false,同一个设备类型的其它地点登录的相同账号被踢下线 # isAllowMultiAddrLogin: true # +# # 是否允许多账号多设备登录,如果设置为false,其它地点登录的相同账号全部登录设备将被踢下线 +# isAllowMultiDeviceLogin: true +# # # 是否允许刷新主框架页,如果设置为false,刷新主页将导致重新登录。如安全性比较高的,如银行个人首页不允许刷新。 # isAllowRefreshIndex: true # @@ -502,6 +505,19 @@ logging: # # 是否用文件流方式下载(支持断点续传) # isFileStreamDown: true +#视频转码 +#video: +# +# # 视频格式转换 ffmpeg.exe 所放的路径 +# ffmpegFile: d:/tools/video/ffmpeg-4.9/bin/ffmpeg.exe +## ffmpegFile: d:/tools/video/libav-10.6-win64/bin/avconv.exe +# +# # 视频格式转换 mencoder.exe 所放的路径 +# mencoderFile: d:/tools/video/mencoder-4.9/mencoder.exe +# +# # 将mp4视频的元数据信息转到视频第一帧 +# qtFaststartFile: d:/tools/video/qt-faststart/qt-faststart.exe + #======================================# #========== Message settings ==========# #======================================# @@ -535,22 +551,6 @@ logging: # prefix: 【JeeSite】 # suffix: ~ -#======================================# -#========== Video settings ============# -#======================================# - -#video: -# -# # 视频格式转换 ffmpeg.exe 所放的路径 -# ffmpegFile: d:/tools/video/ffmpeg-4.9/bin/ffmpeg.exe -## ffmpegFile: d:/tools/video/libav-10.6-win64/bin/avconv.exe -# -# # 视频格式转换 mencoder.exe 所放的路径 -# mencoderFile: d:/tools/video/mencoder-4.9/mencoder.exe -# -# # 将mp4视频的元数据信息转到视频第一帧 -# qtFaststartFile: d:/tools/video/qt-faststart/qt-faststart.exe - #======================================# #========== Project settings ==========# #======================================#