fix:拔出卡系统自动退出

hangao-ukey
wangxy 2 months ago
parent 25f7229eb8
commit c1fc08c102

@ -2,8 +2,11 @@ package com.ruoyi.web.controller.system.system;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
import javax.servlet.http.Cookie; import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
@ -43,6 +46,10 @@ public class SysIndexController extends BaseController
@Autowired @Autowired
private SysPasswordService passwordService; private SysPasswordService passwordService;
@Autowired
private ISysUserService userService;
// 系统首页 // 系统首页
@GetMapping("/index") @GetMapping("/index")
public String index(ModelMap mmap) public String index(ModelMap mmap)
@ -65,7 +72,12 @@ public class SysIndexController extends BaseController
mmap.put("isDefaultModifyPwd", initPasswordIsModify(user.getPwdUpdateDate())); mmap.put("isDefaultModifyPwd", initPasswordIsModify(user.getPwdUpdateDate()));
mmap.put("isPasswordExpired", passwordIsExpiration(user.getPwdUpdateDate())); mmap.put("isPasswordExpired", passwordIsExpiration(user.getPwdUpdateDate()));
mmap.put("isMobile", ServletUtils.checkAgentIsMobile(ServletUtils.getRequest().getHeader("User-Agent"))); mmap.put("isMobile", ServletUtils.checkAgentIsMobile(ServletUtils.getRequest().getHeader("User-Agent")));
//获取系统登录的方式
SysUser sysUser = userService.lambdaQuery().select(SysUser::getIsWay)
.eq(SysUser::getUserId, user.getUserId()).one();
if(Objects.nonNull(sysUser)){
mmap.put("isWay", sysUser.getIsWay());
}
// 菜单导航显示风格 // 菜单导航显示风格
String menuStyle = configService.selectConfigByKey("sys.index.menuStyle"); String menuStyle = configService.selectConfigByKey("sys.index.menuStyle");
// 移动端,默认使左侧导航菜单,否则取默认配置 // 移动端,默认使左侧导航菜单,否则取默认配置

@ -0,0 +1,50 @@
function customFireEvent(objId, eventName) {
var obj = document.getElementById(objId);
if (obj == undefined) {
return;
}
if (obj.fireEvent) {
obj.fireEvent("on" + eventName);
} else if (obj.dispatchEvent) {
var e = document.createEvent('HTMLEvents');
e.initEvent(eventName, false, false);
obj.dispatchEvent(e);
}
}
function FillDeviceList() {
GetAllDeviceSN(function (retObj) {
var obj = document.getElementById("id_device_list");
if (obj == undefined) {
return;
}
var i, n = obj.length;
for (i = 0; i < n; i++) {
obj.remove(0);
}
var strDeviceList = retObj.retVal;
while (true) {
var pos = strDeviceList.indexOf(";");
if (pos <= 0) {
break;
}
var strOneDevice = strDeviceList.substring(0, pos);
var objItem = new Option(strOneDevice, strOneDevice);
obj.options.add(objItem);
var len = strDeviceList.length;
strDeviceList = strDeviceList.substring(pos + 1, len);
}
customFireEvent('id_cert_list', 'change');
customFireEvent('id_device_list', 'change');
});
}
function select_cert(value) {
$("#id_selected_cert_id").val(value);
}
function select_device(value) {
$("#id_selected_device_sn").val(value);
}
SetUserCertList("id_cert_list");
FillDeviceList();
SetOnUsbKeyChangeCallBack(FillDeviceList);

@ -257,6 +257,38 @@
<div th:if="${footer}" class="footer"> <div th:if="${footer}" class="footer">
<div class="pull-right">© [[${copyrightYear}]] ZHKY Copyright </div> <div class="pull-right">© [[${copyrightYear}]] ZHKY Copyright </div>
</div> </div>
<div style="display: none;">
<tr>
<td class="right"> 请选择证书:</td>
<td class="left">
<select class="StandardWidth" id="id_cert_list" onchange="select_cert(this.value)">
</select>
</td>
</tr>
<tr>
<td class="right"> 选择设备序列号:</td>
<td class="left">
<select class="StandardWidth" id="id_device_list" onchange="select_device(this.value)">
</select>
</td>
</tr>
<tr>
<td class="right"> 设备序列号:</td>
<td class="left">
<input type="text" class="StandardWidth" id="id_selected_device_sn" >
</td>
</tr>
<tr>
<td class="right"> 选择的证书ID:</td>
<td class="left">
<input type="text" class="StandardWidth layui-input" id="id_selected_cert_id" >
</td>
</tr>
</div>
</div> </div>
<!--右侧部分结束--> <!--右侧部分结束-->
</div> </div>
@ -272,6 +304,9 @@
<script th:src="@{/ruoyi/js/common.js?v=4.7.7}"></script> <script th:src="@{/ruoyi/js/common.js?v=4.7.7}"></script>
<script th:src="@{/ruoyi/index.js?v=20201208}"></script> <script th:src="@{/ruoyi/index.js?v=20201208}"></script>
<script th:src="@{/ajax/libs/fullscreen/jquery.fullscreen.js}"></script> <script th:src="@{/ajax/libs/fullscreen/jquery.fullscreen.js}"></script>
<script src="../static/ruoyi/xtxasyn.js" th:src="@{/ruoyi/xtxasyn.js}"></script>
<!-- ukey.js -->
<script src="../static/ruoyi/ukey.js" th:src="@{/ruoyi/ukey.js}"></script>
<script th:inline="javascript"> <script th:inline="javascript">
window.history.forward(1); window.history.forward(1);
var ctx = [[@{/}]]; var ctx = [[@{/}]];
@ -385,7 +420,37 @@ $(function() {
}); });
} }
$("[data-toggle='tooltip']").tooltip(); $("[data-toggle='tooltip']").tooltip();
}); });
var isWay=[[${isWay}]];
if(isWay==1) {
// 检查UKey状态的定时器
var ukeyCheckInterval = setInterval(function () {
debugger
var ukey_id = $("#id_selected_cert_id").val();
if (!ukey_id) {
// 清除定时器
clearInterval(ukeyCheckInterval);
// 显示警告通知
//$.modal.alertWarning("UKey设备未插入", function () {
// 跳转到登出页面
location.href = ctx + 'logout';
//});
}
}, 10000); // 每10秒检查一次
}
// 页面卸载时清除定时器
$(window).on('beforeunload', function() {
clearInterval(ukeyCheckInterval);
});
</script> </script>
</body> </body>
</html> </html>

Loading…
Cancel
Save