main
黄海 10 months ago
parent e3216bd0a9
commit d42dd205a8

@ -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);
}

@ -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;
}
}

@ -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

@ -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<MenuModel.Menu> menuList = mm.getMenuJson();
Kv kv = Kv.by("success", false);
kv.set("message", "获取成功");
kv.set("data", JSONUtil.parseArray(menuList));
renderJson(kv);
//后续需要根据人员角色菜单关系,去掉不可见菜单
}
}

@ -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<Menu> 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<Menu> getMenuJson() throws JsonProcessingException {
List<Menu> 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);

@ -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/*"]
}]
}

@ -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/

@ -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/

@ -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/

@ -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) %

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="/usr/local/tomcat8/logs"/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符-->
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %boldYellow([%thread]) %highlight(%-5level) %boldGreen(%logger{40})
- %msg%n
</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/dsBase.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/dsBase.log.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符-->
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{40} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>100MB</MaxFileSize>
</triggeringPolicy>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
<logger level="debug" additivity="false">
</logger>
</configuration>

@ -0,0 +1,11 @@
$$\ $$$$$$$\
$$ | $$ __$$\
$$$$$$$ | $$$$$$$\ $$ | $$ | $$$$$$\ $$$$$$$\
$$ __$$ |$$ _____|$$$$$$$ |$$ __$$\ $$ _____|
$$ / $$ |\$$$$$$\ $$ __$$< $$$$$$$$ |\$$$$$$\
$$ | $$ | \____$$\ $$ | $$ |$$ ____| \____$$\
\$$$$$$$ |$$$$$$$ |$$ | $$ |\$$$$$$$\ $$$$$$$ |
\_______|\_______/ \__| \__| \_______|\_______/
power by http://patorjk.com/software/taag/

@ -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

@ -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
Loading…
Cancel
Save