From d42dd205a8414562dfb937c9a000362b63bc15de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 24 Sep 2024 15:55:12 +0800 Subject: [PATCH] 'commit' --- .../java/com/dsideal/gw/Bean/RetBean.java | 12 +++++- .../com/dsideal/gw/Handler/RouterHandler.java | 2 +- dsGw/target/classes/application_ali.yaml | 23 +++++++++++ .../Menu/Controller/MenuController.java | 15 +++++-- .../resource/Menu/Model/MenuModel.java | 16 +++----- dsRes/target/classes/SetMinioDownload.json | 18 +++++++++ dsRes/target/classes/application_ali.yaml | 31 +++++++++++++++ dsRes/target/classes/application_dev.yaml | 28 +++++++++++++ dsRes/target/classes/application_pro.yaml | 28 +++++++++++++ dsRes/target/classes/log4j.properties | 12 ++++++ dsRes/target/classes/logback.xml | 39 +++++++++++++++++++ dsRes/target/classes/logo.txt | 11 ++++++ dsRes/target/classes/undertow_dev.properties | 34 ++++++++++++++++ dsRes/target/classes/undertow_pro.properties | 34 ++++++++++++++++ 14 files changed, 286 insertions(+), 17 deletions(-) create mode 100644 dsGw/target/classes/application_ali.yaml create mode 100644 dsRes/target/classes/SetMinioDownload.json create mode 100644 dsRes/target/classes/application_ali.yaml create mode 100644 dsRes/target/classes/application_dev.yaml create mode 100644 dsRes/target/classes/application_pro.yaml create mode 100644 dsRes/target/classes/log4j.properties create mode 100644 dsRes/target/classes/logback.xml create mode 100644 dsRes/target/classes/logo.txt create mode 100644 dsRes/target/classes/undertow_dev.properties create mode 100644 dsRes/target/classes/undertow_pro.properties diff --git a/dsGw/src/main/java/com/dsideal/gw/Bean/RetBean.java b/dsGw/src/main/java/com/dsideal/gw/Bean/RetBean.java index 2bad20d8..24d0ca07 100644 --- a/dsGw/src/main/java/com/dsideal/gw/Bean/RetBean.java +++ b/dsGw/src/main/java/com/dsideal/gw/Bean/RetBean.java @@ -1,5 +1,6 @@ package com.dsideal.gw.Bean; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.Getter; import lombok.Setter; @@ -16,7 +17,7 @@ public class RetBean { */ private int code; private String msg; - private JSONObject data; + private JSONArray data; public static final Integer SUCCESS = 200; public static final Integer ERROR = 500; @@ -26,8 +27,15 @@ public class RetBean { public RetBean(int code, String msg, JSONObject data) { this.code = code; this.msg = msg; - this.data = data; + + if (data.get("data") != null) { + this.data = data.getJSONArray("data"); + } else { + this.data = null; + } + } + public String toJsonString() { return JSONObject.toJSONString(this); } diff --git a/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java b/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java index 3a11d2b7..bb6ad644 100644 --- a/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java +++ b/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java @@ -160,7 +160,7 @@ public class RouterHandler extends Handler { if (req.getHeader("Authorization") != null) { String jwtToken = req.getHeader("Authorization"); Claims claims = JwtUtil.getClaims(jwtToken); - if (claims == null) { + if (claims != null) { canPass = true; } } diff --git a/dsGw/target/classes/application_ali.yaml b/dsGw/target/classes/application_ali.yaml new file mode 100644 index 00000000..7604cfe6 --- /dev/null +++ b/dsGw/target/classes/application_ali.yaml @@ -0,0 +1,23 @@ +# 上传文件的临时路径 +uploadTempPath: /tmp +# JWT +SECRET: ZXZnZWVr5b+r5LmQ5L2g55qE5Ye66KGM +# 生成Token的密码 +CookieMd5SingPwd: DsideaL4r5t6y7u + +# 路由 +route: + # 基础数据 + dsBase: + url: http://ds-base:8001 + # 资源库 + dsRes: + url: http://ds-res:8002 + +# 白名单 +whitelist: + # 全局变量获取 + - /dsBase/global/getGlobalValueByKey + # 登录 + - /dsBase/loginPerson/doLogin + diff --git a/dsRes/src/main/java/com/dsideal/resource/Menu/Controller/MenuController.java b/dsRes/src/main/java/com/dsideal/resource/Menu/Controller/MenuController.java index 0c6025f8..2c8fcc47 100644 --- a/dsRes/src/main/java/com/dsideal/resource/Menu/Controller/MenuController.java +++ b/dsRes/src/main/java/com/dsideal/resource/Menu/Controller/MenuController.java @@ -1,5 +1,6 @@ package com.dsideal.resource.Menu.Controller; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.dsideal.resource.Const.RetBean; import com.dsideal.resource.Menu.Model.MenuModel; @@ -8,8 +9,11 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.jfinal.aop.Before; import com.jfinal.core.Controller; import com.jfinal.ext.interceptor.GET; +import com.jfinal.kit.Kv; import io.jsonwebtoken.Claims; +import java.util.List; + public class MenuController extends Controller { MenuModel mm = new MenuModel(); @@ -21,7 +25,9 @@ public class MenuController extends Controller { //当前登录的人员是谁? String token = getRequest().getHeader("Authorization"); if (token == null) { - renderJson(new RetBean(RetBean.ERROR, "JWT token 为空,无法解析人员信息,请重新登录!", null)); + Kv kv = Kv.by("success", false); + kv.set("message", "JWT token 为空,无法解析人员信息,请重新登录!"); + renderJson(kv); return; } Claims claims = JwtUtil.getClaims(token); @@ -29,8 +35,11 @@ public class MenuController extends Controller { String person_id = claims.get("person_id").toString(); //所有菜单 - String result = mm.getMenuJson(); - renderJson(new RetBean(RetBean.SUCCESS, "获取菜单成功!", JSONObject.parseObject(result))); + List menuList = mm.getMenuJson(); + Kv kv = Kv.by("success", false); + kv.set("message", "获取成功"); + kv.set("data", JSONUtil.parseArray(menuList)); + renderJson(kv); //后续需要根据人员角色菜单关系,去掉不可见菜单 } } diff --git a/dsRes/src/main/java/com/dsideal/resource/Menu/Model/MenuModel.java b/dsRes/src/main/java/com/dsideal/resource/Menu/Model/MenuModel.java index d1387d93..241e983a 100644 --- a/dsRes/src/main/java/com/dsideal/resource/Menu/Model/MenuModel.java +++ b/dsRes/src/main/java/com/dsideal/resource/Menu/Model/MenuModel.java @@ -23,7 +23,6 @@ public class MenuModel { @Setter public static class Menu { private String path; - private String name; private String component; private Meta meta; private List children=new ArrayList<>(); @@ -38,19 +37,13 @@ public class MenuModel { private boolean isHide; private boolean isFull; private boolean isAffix; + private String name; private boolean isKeepAlive; } - public String getMenuJson() throws JsonProcessingException { + public List getMenuJson() throws JsonProcessingException { List rootMenu = fetchMenu(160); // 从父ID为-1开始递归 - //输出JSON格式 - ObjectMapper mapper = new ObjectMapper(); - String json = mapper.writeValueAsString(rootMenu.getFirst()); - - //去掉children为空的节点 - JsonNode root = mapper.readTree(json); - removeEmptyChildren(root); - return mapper.writeValueAsString(root); + return rootMenu; } /** @@ -91,7 +84,7 @@ public class MenuModel { Menu sMenu = new Menu(); String url = rs.getStr("url"); sMenu.setPath(url); - sMenu.setName(rs.getStr("menu_name")); + sMenu.setComponent(url); Meta meta = new Meta(); @@ -99,6 +92,7 @@ public class MenuModel { meta.setTitle(rs.getStr("menu_name")); meta.setIsLink(""); meta.setHide(false); + meta.setName(rs.getStr("menu_name")); if (rs.get("is_full") == null || rs.getInt("is_full") == 0) { meta.setFull(false); diff --git a/dsRes/target/classes/SetMinioDownload.json b/dsRes/target/classes/SetMinioDownload.json new file mode 100644 index 00000000..5955e673 --- /dev/null +++ b/dsRes/target/classes/SetMinioDownload.json @@ -0,0 +1,18 @@ +{ + "Version": "2012-10-17", + "Statement": [{ + "Effect": "Allow", + "Principal": { + "AWS": ["*"] + }, + "Action": ["s3:GetBucketLocation", "s3:ListBucket"], + "Resource": ["arn:aws:s3:::dsideal"] + }, { + "Effect": "Allow", + "Principal": { + "AWS": ["*"] + }, + "Action": ["s3:GetObject"], + "Resource": ["arn:aws:s3:::dsideal/*"] + }] +} \ No newline at end of file diff --git a/dsRes/target/classes/application_ali.yaml b/dsRes/target/classes/application_ali.yaml new file mode 100644 index 00000000..0af87d49 --- /dev/null +++ b/dsRes/target/classes/application_ali.yaml @@ -0,0 +1,31 @@ +# 上传文件的临时路径 +uploadTempPath: /tmp +# JWT +SECRET: ZXZnZWVr5b+r5LmQ5L2g55qE5Ye66KGM +# 生成Token的密码 +CookieMd5SingPwd: DsideaL4r5t6y7u + +mysql: + # 数据库信息 + driverClassName: com.mysql.cj.jdbc.Driver + user: ylt + password: Ycharge666 + jdbcUrl : jdbc:mysql://rm-bp1ux6tuk49er80t9.mysql.rds.aliyuncs.com:3306/ds_db?useUnicode=true&characterEncoding=UTF-8 + + +redis: + ip: r-bp14c1p5j5lkpw1jc2.redis.rds.aliyuncs.com + port: 6379 + password: Ycharge666 + +# ============================================================== +jwt: + # 生成Token的密码 + CookieMd5SingPwd: DsideaL4r5t6y7u + +excel: + # 导出excel 的模板配置路径 + excelExportTemplatePathSuffix: /ExcelExportTemplate/ + # 导入excel 的模板配置路径 + ExcelImportTemplatePathSuffix: /ExcelImportTemplate/ + diff --git a/dsRes/target/classes/application_dev.yaml b/dsRes/target/classes/application_dev.yaml new file mode 100644 index 00000000..7673bd7f --- /dev/null +++ b/dsRes/target/classes/application_dev.yaml @@ -0,0 +1,28 @@ +# 上传文件的临时路径 +uploadTempPath: c:/Windows/Temp +# JWT +SECRET: ZXZnZWVr5b+r5LmQ5L2g55qE5Ye66KGM +# 生成Token的密码 +CookieMd5SingPwd: DsideaL4r5t6y7u + +mysql: + # 数据库信息 + driverClassName: com.mysql.cj.jdbc.Driver + user: root + password: DsideaL147258369 + jdbcUrl : jdbc:mysql://10.10.14.210:22066/ds_db?rewriteBatchedStatements=true&useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai + + +redis: + ip: 10.10.14.210 + port: 18890 + password: + +# ============================================================== + +excel: + # 导出excel 的模板配置路径 + excelExportTemplatePathSuffix: /ExcelExportTemplate/ + # 导入excel 的模板配置路径 + ExcelImportTemplatePathSuffix: /ExcelImportTemplate/ + diff --git a/dsRes/target/classes/application_pro.yaml b/dsRes/target/classes/application_pro.yaml new file mode 100644 index 00000000..c7378e3a --- /dev/null +++ b/dsRes/target/classes/application_pro.yaml @@ -0,0 +1,28 @@ +# 上传文件的临时路径 +uploadTempPath: /tmp +# JWT +SECRET: ZXZnZWVr5b+r5LmQ5L2g55qE5Ye66KGM +# 生成Token的密码 +CookieMd5SingPwd: DsideaL4r5t6y7u + +mysql: + # 数据库信息 + driverClassName: com.mysql.cj.jdbc.Driver + user: root + password: DsideaL147258369 + jdbcUrl : jdbc:mysql://10.10.14.210:22066/ds_db?rewriteBatchedStatements=true&useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai + + +redis: + ip: 10.10.14.210 + port: 18890 + password: + +# ============================================================== + +excel: + # 导出excel 的模板配置路径 + excelExportTemplatePathSuffix: /ExcelExportTemplate/ + # 导入excel 的模板配置路径 + ExcelImportTemplatePathSuffix: /ExcelImportTemplate/ + diff --git a/dsRes/target/classes/log4j.properties b/dsRes/target/classes/log4j.properties new file mode 100644 index 00000000..625cca1e --- /dev/null +++ b/dsRes/target/classes/log4j.properties @@ -0,0 +1,12 @@ +log4j.rootLogger=WARN, console +log4j.appender.console=org.apache.log4j.ConsoleAppender +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.conversionPattern=%5p [%t] (%F:%L) - %m%n + +log4j.appender.mq=org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender +log4j.appender.mq.Topic=TOPIC_MEIWEI_SMS_NOTICE_TEST +log4j.appender.mq.Tag=PID_MEIWEI_SMS_RETRY_TIMEOUT +log4j.appender.mq.ProducerGroup=meiwei-producer-retry +log4j.appender.mq.NameServerAddress=127.0.0.1:9876;127.0.0.1:9877 +log4j.appender.mq.layout=org.apache.log4j.PatternLayout +log4j.appender.mq.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r [%t] (%F:%L) % \ No newline at end of file diff --git a/dsRes/target/classes/logback.xml b/dsRes/target/classes/logback.xml new file mode 100644 index 00000000..2c24fb65 --- /dev/null +++ b/dsRes/target/classes/logback.xml @@ -0,0 +1,39 @@ + + + + + + + + + %date{yyyy-MM-dd HH:mm:ss.SSS} %boldYellow([%thread]) %highlight(%-5level) %boldGreen(%logger{40}) + - %msg%n + + + + + + ${LOG_HOME}/dsBase.log + + + ${LOG_HOME}/dsBase.log.%d{yyyy-MM-dd}.log + + 30 + + + + %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{40} - %msg%n + + + + 100MB + + + + + + + + + + \ No newline at end of file diff --git a/dsRes/target/classes/logo.txt b/dsRes/target/classes/logo.txt new file mode 100644 index 00000000..b48587cd --- /dev/null +++ b/dsRes/target/classes/logo.txt @@ -0,0 +1,11 @@ + + $$\ $$$$$$$\ + $$ | $$ __$$\ + $$$$$$$ | $$$$$$$\ $$ | $$ | $$$$$$\ $$$$$$$\ +$$ __$$ |$$ _____|$$$$$$$ |$$ __$$\ $$ _____| +$$ / $$ |\$$$$$$\ $$ __$$< $$$$$$$$ |\$$$$$$\ +$$ | $$ | \____$$\ $$ | $$ |$$ ____| \____$$\ +\$$$$$$$ |$$$$$$$ |$$ | $$ |\$$$$$$$\ $$$$$$$ | + \_______|\_______/ \__| \__| \_______|\_______/ + +power by http://patorjk.com/software/taag/ \ No newline at end of file diff --git a/dsRes/target/classes/undertow_dev.properties b/dsRes/target/classes/undertow_dev.properties new file mode 100644 index 00000000..f3c54a2e --- /dev/null +++ b/dsRes/target/classes/undertow_dev.properties @@ -0,0 +1,34 @@ +# true 值支持热加载 +undertow.devMode=true +undertow.port=8002 +undertow.host=0.0.0.0 + +# 目录名称 +undertow.contextPath=/dsRes + +# 设定I/O线程数. +server.undertow.io-threads=8 + +# 设定工作线程数 +server.undertow.worker-threads=60 + +# 查询当前某程序的线程或进程数 +# yum install psmisc -y +# ps -e | grep java | awk '{print $1} +# pstree -p 15453 | wc -l + +# gzip 压缩开关 +undertow.gzip.enable=true +# 配置压缩级别,默认值 -1。 可配置 1 到 9。 1 拥有最快压缩速度,9 拥有最高压缩率 +undertow.gzip.level=-1 +# 触发压缩的最小内容长度 +undertow.gzip.minLength=1024 + +# 开启access日志 +server.undertow.accesslog.enabled=true +server.undertow.accesslog.pattern=%t %a "%r" %s (%D ms) + +# ssl 开启时,是否开启 http2。检测该配置是否生效在 chrome 地址栏中输入: chrome://net-internals/#http2 +#undertow.http2.enable=true + +#http://www.jfinal.com/doc/1-4 diff --git a/dsRes/target/classes/undertow_pro.properties b/dsRes/target/classes/undertow_pro.properties new file mode 100644 index 00000000..f3c54a2e --- /dev/null +++ b/dsRes/target/classes/undertow_pro.properties @@ -0,0 +1,34 @@ +# true 值支持热加载 +undertow.devMode=true +undertow.port=8002 +undertow.host=0.0.0.0 + +# 目录名称 +undertow.contextPath=/dsRes + +# 设定I/O线程数. +server.undertow.io-threads=8 + +# 设定工作线程数 +server.undertow.worker-threads=60 + +# 查询当前某程序的线程或进程数 +# yum install psmisc -y +# ps -e | grep java | awk '{print $1} +# pstree -p 15453 | wc -l + +# gzip 压缩开关 +undertow.gzip.enable=true +# 配置压缩级别,默认值 -1。 可配置 1 到 9。 1 拥有最快压缩速度,9 拥有最高压缩率 +undertow.gzip.level=-1 +# 触发压缩的最小内容长度 +undertow.gzip.minLength=1024 + +# 开启access日志 +server.undertow.accesslog.enabled=true +server.undertow.accesslog.pattern=%t %a "%r" %s (%D ms) + +# ssl 开启时,是否开启 http2。检测该配置是否生效在 chrome 地址栏中输入: chrome://net-internals/#http2 +#undertow.http2.enable=true + +#http://www.jfinal.com/doc/1-4