Skip to content

Commit 867d808

Browse files
committed
Server:新增通过 Log.DEBUG 来切换日志输入,非 DEBUG 模式下隐藏敏感信息
1 parent 8ead3d7 commit 867d808

File tree

5 files changed

+28
-13
lines changed

5 files changed

+28
-13
lines changed

APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/server/APIJSONApplication.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
2525
import org.springframework.web.filter.CorsFilter;
2626

27+
import zuo.biao.apijson.Log;
28+
2729

2830
/**SpringBootApplication
2931
* 右键这个类 > Run As > Java Application
@@ -36,6 +38,8 @@ public class APIJSONApplication {
3638
public static void main(String[] args) throws Exception {
3739
SpringApplication.run(APIJSONApplication.class, args);
3840

41+
Log.DEBUG = true; //上线生产环境前改为 false,可不输出 APIJSONORM 的日志 以及 SQLException 的原始(敏感)信息
42+
3943
System.out.println("\n\n\n\n\n<<<<<<<<<<<<<<<<<<<<<<<<< APIJSON >>>>>>>>>>>>>>>>>>>>>>>>\n");
4044
System.out.println("开始测试:远程函数 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
4145
try {

APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/server/DemoSQLConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public DemoSQLConfig getSQLConfig(RequestMethod method, String table) {
5151
return new DemoSQLConfig(method, table);
5252
}
5353

54+
//取消注释来实现自定义各个表的主键名
5455
// @Override
5556
// public String getIdKey(String schema, String table) {
5657
// return StringUtil.firstCase(table + "Id"); // userId, comemntId ...

APIJSON-Java-Server/APIJSONORM/src/main/java/zuo/biao/apijson/Log.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
*/
2020
public class Log {
2121

22-
private static final boolean DEBUG = true;
22+
public static boolean DEBUG = true;
2323

2424
/**
2525
* @param TAG

APIJSON-Java-Server/APIJSONORM/src/main/java/zuo/biao/apijson/server/AbstractParser.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import static zuo.biao.apijson.RequestMethod.GET;
1818

1919
import java.io.UnsupportedEncodingException;
20+
import java.sql.SQLException;
2021
import java.util.ArrayList;
2122
import java.util.Arrays;
2223
import java.util.HashMap;
@@ -1203,7 +1204,14 @@ public synchronized JSONObject executeSQL(@NotNull SQLConfig config, boolean isS
12031204
return sqlObj;//容易丢失信息 JSON.parseObject(config);
12041205
}
12051206

1206-
return parseCorrectResponse(config.getTable(), sqlExecutor.execute(config));
1207+
try {
1208+
return parseCorrectResponse(config.getTable(), sqlExecutor.execute(config));
1209+
} catch (Exception e) {
1210+
if (Log.DEBUG == false && e instanceof SQLException) {
1211+
throw new SQLException("数据库驱动执行异常SQLException,非 Log.DEBUG 模式下不显示详情,避免泄漏真实模式名、表名等隐私信息", e);
1212+
}
1213+
throw e;
1214+
}
12071215
}
12081216

12091217

APIJSON-Java-Server/APIJSONORM/src/main/java/zuo/biao/apijson/server/AbstractVerifier.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,17 @@ public abstract class AbstractVerifier<T> implements Verifier<T> {
6767
static {
6868
ACCESS_MAP = new HashMap<String, Map<RequestMethod, RequestRole[]>>();
6969

70-
ACCESS_MAP.put(Table.class.getSimpleName(), getAccessMap(Table.class.getAnnotation(MethodAccess.class)));
71-
ACCESS_MAP.put(Column.class.getSimpleName(), getAccessMap(Column.class.getAnnotation(MethodAccess.class)));
72-
ACCESS_MAP.put(Test.class.getSimpleName(), getAccessMap(Test.class.getAnnotation(MethodAccess.class)));
73-
ACCESS_MAP.put(Request.class.getSimpleName(), getAccessMap(Request.class.getAnnotation(MethodAccess.class)));
74-
ACCESS_MAP.put(Response.class.getSimpleName(), getAccessMap(Response.class.getAnnotation(MethodAccess.class)));
75-
ACCESS_MAP.put(Document.class.getSimpleName(), getAccessMap(Document.class.getAnnotation(MethodAccess.class)));
76-
ACCESS_MAP.put(TestRecord.class.getSimpleName(), getAccessMap(TestRecord.class.getAnnotation(MethodAccess.class)));
77-
ACCESS_MAP.put(Function.class.getSimpleName(), getAccessMap(Function.class.getAnnotation(MethodAccess.class)));
78-
ACCESS_MAP.put(Access.class.getSimpleName(), getAccessMap(Access.class.getAnnotation(MethodAccess.class)));
70+
if (Log.DEBUG) {
71+
ACCESS_MAP.put(Table.class.getSimpleName(), getAccessMap(Table.class.getAnnotation(MethodAccess.class)));
72+
ACCESS_MAP.put(Column.class.getSimpleName(), getAccessMap(Column.class.getAnnotation(MethodAccess.class)));
73+
ACCESS_MAP.put(Test.class.getSimpleName(), getAccessMap(Test.class.getAnnotation(MethodAccess.class)));
74+
ACCESS_MAP.put(Request.class.getSimpleName(), getAccessMap(Request.class.getAnnotation(MethodAccess.class)));
75+
ACCESS_MAP.put(Response.class.getSimpleName(), getAccessMap(Response.class.getAnnotation(MethodAccess.class)));
76+
ACCESS_MAP.put(Document.class.getSimpleName(), getAccessMap(Document.class.getAnnotation(MethodAccess.class)));
77+
ACCESS_MAP.put(TestRecord.class.getSimpleName(), getAccessMap(TestRecord.class.getAnnotation(MethodAccess.class)));
78+
ACCESS_MAP.put(Function.class.getSimpleName(), getAccessMap(Function.class.getAnnotation(MethodAccess.class)));
79+
ACCESS_MAP.put(Access.class.getSimpleName(), getAccessMap(Access.class.getAnnotation(MethodAccess.class)));
80+
}
7981
}
8082

8183
/**获取权限Map,每种操作都只允许对应的角色
@@ -299,7 +301,7 @@ public void verifyLogin() throws Exception {
299301
if (visitorId == null) {
300302
throw new NotLoggedInException("未登录,请登录后再操作!");
301303
}
302-
304+
303305
if (visitorId instanceof Number) {
304306
if (((Number) visitorId).longValue() <= 0) {
305307
throw new NotLoggedInException("未登录,请登录后再操作!");
@@ -364,5 +366,5 @@ public void verifyRepeat(String table, String key, Object value, long exceptId)
364366
throw new ConflictException(key + ": " + value + " 已经存在,不能重复!");
365367
}
366368
}
367-
369+
368370
}

0 commit comments

Comments
 (0)