冲突合并

This commit is contained in:
BianLzhaoMin 2026-01-13 09:57:30 +08:00
commit 9c33c613d9
10 changed files with 183 additions and 58 deletions

View File

@ -77,7 +77,6 @@ public class UserDetailsServiceImpl implements UserDetailsService {
throw new AuthenticationCredentialsNotFoundException("用户名/密码错误!");
}
long num=0L;
try{
num=redisUtil.countKeys();//在线用户

View File

@ -3,9 +3,13 @@ server.servlet.context-path=/gzDigitalSignage
#spring.datasource.url=jdbc:mysql://192.168.0.16:4419/gz_digital_signage?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
#spring.datasource.username=root
#spring.datasource.password=Bonus@admin123!
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/gz_digital_signage?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
spring.datasource.url=jdbc:mysql://192.168.0.7:13309/dzkb?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=ccw1998@yyt1999
spring.datasource.password=Bonus@admin123!
#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/gz_digital_signage?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
#spring.datasource.username=root
#spring.datasource.password=ccw1998@yyt1999
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=60000
@ -23,8 +27,14 @@ mybatis.type-aliases-package=com.bonus.digitalSignage.*.vo
#spring.redis.database=6
#spring.redis.password=Bonus@admin123!
spring.redis.host=127.0.0.1
spring.redis.port=6379
#spring.redis.host=127.0.0.1
#spring.redis.port=6379
#spring.redis.database=6
spring.redis.host=192.168.0.7
spring.redis.port=16381
spring.redis.database=6
spring.redis.password=Bonus@admin123!
# \u65E5\u5FD7
logging.config=classpath:logback-boot.xml
@ -77,7 +87,7 @@ csp.enable-webgl=true
# 跨域配置
# 允许的源(多个用逗号分隔)
cors.allowed-origins=http://localhost:11998,http://127.0.0.1:11998,http://192.168.0.39:11998,http://192.168.0.14:11998,http://36.33.26.201:11998
cors.allowed-origins=http://localhost:11998,http://127.0.0.1:11998,http://192.168.0.39:11998,http://192.168.0.14:11998,http://36.33.26.201:11998,http://ggfwpt.ahbonus.cn:17789
# 允许的HTTP方法
cors.allowed-methods=GET,POST,PUT,DELETE,OPTIONS

View File

@ -1,7 +1,7 @@
$.ajaxSetup({
cache : false,
headers : {
"token" : localStorage.getItem("token")
"token" : localStorage.getItem("gds-token")
},
error : function(xhr, textStatus, errorThrown) {
var msg = xhr.responseText;
@ -11,7 +11,7 @@ $.ajaxSetup({
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("token");
localStorage.removeItem("gds-token")
location.href = '/login.html';
} else if (code == 403) {
console.log("未授权:" + message);

View File

@ -11,7 +11,33 @@ document.addEventListener('DOMContentLoaded', function() {
if (top != self) {
parent.location.href = '/digitalSignage/login.html';
}
var token = localStorage.getItem("token");
//自动登录
window.onload = function() {
//获取浏览器路径
let hrefUrl = window.location.href;
const url = new URL(hrefUrl);
const urlParam = new URLSearchParams(url.search);
//解析路径参数
const params = urlParam.get('params');
if(params){
//对参数进行解密
const jiemi =bnsCloudDecrypt(params);
//解密参数继续解析
const logingParam = new URLSearchParams(jiemi);
//获取账号密码
const username = logingParam.get('username');
const password = logingParam.get('password');
if(username && password){
//自己系统登录的方法
authLogin(username,password);
}
}else{
console.log("无自动登录参数");
}
};
var token = localStorage.getItem("gds-token");
if (token != null && token.trim().length != 0) {
$.ajax({
type: 'get',
@ -26,15 +52,13 @@ if (token != null && token.trim().length != 0) {
var code = response.code;
var message = response.message;
if (code == 401) {
localStorage.removeItem("token");
localStorage.removeItem("gds-token");
}
}
});
}
function login(obj) {
$(obj).attr("disabled", true);
var username = $.trim($('#username').val());
var password = $.trim($('#password').val());
if (username == "" || password == "") {
@ -50,7 +74,7 @@ function login(obj) {
_csrf: $('#csrfToken').val()
},
success: function (data) {
localStorage.setItem("token", data.token);
localStorage.setItem("gds-token", data.token);
location.href = ctxPath + '/index.html';
},
error: function (xhr, textStatus, errorThrown) {
@ -62,4 +86,27 @@ function login(obj) {
});
}
}
function authLogin(username,password) {
$.ajax({
type: 'post',
url: ctxPath + '/login',
data: {
username: encryptCBC(username),
password: encryptCBC(password),
_csrf: $('#csrfToken').val()
},
success: function (data) {
localStorage.setItem("gds-token", data.token);
location.href = ctxPath + '/index.html';
},
error: function (xhr, textStatus, errorThrown) {
var msg = xhr.responseText;
var response = JSON.parse(msg);
$("#info").html(response.message);
$(obj).attr("disabled", false);
}
});
}

View File

@ -60,7 +60,7 @@ function initMenu(){
var status = response.status;
var code = response.code;
if (status == 401 || code == 401) {
localStorage.removeItem("token");
localStorage.removeItem("gds-token");
}
}
});
@ -70,7 +70,7 @@ function initsy() {
var $tabsTitle = $tabs.find('.layui-nav-item a');
$.each($tabsTitle,function(idx, ele){
var id=$(ele).attr("lay-id");
$("#sy").attr("src","pages/home/home.html?token="+localStorage.getItem("token"));
$("#sy").attr("src","pages/synthesisQuery/digitalSignage.html?token="+localStorage.getItem("gds-token"));
})
}
function setChild(parentElement, child){
@ -148,7 +148,7 @@ function logout(){
_csrf: $('#csrfToken').val()
},
success : function(data) {
localStorage.removeItem("token");
localStorage.removeItem("gds-token")
location.href= ctxPath + '/login.html';
}
});
@ -183,7 +183,7 @@ var element ;
//新增一个Tab项
element.tabAdd('admin-tab', {
title: title,
content: '<iframe src="' + $(this).attr('data-url')+'?token='+localStorage.getItem("token") + '"></iframe>',
content: '<iframe src="' + $(this).attr('data-url')+'?token='+localStorage.getItem("gds-token") + '"></iframe>',
id: lay_id
});
element.tabChange("admin-tab", lay_id);
@ -277,7 +277,7 @@ function parentOpen(url,lay_id,title){
}
element.tabAdd('admin-tab', {
title: title,
content: '<iframe src="' + url+'?token='+localStorage.getItem("token") + '"></iframe>',
content: '<iframe src="' + url+'?token='+localStorage.getItem("gds-token") + '"></iframe>',
id: lay_id
});

View File

@ -68,4 +68,22 @@ function dateFtt(fmt, date) { //author: meizz
if(new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
}
/**
* @param {Object} word解密
*/
function bnsCloudDecrypt(word){
var key = CryptoJS.enc.Utf8.parse("bonus@cloud@2025");
var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
}
/**
* @param {Object} word加密
*/
function bnsCloudEncrypt(word){
var key = CryptoJS.enc.Utf8.parse("bonus@cloud@2025");
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
return encrypted.toString();
}

View File

@ -1,32 +1,35 @@
var ctxPath = getContextPath();
let aqEnnable = true;//是否开启安全验证
let aqEnnable = true; //是否开启安全验证
// console.log(ctxPath)
var url=window.location.href;
var url = window.location.href;
// console.log(url)
let http = window.location.protocol;
let host = window.location.host;
let dataUrl = http + "//" + host + "/gzDigitalSignage/";
let test_url="http://192.168.0.14:11998/gzDigitalSignage";
let dev_url="http://36.33.26.201:21100/gzDigitalSignage";
let local_url="http://127.0.0.1:11998/gzDigitalSignage";
let dataUrl = "http://112.27.246.86:21997/gzDigitalSignage"
// let test_url="http://192.168.0.14:11998/gzDigitalSignage";
// let dev_url="http://36.33.26.201:21100/gzDigitalSignage";
// let local_url="http://192.168.0.38:11998/gzDigitalSignage";
// let dataUrl = "http://112.27.246.86:21997/gzDigitalSignage"
if(url.indexOf("36.33.26.201")!=-1){
dataUrl = dev_url;
}else if(url.indexOf("127.0.0.1")!=-1 || url.indexOf("localhost")!=-1 || url.indexOf("192.168.0.90")!=-1){
dataUrl = local_url
}else if(url.indexOf("192.168.0.14")!=-1){
dataUrl = test_url
}else{
if(url.indexOf(":8000")!=-1){
dataUrl = "http://192.168.0.14:8000/gzDigitalSignage"
}
if(url.indexOf(":11997")!=-1){
dataUrl = "http://192.168.0.14:21997/gzDigitalSignage"
}
}
// if(url.indexOf("36.33.26.201")!=-1){
// dataUrl = dev_url;
// }else if(url.indexOf("127.0.0.1")!=-1 || url.indexOf("localhost")!=-1 || url.indexOf("192.168.0.38")!=-1){
// dataUrl = local_url
// }else if(url.indexOf("192.168.0.14")!=-1){
// dataUrl = test_url
// }else{
// if(url.indexOf(":8000")!=-1){
// dataUrl = "http://192.168.0.14:8000/gzDigitalSignage"
// }
// if(url.indexOf(":11997")!=-1){
// dataUrl = "http://192.168.0.14:21997/gzDigitalSignage"
// }
// }
// console.log(dataUrl)
let imgUrl = dataUrl + '/files';
let tokens = localStorage.getItem("token");
let imgUrl = dataUrl + "/files";
let tokens = localStorage.getItem("gds-token");
function error(xhr) {
var msg = xhr.responseText;
@ -37,35 +40,43 @@ function error(xhr) {
if (code == 400) {
layer.msg(message);
} else if (code == 401 || status == 401) {
localStorage.removeItem("token");
localStorage.removeItem("gds-token");
localStorage.removeItem("user");
localStorage.removeItem('pageType');
top.layer.alert(message, {
icon: 5,
move: false,
cancel: function (index, layero) {
location.href = '/gzDigitalSignage/login.html';
localStorage.removeItem("pageType");
top.layer.alert(
message,
{
icon: 5,
move: false,
cancel: function (index, layero) {
location.href = "/gzDigitalSignage/login.html";
},
},
function () {
location.href = "/gzDigitalSignage/login.html";
}
}, function () {
location.href = '/gzDigitalSignage/login.html';
})
);
} else if (code == 403) {
console.log("未授权:" + message);
layer.msg('未授权');
layer.msg("未授权");
} else if (code == 500) {
layer.msg("服务异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000,});
layer.msg("服务异常,请稍后重试", {
icon: 16,
scrollbar: false,
time: 2000,
});
}
}
$.ajaxSetup({
cache: false,
headers: {
"Authorization": localStorage.getItem("token")
Authorization: localStorage.getItem("gds-token"),
},
async: false,
error: function (xhr, textStatus, errorThrown) {
error(xhr);
}
},
});
function getContextPath() {
@ -89,4 +100,4 @@ function getUrlParam(key) {
return param[1];
}
}
}
}

View File

@ -0,0 +1,40 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
<title>登录</title>
<link href="css/login.css" type="text/css" rel="stylesheet">
</head>
<body style="display: none">
<div class="login">
<div class="message">项目一体化作战动态管控平台</div>
<div id="darkbannerwrap"></div>
<form id="login-form" method="post" onsubmit="return false;">
<!-- 添加CSRF令牌 -->
<input type="hidden" name="_csrf" id="csrfToken">
<input id="username" name="username" placeholder="用户名" type="text" autocomplete="off">
<hr class="hr15">
<input id="password" name="password" placeholder="密码" type="password" autocomplete="off">
<hr class="hr15">
<button style="width: 100%;" type="submit" onclick="login(this)">登录</button>
<hr class="hr20">
<span id="info" style="color: red"></span>
</form>
</div>
</body>
<script src="js/libs/jquery-3.7.0.min.js"></script>
<script src="js/my/aes.js"></script>
<script src="js/publicJs.js"></script>
<script type="text/javascript" src="js/login.js"></script>
</html>

View File

@ -91,7 +91,7 @@
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("token");
localStorage.removeItem("gds-token");
layer.msg("token过期请先登录", {shift: -1, time: 1000}, function(){
location.href = ctxPath + '/login.html';
});

View File

@ -107,7 +107,7 @@ function init(){
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("token");
localStorage.removeItem("gds-token")
layer.msg("token过期请先登录", {shift: -1, time: 1000}, function(){
location.href = '/login.html';
});