新增 shiro.isAllowMultiDeviceLogin
参数,是否允许多账号多设备登录,如果设置为false,其它地点登录的相同账号全部登录设备将被踢下线
This commit is contained in:
@@ -148,15 +148,17 @@ public class OnlineController extends BaseController{
|
|||||||
public String tickOut(String sessionId) {
|
public String tickOut(String sessionId) {
|
||||||
Session session = sessionDAO.readSession(sessionId);
|
Session session = sessionDAO.readSession(sessionId);
|
||||||
if (session != null){
|
if (session != null){
|
||||||
@SuppressWarnings("unchecked")
|
Map<String, String> onlineTickOutMap = CacheUtils.get("onlineTickOutMap");
|
||||||
Map<String, String> onlineTickOutMap = (Map<String, String>)CacheUtils.get("onlineTickOutMap");
|
|
||||||
if (onlineTickOutMap == null){
|
if (onlineTickOutMap == null){
|
||||||
onlineTickOutMap = MapUtils.newConcurrentMap();
|
onlineTickOutMap = MapUtils.newConcurrentMap();
|
||||||
}
|
}
|
||||||
PrincipalCollection pc = (PrincipalCollection)session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
|
Object pc = session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
|
||||||
LoginInfo principal = (pc != null ? (LoginInfo)pc.getPrimaryPrincipal() : null);
|
if (pc != null && pc instanceof PrincipalCollection){
|
||||||
if (principal != null){
|
LoginInfo loginInfo = (LoginInfo)((PrincipalCollection)pc).getPrimaryPrincipal();
|
||||||
onlineTickOutMap.put(principal.getId()+"_"+principal.getParam("deviceType", "PC"), StringUtils.EMPTY);
|
if (loginInfo != null){
|
||||||
|
String key = loginInfo.getId()+"_"+loginInfo.getParam("deviceType", "PC");
|
||||||
|
onlineTickOutMap.put(key, StringUtils.EMPTY);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
CacheUtils.put("onlineTickOutMap", onlineTickOutMap);
|
CacheUtils.put("onlineTickOutMap", onlineTickOutMap);
|
||||||
sessionDAO.delete(session);
|
sessionDAO.delete(session);
|
||||||
|
|||||||
@@ -40,9 +40,9 @@ jdbc:
|
|||||||
# 一个连接在池中最大空闲的时间,单位毫秒(30分钟)(4.1.2+)
|
# 一个连接在池中最大空闲的时间,单位毫秒(30分钟)(4.1.2+)
|
||||||
maxEvictableIdleTimeMillis: 1800000
|
maxEvictableIdleTimeMillis: 1800000
|
||||||
|
|
||||||
# 是否自动回收泄露的连接和超时时间,单位秒(10分钟)(4.0.6+)
|
# 是否自动回收泄露的连接和超时时间,单位秒(35分钟)(4.0.6+)
|
||||||
removeAbandoned: true
|
removeAbandoned: true
|
||||||
removeAbandonedTimeout: 600
|
removeAbandonedTimeout: 2100
|
||||||
|
|
||||||
# JTA 分布式事务(v4.0.4+)
|
# JTA 分布式事务(v4.0.4+)
|
||||||
jta:
|
jta:
|
||||||
@@ -312,6 +312,9 @@ shiro:
|
|||||||
# 是否允许账号多地登录,如果设置为false,同一个设备类型的其它地点登录的相同账号被踢下线
|
# 是否允许账号多地登录,如果设置为false,同一个设备类型的其它地点登录的相同账号被踢下线
|
||||||
isAllowMultiAddrLogin: true
|
isAllowMultiAddrLogin: true
|
||||||
|
|
||||||
|
# 是否允许多账号多设备登录,如果设置为false,其它地点登录的相同账号全部登录设备将被踢下线
|
||||||
|
isAllowMultiDeviceLogin: true
|
||||||
|
|
||||||
# 是否允许刷新主框架页,如果设置为false,刷新主页将导致重新登录。如安全性比较高的,如银行个人首页不允许刷新。
|
# 是否允许刷新主框架页,如果设置为false,刷新主页将导致重新登录。如安全性比较高的,如银行个人首页不允许刷新。
|
||||||
isAllowRefreshIndex: true
|
isAllowRefreshIndex: true
|
||||||
|
|
||||||
@@ -490,6 +493,19 @@ file:
|
|||||||
# 是否用文件流方式下载(支持断点续传)
|
# 是否用文件流方式下载(支持断点续传)
|
||||||
isFileStreamDown: true
|
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 ==========#
|
#========== Message settings ==========#
|
||||||
#======================================#
|
#======================================#
|
||||||
@@ -544,18 +560,3 @@ msg:
|
|||||||
oauth:
|
oauth:
|
||||||
redirectUri: http://demo.jeesite.com/js
|
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
|
|
||||||
|
|||||||
@@ -98,9 +98,9 @@ jdbc:
|
|||||||
# # 一个连接在池中最大空闲的时间,单位毫秒(30分钟)(4.1.2+)
|
# # 一个连接在池中最大空闲的时间,单位毫秒(30分钟)(4.1.2+)
|
||||||
# maxEvictableIdleTimeMillis: 1800000
|
# maxEvictableIdleTimeMillis: 1800000
|
||||||
#
|
#
|
||||||
# # 是否自动回收泄露的连接和超时时间,单位秒(10分钟)(4.0.6+)
|
# # 是否自动回收泄露的连接和超时时间,单位秒(35分钟)(4.0.6+)
|
||||||
# removeAbandoned: true
|
# removeAbandoned: true
|
||||||
# removeAbandonedTimeout: 600
|
# removeAbandonedTimeout: 2100
|
||||||
|
|
||||||
# # 多数据源名称列表,启用方式:@MyBatisDao(dataSourceName="ds2")
|
# # 多数据源名称列表,启用方式:@MyBatisDao(dataSourceName="ds2")
|
||||||
# dataSourceNames: ds2
|
# dataSourceNames: ds2
|
||||||
@@ -359,6 +359,9 @@ logging:
|
|||||||
# # 是否允许账号多地登录,如果设置为false,同一个设备类型的其它地点登录的相同账号被踢下线
|
# # 是否允许账号多地登录,如果设置为false,同一个设备类型的其它地点登录的相同账号被踢下线
|
||||||
# isAllowMultiAddrLogin: true
|
# isAllowMultiAddrLogin: true
|
||||||
#
|
#
|
||||||
|
# # 是否允许多账号多设备登录,如果设置为false,其它地点登录的相同账号全部登录设备将被踢下线
|
||||||
|
# isAllowMultiDeviceLogin: true
|
||||||
|
#
|
||||||
# # 是否允许刷新主框架页,如果设置为false,刷新主页将导致重新登录。如安全性比较高的,如银行个人首页不允许刷新。
|
# # 是否允许刷新主框架页,如果设置为false,刷新主页将导致重新登录。如安全性比较高的,如银行个人首页不允许刷新。
|
||||||
# isAllowRefreshIndex: true
|
# isAllowRefreshIndex: true
|
||||||
#
|
#
|
||||||
@@ -502,6 +505,19 @@ logging:
|
|||||||
# # 是否用文件流方式下载(支持断点续传)
|
# # 是否用文件流方式下载(支持断点续传)
|
||||||
# isFileStreamDown: true
|
# 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 ==========#
|
#========== Message settings ==========#
|
||||||
#======================================#
|
#======================================#
|
||||||
@@ -535,22 +551,6 @@ logging:
|
|||||||
# prefix: 【JeeSite】
|
# prefix: 【JeeSite】
|
||||||
# suffix: ~
|
# 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 ==========#
|
#========== Project settings ==========#
|
||||||
#======================================#
|
#======================================#
|
||||||
|
|||||||
Reference in New Issue
Block a user